Commit graph

1120 commits

Author SHA1 Message Date
Emil Ernerfeldt
5481aa8d98 Add DragValue::new and Slider::new 2021-03-27 16:03:11 +01:00
Emil Ernerfeldt
fd80a64cdb DragValue: Lower default speed for integers
to make it easier to hit the values
2021-03-27 15:47:53 +01:00
Emil Ernerfeldt
246ab55a7f Fix: integer DragValue could sometimes not reach all values
Fixes https://github.com/emilk/egui/issues/256
2021-03-27 15:41:44 +01:00
Emil Ernerfeldt
41c9de2734 Add new ComboBox builder to replace the combo_box_with_label function 2021-03-27 10:35:40 +01:00
Emil Ernerfeldt
fe92a9826b
ci: install libspeechd-dev and fix new clippy lints (#252)
* ci: install libspeechd-dev

* Fix new clippy lints for rust 1.51.0
2021-03-25 22:18:03 +01:00
Emil Ernerfeldt
70c6f4596a Add checkbox in demo app to turn screen reader on/off 2021-03-24 21:35:29 +01:00
Emil Ernerfeldt
fd3444473f Add some clippy lints 2021-03-23 19:53:31 +01:00
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
Emil Ernerfeldt
17fdd3bb10 Label: draw underline and strikethrough on top of text 2021-01-31 00:42:00 +01:00
Emil Ernerfeldt
14e0963e50 Add Label::weak for fainter text 2021-01-30 18:49:21 +01:00
Emil Ernerfeldt
953a652c29 Add Hyperlink::from_label_and_url 2021-01-30 15:56:00 +01:00
Emil Ernerfeldt
c50190a7e8 Add fake italics (tilt text) 2021-01-30 15:55:40 +01:00
Emil Ernerfeldt
d249ed86ba Add Label methods for code, strong, strikethrough and underline 2021-01-30 15:51:19 +01:00
Emil Ernerfeldt
26d47eabf0 [style] Add code_bg_color 2021-01-30 15:48:17 +01:00
Emil Ernerfeldt
5b7fc51932 Bug fix: moving windows slightly when dragging slider 2021-01-27 20:58:49 +01:00
Emil Ernerfeldt
703592ae0c Bug fix: always set interact_pointer_pos on active Responses 2021-01-27 20:52:42 +01:00
aakamenov
e30e999ef4
Use any_click() instead of any_pressed() in check (#144) 2021-01-27 20:22:14 +01:00
Emil Ernerfeldt
6029a438a2 Add a VERY experimental markdown viewer 2021-01-27 20:14:53 +01:00
Emil Ernerfeldt
7d8ebb4c8f Add ui.code(text): like ui.monospace() but also adds a background 2021-01-26 22:05:14 +01:00
Emil Ernerfeldt
b8a4c9c8ce Fix rare issue of accidentally hovering two things at once
Closes https://github.com/emilk/egui/issues/140
2021-01-26 18:56:30 +01:00
Emil Ernerfeldt
b493bc6efc Wrap tesselated output in struct ClippedMesh(Rect, Mesh) 2021-01-25 21:43:17 +01:00
Emil Ernerfeldt
75fa77e040 Rename Triangles to Mesh 2021-01-25 21:23:24 +01:00
Emil Ernerfeldt
6d57a24f35 Add Slider::clamp_to_range(bool) 2021-01-25 19:55:08 +01:00
Emil Ernerfeldt
2219e135fa Rename DragValue::range to clamp_range and also clamp incoming values 2021-01-25 19:45:59 +01:00
Emil Ernerfeldt
247026149c
Multiple mouse button support (#135)
Add support for primary, secondary and middle mouse buttons. Also improve ability to click things in low FPS situations.

This introduces a lot of breaking changes:

    Backends/integrations now pass mouse events via the even stream.
    Response has an interface of mostly methods instead of public members.
    input.mouse is now input.pointer and has new interface.


* Rename 'mouse' to 'pointer' everywhere (pointer = mouse or touch)

* Make Response::clicked and Response::double_clicked into methods

* Remove Response::active and add dragged() and interact_pointer_pos()

* Support multiple mouse buttons

* Make PointerState interface all methods

* Make most members of Response private
2021-01-25 18:50:19 +01:00
Emil Ernerfeldt
9f4c31c0e0 Add Frame::group for putting a frame around some widgets
Closes https://github.com/emilk/egui/issues/125
2021-01-20 23:26:46 +01:00
Emil Ernerfeldt
3bec7c4f68 add popup_below_widget to show a popup area below another widget
Closes https://github.com/emilk/egui/issues/122
2021-01-20 23:10:56 +01:00
Paul Shen
577aa2699f
kill velocity after overscroll (#126) 2021-01-20 22:25:52 +01:00
Emil Ernerfeldt
e2217ff63a [style] Fade out windows on close 2021-01-20 00:31:43 +01:00
Emil Ernerfeldt
37a3fe7f76 Release 0.8.0 - Grid layout & new visual style 2021-01-17 15:28:52 +01:00
Emil Ernerfeldt
31b7eda51e Rename Egui to egui
Also update iamges in README.md
2021-01-17 14:48:59 +01:00
Emil Ernerfeldt
9dba63fa3f Skip persisting style for now (so everyone gets the new default style) 2021-01-17 14:19:47 +01:00
Emil Ernerfeldt
1f2aebc25a Improve documentation 2021-01-17 12:24:13 +01:00
Emil Ernerfeldt
67c0fbdd01 Move Response and Sense to own files 2021-01-17 10:15:25 +01:00
Emil Ernerfeldt
53d0114d3c Rename MouseInput to CursorState 2021-01-17 02:34:21 +01:00
Emil Ernerfeldt
421e8bc91e Don't glob-include eveything in mod layers 2021-01-17 02:27:58 +01:00
Emil Ernerfeldt
4203944892 doc fixes 2021-01-17 02:17:57 +01:00
Emil Ernerfeldt
8598c365a1 [epaint] Replace tuple (Rect, Shape) with tuple-struct ClippedShape 2021-01-17 01:40:14 +01:00
Emil Ernerfeldt
7b318887ee Put input/output data types into mod egui::data 2021-01-17 00:21:58 +01:00
Emil Ernerfeldt
33545501f9 Simplified color picker 2021-01-16 20:55:02 +01:00
Emil Ernerfeldt
03c667149a TextEdit: only show cursor preview when moving mouse 2021-01-16 18:52:01 +01:00
Emil Ernerfeldt
cc002763ed Add border around color button 2021-01-16 18:48:37 +01:00
Emil Ernerfeldt
2b48f9723b [grid] Fix the last corner cases and bugs 2021-01-16 18:37:11 +01:00
Emil Ernerfeldt
07f1b074ca [grid] Allow putting a separator in a grid 2021-01-16 11:48:30 +01:00
Emil Ernerfeldt
a5ce1ba711 Don't highlight window titles when interacting with the window
It is very distracting.
2021-01-16 01:47:21 +01:00
Emil Ernerfeldt
60006cd9c6 Highlight window name when clicking a window 2021-01-16 01:33:41 +01:00
Emil Ernerfeldt
620e43d483 New sleeker visual style
Remove a lot of borders, remove transparency, simplify and unify.
2021-01-15 22:23:08 +01:00
Emil Ernerfeldt
6d5eaeeafa [grid] Make striped slightly wider than contents 2021-01-15 21:21:17 +01:00
Emil Ernerfeldt
b1157ee642 [grid] Option to set spacing 2021-01-15 21:17:56 +01:00
Emil Ernerfeldt
480c6db37f [grid] Set default row height to interact_size.y
It is what we use for horizontal layouts, and makes sense.
2021-01-15 21:17:56 +01:00
Emil Ernerfeldt
03c9cda89b [grid] Ensure the contents of each grid cell is aligned left+center 2021-01-15 21:17:56 +01:00
Emil Ernerfeldt
db591bc56c Fix minor alignment/size issue in TextEdit 2021-01-15 21:17:52 +01:00
Emil Ernerfeldt
17d88c8187 [grid] Make the stripes fairly sizes 2021-01-15 18:30:09 +01:00
Emil Ernerfeldt
8e1c7625f1 [refactor] Simplify how ui calls placer after adding a widget 2021-01-15 18:30:09 +01:00
Emil Ernerfeldt
641a302e0a [grid] Add optional minimal row height 2021-01-15 18:30:09 +01:00
Emil Ernerfeldt
9ce59d747f [style] Tweak collapsing header spacing 2021-01-15 18:30:09 +01:00
Emil Ernerfeldt
2b07a75753 [style] Tweak windows icon positioning 2021-01-15 18:30:05 +01:00
Emil Ernerfeldt
8e34cc50be [grid] only save state once 2021-01-14 22:29:00 +01:00
Emil Ernerfeldt
795906bb24 Add Window::current_pos to position a winodw 2021-01-13 23:19:36 +01:00
Emil Ernerfeldt
99726decb6 Add option to remove the frame from a TextEdit 2021-01-13 23:15:41 +01:00
Emil Ernerfeldt
fb5bd801b8 Fix minor size and alignment issue in SelectedLabel 2021-01-13 23:11:52 +01:00
Emil Ernerfeldt
73d16eb771 Use Grid to add labels to the color picker sliders
Also improve the color preview in the color picker
2021-01-13 23:09:23 +01:00
Emil Ernerfeldt
63d3e9e70b Auto-shrink grid 2021-01-13 23:09:23 +01:00
Emil Ernerfeldt
4ebaa53fea Fix problem with having a grid in an infinitely sized ui 2021-01-13 22:08:35 +01:00
Emil Ernerfeldt
b10dcf5012 [style] Tweak vertical text alignment 2021-01-13 22:08:35 +01:00
Emil Ernerfeldt
6d8a766614 [style] Slightly expand buttons when hovering and interacting 2021-01-13 22:08:35 +01:00
Emil Ernerfeldt
1b40a5dda5 [style] combo box: use the same text style as for a button 2021-01-13 22:08:35 +01:00
Emil Ernerfeldt
08a4179e7e Add #[must_use] to all widget builders 2021-01-13 11:24:49 +01:00
Michael Tang
90797f04f4
Implement InputState::key_down (#107) 2021-01-12 13:46:27 +01:00
Emil Ernerfeldt
b6ba98a40f Adjust spacing between window buttons and the border 2021-01-12 00:01:57 +01:00
Emil Ernerfeldt
0b10fa5c29
Grid layout and widget gallery (#106)
* Wrap Layout and Region into a new struct Placer

* [egui] Add a simple grid layout

* Refactor CollapsingHeader code (simplify header painting)

* Fix: allow putting a CollapsingHeader inside of a grid layout

* [demo] Add a widget gallery

Closes https://github.com/emilk/egui/issues/88

* Add optional striped grid background
2021-01-11 20:58:36 +01:00
Emil Ernerfeldt
d344c9d9a3 Image and ImageButton will no longer stretch to fill a justified layout 2021-01-11 18:14:34 +01:00
Emil Ernerfeldt
26d576f510 Break out mod paint into new crate epaint 2021-01-10 15:42:46 +01:00
Emil Ernerfeldt
c0041d032a Restructure mod paint 2021-01-10 14:49:11 +01:00
Emil Ernerfeldt
fb2317c993 Rename PaintCmd to Shape 2021-01-10 11:43:01 +01:00
Emil Ernerfeldt
a0b0f36d29 Move egui/math into new crate emath 2021-01-10 11:37:47 +01:00
Emil Ernerfeldt
aee1474b6e Move align.rs into mod math 2021-01-10 10:54:34 +01:00
Emil Ernerfeldt
72ed94fcb3 Add helper struct Align2 2021-01-10 10:51:16 +01:00
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
Emil Ernerfeldt
f387b097cd Add ui.drag_angle_tau 2020-12-13 20:19:45 +01:00
Emil Ernerfeldt
41e4acfd4f Add helper Layout::top_down_justified(align) 2020-12-13 19:45:30 +01:00
Emil Ernerfeldt
b7d1584f44 Simplify how fonts are defined in FontDefinitions 2020-12-13 19:29:02 +01:00
Emil Ernerfeldt
5880c95158 ui.horizontal_for_text: Size and spacing made for text 2020-12-13 18:14:18 +01:00
Emil Ernerfeldt
b15bd76596 Pick default multiline on Labels based on layout and if text contains \n 2020-12-13 13:57:17 +01:00
Emil Ernerfeldt
273212a63c on_hover_text/ui many times will stack tooltips beneath the previous 2020-12-13 13:14:58 +01:00
Emil Ernerfeldt
5b0da17d91
Merge pull request #65 from emoon/support-space-key
Allow user to check for Key::Space
2020-12-13 12:29:05 +01:00
Daniel Collin
69dc13ed2d Allow user to check for Key::Space 2020-12-13 10:00:20 +01:00
Emil Ernerfeldt
bd192a0374 Handle different item_spacings when doing hover detection 2020-12-13 00:40:19 +01:00
Emil Ernerfeldt
6ff39d88bf Demo App: Add ability to close the Backend window 2020-12-13 00:30:54 +01:00
Emil Ernerfeldt
72544b3690 Add a font book to the demo app 2020-12-12 19:53:04 +01:00
Emil Ernerfeldt
48a8553661 Sprinkle demo app with emojis 2020-12-12 19:43:12 +01:00
Emil Ernerfeldt
4db9b82435 [button] Implement paint culling for buttons 2020-12-12 19:34:18 +01:00
Emil Ernerfeldt
02b1e82a6e [button] Add ability to turn off button frame 2020-12-12 19:33:26 +01:00
Emil Ernerfeldt
84f06ed09a [button] Use singleline in horizontal layouts, else multiline 2020-12-12 19:32:58 +01:00
Emil Ernerfeldt
b0d0d5dd55 [button] Remove minimum button width 2020-12-12 19:31:32 +01:00
Emil Ernerfeldt
8b9d58d753 Add variable width font as fallback to monospace 2020-12-12 19:30:01 +01:00
Emil Ernerfeldt
891c5d84d7 Add a second emoji font: emoji-icon-font 2020-12-12 15:03:12 +01:00
Emil Ernerfeldt
cb310676af Add Emoji support with NotoEmoji-Regular 2020-12-12 00:53:54 +01:00
Emil Ernerfeldt
a9df510a01 Move replacement glyph info into Font 2020-12-12 00:53:54 +01:00
Emil Ernerfeldt
c82186e196 Fix Galley test 2020-12-12 00:53:54 +01:00
Emil Ernerfeldt
6a4a03ce9d Make struct Font a wrapper around FontImpl 2020-12-11 23:39:32 +01:00
Emil Ernerfeldt
2075cb4676 Add ui.colored_label(color, text) helper function 2020-12-11 12:25:28 +01:00
Emil Ernerfeldt
2bb99213c8 Use extremely explicit names like available_rect_before_wrap 2020-12-10 23:25:23 +01:00
Emil Ernerfeldt
81a9bdd5b0 Add ui.small_button: a smaller button that looks good embedded in text 2020-12-10 23:23:35 +01:00
Emil Ernerfeldt
383ef94b4a Label: correct y offset when sharing a row with another bigger widget 2020-12-10 23:23:35 +01:00
Emil Ernerfeldt
d137ea0443 Label text will now intelligently continue and then wrap in wrap-layout 2020-12-10 23:23:35 +01:00
Emil Ernerfeldt
a6ffe83349 Fix wrong cursor advancement for allocate_ui 2020-12-10 23:23:35 +01:00
Emil Ernerfeldt
8b097d014b Improve alginment of text with e.g. buttons 2020-12-10 23:23:35 +01:00
Emil Ernerfeldt
9b72a14883 Correctly align checkboxes and radiobuttons within justified layouts 2020-12-10 23:23:35 +01:00
Emil Ernerfeldt
807dafe91b Add ui.horizontal_wrapped and ui.horizontal_wrapped_for_text 2020-12-10 23:23:35 +01:00
Emil Ernerfeldt
98bb0f4110 Fix combo box width 2020-12-10 23:23:35 +01:00
Emil Ernerfeldt
5cd07db96a fix cursor advancement after wrapping 2020-12-10 23:23:35 +01:00
Emil Ernerfeldt
ea9133a92d wrapping 2020-12-10 23:23:35 +01:00
Emil Ernerfeldt
7fb3c66d0b advance_after_rect 2020-12-10 23:23:35 +01:00
Emil Ernerfeldt
a97141fe06 Correctly align buttons and labels in justified layouts 2020-12-10 23:23:35 +01:00
Emil Ernerfeldt
c520f2e9cc Direction enum now one of LeftToRight, RightToLeft, TopDown, BottomUp 2020-12-10 23:23:35 +01:00
Emil Ernerfeldt
ed6739867d Simplify Layout interface 2020-12-10 23:23:35 +01:00
Emil Ernerfeldt
b0ba66b90d Refactor: move min_rect/max_rect/cursor into struct Region 2020-12-10 23:23:35 +01:00
Emil Ernerfeldt
6e8d5c87a0 Add Resize::id_source and ScrollArea::id_source 2020-12-10 10:28:30 +01:00
Emil Ernerfeldt
6de93cb0ec Remove the label! macro 2020-12-10 10:15:25 +01:00
Emil Ernerfeldt
5fcc64dc85 Always start off painting two frames to allow things to settle 2020-12-08 22:38:20 +01:00
Emil Ernerfeldt
428e2373e5 Change default font to Ubuntu-Light 2020-11-30 07:55:00 +01:00
Emil Ernerfeldt
4ecb7d14ca New widget: SelectableLabel: a text-button that can be selected
Also available via `ui.selectable_label` and `ui.selectable_value`
2020-11-30 07:17:03 +01:00
Emil Ernerfeldt
a7e7826d2c Release 0.4.0 of egui, egui_web and egui_glium 2020-11-28 13:47:00 +01:00
Emil Ernerfeldt
861573c497 Text editing: improve double-click to select word 2020-11-28 12:50:18 +01:00
Emil Ernerfeldt
ab61f98a13 Bug fix: make sure child Ui:s have own Id 2020-11-28 12:50:18 +01:00
Emil Ernerfeldt
8163f912d3 Bug fix: stop using AHasher for Id:s
AHasher does not produce same hashes efter e.g. restarting an app
2020-11-28 12:50:18 +01:00
Emil Ernerfeldt
8e6c8ce50e Update ahash to 0.6 2020-11-28 11:05:55 +01:00
Emil Ernerfeldt
aec97c74b9 [egui] Enable a bunch of clippy warnings 2020-11-28 10:58:08 +01:00
Emil Ernerfeldt
8de74e4250 [egui_web] respect the native zoom/scale of the browser
Remove all complexity with own scale slider.

Closes https://github.com/emilk/egui/issues/53
2020-11-28 10:46:31 +01:00
Emil Ernerfeldt
b1b34de4ee [style] Tweak clip_rect_margin to allow frames around ScrollArea:s 2020-11-27 15:46:16 +01:00
Emil Ernerfeldt
201586d512 REVERT: clip frame contents to frame border
can't do that quite as simply as I tried to :'(
2020-11-27 15:42:24 +01:00
Emil Ernerfeldt
d8aeaa4b49 Clip frame contents to frame border 2020-11-27 15:33:14 +01:00
Patrik Höglund
c7e199c8ac Fix the accessor for desired rows. 2020-11-26 13:52:06 +01:00
Emil Ernerfeldt
aab1b351ab Fixed incorrect text wrapping width on radio buttons 2020-11-23 20:01:13 +01:00
Emil Ernerfeldt
56715a1dcd Improve ability to inspect why a widget is as wide as it is 2020-11-23 17:08:55 +01:00
Emil Ernerfeldt
633b19ee99 [egui_web] Repaint on finished fetch in example app 2020-11-20 20:35:16 +01:00
Emil Ernerfeldt
99a2a52510 Code cleanup 2020-11-20 20:32:38 +01:00
Emil Ernerfeldt
15b0214dff clippy fixes 2020-11-20 12:29:23 +01:00
Emil Ernerfeldt
c6ce0b9e8c [example_web] show loading of an image
Required some redesign of `TextureAllocator` as well as
some improvements to the fetch API.
2020-11-18 22:16:01 +01:00
Emil Ernerfeldt
552104429d Remove accidentally commited test code 2020-11-18 19:02:29 +01:00
Emil Ernerfeldt
fad0029119 egui_web: Add simple fetch API and demostrate it in example_web 2020-11-18 00:43:58 +01:00
Emil Ernerfeldt
7e9b5de250 Fix: id clash for TextEdit 2020-11-17 10:57:14 +01:00
Emil Ernerfeldt
e7fd11f1aa Move focus between text fields with tab and shift-tab 2020-11-15 18:10:38 +01:00
Emil Ernerfeldt
b17e6b3260 Implement undo for TextEdit 2020-11-15 17:36:15 +01:00
Emil Ernerfeldt
83444af862 Create mod util 2020-11-15 16:20:51 +01:00
Emil Ernerfeldt
fe0d159324 Support Cmd+A ^W ^U ^K and shift-click 2020-11-15 14:21:21 +01:00
Emil Ernerfeldt
b920822b6b fix: text selection when mouse goes out of the TextEdit area 2020-11-15 11:48:41 +01:00
Emil Ernerfeldt
13666755e1 Implement text selection 2020-11-15 04:44:55 +01:00
Emil Ernerfeldt
96befb0736 Galley: Return Rect when asking for cursor position 2020-11-14 23:07:16 +01:00
Emil Ernerfeldt
220f48a159 Remove unused cursor_blink_hz 2020-11-14 22:38:55 +01:00
Emil Ernerfeldt
c4ed507d63 Add modifier keys and implement moving cursors one word at a time 2020-11-14 21:01:21 +01:00
Emil Ernerfeldt
7494026139 Fix some edge cases for the cursor movement 2020-11-14 18:21:06 +01:00
Emil Ernerfeldt
c84431e473 Rename "row" to "line"
We now have "paragraphs" separated by \n,
which are word-wrapped onto one or more rows.
2020-11-14 18:21:06 +01:00
Emil Ernerfeldt
9ab00b8e50 Introduce meticulous cursors for text galleys 2020-11-14 18:21:06 +01:00
Emil Ernerfeldt
e1077c98b7 Refactor, clarify and improve text layout 2020-11-14 18:21:06 +01:00
Emil Ernerfeldt
03eb9151c4 Improve automatic Id generation to make Id clashes less likely 2020-11-14 18:20:56 +01:00
Emil Ernerfeldt
ee3f269d93 Fix numeric underflow when text editing 2020-11-13 12:51:52 +01:00
Emil Ernerfeldt
9057eaec7e Fix: you can again click slider values to edit them 2020-11-13 12:50:05 +01:00
Emil Ernerfeldt
b3fa533ac5 Fix doctest 2020-11-13 11:31:01 +01:00
Emil Ernerfeldt
0340e2e6de TextEdit: You must explicitly choose singleline or multiline.
Multiline TextEdit now has a default height of 4 rows.
Added `ui.text_edit_singleline` and `ui.text_edit_multiline`.
2020-11-13 11:22:00 +01:00
Alexandre Rousseau
08bdbd3cb7
Rename menues to menus (#41)
Co-authored-by: Alexandre Rousseau <alexandre.rousseau@quebecormedia.com>
2020-11-10 22:56:35 +01:00
Emil Ernerfeldt
d2b5730784 Check if TextEdit lost keyboard focus with response.lost_kb_focus 2020-11-09 18:42:54 +01:00
Emil Ernerfeldt
c999ed038a Hexadecimal Debug format of Id 2020-11-09 18:41:19 +01:00
Emil Ernerfeldt
e55b59256e Press enter in single line TextEdit to surrender keyboard focus 2020-11-09 18:40:23 +01:00
Emil Ernerfeldt
796def4bcb Fixed bug where a lost widget could still retain keyboard focus. 2020-11-09 13:19:22 +01:00
Emil Ernerfeldt
7cc5218630 [refactor] Move used_ids from Context to Memory 2020-11-09 13:04:05 +01:00
Emil Ernerfeldt
b6dcae4651 Update versions to 0.3.0 2020-11-07 14:47:22 +01:00
Emil Ernerfeldt
f46aa92eba Revert to aHash 0.4 again to allow Egui to be used inside of wasmtime 2020-11-07 14:35:42 +01:00
Emil Ernerfeldt
4b8a65268c Turn off anti-aliasing in debug builds by default 2020-11-07 14:06:14 +01:00
Emil Ernerfeldt
af11d766fc Split out tesselation from Context::end_frame() 2020-11-07 11:44:32 +01:00
Emil Ernerfeldt
8393d1df47 Upgrade ahash from 0.4 to 0.5 2020-11-06 09:33:36 +01:00
Emil Ernerfeldt
94db5bb3a1 build fix 2020-11-03 22:14:21 +01:00
Emil Ernerfeldt
7abb9a2814 Improve Id generation, with more aggressive name clash warnings 2020-11-03 22:00:56 +01:00
Emil Ernerfeldt
8d365200ad Bug fix: accidental reuse of Id:s for columns
Fixes https://github.com/emilk/egui/issues/37
2020-11-02 22:50:47 +01:00
Emil Ernerfeldt
d4d59d94b9 [demos] Add drag-and-drop demo (+ dancing strings demo) 2020-11-02 17:53:28 +01:00
Emil Ernerfeldt
4c25465e57 [window] Fix: no hover effect when already dragging something 2020-11-02 17:45:46 +01:00
Emil Ernerfeldt
9833ca57a6 [drag-and-drop] Add ability to translate layers and PaintCmd:s 2020-11-02 17:41:52 +01:00
Emil Ernerfeldt
ed8a69ab2f [drag-and-drop] Add Grab and Grabbing CursorIcon:s 2020-11-02 17:40:05 +01:00
Emil Ernerfeldt
c9c12f2d79 [drag-and-drop] Disable interactions with Tooltip layer 2020-11-02 17:39:01 +01:00
Emil Ernerfeldt
63c0379082 [refactor] Add helpful constructors to PaintCmd 2020-11-02 17:35:16 +01:00
Emil Ernerfeldt
ca96172552 You can override the default Egui fonts
Closes https://github.com/emilk/egui/issues/32
2020-10-31 18:03:13 +01:00
Emil Ernerfeldt
82d55cb67e [demo] Add helper macros for linking to the source code on GitHub 2020-10-31 09:17:15 +01:00
Emil Ernerfeldt
496fdb52b4 [demo] add [DEBUG BUILD] warning text 2020-10-31 09:15:20 +01:00
Emil Ernerfeldt
8b2bcb29a0 Add Small TextStyle 2020-10-31 09:09:40 +01:00
Sam Samai
a79aaa76a4
Downgrade ahash for wasm build (#35)
Seems like getrandom doesn't see wasm32-unknown-unknown as a valid target.
Dropping ahash, which has the getrandom dependency, to version 0.4.6 fixes this for now.
2020-10-29 11:48:39 +01:00
Hizoul
fe585e48e9
Make from_get_set public (#34)
This allows the slider value to be obtained from anywhere that can be accessed from a closure and not just a `&'a mut` reference. An example would be a state that is shared via an Arc<Rw<T>> or Atomic value with a background thread
2020-10-28 16:56:33 +01:00
Emil Ernerfeldt
07a32793d6 Forbid creating a panel from within another panel 2020-10-27 15:37:30 +01:00
Emil Ernerfeldt
a4ce2afcd8 Update dependencies 2020-10-27 14:40:48 +01:00
Emil Ernerfeldt
cbdfc03378 Improve and expand documentation tests 2020-10-26 08:34:49 +01:00
Emil Ernerfeldt
060ce6b49f Improve docs 2020-10-24 19:46:38 +02:00
Emil Ernerfeldt
72285e7954 [slider] Add Slider::u32 2020-10-24 19:26:13 +02:00
Emil Ernerfeldt
7638ca9962 [app] Simplify interface to egui::app::App 2020-10-24 19:23:16 +02:00
Emil Ernerfeldt
c364403d44 [app] Give apps the ability to resize integration 2020-10-24 18:45:31 +02:00
Emil Ernerfeldt
ba7f3572a0 Give TextEdit a default width 2020-10-24 18:44:25 +02:00
Emil Ernerfeldt
4b549a773e Replace ctx.background_ui with CentralPanel 2020-10-24 18:37:20 +02:00
Emil Ernerfeldt
44a7cac046 Context::begin_frame() no longer returns anything.
Put your widgets into a `SidePanel`, `TopPanel`,
`Window` or into `ctx.background_ui()`.
2020-10-24 10:56:23 +02:00
Emil Ernerfeldt
f86cb4a923 [demo] Improve introspection UI of areas 2020-10-24 10:31:57 +02:00
Emil Ernerfeldt
3416f3b91f [style] Wrap tooltip text earlier 2020-10-24 10:10:08 +02:00
Emil Ernerfeldt
c96a929713 Improve GraphicLayers: always paint all layers 2020-10-24 10:06:11 +02:00
Emil Ernerfeldt
211d70b4f3 [window] Remove ability to throw windows 2020-10-23 15:16:04 +02:00
Emil Ernerfeldt
fa831a2b55 Fix throwing areas around 2020-10-23 15:07:19 +02:00
Emil Ernerfeldt
46e39d3dd9 Add high-prio TODO to refactor layer system 2020-10-21 22:20:30 +02:00
Emil Ernerfeldt
35b949a2d8 Refactor panels into proper containers 2020-10-21 22:10:55 +02:00
Emil Ernerfeldt
8b51ae5dea Panels: Added Context::panel_left and panel_top
Context will keep track of the avilable space left after panels.
Windows will be constrained to that available space.
So add panels first, THEN add windows.
2020-10-21 18:26:28 +02:00
Emil Ernerfeldt
15c5e0b04d [menu] Fix minor size issue of menu bars 2020-10-21 17:46:57 +02:00
Emil Ernerfeldt
46ce9a4f3d [windows] Constrain windows to screen 2020-10-21 16:24:36 +02:00
Emil Ernerfeldt
39431afd03 [refactor] Rename Layer to LayerId for clarity 2020-10-21 14:39:31 +02:00
Emil Ernerfeldt
9b01c75e16 tesselator: produce fewer paint jobs with PaintCmd::Triangles 2020-10-21 11:09:42 +02:00
Emil Ernerfeldt
7fbb11481b Try to protect against invalid Triangles 2020-10-21 11:04:22 +02:00
Emil Ernerfeldt
bc5dbd718e Fix: Context::wants_mouse_input() now returns false if a mouse drag started outside of Egui 2020-10-20 14:52:18 +02:00
Emil Ernerfeldt
6bbdf08482 [refactor] Split DemoWindows out of demos::DemoApp 2020-10-19 23:06:11 +02:00
Emil Ernerfeldt
8ccc36937f [egui_glium] Add option not to persist app to file 2020-10-19 20:25:05 +02:00
Emil Ernerfeldt
43813a71eb [app] Add egui::app::DummyStorage 2020-10-19 20:12:14 +02:00
Emil Ernerfeldt
12d387d7f5 Replace term "backend" with "integration" 2020-10-18 15:41:52 +02:00
Emil Ernerfeldt
92cfbe643c Add #![forbid(unsafe_code)] and safety badge 2020-10-18 15:40:23 +02:00
Emil Ernerfeldt
b8642b4db4 Do less rounding of positions to pixel boundaries
Fixes https://github.com/emilk/egui/issues/27
2020-10-18 14:47:12 +02:00
Emil Ernerfeldt
a4e19d7207 [app] Add demo app slider to change scale of all of Egui 2020-10-17 23:54:46 +02:00
Emil Ernerfeldt
251cde60f0 [app] Refactor egui::app::App interface to be more data oriented 2020-10-17 16:13:20 +02:00
Emil Ernerfeldt
4e0ea32d99 fix clippy issues 2020-10-17 11:02:51 +02:00
Emil Ernerfeldt
4fc34cca45 [demo] Show detailed memory usage statistics of paint lists 2020-10-17 10:57:25 +02:00
Emil Ernerfeldt
570860ec5f [refactor] Create helper struct Mutex (with double-lock detection) 2020-10-17 10:38:22 +02:00
Emil Ernerfeldt
c2a0705c6f Add ability to override text color with visuals.override_text_color
This is kind of hacky; I may redesign this later
2020-10-14 16:32:29 +02:00
Emil Ernerfeldt
1bd45c35eb Collapsing header returns header and body responses 2020-10-14 15:26:31 +02:00
Emil Ernerfeldt
7561ccc189 ui.horizontal(...) etc returns Response
This is much more ergonomic than just returning a Rect (like previously).
The Response only contains `hover` checks.
2020-10-14 14:42:40 +02:00
Emil Ernerfeldt
7db71eb875 Use positional ids for sliders
This means two sliders now can use the same label
2020-10-14 12:39:46 +02:00
Emil Ernerfeldt
a35fe7da12 Export egui::demos::app::DemoApp
Closes https://github.com/emilk/egui/issues/26
2020-10-12 12:35:55 +02:00
Emil Ernerfeldt
73dc3484ae [refactor] Separate space allocation from cursor advancement 2020-10-12 08:50:06 +02:00
Emil Ernerfeldt
f0a45f5055 [refactor] Simplify Context with new struct Options 2020-10-12 08:49:01 +02:00
Emil Ernerfeldt
ad4f87831b [refactor] Make Ui lighter by using a clone-on-write Arc<Style> 2020-10-12 03:22:41 +02:00
Emil Ernerfeldt
42b433a204 [release] bump version numbers to 0.2.0 2020-10-10 14:00:07 +02:00
Emil Ernerfeldt
12afc356ee Misc code cleanup: use more ui.checkbox, ui.label, ui.button etc 2020-10-10 13:04:40 +02:00
Emil Ernerfeldt
5c469551df Switch argument order of ui.checkbox and ui.radio
`bool, text` is the more logical order, as it

* matches the visuals: `[x] text`
* puts the important part first
* more natually allows us to extend to checkboxes without a text
2020-10-10 12:49:02 +02:00
Emil Ernerfeldt
a2e8d1d32c [demo] Add compact version of the toggle_switch demo code 2020-10-10 12:33:48 +02:00
Emil Ernerfeldt
343648b94c [refactor] remove Ui::canvas (use Ui::allocate_space instead) 2020-10-10 12:25:01 +02:00
Emil Ernerfeldt
b01690c7b8 [culling] coarse culling of text lines, circles and boxes 2020-10-10 12:25:01 +02:00
Emil Ernerfeldt
9874921d06 [bench] benchmark demo app when everything is open 2020-10-10 12:19:36 +02:00
Emil Ernerfeldt
f30b354f77 [culling] Add debug option to ignore clip rectangles 2020-10-10 11:39:39 +02:00
Emil Ernerfeldt
2615d1bce1 Remove Rect::default() since there is no sensible default rectangle 2020-10-10 08:03:38 +02:00
Emil Ernerfeldt
adec27a7dd fix: clip_rect of combo box popup 2020-10-10 07:54:59 +02:00
Emil Ernerfeldt
8c17b45439 [demo] shorter toggle_switch code 2020-10-10 07:54:54 +02:00
Emil Ernerfeldt
c6fd30ea13 fix clippy issue 2020-10-08 22:24:55 +02:00
Emil Ernerfeldt
3f345b5963 Ui: clean up min_rect/max_rect related functions 2020-10-08 22:24:27 +02:00
Emil Ernerfeldt
ba98ea715f fix ui.expand_... functions to also expand max_rect 2020-10-08 17:58:28 +02:00
Emil Ernerfeldt
8ff0bed259 [slider] Logarithmic sliders with support for zero and infinity
Logarithmic sliders will intelligently help you pick a good range
even if you inlcude zero or infinity. They also support crossing
the zero value, so you can have a slider span -INF to +INF.

The sliders now also supports reversed sliders (large -> small).
2020-10-07 09:59:49 +02:00
Emil Ernerfeldt
d5d8eeb172 [slider] use f64 internally for increased precision 2020-10-06 21:03:47 +02:00
Emil Ernerfeldt
a49cba54ac [math] make lerp, remap and remap_clamp work for both f32 and f64 2020-10-06 20:51:59 +02:00
Emil Ernerfeldt
7a71ac1a95 Rename tooltip_text to on_hover_text 2020-10-01 22:53:11 +02:00
Emil Ernerfeldt
5cba44eaa8 Clean up various small TODOs 2020-10-01 22:40:49 +02:00
Emil Ernerfeldt
6fcfb52aa0 [demo] add frame time graph to demo app 2020-10-01 22:25:44 +02:00
Emil Ernerfeldt
1156525ce9 [clippy] fixes 2020-10-01 16:56:40 +02:00
Emil Ernerfeldt
a2a4eafd0e fix compilation of test and benchmark 2020-10-01 16:54:05 +02:00
Emil Ernerfeldt
908d1d0c08 [refactor] Ui: rename child_bounds to min_rect, desired_rect to max_rect 2020-09-27 11:43:44 +02:00
Emil Ernerfeldt
43bb670c0c [layout] correct handling of cursor position w.r.t. reversed layouts 2020-09-26 10:06:06 +02:00
Emil Ernerfeldt
8cbf90442b remove ui.vertical_centered 2020-09-26 07:52:24 +02:00
Emil Ernerfeldt
aad0391fef remove Ui::set_layout 2020-09-26 07:52:24 +02:00
Emil Ernerfeldt
d8021843f8 [menu] simplify menu interactions, fixing an annoying bug 2020-09-25 15:31:27 +02:00
Emil Ernerfeldt
22fffc1793 [widgets] combo box (drop down menu) 2020-09-25 15:30:16 +02:00
Emil Ernerfeldt
b081be11d1 [spacing] simplify and tweak spacing 2020-09-25 11:41:47 +02:00
Emil Ernerfeldt
2164e37e39 [refactor] make sure we show all input members in introspection window 2020-09-23 09:03:18 +02:00
Emil Ernerfeldt
b77151fb64 remove seconds_from_midnight from core egui input
It is only used by demo app, and so does not belong to egui proper.
Instead it is now passed as part of a DemoEnvironment
2020-09-23 08:57:23 +02:00
Emil Ernerfeldt
deb1c33760 [style] visual tweaks 2020-09-20 09:24:09 +02:00
Emil Ernerfeldt
2c611292ff [style] more spacious, more alignmnet, more readable 2020-09-19 09:55:20 +02:00
Emil Ernerfeldt
05316b7045 [refactor] move DragValue to own file drag_value.rs 2020-09-18 23:59:35 +02:00
Emil Ernerfeldt
dd8c298cb5 refactor space allocation code 2020-09-18 23:48:08 +02:00
Emil Ernerfeldt
283b4ab63d [layout] remove ui.horizontal_centered and make centering the default 2020-09-18 23:41:49 +02:00
Emil Ernerfeldt
4df8def9e2 [layout] change clickable_diameter: f32 to interact_size: Vec2 2020-09-18 23:41:34 +02:00
Emil Ernerfeldt
85a67ab15e [refactor] introduce NumExt with at_least and at_most
`x.min(maxumim)` can be confusing but `x.at_most(maximum)` is very clear
2020-09-18 17:49:39 +02:00
Emil Ernerfeldt
5856cded95
refactor RunMode: move it from backend to the demo App (#23)
This simplifies the egui_glium and egui_web backends substantially,
reduces the scope of RunMode to a single file, and
removes duplicated code.

Basically: this is how I should have written it from the beginning.
2020-09-16 08:03:40 +02:00
Emil Ernerfeldt
e30a9c1196 [window/resize] add Resize::max_width and fix bug with fixed_size 2020-09-13 22:07:55 +02:00
Emil Ernerfeldt
f8bc4d38e8 [refactor] break up demo code into smaller files 2020-09-13 21:54:31 +02:00
Emil Ernerfeldt
8b4f96ffb2 [refactor] move math.rs to math/mod.rs, and same for all other egui mods 2020-09-13 21:23:35 +02:00
Emil Ernerfeldt
adc6a225e3 [frame] bug fix: move cursor after a Frame 2020-09-13 19:02:25 +02:00
Emil Ernerfeldt
6904938594 Compilation fix 2020-09-13 15:41:16 +02:00
Emil Ernerfeldt
814121903a remove Label::auto_shrink and replace with ui.shrink_width_to_current() 2020-09-13 09:30:52 +02:00
Emil Ernerfeldt
1069ad8496 add color test window to troubleshoot your Egui painter backend
egui_glium passes the test, but the egui_web WebGL painter fails it.
2020-09-13 09:28:54 +02:00
Emil Ernerfeldt
d49aec4079 Add user texture support to egui_glium and egui_web backends 2020-09-11 18:54:57 +02:00
Emil Ernerfeldt
02ef0cd9d5 [user textures] Add custom texture/image support
* Each Traingles mesh comes with a TextureId
* ui.image(...) to show an image/texture
* Up to backend what to do with user textures
2020-09-11 18:54:57 +02:00
Emil Ernerfeldt
5ba420988f [docs] improve toggle_switch.rs demo with better comments 2020-09-11 17:17:43 +02:00
Emil Ernerfeldt
10574c34d6 make it easy to combine Response:s with | and |= overloads 2020-09-11 10:19:04 +02:00
Emil Ernerfeldt
13060d495b [user texture] change uv to normalized texture coords in 0-1 range 2020-09-09 17:14:42 +02:00
Emil Ernerfeldt
0ea3a53d97 [font] texture atlas: add one pixel of padding for old GPUs 2020-09-09 15:24:44 +02:00
Emil Ernerfeldt
8984302122 [user textures] switch WHITE_UV to (0,0) and require clamped sampling 2020-09-09 15:24:09 +02:00
Emil Ernerfeldt
bb367752cf [text] support non-latin characters by dynamically adding them to atlas 2020-09-09 14:33:30 +02:00
Emil Ernerfeldt
0e870dae3e [refactor] rename Texture::id to version 2020-09-09 13:32:40 +02:00
Emil Ernerfeldt
d959f71d12 [text] add benchmark for text layout 2020-09-09 12:41:59 +02:00
Emil Ernerfeldt
672ffb6cd6 [test] add e2e egui test 2020-09-09 12:14:53 +02:00
Emil Ernerfeldt
23d99b07c8 [bug fix] assume pixels_per_point=1 if nothing is ever set 2020-09-09 12:14:21 +02:00
Emil Ernerfeldt
bc0d6baefb [color-picker] edit your own (s)RGBA arrays
Both with and without premultiplied alpha
2020-09-09 11:24:37 +02:00
Emil Ernerfeldt
b9a3240ca3 Bump Egui version to 0.1.4 2020-09-08 09:47:42 +02:00
Emil Ernerfeldt
278268768d fix web/wasm build 2020-09-08 09:44:40 +02:00
Emil Ernerfeldt
9578773613 [style] tweak style, and refactor struct Style 2020-09-08 09:17:08 +02:00
Emil Ernerfeldt
a76d57480d fix: menu bar should have a background 2020-09-07 20:54:29 +02:00
Emil Ernerfeldt
d8e0b3bff6 [color] add HSV-based color picker for struct Srgba 2020-09-06 21:30:52 +02:00
Emil Ernerfeldt
fc3582fbe1 [color] add HSVA conversion 2020-09-06 21:21:53 +02:00
Emil Ernerfeldt
847f18248f clippy fix 2020-09-06 07:49:49 +02:00
Emil Ernerfeldt
a9fd7537c2 [DragValue] add optional range 2020-09-06 07:07:02 +02:00
Emil Ernerfeldt
938c847c6e [math] bug fix: allow inverted range in remap_clamp 2020-09-06 07:04:47 +02:00
Emil Ernerfeldt
c26b3069e0 Fix a clippy nit 2020-09-06 06:58:40 +02:00
Markus Webel
6b30e21f4e
Kinetic scrolling (#20)
* Fixed typo in function description

* Added vertical kinetic scrolling

* Checked off kinetic scrolling from TODO

Co-authored-by: Markus Webel <m@rkus.online>
2020-09-06 06:57:29 +02:00
Emil Ernerfeldt
6ca11aff8c [refactor] use "fg_" prefix in WidgetStyle 2020-09-05 13:30:04 +02:00
Emil Ernerfeldt
8b93135fe4 [style] you can override the default body text style 2020-09-04 10:15:35 +02:00
Emil Ernerfeldt
2c96cbfa9c [dependencies] turn off optional ahash features to reduce dependencies 2020-09-03 23:04:19 +02:00
Emil Ernerfeldt
dc40a5d31d [refactor] represent colors with arrays 2020-09-02 22:04:10 +02:00
Emil Ernerfeldt
9823e4d63c [refactor] Add Triangles::colored_vertex helper 2020-09-02 21:52:43 +02:00
Emil Ernerfeldt
e8713bbb71 [widgets] DragValue can now be used with some integers 2020-09-02 06:05:48 +02:00
Emil Ernerfeldt
ecd68f4faa [refactor] combine stroke_color and stroke_width in WidgetStyle 2020-09-02 01:36:52 +02:00
Emil Ernerfeldt
9d4021d703 [refactor] rename LineStyle to Stroke 2020-09-01 23:54:21 +02:00
Emil Ernerfeldt
e7b098ac56 [style] make the default style a lot more compact and sleek 2020-09-01 20:40:54 +02:00
Emil Ernerfeldt
2129a87575 [tesselator] handle paths with duplicated points better 2020-09-01 20:29:00 +02:00
Emil Ernerfeldt
62b1a2658f [tesselator] hide Path from view and improve thin rounded rectangles 2020-09-01 20:03:50 +02:00
Emil Ernerfeldt
96153a86e5 [refactor] Remove Option wrappers around colors and line styles
Just use transparency instead of None
2020-08-31 22:56:24 +02:00
Emil Ernerfeldt
413ed6999e [refactor] break up Style into Spacing, Interaction and Visuals
Also make sliders fixed-width
2020-08-31 22:27:31 +02:00
Emil Ernerfeldt
fe50f39590 [demo] toggle_switch.rs source demo for how to create your own widget 2020-08-31 07:55:31 +02:00
Emil Ernerfeldt
c0876eff90 [refactor] better names for widget style members 2020-08-31 07:55:28 +02:00
Emil Ernerfeldt
24003b17a3 [animation] add Context::animate_bool helper function 2020-08-30 10:26:16 +02:00
Emil Ernerfeldt
c23dfd155c [refactor] unify InteractInfo and GuiResponse to Response 2020-08-30 08:52:42 +02:00
Emil Ernerfeldt
3160c44a4b Move TODO-list to own TODO.md 2020-08-29 18:16:43 +02:00
Emil Ernerfeldt
8f1def11f1 [slider] remove ": " for sliders without text. still show value 2020-08-29 18:00:27 +02:00
Emil Ernerfeldt
f7122abc5d [slider] fix vertical alignment of text 2020-08-29 17:58:25 +02:00
Emil Ernerfeldt
1d350ad15b [painter] add helper functions for drawing lines, circles and rectangles 2020-08-29 17:30:06 +02:00
Emil Ernerfeldt
c27e53a7b2 [color] Rename Color to Srgba + sRGBA correct fading of thin lines
Also remove the extra large `aa_size` hack,
so everything now looks slightly crispier.

I also took the opportunity to tweak some colors.
2020-08-29 16:58:59 +02:00
Emil Ernerfeldt
2465e689fb [demo] additional window resize demo with embedded scroll 2020-08-29 15:32:17 +02:00
Emil Ernerfeldt
1a9618c524 spelling 2020-08-29 15:31:06 +02:00
Emil Ernerfeldt
3a3eb5ef5d Fix minor bug in mouse velocity tracking 2020-08-29 15:16:51 +02:00
Emil Ernerfeldt
f1989c39c6 input: keep using the latest known pixels_per_point 2020-08-29 15:15:50 +02:00
Emil Ernerfeldt
3d3b93da8b Force user to explicitly select a max height for a ScrollArea 2020-08-29 15:14:44 +02:00
Emil Ernerfeldt
5df9bfd514 Add ui.drag_angle helper 2020-08-29 15:10:59 +02:00
Emil Ernerfeldt
d4c0197752 add ui.horizontal_centered helper 2020-08-29 15:10:59 +02:00
Emil Ernerfeldt
7b75bd2d09 Use consistent order of width/color arguments for line style 2020-08-29 14:45:20 +02:00
Emil Ernerfeldt
b3b4fbc016 [slider] only show full precision if significant 2020-08-29 14:41:32 +02:00
Emil Ernerfeldt
cc22e2fbb4 [slider] when editing slider or drag-value, keep text edit box small 2020-08-29 12:17:49 +02:00
Emil Ernerfeldt
7cfa792a89 [interact] bug fix: fix drags sometimes being interpreted as clicks 2020-08-29 12:13:21 +02:00
Emil Ernerfeldt
d07132cc13 [demo] bug fix: add back clock in upper right corner 2020-08-29 12:12:16 +02:00
Emil Ernerfeldt
d5a1385870 [demo] disable name clash demo, since it is not working anyway 2020-08-28 16:43:24 +02:00
Emil Ernerfeldt
a2160a5e12 fix some corner cases for repaint requests 2020-08-28 16:41:37 +02:00
Emil Ernerfeldt
0755a95c76 Update README.md 2020-08-28 16:24:20 +02:00
Emil Ernerfeldt
b8938e01c4 [demo] add menu option to auto-reorganize windows 2020-08-28 16:24:20 +02:00
Emil Ernerfeldt
559b026b87 [demo] add windows that demonstrates auto-size, resize and scrolling 2020-08-28 16:24:20 +02:00
Emil Ernerfeldt
b02530b6fb [refactor] small cleanup and typo fixes 2020-08-28 16:24:20 +02:00
Emil Ernerfeldt
0bbf7edaee [window] increase default width of windows and resize areas 2020-08-28 16:24:20 +02:00
Emil Ernerfeldt
03bc4ea2e2 [window] make scroll bars in windows opt-in 2020-08-28 16:24:20 +02:00
Emil Ernerfeldt
5ed949bb32 deny warnings in egui lib (again. oops) 2020-08-28 16:24:20 +02:00
Emil Ernerfeldt
8c03f6a90f [window] prevent trying to shrink window smaller than title bar width 2020-08-28 16:24:20 +02:00
Emil Ernerfeldt
5f919e22a9 [ui] add ui.heading(text) helper function 2020-08-28 16:24:20 +02:00
Emil Ernerfeldt
056c0ad794 [window] round position to nearest physical pixel, not nearest point 2020-08-28 16:24:20 +02:00
Emil Ernerfeldt
373b1c2911 Allow multithreaded use of egui
...but currently only in release build,
because in debug builds I want to be able to debug dead-locks from
locking the same resource from the same thread.
2020-08-28 16:24:20 +02:00
Emil Ernerfeldt
98bced7e62 [ui] bug fix: default size of horizontal/vertical regions 2020-08-28 15:43:00 +02:00
Emil Ernerfeldt
48e42ff6a5 [drag-value] click on a DragValue to edit it 2020-08-28 14:35:39 +02:00
Emil Ernerfeldt
f3bbb210c0 [slider] click value to edit it with keyboard 2020-08-28 10:37:44 +02:00
Emil Ernerfeldt
1874f238eb [slider] show value with monospace font 2020-08-28 00:24:51 +02:00
Emil Ernerfeldt
ec1e8b9966 [drag-value] show full precision if needed 2020-08-28 00:22:58 +02:00