Commit graph

  • 77d3e6e3f2 Remove duplicated image draw API in ui::painter lisyarus 2022-05-19 10:41:01 +03:00
  • 329915ac1b Rich text label wip: store cached label state as a series of batches of texture views (NB: transparent labels are broken) lisyarus 2022-05-18 22:45:35 +03:00
  • 59de6682ba Support retrieving buttons from spinbox lisyarus 2022-05-17 23:14:33 +03:00
  • 3f9275b2ad Remove toggle_button, make checkbox support children by default lisyarus 2022-05-17 22:03:40 +03:00
  • 9c744b9a21 Throw if set_child is called for default arrow button lisyarus 2022-05-17 21:27:44 +03:00
  • bfb8ba407b Remove rich_button, make any button able to contain a child element lisyarus 2022-05-17 21:25:01 +03:00
  • 0f95a5bcee Make progress_bar::label const lisyarus 2022-05-17 21:01:20 +03:00
  • 16036268f5 Make convenient function in ui::element_factory to create a progress bar with a label lisyarus 2022-05-17 20:24:58 +03:00
  • c706032df5 Make ui::progress_bar capable of having any element as a child lisyarus 2022-05-17 20:24:39 +03:00
  • ecfda88eac Tweak default fonts appearance & glyph locations lisyarus 2022-05-17 19:57:37 +03:00
  • fcfd7138d1 Add lru cache implementation & tests lisyarus 2022-05-17 18:22:31 +03:00
  • cbfd8f83de Add util::key_error for use in key-value containers in place of std::out_of_range lisyarus 2022-05-17 18:22:17 +03:00
  • 14a2e00b39 Add helper callable objects that always return the same result lisyarus 2022-05-17 18:21:41 +03:00
  • bb971ff412 Explicitly mark util::function as non-copiable with (function &) arguments lisyarus 2022-05-17 18:15:45 +03:00
  • 5c582fb0cc Recursive parsers wip lisyarus 2022-05-17 12:43:53 +03:00
  • a3d5a424dd Add sRGB <-> linear conversion for pixmaps lisyarus 2022-05-16 23:25:34 +03:00
  • 565ab68682 Add gfx::to_srgb/to_linear for colors lisyarus 2022-05-16 23:23:50 +03:00
  • 3de591394d Don't use unevaluated scope for assert in release lisyarus 2021-07-01 20:16:41 +03:00
  • 82e7164670 Support flushing output streams lisyarus 2021-07-01 20:12:48 +03:00
  • a56cdcfc73 Make ui::single_container::child const lisyarus 2022-05-16 12:10:39 +03:00
  • 62cfba7711 Add ui::frame::width/height_constraints lisyarus 2022-05-16 12:10:21 +03:00
  • 9a2c562eec Add ui::asymmetric element that supports width_first() reshaping lisyarus 2022-05-16 12:09:58 +03:00
  • 0b3ef5f4f5 Allow storing arbitrary user data in ui::element lisyarus 2022-05-15 15:40:55 +03:00
  • 4c106cc4c6 Make ui::element store style as non-const lisyarus 2022-05-15 13:17:20 +03:00
  • 49e3e2e07b Mark ui::element::style_updated/own_style_updated as const lisyarus 2022-05-14 16:05:24 +03:00
  • f66e8ceded Fix uninitialized ui::edit font_type lisyarus 2022-05-14 16:05:01 +03:00
  • f01feb7b7f Remove ui::edit::own_style_updated override lisyarus 2022-05-14 16:04:50 +03:00
  • aa27b47723 Support item padding in gfx::texture_atlas lisyarus 2022-05-14 00:01:45 +03:00
  • a3eca3bef7 Support item padding in util::atlas lisyarus 2022-05-14 00:01:26 +03:00
  • 8ca5ab3f25 Support whole-word caret movement in ui::edit lisyarus 2022-05-10 12:01:46 +03:00
  • 922daee6d2 Support whole-word deletion in ui::edit lisyarus 2022-05-10 11:58:25 +03:00
  • 39fe68e6f7 Notify text changed when editing canceled in ui::edit lisyarus 2022-05-10 11:58:08 +03:00
  • 9a3620f186 Reset ui::edit caret on various events lisyarus 2022-05-10 11:51:47 +03:00
  • ec228d481b Make ui::edit caret visible when changing its position via cursor lisyarus 2022-05-08 11:58:34 +03:00
  • 9a56228231 Support on_text_changed callback in ui::edit lisyarus 2022-05-08 11:56:45 +03:00
  • e4a1ede2d2 Add random weighted distribution lisyarus 2022-05-07 18:44:30 +03:00
  • a22ea3d02e Refactor geom::bezier: extract a free-function de Casteljau's algorithm & support changing control points lisyarus 2022-05-07 14:00:29 +03:00
  • a368eb32ff Support selector canceled callback in ui::spawn lisyarus 2022-05-03 20:14:14 +03:00
  • fe1769cf46 Support retrieving item bboxes in ui::selector lisyarus 2022-05-03 15:43:55 +03:00
  • 8354ee1753 Support mouseover callback in ui::selector lisyarus 2022-05-03 15:43:37 +03:00
  • b5145b9596 Support on_scroll event in ui::scroller lisyarus 2022-05-03 14:24:14 +03:00
  • 3760741ba6 Refactor ui::selector to support selector hierarchies lisyarus 2022-05-01 13:16:48 +03:00
  • 7b63614787 Fix ui::selector submenu callback lisyarus 2022-04-30 20:48:11 +03:00
  • 26ca210ecf Make ui::selector callback retrievable so that ui::spawn can replace it lisyarus 2022-04-30 20:42:45 +03:00
  • 1cdfcc5aa5 Support a separate callback for ui::selector submenu selection lisyarus 2022-04-30 20:31:34 +03:00
  • a6b89e3d54 Make ui::spawn(selector) accept floating-point position directly lisyarus 2022-04-30 18:34:19 +03:00
  • 55d2a48ff2 Support retrieving item y-range from ui::selector lisyarus 2022-04-30 16:52:23 +03:00
  • cc6691c633 Support submenu options in ui::selector lisyarus 2022-04-30 16:47:54 +03:00
  • 727db57092 Mark certain ui elements as transparent only if they don't have a hint lisyarus 2022-04-29 14:53:35 +03:00
  • 05f777f398 Make ui:🏷️:font_type an enum class lisyarus 2022-04-29 11:12:18 +03:00
  • 366a0653b5 Add image-load-store OpenGL extension lisyarus 2022-04-22 10:37:14 +03:00
  • fc514577a1 Support compute shader in gfx::program lisyarus 2022-04-22 10:21:14 +03:00
  • 49607f5896 Update generated OpenGL wrapper to support compute shaders extension lisyarus 2022-04-22 10:21:00 +03:00
  • 30b3536d72 Replace query_array with a more useful query_poll lisyarus 2022-04-21 23:16:45 +03:00
  • 86296209c8 Remove query_array usage from deferred renderer lisyarus 2022-04-21 23:16:24 +03:00
  • 2fd8e73738 Fix cg::icosahedron - should implement triangles() instead of faces() lisyarus 2022-04-21 22:16:00 +03:00
  • ecab744dfd Fix choosing hinted ui element if it is hidden by a non-transparent element lisyarus 2022-04-20 18:47:09 +03:00
  • cabe5721aa Add ui::element::transparent attribute lisyarus 2022-04-20 18:46:21 +03:00
  • df963e18a3 Add util::type_name(x) (may use rrti) lisyarus 2022-04-20 18:46:02 +03:00
  • 6aebd8c931 Introduce ui::element::{width,height}_constraint - constraints on one dimension given the size in another dimension lisyarus 2022-04-16 17:16:09 +03:00
  • 8f6d48c605 Fix util::array::indices iteration in case of empty array lisyarus 2022-04-16 17:14:38 +03:00
  • 4b7221db26 Fix ui::edit numeric validators lisyarus 2022-04-16 17:13:52 +03:00
  • 8d3c227285 Replace a dynamic_cast with a static_cast lisyarus 2022-04-11 20:19:16 +03:00
  • edccbc3ed5 Support ui::edit callback on start text input lisyarus 2022-04-10 15:12:42 +03:00
  • 32bb106467 Store focused & hinted elements via weak_ptr in ui::controller lisyarus 2022-04-10 00:01:36 +03:00
  • b9187c6b75 Compute proper caret position after clicking on ui::edit lisyarus 2022-04-08 15:06:52 +03:00
  • 26631cd564 Support cancelling editing text in ui::edit lisyarus 2022-04-08 14:57:33 +03:00
  • e445b42724 Refactor ui::edit state & support focusing lisyarus 2022-04-08 14:49:44 +03:00
  • bd6d0f9f93 Support focused ui elements lisyarus 2022-04-08 14:49:09 +03:00
  • c06a465f51 Make ui::edit clip renderered text by text box using stencil lisyarus 2022-04-08 12:37:16 +03:00
  • 5066dd6494 Support a separate text bbox in ui::edit lisyarus 2022-04-08 12:36:23 +03:00
  • d1b3225112 Fix ui::painter_impl stencil (again) lisyarus 2022-04-08 12:35:39 +03:00
  • 484a5809ef Fix ui::painter_impl stencil implementation + support 255 recursive stencil levels lisyarus 2022-04-08 11:59:52 +03:00
  • 399250fe19 Fix ui::edit key event handling lisyarus 2022-04-08 11:42:20 +03:00
  • bbeb05f34e Refactor SDL2 cursor manipulation lisyarus 2022-04-06 17:52:32 +03:00
  • 5c401d6d50 Make ui::edit change cursors on mouseover lisyarus 2022-04-06 17:24:20 +03:00
  • 80315e839a Add SDL2 cursor capabilities lisyarus 2022-04-06 17:24:09 +03:00
  • f7568535b6 Add ui::edit text input element lisyarus 2022-04-01 17:43:35 +03:00
  • 7848d5a8b3 Add text input helpers in ui::element lisyarus 2022-04-01 17:43:12 +03:00
  • ccb5570892 Add ui::text_input event lisyarus 2022-04-01 17:42:42 +03:00
  • 6db913756b Add scene::on_text_input event lisyarus 2022-04-01 17:40:22 +03:00
  • 6e0579e548 Make sure text input is turned off at app start lisyarus 2022-04-01 17:39:53 +03:00
  • 11b3e960d5 Support shaping utf32-text directly in ui::font lisyarus 2022-04-01 17:38:39 +03:00
  • 53b706a29b Fix kerned font handling unknown characters lisyarus 2022-04-01 17:38:10 +03:00
  • 5b450d401c Fix 9x12 font glyphs lisyarus 2022-04-01 17:36:48 +03:00
  • 50e2ebd362 Fix utf8 parsing lisyarus 2022-04-01 17:36:27 +03:00
  • 2b027e09e5 Support ui::positioner clamping the positioned element within provided shape lisyarus 2022-03-31 20:15:37 +03:00
  • 440b7b6214 Add an assert in ui::element::set_parent to prevent changing element's parent without removing from old parent first lisyarus 2022-03-30 19:35:15 +03:00
  • 02dbdccf0d Re-issue ui hint if hint string changed lisyarus 2022-03-30 09:52:33 +03:00
  • b6ddd70989 Implement ui element hinting support lisyarus 2022-03-29 18:14:43 +03:00
  • c03689c5b4 Make ui::positioner post reshape if child position changes lisyarus 2022-03-29 18:12:13 +03:00
  • 606249d6b7 Fix ui::button handling mouse move event lisyarus 2022-03-29 18:11:53 +03:00
  • 682bbb8e90 Support non-notifying ui::spinbox::on_value_changed lisyarus 2022-03-29 10:13:22 +03:00
  • b3d770f019 Make ui::frame a non-abstract class lisyarus 2022-03-17 15:24:06 +03:00
  • 036c1c543f Call style_updated when ui element parent changes lisyarus 2022-03-17 15:23:47 +03:00
  • afbf49950f Add geom::make_min & make_max lisyarus 2022-03-16 16:23:57 +03:00
  • e8a5ecfa3b Support ui::button repeating callback when kept pressed lisyarus 2022-03-15 18:15:50 +03:00
  • 35c26f1167 Support retrieving display label from a spinbox lisyarus 2022-03-15 16:56:53 +03:00
  • 64a8255c8c Support non-notifying ui::spinbox::set_value lisyarus 2022-03-15 16:56:34 +03:00
  • 56bade1b6b Add ui::table default constructor lisyarus 2022-03-14 23:29:09 +03:00