summaryrefslogtreecommitdiff
path: root/src/ui/widget.c
AgeCommit message (Collapse)Author
2021-09-21macOS: Native context menusJaakko Keränen
Popup context menus now use NSMenu. There are still has a few glitches with the navbar identity button, but most menus are working. SDL required another little tweak to force it to update mouse button state after the synchronously handled context menu goes away. Otherwise SDL's internal mouse button state shows that the right mouse button is held down.
2021-09-20Experimenting with independent popup windowsJaakko Keränen
Toe dipping into multiple window support by allowing popup menu widgets to be displayed in independent windows. This is not a 100% replacement for native menus, but it gets pretty close.
2021-09-19Refactoring Window to split off MainWindowJaakko Keränen
MainWindow represents (one of) the main windows of the app, while the basic Window will be a used for popups. Only MainWindow supports split view modes.
2021-09-19Widget: Scrollable widgets will draw a scrollbarJaakko Keränen
A proper scrollbar would be grabbable, but this is just a visual indication that a menu/dialog/panel can be scrolled. IssueID #337
2021-09-19Widget: Scrolling tall widgets in vertical splitJaakko Keränen
Root's safe rect was not using the right origin coordinates. IssueID #337
2021-09-18Fixed crash when hovered widget is destroyedJaakko Keränen
2021-09-18Tracking hover widget; cleanupJaakko Keränen
The hover widget may get deleted during event processing, so Window keeps track of it for refreshing. TODO: Random crash when a destroyed menu is still in the onTop array (?).
2021-09-14Widget: Fixed overflow scroll boundsJaakko Keränen
2021-09-13Mobile: New selection logic for InputWidgetJaakko Keränen
Touch-based interaction requires a different kind of selection and copy/paste behavior. This isn't done yet; especially multi-line text still needs work.
2021-09-12Mobile: Better Settings tap targets; fixed safe area drawingJaakko Keränen
2021-09-12Widget: More accurate draw countJaakko Keränen
2021-09-12Mobile: Draw optimizations; focus handlingJaakko Keränen
Widgets can now be marked for buffering their contents, which is useful if their contents change seldom but they are drawn often. For example, the navbar is always visible but doesn't change very often, and during animations menu contents are static but there is a moving animation so everything gets drawn 60 FPS. Focus handling was also improved so the lookup results can be scrolled while entering text, and one can tap outside an input field to unfocus it.
2021-09-11Mobile: Many UI improvements; Upload UIJaakko Keränen
2021-09-08Mobile: Preferences is completed, improvedJaakko Keränen
2021-09-07Mobile: Redoing PreferencesJaakko Keränen
Contents of the Preferences split panel view are created based on arrays of MenuItems. This removes the confusing indirection of trying to modify the desktop widget tree to fit mobile.
2021-07-15Widget: Removed unnecessary assertionsJaakko Keränen
2021-06-15Fixed visual artifact during sidebar animationJaakko Keränen
The sidebars are not supposed to have borders or background fades.
2021-06-15Mobile: Show identity name in toolbarJaakko Keränen
Shuffled the widget flags a bit to make room for a new one.
2021-06-14Swiping and sidebar; various tweaksJaakko Keränen
When a page is opened from the sidebar, swiping back will now reopen the sidebar. Another swipe will dismiss the sidebar and navigate back as usual. Attempted to cache theme colors in GmDocument, but there were issues with theme changes.
2021-06-13Mobile: Swipe navigationJaakko Keränen
Swipes are working much better. Todo: - Pinch must always cancel/override edge swipes. - Use the right palette for the "swipein" placeholder.
2021-06-13Mobile: Working on swipe navigationJaakko Keränen
Swipes back and forward are now working, although there are some glitches remaining. Most notably, when swiping back the previous document does not appear until the finger is released.
2021-06-13Touch: Swiping away the sidebarJaakko Keränen
2021-06-12Touch: Revising edge swiping eventsJaakko Keränen
Edge swiping now has its own set of commands that are posted, allowing widgets to respond more flexibly.
2021-06-09Merge branch 'dev' into work/typesetterJaakko Keränen
# Conflicts: # src/gmdocument.c # src/ui/documentwidget.c # src/ui/inputwidget.h
2021-05-22Document footer buttonsJaakko Keränen
In some situations, e.g., when a client certificate is required but not active, make available action buttons that offer related shortcuts. Selecting or deselecting an identity for use will automatically reload the current page for convenience. Animate closing sidebars with Escape key.
2021-05-22DocumentWidget: Working on footer button positioningJaakko Keränen
2021-05-20Dialog show/hide animationsJaakko Keränen
Use the animations introduced for mobile on desktop as well. Adding a preference for this might be prudent.
2021-05-19CleanupJaakko Keränen
2021-05-19CleanupJaakko Keränen
2021-05-19Widget: Fixed arrangement bugJaakko Keränen
Whenever a widget is resized, we may need to rearrange its children. The up-to-date sizes must be used for determining positions for other children.
2021-05-18Mobile: No view split on phone; layout fixesJaakko Keränen
2021-05-17Mobile: Swipe improvementsJaakko Keränen
Edge swipe direction is determined in a more dynamic way.
2021-05-16Widget: Fixed arrangement resettingJaakko Keränen
The expand flag should be reset only in the context of the parent's arrangement/resize direction.
2021-05-16Widget: Fade opacity based on area covering rootJaakko Keränen
2021-05-15Widget: Rearranging expanding widgetsJaakko Keränen
When starting a new arrangement, expanding widgets must be reset so they won't affect the outcome.
2021-05-15Mobile: Various improvements and fixesJaakko Keränen
- fill the safe area with theme background - don't set button hover states if dragging/scrolling - edge-draggable widgets must be flagged as such - Preferences top panel offset matches sibling panels' offset - allow toolbar to unhide when document is not scrollable
2021-05-14Mobile and iOS: Various fixes and cleanupJaakko Keränen
Several regressions occurred when the split view mode was implemented.
2021-05-14Widget: Prevent overflow scrolling if not tallJaakko Keränen
2021-05-14Widget: Fixed layout issueJaakko Keränen
Reset sequential arrangements so the previous child bounds don't affect a newly calculated arrangement.
2021-05-14InputWidget: Fixed cursor moving; scroll the dialogJaakko Keränen
Up/down movement sometimes ended up in the wrong cursor position. Now the nearest overflow-scrollable parent scrolls to keep the cursor visible.
2021-05-13Widget: Remove timed commands when destroyedJaakko Keränen
2021-05-12Keep labels aligned with expanding inputsJaakko Keränen
A widget may copy its height from another widget.
2021-05-12InputWidget: Expanding while editingJaakko Keränen
The navbar layout cannot accommodate more than one line of text, but allow the editor to expand while writing text.
2021-05-06Split view: Fixed theme and title updatesJaakko Keränen
Now every DocumentWidget is guaranteed a unique ID. The window title is updated when the keyroot chages.
2021-05-03Window: Dispatch key events only to the root with key focusJaakko Keränen
2021-04-30Revising and fixing widget layoutJaakko Keränen
Some of the logic for arranging widgets was invalid, leading to problems with the navbar: - cannot resize children if own size depends on their size - expanding children won't expand unless resizing all children
2021-04-29Working on multiple UI rootsJaakko Keränen
Added a menu for changing the split mode.
2021-04-29Working on multiple UI rootsJaakko Keränen
Restore previous root after processing events. Adjusted colors of the non-focused root.
2021-04-28Working on multiple UI rootsJaakko Keränen
Root focus switching and opening links in the other root.
2021-04-28Working on multiple UI rootsJaakko Keränen
Various refactorings and fixes to handle root-global and window-global state, root-specific palettes, and proper coordinate system changes (e.g., when opening menus). UI events are posted and handled in the context of a specific root.