mod draw;
mod size;
mod style;
pub use draw::{Background, DrawMgr, ThemeDraw};
pub use size::{SizeMgr, ThemeSize};
pub use style::*;
#[allow(unused)] use crate::event::EventMgr;
use crate::TkAction;
use std::ops::{Deref, DerefMut};
pub trait ThemeControl {
fn set_font_size(&mut self, pt_size: f32) -> TkAction;
fn set_scheme(&mut self, scheme: &str) -> TkAction;
fn list_schemes(&self) -> Vec<&str>;
fn set_theme(&mut self, _theme: &str) -> TkAction {
TkAction::empty()
}
}
impl<T: ThemeControl> ThemeControl for Box<T> {
fn set_font_size(&mut self, size: f32) -> TkAction {
self.deref_mut().set_font_size(size)
}
fn set_scheme(&mut self, scheme: &str) -> TkAction {
self.deref_mut().set_scheme(scheme)
}
fn list_schemes(&self) -> Vec<&str> {
self.deref().list_schemes()
}
fn set_theme(&mut self, theme: &str) -> TkAction {
self.deref_mut().set_theme(theme)
}
}