Emil Ernerfeldt
d5673412dd
Put everything in Context behind the same Mutex ( #1050 )
...
* Move all interior mutability from Context to CtxRef and make it a handle
* Rename `CtxRef` to `Context`
* The old `Context` is now `ContextImpl` and is non-pub
* Add benchmark Painter::rect
Co-authored-by: Daniel Keller <dklr433@gmail.com>
2022-01-10 23:13:10 +01:00
Simon Werner
225d2b506d
Split Event::Text
into Text
and Paste
( #1058 )
...
* Split `Event::Text` into `Text` and `Paste`
* Added explicit Event::Paste change
See #1043
* Link to PR in changelog (not the issue)
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
2022-01-10 23:12:30 +01:00
Lampsitter
611eaa52e8
Revert "Don't constrain immovable egui windows to native window ( #1049 )" ( #1054 )
...
This reverts commit 7b641be7b0
.
It accidentally disabled constraining for all windows
2022-01-09 15:32:09 +01:00
Lampsitter
7b641be7b0
Don't constrain immovable egui windows to native window ( #1049 )
2022-01-08 10:07:02 +01:00
Lampsitter
b0ea4dc0b5
Fix context menu styling ( #1043 )
2022-01-06 12:17:12 +01:00
Emil Ernerfeldt
79cfdaa1f9
Better docs and spelling fixes
2022-01-03 23:58:06 +01:00
Emil Ernerfeldt
b5c119ef19
0.16.1 patch release: Add back CtxRef::begin_frame/end_frame ( #1019 )
...
`begin_frame`, `end_frame` is more convenient when using egui in a game engine. In particular, 0.16.0 was incompatible with https://github.com/mvlabat/bevy_egui >.
2021-12-31 11:45:57 +01:00
Emil Ernerfeldt
4ef21380a2
Add Ui::add_visible
and Ui::add_visible_ui
...
Also rename `Ui::visible` to `Ui::is_visible`.
2021-12-30 22:39:41 +01:00
Emil Ernerfeldt
0146c7e7fc
Release 0.16.0 - Context menus and rich text
2021-12-29 12:07:05 +01:00
Emil Ernerfeldt
369ce95bbd
Add CollapsingHeader::open
to control if it is open or collapsed ( #1006 )
...
Closes https://github.com/emilk/egui/issues/978
2021-12-28 10:45:32 +01:00
Emil Ernerfeldt
c60d17b91b
Set MSRV to 1.56.0 and use rust edition 2021 ( #998 )
2021-12-25 19:32:25 +01:00
kud1ing
214d2b5d4f
Changlog: mention menu::menu(ui, ...)
=> ui.menu_button(...)
( #956 )
2021-12-19 21:17:02 +01:00
Emil Ernerfeldt
c85eca6eaa
Update changelog
2021-11-29 18:43:52 +01:00
Jan Haller
1088d950e9
Add bar charts and box plots ( #863 )
...
Changes:
* New `BarChart` and `BoxPlot` diagrams
* New `FloatOrd` trait for total ordering of float types
* Refactoring of existing plot items
Co-authored-by: niladic <git@nil.choron.cc>
2021-11-29 18:39:58 +01:00
Sven Niederberger
9d56bce592
Improved plot interaction methods ( #892 )
...
ctx plot_bounds plot_hovered screen_from_plot plot_from_screen etc
2021-11-27 23:59:32 +01:00
Emil Ernerfeldt
a0b635dc21
Add Button::image_and_text
to changelog
...
following https://github.com/emilk/egui/pull/832
2021-11-13 13:19:13 +01:00
Emil Ernerfeldt
b5cb2b2c0d
Some code cleanup following https://github.com/emilk/egui/pull/888
2021-11-13 12:55:48 +01:00
Emil Ernerfeldt
4d4c75c6f1
Fix vertical slider up/down keys and add a line in the changelog
...
Follow-up to https://github.com/emilk/egui/pull/875
2021-11-13 12:30:13 +01:00
Sven Niederberger
0bad1d0c99
Plot interaction methods ( #766 )
...
* move to a basic plot builder with callback
* add some interaction methods
* move interaction demo to its own panel
2021-11-13 11:56:22 +01:00
Emil Ernerfeldt
951ee4e142
Improve color picker cache ( #886 )
...
* colorpicker: try to maintain hue even when saturation goes to zero
* More consistent arguments to color types
* implement `Hash` for `Rgba`.
2021-11-07 21:11:42 +01:00
Emil Ernerfeldt
19d24bbebe
Don't clip popups to the parent cliprect ( #885 )
...
Closes https://github.com/emilk/egui/issues/825
2021-11-07 19:48:38 +01:00
Emil Ernerfeldt
878eddd546
When using a custom font you can now specify a font index ( #873 )
...
When using a custom font you can now specify a font index
Closes https://github.com/emilk/egui/issues/853
2021-11-07 19:47:52 +01:00
Emil Ernerfeldt
83e490fb6a
Remove egui::math & egui::paint, replace with egui::emath & egui::epaint
2021-11-06 09:47:23 +01:00
Emil Ernerfeldt
6d33beabb1
Replace scroll_delta
and zoom_delta
in RawInput
with events
...
Part of https://github.com/emilk/egui/issues/843
2021-11-03 22:57:13 +01:00
Emil Ernerfeldt
49e43885ff
Replace Context::begin_frame/end_frame
with fn run
taking a closure ( #872 )
...
* Replace Context begin_frame/end_frame with `fn run` taking a closure
* Create `egui::__run_test_ui` to replace `Ui::__test`
* Add helper `egui::__run_test_ctx` for doctests
2021-11-03 20:11:25 +01:00
Emil Ernerfeldt
e54106e950
Extend contributor list
2021-11-03 19:37:38 +01:00
Emil Ernerfeldt
09b8269326
Rich text for all widgets ( #855 )
...
Introduce `RichText` and `WidgetText`
2021-11-01 21:30:10 +01:00
Emil Ernerfeldt
c7638ca7f5
Add read/write of TextEdit cursor state ( #848 )
...
* Rename `CursorPair` to `CursorRange`
* Easymark editor: add keyboard shortcuts to toggle bold, italics etc
* Split up TextEdit into separate files
* Add TextEdit::show that returns a rich TextEditOutput object with response, galley and cursor
* Rename text_edit::State to TextEditState
2021-10-27 16:30:14 +02:00
Emil Ernerfeldt
8e4fd942a9
Refactor memory data ( #836 )
...
This refactors the widget state storage introduced by @optozorax in https://github.com/emilk/egui/pull/257
* Unify the four buckets (`data`, `data_temp`, `id_data` and `id_data_temp`) into a single `data`.
* Less complexity, and also less chance of error (storing in one bucket, reading from another).
* Store data by `Id` and `TypeId`.
* Users can thus reuse the same `Id` to store many types.
* Uses a simple xor of id and typeid, which is fast and good since both id and typeid are already high-entropy hashes.
* Use different suffixes on the functions to pick if you want the data persisted or not (`get_temp`, `insert_persisted`, etc).
* Writing with one suffix and reading with the other works.
* To store state not bound to a specific `Id` (i.e. only based on type), use the new `Id::null` as the key.
2021-10-27 08:51:34 +02:00
Emil Ernerfeldt
41f77ba7d7
Clean up some of the new context menus
...
Follow-up to https://github.com/emilk/egui/pull/543
* Add entry to CHANGELOG.md
* Add entry to contributors in README.md
* Improve documentation
* Simplify demo
2021-10-26 20:16:46 +02:00
Emil Ernerfeldt
08cc07bb2d
Release 0.15.0 - Syntax highlighting, hscroll, egui-winit and egui_glow
2021-10-24 16:15:07 +02:00
Emil Ernerfeldt
7c82111234
Update changelog with credits
...
Thanks to:
* [AlexApps99](https://github.com/AlexApps99 )
* [baysmith](https://github.com/baysmith )
* [bpostlethwaite](https://github.com/bpostlethwaite )
* [cwfitzgerald](https://github.com/cwfitzgerald )
* [DrOptix](https://github.com/DrOptix )
* [JerzySpendel](https://github.com/JerzySpendel )
* [NiceneNerd](https://github.com/NiceneNerd )
* [parasyte](https://github.com/parasyte )
* [spersson](https://github.com/spersson )
* [Stock84-dev](https://github.com/Stock84-dev )
* [sumibi-yakitori](https://github.com/sumibi-yakitori )
* [t18b219k](https://github.com/t18b219k )
* [TobTobXX](https://github.com/TobTobXX )
* [zu1k](https://github.com/zu1k )
2021-10-23 06:14:08 +02:00
Emil Ernerfeldt
cdd4dccf5f
Add egui_glow as an opt-in backend to eframe ( #817 )
...
* Make egui_glow and opt-in backend for eframe
* Add egui_glow to Cargo.toml and to CI
* Reference egui_glow where egui_glium is mentioned
* Remove path-patches from root Cargo.toml
* Add instructions on how to enable the glow backend of eframe
2021-10-19 15:32:23 +02:00
Emil Ernerfeldt
9f1a5dcb33
ui.label now take impl ToString
as argument, not impl Into<Label>
2021-10-18 21:09:44 +02:00
Emil Ernerfeldt
2af2e8bad5
Add ui.add_enabled and ui.add_enabled_ui, and remove Button::enabled
2021-10-17 22:17:50 +02:00
Emil Ernerfeldt
8a47019c1a
Rename TextEdit::enabled
to TextEdit::interactive
.
2021-10-17 22:13:15 +02:00
Emil Ernerfeldt
6f699b3391
Replace every ... with … like some sort of crazy person
...
Also fix some small typos
Closes https://github.com/emilk/egui/pull/736
2021-10-13 11:52:34 +02:00
Cristian Dinu
1c4237097f
Slider, by default clamp to range ( #789 )
...
* Slider, by default clamp to range
* Update change log.
2021-10-12 21:15:32 +02:00
Emil Ernerfeldt
e547b149ca
Improve docs, especially of epaint, and add epaint/CHANGELOG.md
2021-10-10 15:35:13 +02:00
Emil Ernerfeldt
ce8d863249
auto-shrink ScrollArea to content size
...
Unless the user disables it with `ScollArea::auto_shrink([false; 2])`.
2021-10-06 23:51:03 +02:00
Emil Ernerfeldt
a1bf5aff47
Add Memory::caches for caching things from one frame to the next
2021-10-06 17:54:45 +02:00
Emil Ernerfeldt
8d854391df
TextEdit can now show immutable text
2021-10-02 21:43:17 +02:00
Emil Ernerfeldt
96557a4fa6
Add egui::widgets::global_dark_light_mode_buttons
2021-10-01 21:28:12 +02:00
Emil Ernerfeldt
981b812f68
Smaller and nicer color picker
2021-10-01 19:24:36 +02:00
Emil Ernerfeldt
5539dbe620
Add separate serialize feature and better persitence control ( #753 )
...
* Rename epaint feature "persistence" to "serialize"
* Add separate "serialize" feature to egui
* egui_demo_lib: separate serialize and persistence features
* Add App::persist_native_window and App::persist_egui_memory
Controls what gets persisted
2021-09-29 08:45:13 +02:00
Emil Ernerfeldt
f2dd3dfdd9
Fix popups sometimes getting clipped by panels
2021-09-28 22:19:03 +02:00
Emil Ernerfeldt
711defddb8
Show tooltips above widgets on touch screens
2021-09-28 22:18:22 +02:00
Emil Ernerfeldt
1b36863248
Split out new crate egui-winit from egui_glium ( #735 )
2021-09-28 17:33:28 +02:00
Emil Ernerfeldt
67bf716b0e
Hide DragValue tooltips unless user set Style::explanation_tooltips ( #708 )
...
* Hide DragValue tooltips unless user set Style::explanation_tooltips
Closes https://github.com/emilk/egui/issues/548
Closes https://github.com/emilk/egui/pull/704
* Silence drag_angle_tau tooltip too
2021-09-12 23:05:23 +02:00
Emil Ernerfeldt
f37180f7dc
Bump MSRV (Minimum Supported Rust Version) to 1.54.0 ( #703 )
...
1.51.0 clippy has been giving me trouble (not reporting all problems),
and so I take the easy way out and just bump MSRV.
We will upgrade to 1.56.0 once it comes around anyway
to get access to that sweet disjoint capture in closures
(https://doc.rust-lang.org/nightly/edition-guide/rust-2021/disjoint-capture-in-closures.html )
2021-09-09 00:16:06 +02:00