Commit Graph

28 Commits

Author SHA1 Message Date
Martin Fouilleul 5455c2a52b [ui] Allow styling overlay boxes (e.g. menu and drop-down list panels) locally.
- Added an UI_FLAG_OVERLAY flag. When we make a box with that flag set, it is added the an overlayList in the ui context.
- After styling and static size pass, we reparent boxes in the overlayList to an overlay node just below the root node.
- Layout and drawing works uniformly on the whole tree. Overlay boxes get drawn last and steal mouse hover from boxes underneath them.
2023-03-13 10:26:39 +01:00
Martin Fouilleul 9e41d2b6fc [ui] first version of select popup menu 2023-03-12 19:06:09 +01:00
Martin Fouilleul 09951afa53 [ui] added ui_checkbox() helper 2023-03-11 19:06:05 +01:00
Martin Fouilleul bf92a6f307 Merge branch 'master' of ssh://git.forkingpaths.dev/martinfouilleul/milepost 2023-03-11 16:27:52 +01:00
Martin Fouilleul da7e0f402b [ui, layout] Add UI_FLAG_ALLOW_OVERFLOW_X/Y 2023-03-11 16:27:21 +01:00
martinfouilleul 9accf4c666 [ui, win32]
- change coord system of gl canvas to match ui
- change mouse coordinate system to match ui
- fix mouse delta
2023-03-09 17:38:41 +01:00
Martin Fouilleul c362751c23 [ui] menus widgets first draft 2023-03-09 16:02:46 +01:00
Martin Fouilleul feca7d1026 [ui] moved ui_panel() into ui.c 2023-03-09 14:27:46 +01:00
Martin Fouilleul 56874c99d6 [ui, layout] layout constraint solving, first draft 2023-03-09 12:36:38 +01:00
Martin Fouilleul a569454df5 [ui, wip] scrolling / scrolling panels 2023-03-08 19:53:28 +01:00
Martin Fouilleul 873d4ab6db [ui, canvas]
- Allow querying the size of the canvas's underlying surface
- Set size of ui root to canvas' size
2023-03-08 15:03:35 +01:00
Martin Fouilleul 1212d714d5 [platform/canvas]
- Changed canvas coordinate system to match UI coord system (origin at top left, y axis down)
- Changed mouse coordinate system to match UI and canvas
- No need to pass width/height to ui_begin_frame() anymore
2023-03-08 13:19:18 +01:00
Martin Fouilleul bfc19665ce [util]
- shorten str8_lit macro to STR8
- use strlen() in STR8 and remove str8_from_cstring(). Usage with string literal seem to always be optimized by compile-time constant, so there's little need for a confusing macro that only works with literals and breaks with pointers.
- replaced str8_unbox() with str8_lp/str8_ip
2023-03-08 11:40:40 +01:00
Martin Fouilleul f07f56948d [ui] shorten ui styling api names 2023-03-08 11:13:32 +01:00
Martin Fouilleul 8b06cb31ba [ui, styling]
- Put all styling calls _before_ the styled box.
- Renamed full pattern matching API to ui_style_match_next_before/after
- Helper to style next box only (ui_style_next())
2023-03-08 11:09:28 +01:00
Martin Fouilleul c551135933 [ui] remove the need to pass a default style to ui_frame() 2023-03-07 19:44:22 +01:00
Martin Fouilleul 8032c7340b [ui, styling] revisiting layout/sizing 2023-03-07 19:06:04 +01:00
Martin Fouilleul d3a8a651e5 [ui, styling] make layout and floating properties part of styling system 2023-03-07 10:33:22 +01:00
Martin Fouilleul 7b10a99a8c [ui, styling] First draft of rule-based styling to replace old stack-based system 2023-03-06 19:33:01 +01:00
Martin Fouilleul e95efe85e8 [wip, input system] Fixed bug on macOS, where keyUp events are not received when the command modifier key is down and makes a meaningful combination with the pressed key (note this is normal macOS event handling behaviour, but we still want all events to arrive to track key states).
Fixed by overloading the sendEvent method of our derived NSApplication class. There we check if modifier is down and send the event.
Note glfw solves that by adding a block handler for the keyUp event with addLocalMonitorForEventsMatchingMask.
2023-03-04 19:24:30 +01:00
Martin Fouilleul d21e737733 [wip] re-introducing UI subsystem 2023-03-03 17:13:03 +01:00
Martin Fouilleul 13cccdf5de trying to integrate mg_surface_client/server 2022-08-19 19:46:31 +02:00
Martin Fouilleul 0becc301d0 Fix panel scrolling issue (clamping scroll value was only done when scrollers were on) 2022-08-16 09:58:16 +02:00
Martin Fouilleul 5cfaf909fc adding animation flags 2022-08-16 00:01:07 +02:00
Martin Fouilleul e22893e9ea animated ui positions 2022-08-15 23:11:00 +02:00
Martin Fouilleul c3f149c910 Fixing metal compute shader coordinate bug that prevented rendering the last row/column of tiles 2022-08-15 17:20:44 +02:00
Martin Fouilleul 094b0efc33 text box 2022-08-15 10:20:29 +02:00
Martin Fouilleul 39cfa35bfd initial commit 2022-08-14 18:19:40 +02:00