#![allow(unused_imports)]
use std::time::Duration;
use crate::{
elements::{Element, ThemeElement},
foundation::{colorspace::Color, Id, Key, ValueChanged, WidgetProperties},
painting::{
BorderRadius, BoxShape, EdgeInsetsGeometry, ImageProvider, NoneEdgeInsetsGeometry,
NoneShapeBorder, ShapeBorder,
},
services::MouseCursor,
ui::{Brightness, Clip, VoidCallback},
widgets::{FocusNode, NoneImage, NoneWidget, Widget},
};
use super::{
ButtonTextTheme, InteractiveInkFeatureFactory, MaterialStateProperty, MaterialTapTargetSize,
ThemeData, VisualDensity,
};
pub struct Theme {
pub child: Box<dyn Widget>,
pub data: ThemeData,
pub key: Key,
}
impl Default for Theme {
fn default() -> Self {
Self {
child: box NoneWidget,
data: Default::default(),
key: Default::default(),
}
}
}
impl Widget for Theme {
fn create_element(&self) -> Box<dyn Element> {
box ThemeElement::new(self)
}
}
impl WidgetProperties for Theme {
fn key(&self) -> &Key {
&self.key
}
fn x(&self) -> f32 {
0.0
}
fn y(&self) -> f32 {
0.0
}
fn w(&self) -> f32 {
0.0
}
fn h(&self) -> f32 {
0.0
}
fn w_min(&self) -> f32 {
0.0
}
fn h_min(&self) -> f32 {
0.0
}
fn w_max(&self) -> f32 {
0.0
}
fn h_max(&self) -> f32 {
0.0
}
fn parent(&self) -> Option<Id> {
None
}
fn depth(&self) -> f32 {
0.0
}
fn visible(&self) -> bool {
true
}
fn mouse_input(&self) -> bool {
true
}
fn key_input(&self) -> bool {
true
}
fn renderable(&self) -> bool {
true
}
fn internal_visible(&self) -> bool {
true
}
}