mirror of
https://github.com/emilk/egui.git
synced 2026-08-29 04:40:03 -04:00
remove deadlock from example
This commit is contained in:
@@ -76,17 +76,14 @@ impl ESSEngine {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// This implementation basically do nothing. This is only the minimum requirement with caching.
|
|
||||||
impl ThemeStyle<BaseStyle> for ESSEngine {
|
|
||||||
fn style(&mut self, ui: &Ui, classes: &Classes, state: WidgetState) -> BaseStyle {
|
|
||||||
ui.get_widget_style::<BaseStyle>(classes, state)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl ThemeStyle<ButtonStyle> for ESSEngine {
|
impl ThemeStyle<ButtonStyle> for ESSEngine {
|
||||||
fn style(&mut self, ui: &Ui, classes: &Classes, state: WidgetState) -> ButtonStyle {
|
fn style(&mut self, ui: &Ui, classes: &Classes, state: WidgetState) -> ButtonStyle {
|
||||||
self.cache.get(classes, state, || {
|
self.cache.get(classes, state, || {
|
||||||
let mut default = ui.get_widget_style::<ButtonStyle>(classes, state);
|
let base = ui.get_widget_style::<BaseStyle>(classes, state);
|
||||||
|
let mut default = ButtonStyle {
|
||||||
|
frame: base.frame,
|
||||||
|
text_style: base.text,
|
||||||
|
};
|
||||||
for class in classes.list() {
|
for class in classes.list() {
|
||||||
if let Some(properties) = self.info.get(&class.to_string()) {
|
if let Some(properties) = self.info.get(&class.to_string()) {
|
||||||
for (property, value) in properties {
|
for (property, value) in properties {
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] // hide console window on Windows in release
|
#![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
|
#![expect(rustdoc::missing_crate_level_docs)] // it's an example
|
||||||
|
|
||||||
use eframe::egui::widget_style::BaseStyle;
|
|
||||||
use eframe::egui::{
|
use eframe::egui::{
|
||||||
self, Button, Frame, Margin, Panel, UiBuilder,
|
self, Button, Frame, Margin, Panel, UiBuilder,
|
||||||
widget_style::{ButtonStyle, HasClasses as _},
|
widget_style::{ButtonStyle, HasClasses as _},
|
||||||
@@ -36,7 +35,6 @@ fn main() -> eframe::Result {
|
|||||||
eframe::run_ui_native("My egui App", options, move |ui, _frame| {
|
eframe::run_ui_native("My egui App", options, move |ui, _frame| {
|
||||||
// Register the theme plugin and which style they implement
|
// Register the theme plugin and which style they implement
|
||||||
if let Ok(engine) = ESSEngine::try_parse(&style_code) {
|
if let Ok(engine) = ESSEngine::try_parse(&style_code) {
|
||||||
ui.add_widget_theme::<BaseStyle>(engine.clone());
|
|
||||||
ui.add_widget_theme::<ButtonStyle>(engine);
|
ui.add_widget_theme::<ButtonStyle>(engine);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -54,7 +52,6 @@ fn main() -> eframe::Result {
|
|||||||
&& let Ok(engine) = ESSEngine::try_parse(&style_code)
|
&& let Ok(engine) = ESSEngine::try_parse(&style_code)
|
||||||
{
|
{
|
||||||
// Overwrite the current theme with the new one.clear
|
// Overwrite the current theme with the new one.clear
|
||||||
ui.replace_widget_theme::<BaseStyle>(engine.clone());
|
|
||||||
ui.replace_widget_theme::<ButtonStyle>(engine);
|
ui.replace_widget_theme::<ButtonStyle>(engine);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user