mirror of
https://github.com/emilk/egui.git
synced 2026-08-29 04:40:03 -04:00
<!-- Please read the "Making a PR" section of [`CONTRIBUTING.md`](https://github.com/emilk/egui/blob/main/CONTRIBUTING.md) before opening a Pull Request! * Keep your PR:s small and focused. * The PR title is what ends up in the changelog, so make it descriptive! * If applicable, add a screenshot or gif. * If it is a non-trivial addition, consider adding a demo for it to `egui_demo_lib`, or a new example. * Do NOT open PR:s from your `master` branch, as that makes it hard for maintainers to test and add commits to your PR. * Remember to run `cargo fmt` and `cargo clippy`. * Open the PR as a draft until you have self-reviewed it and run `./scripts/check.sh`. * When you have addressed a PR comment, mark it as resolved. Please be patient! I will review your PR, but my time is limited! --> # What it does Addition of a new system of theme plugins which allow the user to use different rules engine to compute the style for the available specialised widget style. # How to use Create a engine implementing the trait `ThemePlugin` and `ThemeStyle<S: StyleStruct>` and implement the necessary methods, then register this way (example for `ButtonStyle`): ```ui.add_theme::<ButtonStyle>(&mycustomengine);``` Now all button will call the `ThemeStyle<ButtonStyle>` method to compute the correct style and later use the cached value to avoid the costly computation. If no valid `ThemeStyle<S>` or engine is available then it fallback to the default style. * Closes part of <https://github.com/emilk/egui/issues/3284> * [x] I have followed the instructions in the PR template --------- Co-authored-by: adrien <221212@umons.ac.be> Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> Co-authored-by: Lucas Meurer <hi@lucasmerlin.me>
21 lines
537 B
TOML
21 lines
537 B
TOML
[package]
|
|
name = "styling_engine"
|
|
version = "0.1.0"
|
|
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
|
license = "MIT OR Apache-2.0"
|
|
edition = "2024"
|
|
rust-version = "1.92"
|
|
publish = false
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
|
|
[dependencies]
|
|
eframe = { workspace = true, features = [
|
|
"default",
|
|
"__screenshot", # __screenshot is so we can dump a screenshot using EFRAME_SCREENSHOT_TO
|
|
"experimental", # this example is all about the experimental theming API
|
|
] }
|
|
env_logger = { workspace = true, features = ["auto-color", "humantime"] }
|