mirror of
https://github.com/emilk/egui.git
synced 2026-08-29 12:50:04 -04:00
Renaming, comment & better default system
This commit is contained in:
@@ -2,9 +2,9 @@ use std::collections::HashMap;
|
||||
|
||||
use eframe::egui::{
|
||||
Color32,
|
||||
theme_plugin::{ThemeCache, ThemeStyle},
|
||||
theme_plugin::{ThemeCache, ThemeStyle, Themes},
|
||||
widget_style::{
|
||||
ButtonStyle, Classes, HasClasses as _, StyleStruct as _, WidgetState, WidgetStyle,
|
||||
BaseStyle, ButtonStyle, Classes, HasClasses as _, WidgetState, WidgetStyle as _,
|
||||
},
|
||||
};
|
||||
use logos::Logos;
|
||||
@@ -79,16 +79,16 @@ impl ESSEngine {
|
||||
}
|
||||
|
||||
/// This implementation basically do nothing. This is only the minimum requirement with caching.
|
||||
impl ThemeStyle<WidgetStyle> for ESSEngine {
|
||||
fn style(&mut self, classes: &Classes, state: WidgetState) -> WidgetStyle {
|
||||
self.cache.get(classes, state, || {
|
||||
WidgetStyle::default_style(classes, state)
|
||||
})
|
||||
impl ThemeStyle<BaseStyle> for ESSEngine {
|
||||
fn style(&mut self, themes: &Themes, classes: &Classes, state: WidgetState) -> BaseStyle {
|
||||
let current = themes.get::<BaseStyle>(classes, state);
|
||||
self.cache
|
||||
.get(classes, state, || BaseStyle::default_style(classes, state))
|
||||
}
|
||||
}
|
||||
|
||||
impl ThemeStyle<ButtonStyle> for ESSEngine {
|
||||
fn style(&mut self, classes: &Classes, state: WidgetState) -> ButtonStyle {
|
||||
fn style(&mut self, themes: &Themes, classes: &Classes, state: WidgetState) -> ButtonStyle {
|
||||
self.cache.get(classes, state, || {
|
||||
let mut default = ButtonStyle::default_style(classes, state);
|
||||
for classe in classes.list() {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] // hide console window on Windows in release
|
||||
#![expect(rustdoc::missing_crate_level_docs)] // it's an example
|
||||
|
||||
use eframe::egui::widget_style::WidgetStyle;
|
||||
use eframe::egui::widget_style::BaseStyle;
|
||||
use eframe::egui::{
|
||||
self, Button, Frame, Margin, Panel, UiBuilder,
|
||||
widget_style::{ButtonStyle, HasClasses as _},
|
||||
@@ -36,8 +36,8 @@ fn main() -> eframe::Result {
|
||||
eframe::run_ui_native("My egui App", options, move |ui, _frame| {
|
||||
// Register the theme plugin and which style they implement
|
||||
if let Ok(engine) = ESSEngine::try_parse(&style_code) {
|
||||
ui.add_theme::<WidgetStyle>(engine.clone());
|
||||
ui.add_theme::<ButtonStyle>(engine);
|
||||
ui.add_widget_theme::<BaseStyle>(engine.clone());
|
||||
ui.add_widget_theme::<ButtonStyle>(engine);
|
||||
}
|
||||
|
||||
ui.scope_builder(UiBuilder::new().with_class("body"), |ui| {
|
||||
@@ -54,8 +54,8 @@ fn main() -> eframe::Result {
|
||||
&& let Ok(engine) = ESSEngine::try_parse(&style_code)
|
||||
{
|
||||
// Overwrite the current theme with the new one.clear
|
||||
ui.replace_theme::<WidgetStyle>(engine.clone());
|
||||
ui.replace_theme::<ButtonStyle>(engine);
|
||||
ui.replace_widget_theme::<BaseStyle>(engine.clone());
|
||||
ui.replace_widget_theme::<ButtonStyle>(engine);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user