Commit Graph

917 Commits

Author SHA1 Message Date
Emil Ernerfeldt 79cfdaa1f9 Better docs and spelling fixes 2022-01-03 23:58:06 +01:00
Emil Ernerfeldt b1fd6a44e8
Switch to using glow as the default renderer both on native and the web (#1020)
* Switch to using glow as the default renderer both on native and the web
* Simplify code to find WebGL context for glow
* egui_web: make webgl an opt-in feature
* Stop using deprecated WEBGL_debug_renderer_info
2021-12-31 15:17:55 +01:00
LordMZTE 8da592c6ab
Add Spinner widget (#1013)
* add spinner widget

* implement requested changes to spinner

- removed enabled field
- cleaned up math
- improved docs

* improve spinner docs & make spinner in demo always active
2021-12-31 14:32:48 +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 b00edfe97f Remove keyboard focus from a widget if something else is dragged
Closes https://github.com/emilk/egui/issues/618
2021-12-30 23:24:29 +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 db110b1690 Remove deprecated functions 2021-12-30 22:37:58 +01:00
Emil Ernerfeldt 0960f38552 Add inter-linking between different forms of documentations and examples 2021-12-29 21:44:48 +01:00
Emil Ernerfeldt 0146c7e7fc Release 0.16.0 - Context menus and rich text 2021-12-29 12:07:05 +01:00
Emil Ernerfeldt 84399cde83 Small tweaks to documentation and demo 2021-12-29 10:49:22 +01:00
Emil Ernerfeldt 190c85a40f Rename `Texture` to `FontImage` 2021-12-28 21:19:24 +01:00
Emil Ernerfeldt 68fca09df9 Improve documentation 2021-12-28 17:34:27 +01:00
Emil Ernerfeldt 00f965de87 Add Context::animate_bool_with_time
Closes https://github.com/emilk/egui/discussions/984
2021-12-28 17:34:27 +01:00
Rasmus Brönnegård 811b974003
Fix typo "the close" -> "this close" in style.rs (#887) 2021-12-28 16:42:22 +01:00
Emil Ernerfeldt f919b0cc05 Clean up context menu documentation 2021-12-28 13:09:14 +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 2684929a5d Make Memory::lock_focus public
closes https://github.com/emilk/egui/issues/993
2021-12-28 10:08:28 +01:00
Emil Ernerfeldt b88bec9ca3 Document that `CtxRef` is generational and shouldn't be stored
Related to https://github.com/emilk/egui/issues/1005
2021-12-28 10:05:10 +01:00
Emil Ernerfeldt d5efa4bbca 1.56 fix: missing_crate_level_docs -> rusdoc::missing_crate_level_docs 2021-12-26 09:56:14 +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
Ivgeni "Iv" Segal 26885c20d0
Add ability to customize the display of hover plot labels (#934)
* Add ability to customize the display of hover plot labels

* Ergonomic enhancement to plot hover label function

* Use Option instead of empty string for custom hover label name arg

* Revert "Use Option instead of empty string for custom hover label name arg"

This reverts commit 296caebb74b7ee993fbff97187791180d16708af.

Co-authored-by: Ivgeni Segal <ivgeni.segal@tovutiteam.com>
2021-12-25 16:29:29 +01:00
Victor Sergienko d05379902c
#972: ScrollArea::stick_to_bottom() has no effect if ScrollArea is not initialized. (#973) 2021-12-25 16:29:11 +01:00
Jan Haller 5ec14867c8
OrderedFloat refactor (#918)
* Move egui/util/float_ord.rs -> epaint/util/ordered_float.rs

* Implement Hash on OrderedFloat

* Generic OrderedFloat<T>; impl Hash; documentation
2021-12-11 13:52:23 +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
d10sfan 90757ca221
Add Button::image_and_text (#832)
* Support image button with text
* Add example (`cargo run --example native_texture`)
2021-11-13 13:17:02 +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
Bruce Reif (Buswolley) 491739b580
implement vertical slider orientation (#875) 2021-11-13 12:03:10 +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 6018c0e194
Area: automatically request a repaint when showing up for the first time (#866) 2021-11-07 21:14:13 +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 0ab93576da Remove references to the old begin_frame 2021-11-03 23:00:00 +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 eda1d91654 Add culling of the painting for most widgets
This is a good early-out for widgets in `ScrollAreas`, but
also prepares for speeding up the first pass of a possible two-pass
version of egui: https://github.com/emilk/egui/issues/843
2021-11-01 22:08:23 +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 9378cd5c6e ScrollArea: add methods to control horizontal scroll offset
Closes https://github.com/emilk/egui/issues/864
2021-11-01 19:43:27 +01:00
Linus Behrbohm b9368aba13
Fix Response::context_menu return type (#857) 2021-11-01 19:27:51 +01:00
Emil Ernerfeldt 78dfde40b2 Remove deprecated functions 2021-10-30 09:46:06 +02:00
Emil Ernerfeldt b551dfec81 fix broken docstring link 2021-10-29 21:10:53 +02:00
Emil Ernerfeldt 081485bcaf Make it cheaper to clone `Memory` if there are a lot of persisted values 2021-10-27 16:49:08 +02: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 ddd52f47c5 Add tessellation option to toggle rounding text to pixel coordinates
On by default and only there for testing
2021-10-27 08:56:06 +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 bbe0f6089c Context-menu: fix right-click edge-case
response.hovered() checks a larger rect which includes the item spacing,
and it always matches the hover effect.
2021-10-26 20:40:17 +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
Linus Behrbohm 46fb9ff09b
Context menus (#543)
Main usage: `response.context_menu(…)` and `ui.menu_button`
2021-10-26 19:55:42 +02:00