Emil Ernerfeldt
dd6980bacb
Implement non-proportional multitouch pinch zooming
2021-05-08 23:31:31 +02:00
Emil Ernerfeldt
04d9ce227b
Tidy up multitouch code: remove double spaces after full stop
...
Weirdest thing I've seen in my life.
2021-05-08 22:49:40 +02:00
follower
a5e41f275c
Typo: CollpasingHeaders
-> CollapsingHeaders
( #359 )
2021-05-08 16:24:22 +02:00
Emil Ernerfeldt
5e46bd404c
Some documentation improvements
2021-05-08 09:25:52 +02:00
Luis Wirth
87bc26fb5a
implement mint conversions ( #352 )
...
* Implement mint conversions
Implement conversions for [mint](https://docs.rs/mint ) (math interoperability standard types).
- `impl {From, Into}<mint::Point2> for Pos2`
- `impl {From, Into}<mint::Vector2> for Vec2`
* Forward `mint` feature: egui -> epaint -> emath
2021-05-08 08:17:01 +02:00
Sven Niederberger
838f3e4ff2
Add plot legends ( #349 )
...
* add plot legends
* don't show crosshairs when hovering over legend
* add a toggle for the legend
* changes based on review
* improve legend behavior when curves share names
2021-05-07 10:32:17 +02:00
Emil Ernerfeldt
d862ff66ac
Add Image::sense to let an image respond to clicks and drags
2021-05-06 22:10:05 +02:00
Ivo Vollrath
03721dbfd8
Basic multi touch support (issue #279 ) ( #306 )
...
* translate touch events from glium to egui
Unfortunately, winit does not seem to create _Touch_ events for the touch pad
on my mac. Only _TouchpadPressure_ events are sent.
Found some issues (like
[this](https://github.com/rust-windowing/winit/issues/54 )), but I am not sure
what they exactly mean: Sometimes, touch events are mixed with
touch-to-pointer translation in the discussions.
* translate touch events from web_sys to egui
The are a few open topics:
- egui_web currently translates touch events into pointer events.
I guess this should change, such that egui itself performs this kind of
conversion.
- `pub fn egui_web::pos_from_touch_event` is a public function, but I
would like to change the return type to an `Option`. Shouldn't this
function be private, anyway?
* introduce `TouchState` and `Gesture`
InputState.touch was introduced with type `TouchState`, just as
InputState.pointer is of type `Pointer`.
The TouchState internally relies on a collection of `Gesture`s. This commit
provides the first rudimentary implementation of a Gesture, but has no
functionality, yet.
* add method InputState::zoom()
So far, the method always returns `None`, but it should work as soon as the
`Zoom` gesture is implemented.
* manage one `TouchState` per individual device
Although quite unlikely, it is still possible to connect more than one touch
device. (I have three touch pads connected to my MacBook in total, but
unfortunately `winit` sends touch events for none of them.)
We do not want to mix-up the touches from different devices.
* implement control loop for gesture detection
The basic idea is that each gesture can focus on detection logic and does not
have to care (too much) about managing touch state in general.
* streamline `Gesture` trait, simplifying impl's
* implement first version of Zoom gesture
* fix failing doctest
a simple `TODO` should be enough
* get rid of `Gesture`s
* Provide a Zoom/Rotate window in the demo app
For now, it works for two fingers only. The third finger interrupts the
gesture.
Bugs:
- Pinching in the demo window also moves the window -> Pointer events must be
ignored when touch is active
- Pinching also works when doing it outside the demo window -> it would be nice
to return the touch info in the `Response` of the painter allocation
* fix comments and non-idiomatic code
* update touch state *each frame*
* change egui_demo to use *relative* touch data
* support more than two fingers
This commit includes an improved Demo Window for egui_demo, and a complete
re-write of the gesture detection. The PR should be ready for review, soon.
* cleanup code and comments for review
* minor code simplifications
* oops – forgot the changelog
* resolve comment fee8ed83db (r623226656)
* accept suggestion https://github.com/emilk/egui/pull/306#discussion_r623229228
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
* fix syntax error (dough!)
* remove `dbg!` (why didnt clippy see this?)
* apply suggested diffs from review
* fix conversion of physical location to Pos2
* remove redundanct type `TouchAverages`
* remove trailing space
* avoid initial translation jump in plot demo
* extend the demo so it shows off translation
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
2021-05-06 21:01:10 +02:00
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
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