Commit graph

240 commits

Author SHA1 Message Date
9a2c562eec Add ui::asymmetric element that supports width_first() reshaping 2022-05-16 12:09:58 +03:00
0b3ef5f4f5 Allow storing arbitrary user data in ui::element 2022-05-15 15:40:55 +03:00
4c106cc4c6 Make ui::element store style as non-const 2022-05-15 13:17:20 +03:00
49e3e2e07b Mark ui::element::style_updated/own_style_updated as const 2022-05-14 16:05:24 +03:00
f66e8ceded Fix uninitialized ui::edit font_type 2022-05-14 16:05:01 +03:00
f01feb7b7f Remove ui::edit::own_style_updated override 2022-05-14 16:04:50 +03:00
8ca5ab3f25 Support whole-word caret movement in ui::edit 2022-05-10 12:01:46 +03:00
922daee6d2 Support whole-word deletion in ui::edit 2022-05-10 12:01:33 +03:00
39fe68e6f7 Notify text changed when editing canceled in ui::edit 2022-05-10 11:58:08 +03:00
9a3620f186 Reset ui::edit caret on various events 2022-05-10 11:51:47 +03:00
ec228d481b Make ui::edit caret visible when changing its position via cursor 2022-05-08 11:58:34 +03:00
9a56228231 Support on_text_changed callback in ui::edit 2022-05-08 11:56:45 +03:00
a368eb32ff Support selector canceled callback in ui::spawn 2022-05-03 20:14:14 +03:00
fe1769cf46 Support retrieving item bboxes in ui::selector 2022-05-03 15:43:55 +03:00
8354ee1753 Support mouseover callback in ui::selector 2022-05-03 15:43:37 +03:00
b5145b9596 Support on_scroll event in ui::scroller 2022-05-03 14:24:14 +03:00
3760741ba6 Refactor ui::selector to support selector hierarchies 2022-05-01 13:16:48 +03:00
7b63614787 Fix ui::selector submenu callback 2022-04-30 20:48:11 +03:00
26ca210ecf Make ui::selector callback retrievable so that ui::spawn can replace it 2022-04-30 20:42:45 +03:00
1cdfcc5aa5 Support a separate callback for ui::selector submenu selection 2022-04-30 20:31:34 +03:00
a6b89e3d54 Make ui::spawn(selector) accept floating-point position directly 2022-04-30 18:34:19 +03:00
55d2a48ff2 Support retrieving item y-range from ui::selector 2022-04-30 16:52:23 +03:00
cc6691c633 Support submenu options in ui::selector 2022-04-30 16:47:54 +03:00
727db57092 Mark certain ui elements as transparent only if they don't have a hint 2022-04-29 14:53:35 +03:00
05f777f398 Make ui:🏷️:font_type an enum class 2022-04-29 11:12:48 +03:00
ecab744dfd Fix choosing hinted ui element if it is hidden by a non-transparent element 2022-04-20 18:47:09 +03:00
cabe5721aa Add ui::element::transparent attribute 2022-04-20 18:46:30 +03:00
6aebd8c931 Introduce ui::element::{width,height}_constraint - constraints on one dimension given the size in another dimension 2022-04-16 17:16:09 +03:00
4b7221db26 Fix ui::edit numeric validators 2022-04-16 17:13:52 +03:00
8d3c227285 Replace a dynamic_cast with a static_cast 2022-04-11 20:19:16 +03:00
edccbc3ed5 Support ui::edit callback on start text input 2022-04-10 15:12:42 +03:00
32bb106467 Store focused & hinted elements via weak_ptr in ui::controller 2022-04-10 00:05:28 +03:00
b9187c6b75 Compute proper caret position after clicking on ui::edit 2022-04-08 15:06:52 +03:00
26631cd564 Support cancelling editing text in ui::edit 2022-04-08 15:00:00 +03:00
e445b42724 Refactor ui::edit state & support focusing 2022-04-08 14:49:44 +03:00
bd6d0f9f93 Support focused ui elements 2022-04-08 14:49:09 +03:00
c06a465f51 Make ui::edit clip renderered text by text box using stencil 2022-04-08 12:37:16 +03:00
5066dd6494 Support a separate text bbox in ui::edit 2022-04-08 12:36:23 +03:00
d1b3225112 Fix ui::painter_impl stencil (again) 2022-04-08 12:35:39 +03:00
484a5809ef Fix ui::painter_impl stencil implementation + support 255 recursive stencil levels 2022-04-08 11:59:52 +03:00
399250fe19 Fix ui::edit key event handling 2022-04-08 11:42:20 +03:00
bbeb05f34e Refactor SDL2 cursor manipulation 2022-04-06 17:52:32 +03:00
5c401d6d50 Make ui::edit change cursors on mouseover 2022-04-06 17:24:20 +03:00
f7568535b6 Add ui::edit text input element 2022-04-01 17:43:35 +03:00
7848d5a8b3 Add text input helpers in ui::element 2022-04-01 17:43:12 +03:00
ccb5570892 Add ui::text_input event 2022-04-01 17:42:42 +03:00
11b3e960d5 Support shaping utf32-text directly in ui::font 2022-04-01 17:38:39 +03:00
53b706a29b Fix kerned font handling unknown characters 2022-04-01 17:38:10 +03:00
5b450d401c Fix 9x12 font glyphs 2022-04-01 17:36:48 +03:00
2b027e09e5 Support ui::positioner clamping the positioned element within provided shape 2022-03-31 20:15:37 +03:00