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
b31ca7efc9
PR template: remind people to run cargo fmt
and cargo clippy
2021-10-25 23:21:39 +02:00
Emil Ernerfeldt
445488755f
Point contributors to the new egui Discord
2021-10-25 23:20:42 +02:00
Emil Ernerfeldt
c335c56de1
dancing_string demo: handle large input.time
...
casting time to f32 is a bad idea if the time is seconds since epoch
as it is on some integrations.
2021-10-24 18:38:44 +02:00
Emil Ernerfeldt
c090497727
Add 0.15.0 release code editor gif used in CHANGELOG.md
2021-10-24 17:15:23 +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
c3f61b67fe
New web demo
2021-10-24 16:00:56 +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
17f0ae22c9
Code example demo: remove extra ScrollArea
2021-10-23 15:36:25 +02:00
Emil Ernerfeldt
da09a5c69c
Fix compilation with "serialize" feature without "persistence" feature
2021-10-23 15:12:39 +02:00
Emil Ernerfeldt
4ace85b780
Fix: '\t' always take up the width of four spaces
2021-10-23 14:38:26 +02:00
Emil Ernerfeldt
96b642a7f5
Improve issue template instructions
2021-10-23 13:57:58 +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
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
5301043a77
cargo update
2021-10-23 05:51:56 +02:00
Emil Ernerfeldt
6185ee8ce4
Demo: add button to reset the demo
2021-10-23 05:50:42 +02:00
Emil Ernerfeldt
5d463b2af7
Remove serde_json from egui dev-dependencies
2021-10-23 04:47:17 +02:00
Caleb Smith
79d1ede496
Add Frame::set_window_title()
( #828 )
...
* Add `Frame::set_window_title()`
* Changelog and fmt for `Frame::set_window_title()`
Co-authored-by: Caleb Smith <caleb@myrvmail.com>
2021-10-23 00:03:17 +02:00
Emil Ernerfeldt
26c6cea117
Credit notable contributors
...
@n2 @optozorax @quadruple-output @EmbersArc @AsmPrgmC3 @AlexApps99
Chosen for their substantial contributions
2021-10-23 00:02:21 +02:00
sumibi-yakitori
19766bfe4c
Fix when a string containing CRLF is pasted from the clipboard ( #826 )
2021-10-20 22:26:26 +02:00
Emil Ernerfeldt
2a9037cd90
Clean up epaint mutex code
2021-10-20 22:24:34 +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
ab3be8aca3
Use for-loop instead of Iterator::for_each
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
087c6695bb
Handle having no fonts (missing "default_fonts" feature) without a crash
2021-10-20 15:40:06 +02:00
Emil Ernerfeldt
19a2a57f80
Rename and clean-up the "pure" glium and glow examples
2021-10-20 15:05:41 +02:00
Emil Ernerfeldt
dd5d41d04e
Improve backend panel in demo
2021-10-20 13:54:56 +02:00
Emil Ernerfeldt
72d483ac22
repaint when pixels_per_point changes
2021-10-20 13:54:36 +02:00
Emil Ernerfeldt
3ba406c0fe
egui-winit: restore window position accurately
...
previous code had mixed up inner and outer coordinates
2021-10-20 13:54:08 +02:00
Emil Ernerfeldt
f025513998
Code example demo ( #823 )
2021-10-20 12:34:27 +02:00
Emil Ernerfeldt
8accfd9a8f
Clean up egui_glow painter code
2021-10-20 12:29:35 +02:00
Emil Ernerfeldt
da74687be5
egui-winit: fix windows compilation with use WindowBuilderExtWindows
...
Closes https://github.com/emilk/egui/pull/821
2021-10-20 09:51:21 +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
844dd9d7a4
Remove "seconds_since_midnight" from epi/eframe. Use chrono instead
...
chrono works both natively and on web.
Related: https://github.com/emilk/egui/issues/212
2021-10-19 15:37:20 +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
cf273e3519
Fix glow window resize bug
2021-10-18 23:39:33 +02:00
AlexApps99
877e89f2ec
Add egui_glow backend as alternative to egui_glium ( #685 )
2021-10-18 23:13:32 +02:00
Emil Ernerfeldt
df3aeab434
Update egui_glium and egui_web changelogs
2021-10-18 23:13:13 +02:00
Connor Fitzgerald
74494cd713
Add clear to webgl1 and webgl2 backends ( #816 )
...
Signed-off-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2021-10-18 23:10:30 +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