#![cfg_attr(not(feature = "experimental"), allow(dead_code, unused_imports))]
mod default_style;
mod style_provider;
mod themes;
pub use self::{default_style::DefaultStyle, style_provider::StyleProvider, themes::Themes};
use crate::{
Ui,
class::Classes,
widget_style::{StyleArgs, WidgetState, WidgetStyle},
};
impl Ui {
#[cfg_attr(not(feature = "experimental"), doc(hidden))]
pub fn widget_style<S: WidgetStyle + Clone + 'static>(
&self,
id: crate::Id,
classes: &Classes,
) -> S {
let state = if let Some(response) = self.read_response(id) {
response.widget_state()
} else {
self.ctx().request_repaint();
WidgetState::default()
};
self.get_widget_style::<S>(&StyleArgs {
classes,
state,
style: self.style(),
stack: self.stack(),
ctx: self,
})
}
}