mirror of
https://github.com/emilk/egui.git
synced 2026-08-29 12:50:04 -04:00
remove style in parameter + cleanup
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
use std::collections::HashMap;
|
||||
|
||||
use eframe::egui::{
|
||||
Color32, Style,
|
||||
Color32,
|
||||
theme_plugin::{ThemeCache, ThemeStyle},
|
||||
widget_style::{
|
||||
ButtonStyle, Classes, HasClasses as _, StyleStruct as _, WidgetState, WidgetStyle,
|
||||
@@ -78,17 +78,19 @@ 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, base: &Style) -> WidgetStyle {
|
||||
self.cache
|
||||
.get(classes, state, || base.widget_style(classes, state))
|
||||
fn style(&mut self, classes: &Classes, state: WidgetState) -> WidgetStyle {
|
||||
self.cache.get(classes, state, || {
|
||||
WidgetStyle::default_style(classes, state)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
impl ThemeStyle<ButtonStyle> for ESSEngine {
|
||||
fn style(&mut self, classes: &Classes, state: WidgetState, base: &Style) -> ButtonStyle {
|
||||
fn style(&mut self, classes: &Classes, state: WidgetState) -> ButtonStyle {
|
||||
self.cache.get(classes, state, || {
|
||||
let mut default = ButtonStyle::default_style(classes, state, base);
|
||||
let mut default = ButtonStyle::default_style(classes, state);
|
||||
for classe in classes.list() {
|
||||
if let Some(properties) = self.info.get(&classe.to_string()) {
|
||||
for (property, value) in properties {
|
||||
|
||||
@@ -53,12 +53,10 @@ fn main() -> eframe::Result {
|
||||
if ui.text_edit_multiline(&mut style_code).changed()
|
||||
&& 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);
|
||||
}
|
||||
|
||||
// Should find a way to detect if a change is made on a plugin
|
||||
// Maybe by saving the plugin in the system instead and invalidating the cache when it's pulled as mut ?
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user