Ilia Demianenko
8bfbabd877
Orca UI support
2023-07-13 21:36:31 -07:00
martinfouilleul
2a01cba026
[ui] Fix ui scrolling
2023-05-17 15:48:25 +02:00
Martin Fouilleul
39e96e0739
Added xxhash64 hash function and use that instead of x64-specific aes hash, until we get an arm version
2023-04-29 19:25:40 +02:00
Martin Fouilleul
346979a21a
[canvas] change surface/canvas APIs to treat canvas a 'just another kind of surface', and split canvas implementation (managed by surface) from canvas _command buffer_ and implicit context (represented by mg_canvas)
2023-04-25 19:13:15 +02:00
Martin Fouilleul
32d7d91893
[wip] changed ui_begin_frame() to take explicit canvas size
2023-04-25 15:10:05 +02:00
Martin Fouilleul
7c273f494b
[ui, logging]
...
- Changed workings of ui_panel() and scrolling to make it easier for usage code to control scrolling.
- Renamed logging functions
2023-04-20 15:40:00 +02:00
Martin Fouilleul
bb6b68ad73
[event system] allocate events and additional payload (e.g. file paths) directly in ring buffer, and copy them to user-supplied arena in mp_next_event()
2023-04-19 16:16:36 +02:00
Martin Fouilleul
ab150f94f2
separating input state from app, so that it can be used in different threads that main thread. E.g. ui context uses its own input state that can be fed events in a second thread
2023-04-19 11:28:20 +02:00
Martin Fouilleul
ff4dddc0b7
moved assert to platform layer
2023-04-18 18:36:06 +02:00
Martin Fouilleul
794f47b141
abstracting logging for orca
2023-04-18 18:05:54 +02:00
Martin Fouilleul
86a16d3775
modifications to log system to support orca env where stdio is not defined
2023-04-18 14:33:27 +02:00
Martin Fouilleul
e9e9ab68c2
base memory allocator and chunked arenas for orca
2023-04-17 18:12:21 +02:00
Martin Fouilleul
03b5802529
[canvas] replace simple shape helpers with normal paths operations instead of having dedicated primitives for rounded rects/ellipses and so on
2023-04-11 11:16:23 +02:00
Martin Fouilleul
716bdc53d4
[ui] draw drop-down button with correct roundness
2023-03-13 10:53:21 +01:00
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
009fe8e3e8
[ui, styling]Fix order of adding after rules to running list in rule-matching pass
2023-03-11 16:43:58 +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
137a75540b
[win32] implemented string clipboard functions
2023-03-09 19:44:55 +01:00
martinfouilleul
359e08b0a8
[ui] set text box cursor to the same color as text
2023-03-09 18:09:04 +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
c7d5cf113e
[ui] reintroducing tooltip
2023-03-09 16:08:42 +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
d2f4f5083b
[ui, layout] solving layout constraints
2023-03-09 13:13:13 +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
7b2ef080e8
[util, formatting] shorten list loop names to for_list_xxx
2023-03-08 12:03:33 +01:00
Martin Fouilleul
3682605f97
[util, formatting] changed list api to snakecase for consistency with the rest of the codebase
2023-03-08 12:00:10 +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
2466241b1e
[ui, styling] finished first pass on core layout/styling system
2023-03-07 19:27:01 +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
b52a35c753
[ui, textbox] Fixed selection background rectangle
2023-03-05 17:03:00 +01:00
Martin Fouilleul
1af132352a
[ui, textbox] Scroll text inside text box to always show edit cursor.
2023-03-05 16:35:55 +01:00
Martin Fouilleul
4359bdaa3c
[ui, textbox] position cursor at mouse position / extend selection on shift + mouse press or drag
2023-03-05 15:59:57 +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
c04e8639ab
[wip, ui] re-integrating UI subsystem and completing text box
2023-03-03 20:09:44 +01:00
Martin Fouilleul
d21e737733
[wip] re-introducing UI subsystem
2023-03-03 17:13:03 +01:00
Martin Fouilleul
1d77a36640
Fixed executable/bundle paths procs
2022-08-21 17:07:54 +02: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