summaryrefslogtreecommitdiff
path: root/src/ui/widget.h
AgeCommit message (Collapse)Author
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-12Mobile: Better Settings tap targets; fixed safe area drawingJaakko 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-07-23UploadWidget: Expand to input field sizeJaakko 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: 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-05-22DocumentWidget: Working on footer button positioningJaakko Keränen
2021-05-17Mobile: Swipe improvementsJaakko Keränen
Edge swipe direction is determined in a more dynamic way.
2021-05-16Widget: Fade opacity based on area covering rootJaakko Keränen
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-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-12Keep labels aligned with expanding inputsJaakko Keränen
A widget may copy its height from another widget.
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-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-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.
2021-04-27Refactor: Update event processing to not assume a single UI rootJaakko Keränen
Most actions should occur in the context of the current UI root.
2021-04-20Widget: Added a utility methodJaakko Keränen
2021-04-12Mobile: CertImportWidget, UI tweaksJaakko Keränen
The Import Identity dialog is now styled for mobile, although could use a little more tuning.
2021-04-11Mobile: Long press to select; navbar page menuJaakko Keränen
DocumentWidget now supports a long-press drag selection mode. The context menu was moved to the URL bar, replacing the reload button.
2021-04-10SidebarWidget: Action button fontsJaakko Keränen
2021-04-04Widget: Added a debug utilityJaakko Keränen
Printing the list of parents.
2021-03-30Widget: Arrangement debugging; min sizeJaakko Keränen
There is a problem with repeated arrangements: the previous set sizes affect subsequent outcomes. This results in Preferences not being able to reduce in size, only to expand. It should be possible to reset sizes back to zero/minimum size before starting an arrangement, but LabelWidget needs to cooperate by using `minSize` to set its default size. `minSize` is preferable to fixedSize because then the widget can go through the usual arranging logic. To be continued at a later time...
2021-03-29Widget: Flag for allowing horizontal overflowJaakko Keränen
Two-column headings are supposed to span both columns.
2021-03-21iOS: Save to Files; hide toolbar on scrollJaakko Keränen
There is no downloads directory on mobile. Instead, the downloaded file is temporarily cached and given to the iOS document picker to export. Added an option to hide the bottom toolbar while scrolling down.
2021-03-18Scrollbar fading and periodic commandsJaakko Keränen
Added a new mechanism to issue periodic but not per-frame commands. This is used for main-thread operations like checking if it's time to fade away the scrollbars. Scrollbars are faded away completely on Apple platforms. Adjusted list right margins accordingly.
2021-03-16Mobile: Dialog layout fixesJaakko Keränen
Orientation and safe inset changes are now applied to phone dialogs. There is still the occasional unscrollable dialog, but it seems random?
2021-03-13Arrange URL child indicators; widget arrangementJaakko Keränen
The indicators in the URL input field are now arranged horizontally, so they don't overlap. Improved arrangement of (un)collapsed widgets.
2021-03-12Cut/copy/paste paste via menusJaakko Keränen
IssueID #175
2021-03-12Window: Embed reload button; sidebar context menuJaakko Keränen
2021-03-10Edge-dragging preference panelsJaakko Keränen
2021-03-10Mobile: Working on the phone preferencesJaakko Keränen
2021-03-09Mobile: Revising phone-style dialogsJaakko Keränen
Sliding panels and left-edge swipes.
2021-03-08Fine-tuning touch behaviorJaakko Keränen
Avoid mouse motion events to prevent spurious hover states in the UI.
2021-03-06Mobile: Dealing with keyboard heightJaakko Keränen
The software keyboard obstructs part of the UI, so need to offset the view if the focused input widget would not be visible.
2021-03-06Mobile: Dialog styling for phonesJaakko Keränen
2021-03-05Widget: Debugging reference keepingJaakko Keränen
2021-03-04LabelWidget: Added an optional iconJaakko Keränen
Label icons are intended for context menus.
2021-03-04Changing UI scaling at runtimeJaakko Keränen
UI scaling factor is applied when closing the Preferences dialog. IssueID #83
2021-02-26Visual design improvementsJaakko Keränen
URL input field has a maximum width. Adjusted navbar appearance and margins. Tuned UI palette and added UI accent color preference.
2021-02-23Widget: Inserting children at a specific indexJaakko Keränen
2021-02-22Dialog buttons on the rightJaakko Keränen
Follow typical GUI conventions by placing dialog buttons on the right edge. This leaves space for additional actions on the left.
2021-02-21Animated widget offsets; phone sidebarsJaakko Keränen
2021-02-20iOS: Removed 2nd sidebar; background tweaksJaakko Keränen
2021-02-19Touch: Scrollbars can be dragged via touchJaakko Keränen
Widgets can be flagged as being touch-draggable, which makes them receive finger down/motion/up events directly, and no momentum scrolling is applied.
2021-02-18iOS: Working on touch event handlingJaakko Keränen
Handle finger down, motion, and up events to implement basic taps, long presses, and inertia scrolling. Much finetuning still to be done, and certain widgets like input fields and scrollbars need a direct drag mode (they were working fine via the "mouse" events already).
2021-02-02Improved focus switching for dialogsJaakko Keränen
Widgets can now be defined as being the "focus root", i.e., the topmost widget under which focus switching happens. Normally this is the window root widget, but dialogs use this flag to confine focus switching inside the dialog. InputWidget in Overwrite mode will focus switch to the next focusable widget when the text field becomes full.