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:
@@ -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,
|
||||||
|
|||||||
@@ -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" => {
|
||||||
|
|||||||
@@ -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,
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user