* Refactor repaint logic
* request_repaint_after also fires the request_repaint callback
* Bug fixes
* Add test to egui_demo_app
* build_demo_web: build debug unless --release is specified
* Fix the web backend too
* Run special clippy for wasm, forbidding some types/methods
* Remove wasm_bindgen_check.sh
* Fix typos
* Revert "Remove wasm_bindgen_check.sh"
This reverts commit 92dde25344.
* Only run cranky/clippy once
* add method for requesting attention to the main window
* use another enum member for user attention type instead of nested `Option`s
(also, document the enum members now that they don't mirror `winit`)
* update the docstring
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
* add an example app for testing window attention requests
* Apply suggestions from code review
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
* remove `chrono` dependency and improve the attention example's readability
---------
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
It is very easy for keys to become stuck when we alt-tab,
or a save-dialog opens by Ctrl+S, etc.
Therefore we new clear all the modifiers and down keys to avoid that.
* Replace tracing crate with log
It's just so much simpler to use
* Add `bacon wasm` job
* eframe: add a WebLogger for piping log events to the web console
* Set whether zooming allowed for x and y separately
* Set whether dragging allowed for x and y separately
* Add disclaimers about interaction with data_aspect
* Show zoom & drag behavior in plot demo/charts instead of context menu demo
* Code review suggestions - use AxisBools::any()
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
* Simplify allow_drag and allow_zoom APIs to take in Into<AxisBools>
* Remove unnecessary using...
* Remove unrelated change
---------
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
* improve plot groups and bounds handling
* changelog entry
* fix potential deadlock
* fix two more potential deadlocks
* syntax fix
* move changelog entry
* move category
* Update crates/egui/src/widgets/plot/mod.rs
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
* Update crates/egui_demo_lib/src/demo/plot_demo.rs
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
* clean up suggestions
* address comments
* use the new methods
* fix locked bounds
* Sync bounds_modified along with the bounds themselves
* move changelog entry
* Remove set_bounds_auto - not necessary any more
* add a comment about bounds modifications
---------
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
Co-authored-by: Jackson Kruger <jackson@farprobe.com>
* Add raw mouse wheel event
The event is sent as it comes from the backend, so it will follow
different conventions depending on the target, and it is up to the user
code to deal with that. The goal is to allow advanced users to implement
alternative UI controls, e.g., using Ctrl to scroll the plot
horizontally instead of zooming, or use Shift to scroll faster instead
of changing direction.
* Change Pixel to Point for consistency
Apply suggestions from code review by emilk
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
* Inline mouse wheel raw event closure
It was meant only to be able to use the same variable names without
shadowing the rest of the code, but a simple block accomplishes the same
thing.
* Use wildcard on wheel event match
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
* Flip mouse wheel delta sign on web to match native
* Use wheel event data to generate scroll event
To avoid doing the same match and sign conversion twice.
---------
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
* Add char_limit to TextEdit
* Use match statement instead
* Update CHANGELOG.md
* Fixed panics
Updated to fix panics for UTF-8 characters and subtract overflow
* Inline code in insert_text
* feat: simple grid row color picker
* feat: allow painting initial grid row
* avoid coloring callback for striped when not needed
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
* fix: switch from rgba to color32 for row grid color assignment
* fix warning
* make `paint_row` private
---------
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
* Make `IdTypeMap::get_temp` use immutable `self`
* Add note to `IdTypeMap::get_persisted` about mutability
* Add mention of `ArcSwap` in `IdTypeMap` docs
* Fix formatting with `cargo fmt`
Calling the layer painter from inside a write() call causes a deadlock
on the Context. This change stores the necessary data (the two
overlapping Rects) in the write() call but uses them outside.
Closes#2752
* make dragvalue textedit style consistent with button
* fix comments & fix wrong interactive cursor pos
* * apply button_padding to textedit
* support vertical align
* add same min size as button to avoid unintented height shrink
* slider: add trailing_color toggle
* slider/visuals: add global option in visuals with override toggle
* slider: add to demos
* use `.unwrap_or_else()` instead of match
* Remove native screen reader support
Use the "accesskit" feature flag to `eframe` instead.
[AccessKit](https://github.com/AccessKit/accesskit) is the future.
`tts` was a mess to compile on many platforms, so I no longer want
the native `tts` dependency.
* Update tts to 0.25
* Update changelogs
* Turn on all feature flags for package.metadata.docs.rs
* remove tts from deny.toml skip-tree
* Update web build scripts
* Update deny.toml
* Add Separator::grow and Separator::shrink
* Be more conservative with the clipping in ScrollArea:s
* Add test of the growing separator
* Improve test output
* Update changelog
* Add back a little bit more clipping
* Make the minimum scroll handle length a bit longer
* More clip rect tweaks