Commit graph

663 commits

Author SHA1 Message Date
Emil Ernerfeldt
25c5e9d94e Return InnerResponse from Frame, Grid and ui.group() 2021-03-21 22:04:41 +01:00
Emil Ernerfeldt
05308e8d37 layout: don't return negative availability rectangles 2021-03-21 19:57:38 +01:00
Emil Ernerfeldt
f5c372910c Replace emath::clamp with f32::clamp (new in rustc 1.50) 2021-03-21 17:47:03 +01:00
Emil Ernerfeldt
ed0d406698 Improve misc documentation
Closes https://github.com/emilk/egui/issues/229
2021-03-21 17:13:58 +01:00
Emil Ernerfeldt
c1d5bda143 ColorPicker: always show hue slider at full saturation and lightness
Closes https://github.com/emilk/egui/issues/230
2021-03-21 16:15:13 +01:00
Emil Ernerfeldt
7e302ad905 Document the need for latest rustc
Closes https://github.com/emilk/egui/issues/240
2021-03-21 16:00:24 +01:00
Emil Ernerfeldt
65a86b2d15 Middle-click links to open in new tab
Closes https://github.com/emilk/egui/issues/231
2021-03-21 15:20:53 +01:00
Emil Ernerfeldt
f77ab26828 [EasyMark] Add support for small and raised text 2021-03-21 15:11:12 +01:00
Emil Ernerfeldt
eaa1ed96ee Depcrecate ui.horizontal_for_text and ui.horizontal_wrapped_for_text
They just add unnecessary complexity at this point
2021-03-21 14:48:16 +01:00
Emil Ernerfeldt
953d2bb39b Add ui.set_row_height 2021-03-21 14:48:16 +01:00
Emil Ernerfeldt
e20e3baa98 Bug-fixes related to recent layout rewrite 2021-03-21 14:48:12 +01:00
Emil Ernerfeldt
e232264b53 Add Visuals::debug_widgets to debug layouting by hovering widgets 2021-03-21 10:33:10 +01:00
Emil Ernerfeldt
ec9f374d8c Fix: centered horizontal layouts should never overflow upwards 2021-03-21 10:31:18 +01:00
Emil Ernerfeldt
cc5ad1505c Fix bug that would allocate the full width of non-centered layouts 2021-03-20 22:21:14 +01:00
Emil Ernerfeldt
589bae1211
Refactor layout (#241)
* Fix https://github.com/emilk/egui/issues/222

* Rewrite layout logic

Cursor is now a Rect.

Closes https://github.com/emilk/egui/issues/179
2021-03-20 21:47:19 +01:00
Emil Ernerfeldt
0c9b4858f0 refactor: simplify CollapsingHeader enable/disable code 2021-03-20 15:40:40 +01:00
Emil Ernerfeldt
7ac91970bd bug fix: false id clash error for wrapping text 2021-03-20 09:29:36 +01:00
Emil Ernerfeldt
6442d254a6 Fix hover-to-zoom of font texture in demo
Closes https://github.com/emilk/egui/issues/220
2021-03-13 12:55:29 +01:00
Emil Ernerfeldt
958aea922f Add a lot more CursorIcon's 2021-03-13 12:38:03 +01:00
Emil Ernerfeldt
017d602fe5 Rename "kb_focus" to just "focus" everywhere 2021-03-09 20:55:24 +01:00
Emil Ernerfeldt
3fbc07659c Labels can now be focused so they can be read by screen-reader 2021-03-09 19:58:41 +01:00
Emil Ernerfeldt
33d2f16041 Bug fix: you can now use text edits again 2021-03-09 19:51:23 +01:00
Bradley Smith
bd34cfd43e
Configurable label text style for CollapsingHeader (#200)
CollapsingHeader: change label text style & enable options
2021-03-09 19:13:21 +01:00
Norbert Nemec
6fb4e19e9e
DragValue: fix crash for speed==0.0 (#216) 2021-03-09 19:06:04 +01:00
Emil Ernerfeldt
4c45ca113e Make sure to include license files in the next release 2021-03-09 18:35:13 +01:00
Emil Ernerfeldt
2428763756 Fix bug in Response::clicked_elsewhere
Fixes https://github.com/emilk/egui/issues/205
2021-03-08 22:22:44 +01:00
Emil Ernerfeldt
8f3a25d749 clippy fix 2021-03-08 22:16:35 +01:00
Ridan Vandenbergh
f1c6d2b59c
feat: Derive (de)serialize for Key (#213) 2021-03-08 22:09:30 +01:00
Emil Ernerfeldt
44cd304cdf Add experimental screen_reader feature
Part of https://github.com/emilk/egui/issues/167
2021-03-08 20:58:01 +01:00
Emil Ernerfeldt
cb7ef6faeb bug fix: open links in same tab by default 2021-03-08 20:25:43 +01:00
Emil Ernerfeldt
ea248d66b5 Improve widget info output for potential screen readers
Part of https://github.com/emilk/egui/issues/167
2021-03-08 18:36:32 +01:00
Emil Ernerfeldt
1c06622dbc Hold down a modifier key when clicking a link to open it in a new tab 2021-03-08 17:48:23 +01:00
aakamenov
c1ef81628b
Add optional drag bounds to Area and Window
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
2021-03-07 20:42:16 +01:00
Emil Ernerfeldt
25d4a7e11e Fix gained kb focus event on shift-tab 2021-03-07 19:45:28 +01:00
Emil Ernerfeldt
eba4d3d7b1 refactor: move kb-focus logic to own struct 2021-03-07 19:45:28 +01:00
Emil Ernerfeldt
cd4c07e09a Output events when widgets gain keyboard focus
Part of https://github.com/emilk/egui/issues/167
2021-03-07 19:45:20 +01:00
Emil Ernerfeldt
a370339db7 Give focus to any clickable widget with tab/shift-tab
Use space or enter to click the selected widget.
Use arrow keys to adjust sliders and `DragValue`s.

Closes https://github.com/emilk/egui/issues/31
2021-03-07 18:15:57 +01:00
Emil Ernerfeldt
6fd7c422ab Refactor: remove has_kb_focus/lost_kb_focus bools from Reponse
Just forward the queries to Memory
2021-03-07 13:06:57 +01:00
Emil Ernerfeldt
b72184dc7e clippy fix 2021-03-06 11:19:32 +01:00
Emil Ernerfeldt
5d0c71350d Add fn Memory::gained_kb_focus() -> bool query 2021-03-06 11:17:24 +01:00
Emil Ernerfeldt
007f9f3cb9 Fix secondary-click to open a menu
Fixes https://github.com/emilk/egui/issues/198
2021-03-06 11:11:07 +01:00
Emil Ernerfeldt
9c8439d053 Add some helper functions to Response 2021-03-06 10:48:39 +01:00
Emil Ernerfeldt
fb2db4940e Release 0.10.0 - Plot and polish 2021-02-28 20:11:37 +01:00
Emil Ernerfeldt
fdb1aa6bec improve documentation 2021-02-28 18:59:46 +01:00
Emil Ernerfeldt
8be37b3d6c Add Response::has_kb_focus()
Closes https://github.com/emilk/egui/issues/196
2021-02-28 18:19:33 +01:00
Emil Ernerfeldt
834078a476 Turn off the cursor preview when hovering a TextEdit 2021-02-28 17:27:39 +01:00
Emil Ernerfeldt
d3fd51d6a4 Add Response::changed(): see if e.g. text was entered or slider dragged 2021-02-28 17:24:07 +01:00
Emil Ernerfeldt
bdbc59455c Improve documentation for the most common widgets 2021-02-23 22:18:13 +01:00
Emil Ernerfeldt
814f8c0dd8 Add support for all integers in DragValue and Slider (except 128-bit) 2021-02-23 20:40:14 +01:00
Emil Ernerfeldt
049a7b0382 Make DragValue::from_get_set public
Closes https://github.com/emilk/egui/issues/188
2021-02-23 20:16:43 +01:00
Emil Ernerfeldt
5f6a468812 Add Context::set_pixels_per_point to control the scale of the UI 2021-02-21 11:23:33 +01:00
Emil Ernerfeldt
c601db5956 refactor: move tooltip state handling out of memory 2021-02-21 10:31:28 +01:00
Emil Ernerfeldt
67623919d7 refactor: move DragValue state 2021-02-21 10:30:31 +01:00
Emil Ernerfeldt
82350a2f1e Improve documentation 2021-02-21 10:12:08 +01:00
Emil Ernerfeldt
ebc2486d22 Slider: use a DragValue for the value, and implement suffix/prefix 2021-02-20 18:29:09 +01:00
Emil Ernerfeldt
32f35c6251 Implement "Smart Aim" for DragValue 2021-02-20 17:43:35 +01:00
Emil Ernerfeldt
7ac26b84b1 DragValue: handle slowly dragging a value with limited precision 2021-02-20 17:27:55 +01:00
Emil Ernerfeldt
9a546ff97a SlidSlider will now show the value display by default.
Turn off with slider.show_value(false)

Closes https://github.com/emilk/egui/issues/183
2021-02-20 16:28:39 +01:00
Emil Ernerfeldt
4e041185f1 Add module special_emojis with apple, linux, windows & github logos 2021-02-20 16:09:00 +01:00
Emil Ernerfeldt
9b58d5d4d9 color picker: just copy the r,g,b,a values without a "rgba(…)" wrapper 2021-02-20 15:49:09 +01:00
Emil Ernerfeldt
ac356e2bd8 Add a link from the crate-level docs to the online egui web demo 2021-02-20 12:43:53 +01:00
Emil Ernerfeldt
040553da78 impl<F> Widget for F where F: FnOnce(&mut Ui) -> Response
This enables functions that return `impl Widget`, so that you can
create a widget by just returning a lambda from a function.

For instance: `ui.add(toggle(bool))` (instead of `toggle(ui, bool)`)
2021-02-20 12:02:38 +01:00
Emil Ernerfeldt
6fe70e685b Simplify and unify colors of selectable widgets 2021-02-20 11:28:00 +01:00
Emil Ernerfeldt
741f0bfe8a Only show tooltips if mouse is still. 2021-02-20 10:45:19 +01:00
Emil Ernerfeldt
4354f7582f Improve the positioning of tooltips 2021-02-20 10:33:33 +01:00
Emil Ernerfeldt
d5bb85b245 Add InputState::is_still to compliment InputState::is_moving 2021-02-20 09:26:58 +01:00
Emil Ernerfeldt
9c3b7d719b Bug fix: child painters now inherit color tint (e.g. grayed out) 2021-02-20 09:26:58 +01:00
Emil Ernerfeldt
21c99e1130 Add Ui::hyperlink_to 2021-02-20 09:26:58 +01:00
Emil Ernerfeldt
0f13fff24b Assign default colors to plot lines if not explicitly set 2021-02-18 18:59:59 +01:00
Emil Ernerfeldt
a19140ec67 A simple 2D plot library 2021-02-17 22:54:10 +01:00
Emil Ernerfeldt
7dad76b913 Use explicit epaint over paint alias (re-export)
egui reexports the `epaint` crate both under its original name
and under the alias `paint` (for historical reasons)
2021-02-14 10:53:39 +01:00
Emil Ernerfeldt
6d255cd179 Use explicit emath to math alias
egui exports `emath` under its original name AND under the alias `math`
(for historical reasons).
2021-02-14 10:44:46 +01:00
Emil Ernerfeldt
be8d7b4eef Slider: add largest_finite for log-sliders that include infinity 2021-02-12 17:45:27 +01:00
Emil Ernerfeldt
156d68d266 Refactor: move FrameState to own file 2021-02-08 23:03:41 +01:00
Emil Ernerfeldt
b61db038f2 Release 0.9.0 - light mode, right clicks and more 2021-02-07 17:06:51 +01:00
Emil Ernerfeldt
5ce681ef16 Improve documentation 2021-02-07 17:04:03 +01:00
Emil Ernerfeldt
a382fad1d0 Fix minor click detection bug 2021-02-07 17:04:03 +01:00
Emil Ernerfeldt
6377a4231f [demo] Refactor and minor cleanup 2021-02-07 17:04:03 +01:00
Emil Ernerfeldt
e82fb81f07 Replace (ret, response) tuples with new struct InnerResponse 2021-02-07 14:09:44 +01:00
Emil Ernerfeldt
df4c0257c0 Add Ui functions for doing manual layout ("put this widget here") 2021-02-07 13:48:55 +01:00
Emil Ernerfeldt
bca722ddf8 Add ui.set_enabled(false) to disable all widgets in a Ui
Closes https://github.com/emilk/egui/issues/50
2021-02-07 10:55:45 +01:00
Emil Ernerfeldt
d07a17ac6a Expose more color-related functions and types 2021-02-07 10:36:51 +01:00
Emil Ernerfeldt
d6817b1b37 Fix doc errors 2021-02-07 00:13:45 +01:00
xue-blood
ce14fa860b
Speed up fractal_clock painting (#152)
clip unwatchable line before drawing
2021-02-06 16:59:46 +01:00
Emil Ernerfeldt
26f966563a Add Grid::max_col_width 2021-02-06 16:54:38 +01:00
Emil Ernerfeldt
23581eee27 Add #[must_use] to ui.selectable_label and ui.radio 2021-02-06 16:03:27 +01:00
Emil Ernerfeldt
b106d10202 [EasyMark] Fix incorrect handling of non-ASCII characters 2021-02-06 15:19:39 +01:00
Emil Ernerfeldt
91ce18d62f Widgets will now always line break at \n characters 2021-02-06 14:50:03 +01:00
Emil Ernerfeldt
de204b5436 Improve documentation of style-related functions and types 2021-02-06 11:48:57 +01:00
Emil Ernerfeldt
2d9d06dbff [emath] Use const values for Vec2::ZERO, Rect::EVERYTHING etc 2021-02-05 10:11:39 +01:00
Emil Ernerfeldt
10e86b055d Stop SelectableLabel from wrapping text in horizontal layouts 2021-02-05 08:10:57 +01:00
Emil Ernerfeldt
0f37b009d6 Add TextEdit::hint_text for showing a weak hint text when empty 2021-02-03 21:06:50 +01:00
Emil Ernerfeldt
af3195f086 Add ctx.set_visuals() 2021-02-03 19:38:50 +01:00
Emil Ernerfeldt
a19fd7b780 Add light mode 2021-02-03 19:30:58 +01:00
Emil Ernerfeldt
c536e1b0da Collaping header and indent: add a closing horizontal line 2021-02-03 00:55:53 +01:00
Emil Ernerfeldt
829455b347 Add ui.group(|ui| { … }) to visually group some widgets within a frame 2021-02-03 00:25:07 +01:00
Emil Ernerfeldt
ca886ea998 Add ui.visuals() as short for ui.style().visuals 2021-02-03 00:20:39 +01:00
Emil Ernerfeldt
2cbea02c8b refactor easy_mark_viewer.rs: break it up into logical parts 2021-02-01 17:00:42 +01:00
Emil Ernerfeldt
01fca2f31c Add Ui::spacing() and Ui::spacing_mut() as shortcuts 2021-02-01 16:56:29 +01:00
Emil Ernerfeldt
16d66bd22d Replace markdown editor with new 'EasyMark' markup language 2021-01-31 16:42:32 +01:00