Commit graph

493 commits

Author SHA1 Message Date
Emil Ernerfeldt
1b3a5e5b50 Add debug option to paint rectangles around text primitives 2021-01-10 10:43:49 +01:00
Emil Ernerfeldt
e079ac5b46 Center window titles 2021-01-10 10:43:47 +01:00
Emil Ernerfeldt
987c7ddf98 Make size and alignment of emoji-icon-font match the rest of the fonts
This is done via a hack (for now).
2021-01-10 10:43:27 +01:00
Emil Ernerfeldt
a30eef11bc Remove extra entries in texture atlas for monospace characters 2021-01-10 10:13:16 +01:00
Emil Ernerfeldt
c969b8d9eb Make Region and some Layout members private 2021-01-10 10:05:30 +01:00
Emil Ernerfeldt
e413e5e3e9 Fix precision issue in panel space allocation debug sanity check
Closes https://github.com/emilk/egui/issues/99
2021-01-07 18:31:19 +01:00
Emil Ernerfeldt
e8e53e9500 Optimize Color32::from_rgba_unmultiplied 2021-01-07 16:28:22 +01:00
Emil Ernerfeldt
752c321a61 Fix bug in ui.ui_contains_mouse 2021-01-07 16:27:45 +01:00
Emil Ernerfeldt
b4871e2aef Add ui.allocate_at_least and ui.allocate_exact_size 2021-01-06 11:03:29 +01:00
Emil Ernerfeldt
d0d22ea09b Release 0.7.0 2021-01-04 15:52:29 +01:00
Pascal Ernst
00269f96c0
Make style module public (#92)
Allow access to types such as `Visual` to configure the Ui style.
2021-01-04 10:24:49 +01:00
Emil Ernerfeldt
10a23d18e1 Support additive colors in color picker 2021-01-03 18:16:12 +01:00
Emil Ernerfeldt
5c8df6925d TextEdit widgets are now slightly larger to accommodate their frames
Fixes https://github.com/emilk/egui/issues/89
2021-01-03 16:22:10 +01:00
Emil Ernerfeldt
c6a5af19e6 Add all alpha-numeric keys to egui::Key
Closes https://github.com/emilk/egui/issues/91
2021-01-03 11:25:13 +01:00
Emil Ernerfeldt
25b8a8ebfd Add window.id(…) and area.id(…) for overriding the default Id 2021-01-03 00:12:15 +01:00
Emil Ernerfeldt
31930e25e3 [refactor] Split out widgets into different files 2021-01-02 23:34:51 +01:00
Emil Ernerfeldt
d2d9bf4bdd Move struct Options into Memory so Style persists 2021-01-02 23:28:44 +01:00
Emil Ernerfeldt
a905c884e8 Add widget egui::reset_button 2021-01-02 23:28:10 +01:00
Emil Ernerfeldt
fffa5e7795 [egui] Derive Serialize/Deserialize for a bunch of things 2021-01-02 20:32:05 +01:00
Emil Ernerfeldt
83b75b117e refactor: move used_ids and tooltip_rect from Memory to FrameState 2021-01-02 20:26:26 +01:00
Emil Ernerfeldt
029a85c1fc Move Color32 constants from mod color to struct Color32 2021-01-02 17:18:41 +01:00
Emil Ernerfeldt
64dd186daf Deprecate color::srgba function. Use Color32::from_rgb etc instead. 2021-01-02 17:06:26 +01:00
Emil Ernerfeldt
73f3d8cf46 Rename Srgba to Color32 2021-01-02 17:02:18 +01:00
Emil Ernerfeldt
1bac357c8a Add helpful script for listing contents of a .ttf file 2021-01-02 16:47:15 +01:00
lucaspoffo
212fd80b01
Scroll based on the mouse start position (#84)
Fixes #57
2021-01-02 16:41:20 +01:00
Emil Ernerfeldt
948d8ec6ed clippy fixes 2021-01-02 16:31:45 +01:00
Emil Ernerfeldt
14a96ca5d0 Add a dummy warm-up frame to the demo app to pre-cache emojis 2021-01-02 14:42:43 +01:00
Emil Ernerfeldt
d8d761aac7 Fix: panels only allocate what they use, so native window can shrink 2021-01-02 13:12:29 +01:00
Emil Ernerfeldt
1690db0f0c demo tweaks 2021-01-02 12:00:14 +01:00
Emil Ernerfeldt
4e3251c300 Improve ecosystem documentation and add changelogs for epi and eframe 2021-01-02 11:59:20 +01:00
Emil Ernerfeldt
4848c171eb [demo] Move Fractal Clock to WrapApp 2021-01-02 00:12:45 +01:00
Emil Ernerfeldt
d7459bc13d Move egui::app into new epi crate 2020-12-29 14:15:46 +01:00
Emil Ernerfeldt
6953dc7d5d Split out the Egui demo code to new crate egui_demo_lib 2020-12-29 13:40:11 +01:00
lucaspoffo
46471f930d
Fix nested scrolling (#83)
Add scroll_delta in FrameState to fix nested scrolling.

Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
2020-12-29 12:24:57 +01:00
Emil Ernerfeldt
6dd15dd1a3 Add shadows under windows 2020-12-29 12:18:41 +01:00
Emil Ernerfeldt
d38b16f1ea Learn how to spell to "tessellation" 2020-12-29 12:18:41 +01:00
lucaspoffo
19b4d87c65
Add ui.scroll_to_cursor and response.scroll_to_me (#81)
Contributed by https://github.com/lucaspoffo
2020-12-29 12:18:17 +01:00
Emil Ernerfeldt
2870001544 Document mutex types 2020-12-28 10:33:19 +01:00
Emil Ernerfeldt
69ffa9be35 Remove pixels_per_point from FontDefinitions 2020-12-27 23:09:51 +01:00
Emil Ernerfeldt
847f67c835 Rename FontFamily::VariableWidth to FontFamily::Proportional 2020-12-27 14:19:20 +01:00
Emil Ernerfeldt
53ab2f4ef6 Improve documentation 2020-12-27 14:16:37 +01:00
Emil Ernerfeldt
a1fa9903b0 Add a lot of documentation and inter-doc links 2020-12-27 12:57:15 +01:00
Emil Ernerfeldt
22e442c613 Remove some dead code 2020-12-27 12:56:57 +01:00
Emil Ernerfeldt
997103a910 Removed pub on some things that should be private 2020-12-27 12:56:16 +01:00
Emil Ernerfeldt
442b876cb5 Remove math::TAU and use std::f32::consts::TAU instead 2020-12-27 11:24:08 +01:00
Emil Ernerfeldt
958fc2753a RepaintSignal now implements Sync so it can be sent to another thread
Fixes https://github.com/emilk/egui/issues/82
2020-12-27 10:49:26 +01:00
Emil Ernerfeldt
dca7f85f21 Release Egui 0.6.0 2020-12-26 22:43:29 +01:00
Emil Ernerfeldt
8f40439a35 Fix incorrect deprecation redirect 2020-12-26 22:35:21 +01:00
Emil Ernerfeldt
db3fdbe6d3 Add response.interact(sense), e.g. to check for clicks on labels 2020-12-26 22:05:56 +01:00
Emil Ernerfeldt
de614153b5 Add default_fonts feature: Turn off if you use your own fonts 2020-12-26 21:20:55 +01:00
Emil Ernerfeldt
6f5fd1b9c0 Replace parking_lot with atomic_refcell
You can still opt-in to use parking_lot if you plan to use the same
egui::Context from multiple threads.
2020-12-26 20:36:25 +01:00
Emil Ernerfeldt
58fcf0f2a1 Changed: ui.allocate_painter returns a Response 2020-12-26 19:50:18 +01:00
Emil Ernerfeldt
48dfcde65f Add ui.allocate_response(…): allocate space and check for interactions 2020-12-26 19:14:13 +01:00
Emil Ernerfeldt
66ae0ed7b9 Add Id to Response 2020-12-26 11:28:55 +01:00
Emil Ernerfeldt
a2ab35bab8 Rename Sense::nothing() to Sense::hover() 2020-12-26 02:09:32 +01:00
Emil Ernerfeldt
b65e6327ab ui.allocate_space now returns an (Id, Rect) tuple 2020-12-26 01:38:26 +01:00
Emil Ernerfeldt
cd7abb457f Expand Window + Resize areas to be large enough for last frames content 2020-12-25 15:41:18 +01:00
Emil Ernerfeldt
997cd4b279 ui.columns: Improve allocated size estimation + justified layous
Closes https://github.com/emilk/egui/issues/76
2020-12-25 15:34:33 +01:00
Emil Ernerfeldt
355934ddc1 Add helpers ui.set_width and ui.set_width_range 2020-12-25 15:29:00 +01:00
Emil Ernerfeldt
38e36fd806 Combo boxes has a scroll area
Closes https://github.com/emilk/egui/issues/75
2020-12-25 13:18:47 +01:00
Emil Ernerfeldt
d3eba239ed Rename Painter::debug_arrow to Painter::arrow 2020-12-25 12:27:34 +01:00
Emil Ernerfeldt
36c15c4e41 Add egui::math::Rot2 rotation helper 2020-12-25 12:27:34 +01:00
Patrik Höglund
bb469bf52f
Make it possible to set Glium windows as not resizable. (#69) 2020-12-22 15:20:38 +01:00
Emil Ernerfeldt
89937bf636 [egui_web] Auto-save app state to Local Storage every 30 seconds 2020-12-19 20:50:00 +01:00
Emil Ernerfeldt
8e9bce459f Move Painting demo to own window (and file) 2020-12-19 17:02:42 +01:00
Emil Ernerfeldt
f9b1e88fe6 Constrain tooltips to fit within the screen 2020-12-19 16:16:36 +01:00
Emil Ernerfeldt
03d09a9b57 Turn on anti-aliasing in debug builds 2020-12-19 15:11:43 +01:00
Emil Ernerfeldt
75e2752a47 Tweak hyperlink color 2020-12-19 15:09:11 +01:00
Emil Ernerfeldt
dd2f50e8ed Add #[must_use] to all widgets 2020-12-19 15:02:02 +01:00
Emil Ernerfeldt
99808d2df8 Implement Storage trait for egui_web:s local storage bindings 2020-12-19 14:58:00 +01:00
Emil Ernerfeldt
7ff5d4726b Change default window width 2020-12-19 14:55:17 +01:00
Emil Ernerfeldt
01c65b0dcb Replace Arc<Context> with struct CtxRef 2020-12-19 14:48:04 +01:00
Emil Ernerfeldt
ce0ea74c9f Fix: The background of CentralPanel will now cover unused space too 2020-12-19 11:17:21 +01:00
Emil Ernerfeldt
ea10add1cb Deprecate left/centered/right column functions in Ui 2020-12-19 11:14:59 +01:00
Emil Ernerfeldt
1e1bfa4dc7 Add ui.allocate_painter helper 2020-12-19 11:14:21 +01:00
Emil Ernerfeldt
58f36eb6ef A Window may now cover an existing CentralPanel 2020-12-18 23:45:33 +01:00
Emil Ernerfeldt
c3c4f28a9d Added App::clear_color() that apps can use to specify background color 2020-12-18 22:44:26 +01:00
Emil Ernerfeldt
b0e17638df trait App now has fn name() for specifying egui_glium window title 2020-12-18 22:30:59 +01:00
Emil Ernerfeldt
71449fe61c Only forbid warnings in release builds 2020-12-18 22:19:56 +01:00
Emil Ernerfeldt
0e2c4077cb Add '?' as fallback to the default replacement character 2020-12-18 13:06:50 +01:00
Emil Ernerfeldt
d022765a3c Improve decimal logic for Slider and DragValue
* You can now control the minimum and maixumum number of decimals to show in a `Slider` or `DragValue`.
* `Slider` and `DragValue` uses fewer decimals by default. See the full precision by hovering over the value.
2020-12-18 10:21:00 +01:00
Emil Ernerfeldt
d6d9c4828e Turn off Window title bars with window.title_bar(false)
You can still resize and move them assuming there is some area that
does not steal the drag input. In particular, if a scroll area covers
the window than dragging the window contents will scroll, not move it.

Closes https://github.com/emilk/egui/issues/66
2020-12-16 23:48:23 +01:00
Emil Ernerfeldt
e4afba3bb8 Misc code cleanup 2020-12-16 21:59:33 +01:00
Emil Ernerfeldt
56502405f5 Tweak demo to work better on small screens (phones) 2020-12-16 21:57:13 +01:00
Emil Ernerfeldt
8af83bf93f Slight tweak of the default Style and font sizes 2020-12-16 21:56:24 +01:00
Emil Ernerfeldt
709e711364 Deprecated RawInput::screen_size and replaced with screen_rect 2020-12-16 21:52:28 +01:00
Emil Ernerfeldt
2c766aa540 Make RawInput::time an Option 2020-12-16 21:22:45 +01:00
Emil Ernerfeldt
413f5fd37a Allow windows to cover side panel if they do not otherwise fit 2020-12-16 20:35:24 +01:00
Emil Ernerfeldt
1c9fbc1588 Adjust default-size of Resize areas to fit within screen 2020-12-16 20:31:00 +01:00
Emil Ernerfeldt
91e5295db2 Add mouse-over explanation to duplicate ID warning 2020-12-16 20:29:46 +01:00
Emil Ernerfeldt
471314bb44 Fix edge-case in duplicate ID warning 2020-12-16 20:28:43 +01:00
Emil Ernerfeldt
8528d8c5f7 Update parking_lot_core
Required turning on features = ["wasm-bindgen"] in egui_web
2020-12-16 15:36:58 +01:00
Emil Ernerfeldt
0e0beece44 SidePanel::left and TopPanel::top now takes impl Hash instead of Id 2020-12-15 15:13:12 +01:00
Emil Ernerfeldt
18ebac116f Add widget ImageButton 2020-12-15 14:52:24 +01:00
Emil Ernerfeldt
b508f931c2 Add ui.vertical_centered and ui.vertical_centered_justified 2020-12-15 14:51:23 +01:00
Emil Ernerfeldt
7710308e09 ui.image now takes impl Into<Vec2> as a size argument 2020-12-15 14:50:24 +01:00
Emil Ernerfeldt
5d513eb9ec Fix publishing (renamed font files) 2020-12-13 21:21:35 +01:00
Emil Ernerfeldt
403e2dfe5f Release Egui 0.5.0
## 0.5.0 - 2020-12-13

### Added 

* Emoji support: 1216 different emojis that work in any text.
  * The Demo app comes with a Font Book to explore the available glyphs.
* `ui.horizontal_wrapped(|ui| ...)`: Add widgets on a row but wrap at `max_size`.
* `ui.horizontal_wrapped_for_text`: Like `ui.horizontal_wrapped`, but with spacing made for embedding text.
* `ui.horizontal_for_text`: Like `ui.horizontal`, but with spacing made for embedding text.
* `egui::Layout` now supports justified layouts where contents is _also_ centered, right-aligned, etc.
* `ui.allocate_ui(size, |ui| ...)`: Easily create a child-`Ui` of a given size.
* `SelectableLabel` (`ui.selectable_label` and `ui.selectable_value`): A text-button that can be selected.
* `ui.small_button`: A smaller button that looks good embedded in text.
* `ui.drag_angle_tau`: For those who want to specify angles as fractions of τ (a full turn).
* Add `Resize::id_source` and `ScrollArea::id_source` to let the user avoid Id clashes.

### Changed 🔧

* New default font: [Ubuntu-Light](https://fonts.google.com/specimen/Ubuntu).
* Make it simpler to override fonts in `FontDefinitions`.
* Remove minimum button width.
* Refactor `egui::Layout` substantially, changing its interface.
* Calling `on_hover_text`/`on_hover_ui` multiple times will stack tooltips underneath the previous ones.
* Text wrapping on labels, buttons, checkboxes and radio buttons is now based on the layout.

### Removed 🔥

* Removed the `label!` macro.
2020-12-13 21:15:57 +01:00
Emil Ernerfeldt
a7ae15871c Use std::borrow::Cow for the font data.
This saves some memory usage and copies in the common case.
It also fixes a weird 10x performance regression in the web demo.
2020-12-13 21:04:02 +01:00
Emil Ernerfeldt
357f62e136 Small improvements to the demo app 2020-12-13 20:37:44 +01:00