Emil Ernerfeldt
462f181db3
Partial font texture update ( #1149 )
2022-01-22 11:23:12 +01:00
Juan Campa
343f7da564
Add ability to override collapsing icons ( #1147 )
2022-01-22 10:32:02 +01:00
Emil Ernerfeldt
199bbef77b
Add misc documentation
2022-01-22 09:07:41 +01:00
Emil Ernerfeldt
a689b623a6
Make shift-scroll do horizontal scrolling on all platforms ( #1136 )
...
Closes https://github.com/emilk/egui/issues/1135
2022-01-21 10:48:44 +01:00
Dusty DeWeese
e4aa1e6e1a
Make color_picker_hsva_2d
public. ( #1091 )
...
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
2022-01-19 11:28:26 +01:00
Emil Ernerfeldt
39dd6d7644
clippy fixes
2022-01-17 19:57:32 +01:00
BctfN0HUK7Yg
87ac7446da
Add new function to animate f32 values ( #1039 )
...
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
2022-01-17 14:57:09 +01:00
BctfN0HUK7Yg
d6b32b7956
Add set margin method to TextEdit ( #1104 )
2022-01-17 14:56:27 +01:00
Mingun
87ae77aab0
Add some improvements in the documentation ( #1056 )
...
* Better documentation for align.rs
* Document some painting methods
* Fix broken intra-doc links
* Add some internal documentation for Window TitleBar
2022-01-16 22:06:28 +01:00
Juan Campa
624e2fcfc1
Follow style for corner radius for SelectableLabel
2022-01-16 22:04:11 +01:00
Emil Ernerfeldt
ad5418777d
Fix dead-lock in TextEdit on touch-screens ( #1118 )
...
Introduced in https://github.com/emilk/egui/pull/1035
Fixes https://github.com/emilk/egui/issues/1116
2022-01-15 22:40:53 +01:00
Emil Ernerfeldt
b2c8cd0867
Simplify http demo and add new download_image eframe demo
2022-01-15 20:34:03 +01:00
Emil Ernerfeldt
66d80e2519
Texture loading in egui ( #1110 )
...
* Move texture allocation into epaint/egui proper
* Add TextureHandle
* egui_glow: cast using bytemuck instead of unsafe code
* Optimize glium painter
* Optimize WebGL
* Add example of loading an image from file
2022-01-15 13:59:52 +01:00
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
Emil Ernerfeldt
1f93c7b0b6
Implement Clone & PartialEq on RichText WidgetTextJob WidgetTextGalley
2022-01-07 15:22:21 +01:00
Lampsitter
b0ea4dc0b5
Fix context menu styling ( #1043 )
2022-01-06 12:17:12 +01:00
Emil Ernerfeldt
7863f44111
Add demo of advanced TextEdit usage
2022-01-06 11:53:23 +01:00
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
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
316202c33a
egui_web: improve text input on mobile and for IME
2021-10-24 15:57:36 +02:00
Emil Ernerfeldt
9a9b1b8746
On touch screens, prioritize drag-to-scroll over drag-to-select text
...
On mobile, click first, then edit the text.
Otherwise a lot of areas become difficult to scroll on mobile.
2021-10-24 15:26:40 +02:00
Emil Ernerfeldt
da09a5c69c
Fix compilation with "serialize" feature without "persistence" feature
2021-10-23 15:12:39 +02:00
Emil Ernerfeldt
39c6c7e5c9
Small code cleanup
2021-10-23 06:03:45 +02:00
Emil Ernerfeldt
a3ba85dbb3
Improve docs
2021-10-23 06:03:45 +02:00
Emil Ernerfeldt
4194a83a5e
Update ron 0.6 -> 0.7
2021-10-23 05:53:58 +02:00
Emil Ernerfeldt
5d463b2af7
Remove serde_json from egui dev-dependencies
2021-10-23 04:47:17 +02:00
Emil Ernerfeldt
dd50cba9a7
Optimize debug builds
2021-10-20 21:58:35 +02:00
Emil Ernerfeldt
d97a369c44
End statements with semicolon (clippy::semicolon_if_nothing_returned)
2021-10-20 16:46:57 +02:00
Emil Ernerfeldt
40445c450c
use map_or and map_or_else
2021-10-20 16:46:57 +02:00
Emil Ernerfeldt
a0cd41755e
Add more clippy lints
2021-10-20 16:30:39 +02:00
Emil Ernerfeldt
72d483ac22
repaint when pixels_per_point changes
2021-10-20 13:54:36 +02:00
Emil Ernerfeldt
8178d23d19
Deduplicate code found in both egui_glium and egui_glow ( #819 )
...
* Move window building to egui-winit
* Move icon loading to egui-winit
* `use glow::HasContext;` -> `use glow::HasContext as _;`
* Move FileStorage into epi behind a feature flag
* De-duplicate screen_size_in_pixels and native_pixels_per_point
* Move creation of FileStorage to epi
* Handle epi app output (window size changes etc) in egui-winit
* Move app and memory persistence and autosave logic to egui-winit
* fix check.sh
* Make the epi backend opt-in for egui_glium and egui_glow
* Fix persistence
* Add integration name to epi::IntegrationInfo and the demo
* Clean up Cargo.toml files and fix making egui_glium optional
* fix typo
* Make egui_glium compile without the `epi` feature
2021-10-19 21:40:55 +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
ebd2c859ac
Make multi-touch demo a bit nicer looking
2021-10-18 21:00:25 +02:00
Emil Ernerfeldt
96be848e42
rename egui_template to eframe_template
2021-10-18 20:19:43 +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
7e0bb18152
More #[inline]
2021-10-17 20:56:37 +02:00
Emil Ernerfeldt
ef218e8ba8
Panels: make Side
and TopBottomSide
public
...
Closes https://github.com/emilk/egui/issues/799
2021-10-16 15:35:07 +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
Emil Ernerfeldt
85941033e8
Simplify and improve http demo app
...
Move demo of POST to the ehttp crate instead
2021-10-13 11:47:57 +02:00
Emil Ernerfeldt
fe2094af14
Fix visual clipping of singleline TextEdit
2021-10-12 22:35:31 +02:00
Emil Ernerfeldt
c42afd3941
Fix missing spaces between labels in horizontal layouts
2021-10-12 22:23:53 +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
fc45b6fdf2
Fix scroll area size clipping to screen rect
2021-10-10 17:14:22 +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
88d087b462
Fix bad docstring
2021-10-09 15:55:18 +02:00
Emil Ernerfeldt
bc54a49413
Optimization: use IdHasher for AnyMap
2021-10-09 15:55:18 +02:00