Commit Graph

175 Commits

Author SHA1 Message Date
Emil Ernerfeldt b73fbb33d8 Improve size negotiation code.
Better enfocred minimum sizes.
You can now have windows that expand to fit their content.
2020-05-01 02:08:01 +02:00
Emil Ernerfeldt 7cd8ac2bbf Rename Widget::add_to to Widget::ui 2020-04-29 22:01:39 +02:00
Emil Ernerfeldt bf59455097 Add a bunch of TODOs 2020-04-29 21:58:41 +02:00
Emil Ernerfeldt 14db237b1d Basic text input support 2020-04-29 21:25:49 +02:00
Emil Ernerfeldt 1e685d1cb0 Add support for text input in emilib and glium.
Add input inspectors
2020-04-28 23:05:22 +02:00
Emil Ernerfeldt 680d1888da Add a Debug layer 2020-04-27 16:53:14 +02:00
Emil Ernerfeldt fbedc2e9ab Add scroll bars to windows.
Auto-hide scroll bars when not needed

Bug fixes:
 * collapsing headers animation
 * clip rect interactions
 * clip rects for scroll areas
2020-04-26 22:30:24 +02:00
Emil Ernerfeldt 2897b1cafc Fix paint canvas example (move painting with window) 2020-04-26 22:25:23 +02:00
Emil Ernerfeldt 6dd41982ba Expand Region when child overflows desired_rect 2020-04-25 23:07:03 +02:00
Emil Ernerfeldt 154424384f Implement Window as collection of Floating + Frame + Resize 2020-04-25 22:49:57 +02:00
Emil Ernerfeldt 649dcec09c Refactor: replace bounding_size: Vec2 with child_bounds: Rect 2020-04-25 15:46:50 +02:00
Emil Ernerfeldt cce048509f Refactor: make Rect members min/max public 2020-04-25 15:45:38 +02:00
Emil Ernerfeldt e26d08851f Add Floating and Frame containers as building blocks for windows 2020-04-25 15:26:24 +02:00
Emil Ernerfeldt 3a430c8fc7 Add new Resize container 2020-04-25 14:37:39 +02:00
Emil Ernerfeldt 9ba5bea143 Use RangeInclusive for clamp and lerp 2020-04-25 11:14:32 +02:00
Emil Ernerfeldt 4cc6ca7236 Use ..= range arguments to remap functions 2020-04-25 11:11:44 +02:00
Emil Ernerfeldt 663fbda90c Use min..=max syntax for slider ranges 2020-04-25 11:01:57 +02:00
Emil Ernerfeldt 02f3b6dddf std::f32::INFINITY -> f32::INFINITY 2020-04-25 10:52:20 +02:00
Emil Ernerfeldt b407a65e87 Update rusttype 2020-04-25 10:45:53 +02:00
Emil Ernerfeldt a66f4efaac Minor code cleanup and clippy fixes 2020-04-24 18:47:14 +02:00
Emil Ernerfeldt ddc34d654b Nicer window resize icon 2020-04-24 18:32:55 +02:00
Emil Ernerfeldt 39e17a7562 Add painter region as example 2020-04-24 18:32:27 +02:00
Emil Ernerfeldt 7459aa60a4 Make emigui fill entire web page 2020-04-23 22:08:42 +02:00
Emil Ernerfeldt 1affa10dee Keep windows within the screen 2020-04-23 22:07:27 +02:00
Emil Ernerfeldt b39555bb23 Add support for hyperlinks 2020-04-23 19:15:17 +02:00
Emil Ernerfeldt 25b06a6ff0 Update wasm/web example 2020-04-23 09:50:03 +02:00
Emil Ernerfeldt 723c3ca908 Shrink window heights to fit content 2020-04-23 09:34:33 +02:00
Emil Ernerfeldt b4ea51f0f9 Sliders: use title as id if available with scroll position as fallback
This fixes the sliders in the style window
2020-04-23 09:27:08 +02:00
Emil Ernerfeldt fd8180cea4 Fix left alignment of widgets and tweak style slightly 2020-04-23 00:23:29 +02:00
Emil Ernerfeldt a4db437413 Make scroll bar prettier, and handle clicks outside of handle 2020-04-22 23:41:05 +02:00
Emil Ernerfeldt 61033a5fc1 Remove dead code 2020-04-22 21:11:13 +02:00
Emil Ernerfeldt a8d9c3fc42 Listen to scroll wheel (glium only) 2020-04-22 20:01:49 +02:00
Emil Ernerfeldt 9b404159c5 Expand clip_rects slightly to allow widgets just on the border 2020-04-22 19:41:42 +02:00
Emil Ernerfeldt 104f2191a0 Improve Widget code, and make sure it paints within the given bounds 2020-04-22 19:39:51 +02:00
Emil Ernerfeldt 700c93b8e3 Add Rect left/right/top/bottom accessors 2020-04-22 19:38:38 +02:00
Emil Ernerfeldt 2a4828670e Unify child region creation 2020-04-22 19:03:38 +02:00
Emil Ernerfeldt c604574e52 Unify state management 2020-04-22 19:03:38 +02:00
Emil Ernerfeldt d941c5830d Unify style for buttons and collapsing headers 2020-04-22 19:03:38 +02:00
Emil Ernerfeldt d70ae351c1 Rename foldable to CollapsingHeader and move to own file 2020-04-22 19:03:33 +02:00
Emil Ernerfeldt 0b61d952e6 Drag scroll area background to scroll 2020-04-22 17:38:36 +02:00
Emil Ernerfeldt dbf8520e63 Basic scroll area support
Just vertical scrolling at the moment
2020-04-21 20:52:17 +02:00
Emil Ernerfeldt 4efbb94e1b Various small improvements 2020-04-21 20:48:31 +02:00
Emil Ernerfeldt a56a869f48 Window: store inner size + misc improvements 2020-04-21 20:46:30 +02:00
Emil Ernerfeldt 8b4e506493 Fix bug: accidental interaction on mouse-up 2020-04-21 20:43:47 +02:00
Emil Ernerfeldt e9bdadb1da Some visual tweaks 2020-04-21 16:50:56 +02:00
Emil Ernerfeldt 9be5537418 Animate foldable regions 2020-04-21 14:47:17 +02:00
Emil Ernerfeldt 0ed578341b Add time as input to emigui to enable animations 2020-04-21 14:46:42 +02:00
Emil Ernerfeldt 609473f85a Add option to debug paint clip rects 2020-04-21 10:33:33 +02:00
Emil Ernerfeldt ed67cc6e59 Nicer looking indent regions with a gray vertical line 2020-04-21 10:28:25 +02:00
Emil Ernerfeldt b89ab7aa3f Add a bunch of TODOs 2020-04-21 10:27:53 +02:00
Emil Ernerfeldt cac5352ad7 Remove dead code 2020-04-21 10:27:12 +02:00
Emil Ernerfeldt 864eae2081 Separate clip_rect and desired_rect in Region 2020-04-21 07:42:33 +02:00
Emil Ernerfeldt 94fdc2fd55 Expand and improve math code 2020-04-21 07:39:23 +02:00
Emil Ernerfeldt 46f123eeb6 WIP: Working clip rects for glium 2020-04-21 00:17:02 +02:00
Emil Ernerfeldt 2f02446f6f WIP: clip_rect 2020-04-20 23:48:55 +02:00
Emil Ernerfeldt 335b22d38d Create region.add_label shortcut 2020-04-20 23:45:05 +02:00
Emil Ernerfeldt 1f8cee7573 Fxi bug in column subregion code 2020-04-20 23:22:50 +02:00
Emil Ernerfeldt 3eeb4eca2c Resize windows based on cursor position rather than movement 2020-04-20 10:54:57 +02:00
Emil Ernerfeldt 98178e9d69 Show resize mouse cursor when resizing windows 2020-04-20 10:01:13 +02:00
Emil Ernerfeldt 472e0b9afe Refactor Region: remember region rectangle
This will be used as a clip rectangle for generated paint commands.
2020-04-20 00:48:54 +02:00
Emil Ernerfeldt 7f85b2623b Draw separator between window title and its contents 2020-04-19 23:51:38 +02:00
Emil Ernerfeldt 388132ba93 Implement window resizing 2020-04-19 23:44:24 +02:00
Emil Ernerfeldt 1be828bbe3 Remove roadmap and replace with emigui/README.md with a TODO section 2020-04-19 11:15:35 +02:00
Emil Ernerfeldt 6eae91e028 Distinguish ids that need to be unique and warn about name clashes 2020-04-19 11:13:24 +02:00
Emil Ernerfeldt 1afda00fc4 Make it easier to create an Outline 2020-04-19 11:11:41 +02:00
Emil Ernerfeldt 2170081221 Use new type Pos2 for positions (points) instead of Vec2 2020-04-19 01:05:49 +02:00
Emil Ernerfeldt 6eb1053c35 Start refactor mesher module into a more reusable Path concept 2020-04-19 00:27:25 +02:00
Emil Ernerfeldt 7480191f1a Refactor Font towards supporting all unicode 2020-04-18 17:14:38 +02:00
Emil Ernerfeldt 624e709a8f Make Id a proper newtype 2020-04-18 09:32:39 +02:00
Emil Ernerfeldt 407df94945 Switch to parking_lot::Mutex 2020-04-18 09:32:39 +02:00
Emil Ernerfeldt 481af55ce5 Handle window paint order (click to bring to front etc) 2020-04-17 23:22:28 +02:00
Emil Ernerfeldt f709423809 Rename Data to Context and move to own file 2020-04-17 15:33:52 +02:00
Emil Ernerfeldt de76cb6190 Move Memory and Region to own files 2020-04-17 15:29:48 +02:00
Emil Ernerfeldt 1d3836ba80 Add rudimentary support for gui windows that you can move around 2020-04-17 14:26:36 +02:00
Emil Ernerfeldt b26359d383 Add checkbox for antialiasing on/off 2020-04-17 14:25:27 +02:00
Emil Ernerfeldt 49cbd3fe07 Fix: properly sample white color (was off by half a texel) 2020-04-16 23:10:05 +02:00
Emil Ernerfeldt 4a36b2c1c1 Fix name clash 2020-04-15 17:41:50 +02:00
Emil Ernerfeldt 0265b3d43a Refactor: define rect by min/max 2020-04-15 17:41:35 +02:00
Emil Ernerfeldt d999962602 Refactor example code 2020-04-12 12:07:51 +02:00
Emil Ernerfeldt 98899c80b0 Fix font sliders 2020-04-11 18:35:21 +02:00
Emil Ernerfeldt dba42b1ada Compilation fix 2020-04-11 18:18:52 +02:00
Emil Ernerfeldt f4f03d49eb Some predefined colors 2019-12-02 21:59:49 +01:00
Emil Ernerfeldt 157de8a966 Add support for monospace font 2019-12-02 20:08:49 +01:00
Emil Ernerfeldt 100d4e328f export more 2019-11-24 20:45:45 +01:00
Emil Ernerfeldt be23d66f9e Update rusttype and run cargo update 2019-11-02 10:15:06 +01:00
Emil Ernerfeldt be8eb02b3f Some minor fixes and additions 2019-11-02 09:50:49 +01:00
Emil Ernerfeldt 1d6bc3baba Minor API improvements 2019-04-25 18:07:36 +02:00
Emil Ernerfeldt 97bbc6f066 Minor API tweaks 2019-03-16 15:14:22 +01:00
Emil Ernerfeldt 6b5da83642 Adjust font sizes again 2019-03-16 14:16:27 +01:00
Emil Ernerfeldt 07711a456a Adjust font sizes 2019-03-16 14:12:27 +01:00
Emil Ernerfeldt e06a4db7bc New font: Comfortaa 2019-03-16 13:37:29 +01:00
Emil Ernerfeldt 075fa7ab0f Button clicked on mouse release 2019-03-16 12:56:00 +01:00
Emil Ernerfeldt 01862d07ae Add native glium backend 2019-03-12 22:59:55 +01:00
Emil Ernerfeldt 0be9722af5 Handle more than 2^16 vertices in WebGL renderer 2019-03-12 14:43:50 +01:00
Emil Ernerfeldt 9cdd038285 Expose mesher module 2019-03-12 10:01:25 +01:00
Emil Ernerfeldt 192b59ebb0 Refactor: remove GuiCmd 2019-03-11 15:59:49 +01:00
Emil Ernerfeldt 87288634e9 Refactor: Merge LayoutOptions and Style 2019-03-11 15:39:54 +01:00
Emil Ernerfeldt 7cbf8e45bc Nicer looking colors and sliders 2019-03-11 15:30:32 +01:00
Emil Ernerfeldt e398668f96 Add support for usize sliders 2019-03-11 13:31:55 +01:00
Emil Ernerfeldt 79e38e39fe Fix: allow sliders without text 2019-03-10 21:00:44 +01:00