1
0
mirror of https://github.com/emilk/egui.git synced 2026-09-02 06:40:06 -04:00

update test and custom engine

This commit is contained in:
adrien
2026-06-26 07:48:40 +02:00
parent ee23a6e9e9
commit 363564eefa
3 changed files with 10 additions and 13 deletions

View File

@@ -2056,7 +2056,7 @@ impl Context {
} }
/// Compute the [`WidgetStyle`] using the registered theme. /// Compute the [`WidgetStyle`] using the registered theme.
pub(crate) fn get_widget_style<S: WidgetStyle + Clone + 'static>( pub fn get_widget_style<S: WidgetStyle + Clone + 'static>(
&self, &self,
classes: &Classes, classes: &Classes,
state: WidgetState, state: WidgetState,

View File

@@ -3,9 +3,7 @@ use std::collections::HashMap;
use eframe::egui::{ use eframe::egui::{
Color32, Color32,
theme_plugin::{ThemeCache, ThemeStyle, Themes}, theme_plugin::{ThemeCache, ThemeStyle, Themes},
widget_style::{ widget_style::{BaseStyle, ButtonStyle, Classes, HasClasses as _, WidgetState},
BaseStyle, ButtonStyle, Classes, HasClasses as _, WidgetState, WidgetStyle as _,
},
}; };
use logos::Logos; use logos::Logos;
@@ -81,18 +79,16 @@ impl ESSEngine {
/// This implementation basically do nothing. This is only the minimum requirement with caching. /// This implementation basically do nothing. This is only the minimum requirement with caching.
impl ThemeStyle<BaseStyle> for ESSEngine { impl ThemeStyle<BaseStyle> for ESSEngine {
fn style(&mut self, themes: &Themes, classes: &Classes, state: WidgetState) -> BaseStyle { fn style(&mut self, themes: &Themes, classes: &Classes, state: WidgetState) -> BaseStyle {
let current = themes.get::<BaseStyle>(classes, state); themes.get::<BaseStyle>(classes, state)
self.cache
.get(classes, state, || BaseStyle::default_style(classes, state))
} }
} }
impl ThemeStyle<ButtonStyle> for ESSEngine { impl ThemeStyle<ButtonStyle> for ESSEngine {
fn style(&mut self, themes: &Themes, classes: &Classes, state: WidgetState) -> ButtonStyle { fn style(&mut self, themes: &Themes, classes: &Classes, state: WidgetState) -> ButtonStyle {
self.cache.get(classes, state, || { self.cache.get(classes, state, || {
let mut default = ButtonStyle::default_style(classes, state); let mut default = themes.get::<ButtonStyle>(classes, state);
for classe in classes.list() { for class in classes.list() {
if let Some(properties) = self.info.get(&classe.to_string()) { if let Some(properties) = self.info.get(&class.to_string()) {
for (property, value) in properties { for (property, value) in properties {
match property.as_str() { match property.as_str() {
"fill" => { "fill" => {

View File

@@ -1,5 +1,6 @@
use egui::{ use egui::{
Align, Atom, AtomExt as _, AtomLayout, Button, Direction, Frame, Layout, TextWrapMode, Ui, Vec2, Align, Atom, AtomExt as _, AtomLayout, Button, Direction, Frame, Layout, TextWrapMode, Ui,
Vec2, widget_style::ButtonStyle,
}; };
use egui_kittest::{HarnessBuilder, SnapshotResult, SnapshotResults}; use egui_kittest::{HarnessBuilder, SnapshotResult, SnapshotResults};
@@ -129,8 +130,8 @@ fn test_atom_layout_nesting_and_direction() {
let style = ui.style(); let style = ui.style();
let canvas_frame = Frame::canvas(style); let canvas_frame = Frame::canvas(style);
let button_frame = style let button_frame = ui
.button_style( .get_widget_style::<ButtonStyle>(
&egui::widget_style::Classes::default(), &egui::widget_style::Classes::default(),
egui::widget_style::WidgetState::Inactive, egui::widget_style::WidgetState::Inactive,
) )