Emil Ernerfeldt
0d71017ad4
clippy fixes for rust 1.52
2021-05-06 20:49:22 +02:00
Emil Ernerfeldt
29668b5128
Minor documentation improvements
2021-05-02 22:02:26 +02:00
Emil Ernerfeldt
1394205f52
Document and demonstrate how to expand a TextEdit to fill a Ui
2021-05-02 21:57:51 +02:00
Emil Ernerfeldt
66122e4c9a
Decrease indentation with shift-tab
2021-05-02 20:09:11 +02:00
Emil Ernerfeldt
7da9928548
Clean up new code editor code
2021-05-02 19:28:02 +02:00
Cristian Dinu
35c7b09285
Tab identation for multiline text edit ( #246 )
...
Lock focus on multiline text edit, and insert tabs on tab char
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
2021-05-02 18:56:28 +02:00
ilya sheprut
101eed0d67
memory: add Send + Sync
reqirement, fix #337 ( #341 )
...
* memory: add `Send + Sync` reqirement, fix #337
* Update egui/src/memory.rs
Co-authored-by: Lucien Greathouse <me@lpghatguy.com>
Co-authored-by: Lucien Greathouse <me@lpghatguy.com>
2021-04-30 10:03:45 +02:00
David Pedersen
02a62d1986
Replace impl Into<String>
with impl ToString
( #302 )
...
* Replace `impl Into<String>` with `impl ToString`
This is something I ran into today. Types that implement
`std::fmt::Display` cannot be passed to functions that take `impl
Into<String>`. You have to call `display_thing.to_string()`. Its a small
thing but would be fixed by instead taking `impl ToString`.
Afaik `impl ToString` is a superset of `impl Into<String>`, unless users
manually implement `Into<String> for T` (or `From<T> for String`) for
their own types. However I think its more common to implement `Display`
as that works with `println` and friends. The main difference is that
`Display::fmt` can return errors but thats also quite rare in my
experience.
I did some testing in a [playground] and seems to work.
[playground]: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=1111e071f6ae416ae2688d58d2e9b575
* Silence warnings
2021-04-29 19:49:49 +02:00
Emil Ernerfeldt
6f01577d5f
Tab only selects labels if the screen_reader
option is turned on.
2021-04-25 18:20:10 +02:00
Emil Ernerfeldt
c2744a1437
Implement trackpad pinch-to-zoom for plots in egui_web ( #333 )
...
This adds a new `zoom_delta` to input.
This is hooked up to ctrl-scroll on egui_web and egui_glium.
Browsers convert trackpad pinch gestures to ctrl-scroll,
so this means you can not pinch-to-zoom plots (on trackpad).
In the future we can support multitouch pinch-to-zoom via the same
`InputState::zoom_factor()` function
2021-04-25 17:04:34 +02:00
Sven Niederberger
a505d01090
Plot refactor ( #331 )
...
* drag and zoom support for plots
* update doctest
* use impl ToString
* revert back to Into<String> until #302 is solved
* Apply suggestions from code review
Co-authored-by: ilya sheprut <optitel223@gmail.com>
* use persistence feature for PlotMemory
* * split plot into multiple files
* add curve from function
* move more functionality into ScreenTransform struct
* changes from code review in base branch
* let user specify a range for generated functions
* rename file
* minor changes
* improve generator functionality
* improve callback and add parametric callback
* minor changes
* add documentation
* fix merge issues
* changes based on review
* rename folder
* make plot.rs the mod.rs file
* remove mod.rs
* rename file
* namespace changes
* fix doctest
* Update egui/src/widgets/plot/items.rs
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
Co-authored-by: ilya sheprut <optitel223@gmail.com>
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
2021-04-24 14:26:54 +02:00
Emil Ernerfeldt
0f112db550
Reduce binary size with more inlining and less monomorphization
...
5%=150kB savings on egui_demo_app wasm
2021-04-24 09:54:11 +02:00
Emil Ernerfeldt
6b24dbc997
Move easy_mark from egui deo egui_demo_lib
2021-04-24 01:18:08 +02:00
Emil Ernerfeldt
fb6f49024f
Add Response::on_disabled_hover_text to show tooltip for disabled widgets
...
Closes https://github.com/emilk/egui/issues/323
2021-04-22 19:48:05 +02:00
Emil Ernerfeldt
07da54ad08
Refactor Ui::next_auto_id_source
2021-04-21 22:19:51 +02:00
Emil Ernerfeldt
a59c8ac2c3
DragValue: only show extra decimal with shift down if currently dragged
2021-04-21 22:14:30 +02:00
Sven Niederberger
012542d066
Drag and zoom support for plots ( #317 )
...
* drag and zoom support for plots
* update doctest
* use impl ToString
* revert back to Into<String> until #302 is solved
* Apply suggestions from code review
Co-authored-by: ilya sheprut <optitel223@gmail.com>
* use persistence feature for PlotMemory
* rename shift -> translate
* remove automatic bounds
* removed unused methods
* Into<String> -> ToString
* Apply suggestions from code review
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
* avoid potential invalid bounds bug
* use new is_valid method
* improve auto bounds behavior as suggested
* use NOTHING to initialize min_auto_bounds
Co-authored-by: ilya sheprut <optitel223@gmail.com>
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
2021-04-21 21:50:27 +02:00
Emil Ernerfeldt
58ebb217dc
Tesselator: ignore zero-sized clip rects
...
Improves https://github.com/emilk/egui/issues/328
2021-04-20 10:05:47 +02:00
Emil Ernerfeldt
1681769329
Add #[inline(always)] here and there
2021-04-19 23:11:42 +02:00
Emil Ernerfeldt
0351662763
Fix bug with the layout of wide DragValue
:s
2021-04-18 23:10:12 +02:00
Emil Ernerfeldt
580d27e0d3
Add anchors to windows and areas ( #310 )
...
This is so that you can put a window in e.g. the top right corner
or the center of the screen.
2021-04-18 10:01:41 +02:00
Emil Ernerfeldt
5667e7eb51
Add docstring to ui.with_layout
2021-04-15 22:23:15 +02:00
Emil Ernerfeldt
231c075867
Add #[inline(always)] to a few things
2021-04-15 10:37:31 +02:00
Emil Ernerfeldt
76d5229821
CI: run cargo doc ( #309 )
...
* Deny doc errors
* Add intentional bad intradoc link to test CI
* Add cargo doc to CI
* Fix carg doc web (add wasm32 target)
* Fix intentionally broken doc-link
2021-04-15 10:35:15 +02:00
Emil Ernerfeldt
b187d1c576
Make Memory::has_focus public (again)
2021-04-15 10:31:24 +02:00
Emil Ernerfeldt
96a2732735
Add Response::request_focus and surrender_focus
2021-04-15 09:45:12 +02:00
ilya sheprut
186362a4b8
Arbitrary data in Memory
using Any
, fix #255 ( #257 )
...
* init work
* implement deferred deserialization
* many improvements
* rename `DataElement` -> `AnyMapElement`
* make `data` in `Memory` as public field of type with public interface
* make interface more rich
* transform most unwraps to proper error handling
* make `AnyMap` store by `TypeId`, so now individual type can be counted and reset
* improve storing TypeId between different rust versions
* rewrite system widgets to use AnyMap
* refactor everything
* replace `serde_json` -> `ron`
* move `any_map` to module
* separate `AnyMap` into `AnyMapId` and `serializable::AnyMapId` in order to not require `serde` traits in methods
* add `AnyMap` and `serializable::AnyMap` that stores elements just by type, without `Id`
* write documentation
* change tooltips and color picker to use `Memory::data_temp`
* fix bugs and docs
* Apply suggestions from code review
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
* rename `AnyMap` → `TypeMap`
* rename `AnyMapId` → `AnyMap`, add generic <Key> to it
* rename files `id_map` → `any_map`
* move out usages from `serializable` mod
* rename `ToDeserialize` → `Serialized`
* fix bug with counting
* add tests, and...
* rename `reset` → `remove`
* add function `remove_by_type`
* format code
* improve code
* make identical interface for serialized and simple maps
* make serialized maps serialized fully, without features by moving this into `Memory` struct with `#[cfg(feature = "persistence")]` under fields
* move `serialized::TypeId` into `AnyMapElement` struct
* fix pipeline and add one more test
* update docs
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
2021-04-12 21:53:32 +02:00
Emil Ernerfeldt
4ecf304335
Fix touch screen defocus bug
...
Fixes https://github.com/emilk/egui/issues/288
2021-04-12 21:41:07 +02:00
Emil Ernerfeldt
5d50fa1350
Add Label::sense so you can make clickable labels
...
relates to https://github.com/emilk/egui/issues/292
2021-04-12 21:26:13 +02:00
Lin Han
20bf09560e
IME: Handle composition events to show suggestion on web ( #278 )
...
* Handle composition message to show suggestion.
* CI check
* Apply suggestions from code review
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
* Some minor changes
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
2021-04-12 20:57:14 +02:00
Cristian Dinu
50a56d41ee
DragValue improvements ( #274 )
...
* Display ResizeHorizontal cursor on hover
* Adapt the URL open command to the platform
With this new version we use $OSTYPE bash env var to query what OS
are we running on.
- On Linux, ex: Fedora, we use `xdg-open`
- On Windows, ex: msys, we use `start`
- For other other variants we try to use `open`
We should update this script when we notice that `open` is not
available on a particular platform.
(cherry picked from commit b3aa4982f683d961c21fd18e9ffc1fdf5fba0783)
* Add slow speed mode for `DragValue`
The slow speed mode is disabled by default. It can be activated
or deactivated using `DragValue::slow_speed()`.
When active the `Shift` key can be used to have a better control
over the value, `DragValue::speed` / 10.0 increments.
* Display `ResizeHorizontal` cursor while dragging too
* Apply review suggestion
Shorter and in line with the rest of the code base
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
* Add `Modifiers::shift_only` for better code clarity
* Make slow speed always enabled
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
2021-04-08 22:20:52 +02:00
Emil Ernerfeldt
d544c3dd8b
Release 0.11.0 - Optimization, screen reader & new layout logic
2021-04-05 14:49:06 +02:00
Emil Ernerfeldt
ebb08f87f1
Fix: custom Ui:s now allocate minimal space in parent ui.
...
This makes nested horizontal/vertical layouts work better
2021-04-02 22:39:08 +02:00
Emil Ernerfeldt
4ac5b37702
Turn off text wrapping for DragValue:s
2021-04-02 13:42:46 +02:00
Emil Ernerfeldt
4b9db0cc55
Rename ui.advance_cursor to ui.add_space
2021-04-02 10:13:06 +02:00
Emil Ernerfeldt
d848b2a664
Add TextEdit::password to hide input characters
2021-04-02 09:58:55 +02:00
Emil Ernerfeldt
1c955e56fe
Some code cleanup
2021-04-01 23:07:58 +02:00
Emil Ernerfeldt
d702e3078a
Reduce amount of data being cloned in begin_frame
2021-04-01 22:09:58 +02:00
Emil Ernerfeldt
f6770f0183
Various spelling fixes, docs improvements and code cleanup
2021-03-31 23:12:42 +02:00
Emil Ernerfeldt
f79f24c83e
Clean up dependencies and features flags
2021-03-31 22:53:54 +02:00
Emil Ernerfeldt
0d7c84c327
Make each DragValue at least the size of interact_size
2021-03-31 22:18:45 +02:00
Emil Ernerfeldt
b8a0f5be15
Improve Ui::add_sized (simplify and fix bugs)
2021-03-31 22:18:08 +02:00
Emil Ernerfeldt
1090de67fd
Refactor: move debug options out of Visuals
2021-03-31 22:00:04 +02:00
Emil Ernerfeldt
b393bdcb74
Improve documentation of ui.add_sized
2021-03-31 21:49:24 +02:00
Emil Ernerfeldt
0a21b01c31
Fix nightly build: remove deprecated missing_crate_level_docs lint
...
Closes https://github.com/emilk/egui/issues/250 and
https://github.com/emilk/egui/pull/251
2021-03-31 20:00:22 +02:00
Thorbjørn Lindeijer
f563ff77c3
Fixed some spelling in documentation ( #262 )
2021-03-31 19:52:23 +02:00
Emil Ernerfeldt
4808da44a2
Optimize: more inlining and more use of AHashMap
...
No real gains, but it didn't hurt either
2021-03-31 17:06:12 +02:00
Emil Ernerfeldt
4984d51f99
Optimize: store a reference to the target PaintList in Painter
...
Saves us a hash lookup for each paint call, giving us 5% perf gain
2021-03-31 17:03:20 +02:00
Emil Ernerfeldt
8c4bb0d1d9
refactor: no need to pass Fonts structure to tessellator
...
This makes the tesselator take only data as argument,
which is a lot nicer.
2021-03-30 21:41:39 +02:00
Lin Han
22cd1a8e10
Move IME candidate window following text cursor ( #258 )
...
* egui_web: enable IME support on web.
* Move candidate window following text cursor.
* Preclude too frequent agent movement.
* IME candidate window move on native app.
2021-03-30 08:48:55 +02:00
Emil Ernerfeldt
1c60dc8d66
Pass around Arc<Galley> to avoid copying a lot of data
2021-03-29 22:49:54 +02:00
Emil Ernerfeldt
94baf98eab
Add a galley cache to Fonts to avoid doing the same layout each frame
2021-03-29 22:49:48 +02:00
Emil Ernerfeldt
d4e5133da2
refactor fonts: put TextStyle in Galley instead of in Shape::Text
2021-03-29 21:24:09 +02:00
Emil Ernerfeldt
ade41403b5
refactor fonts: do all text layout via the Fonts struct
2021-03-29 21:12:11 +02:00
Emil Ernerfeldt
46425f1e38
Optimize: add #[inline(always)] to various low-level things
...
saves up to 20% (text tesselation), and at least 5% overall
2021-03-28 23:16:19 +02:00
Emil Ernerfeldt
aeaa54aab1
optimization: don't compare font data each frame
2021-03-28 22:13:41 +02:00
Emil Ernerfeldt
def09c2455
Don't close colopicker and other popups when clicking inside of them
2021-03-27 16:50:35 +01:00
Emil Ernerfeldt
5011623744
Deprecate old DragValue constructors in favor of DragValue::new
2021-03-27 16:09:09 +01:00
Emil Ernerfeldt
de439b6e21
Deprecate old Slider constructors in favor of Slider::new
2021-03-27 16:07:18 +01:00
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