diff options
Diffstat (limited to '')
| -rw-r--r-- | style/src/lib.rs | 1 | ||||
| -rw-r--r-- | style/src/pane_grid.rs | 51 | 
2 files changed, 52 insertions, 0 deletions
diff --git a/style/src/lib.rs b/style/src/lib.rs index 7e0a9f49..f09b5f9d 100644 --- a/style/src/lib.rs +++ b/style/src/lib.rs @@ -10,6 +10,7 @@ pub mod button;  pub mod checkbox;  pub mod container;  pub mod menu; +pub mod pane_grid;  pub mod pick_list;  pub mod progress_bar;  pub mod radio; diff --git a/style/src/pane_grid.rs b/style/src/pane_grid.rs new file mode 100644 index 00000000..e39ee797 --- /dev/null +++ b/style/src/pane_grid.rs @@ -0,0 +1,51 @@ +//! Let your users split regions of your application and organize layout +//! dynamically. +use iced_core::Color; + +/// A set of rules that dictate the style of a container. +pub trait StyleSheet { +    /// The [`Line`] to draw when a split is picked. +    fn picked_split(&self) -> Option<Line>; + +    /// The [`Line`] to draw when a split is hovered. +    fn hovered_split(&self) -> Option<Line>; +} + +/// A line. +/// +/// It is normally used to define the highlight of something, like a split. +#[derive(Debug, Clone, Copy, PartialEq)] +pub struct Line { +    /// The [`Color`] of the [`Line`]. +    pub color: Color, + +    /// The width of the [`Line`]. +    pub width: f32, +} + +struct Default; + +impl StyleSheet for Default { +    fn picked_split(&self) -> Option<Line> { +        None +    } + +    fn hovered_split(&self) -> Option<Line> { +        None +    } +} + +impl std::default::Default for Box<dyn StyleSheet> { +    fn default() -> Self { +        Box::new(Default) +    } +} + +impl<T> From<T> for Box<dyn StyleSheet> +where +    T: 'static + StyleSheet, +{ +    fn from(style: T) -> Self { +        Box::new(style) +    } +}  | 
