diff options
| author | 2021-01-04 19:33:26 +0100 | |
|---|---|---|
| committer | 2021-01-04 19:33:26 +0100 | |
| commit | 2665860b4ddff773bca9959fe828776ecb03ab7d (patch) | |
| tree | 624c5cc45010ec5f08832f0b8288499267878969 /style/src | |
| parent | f8aef03456ecc185098b6305a8cd0e22f5297d06 (diff) | |
| parent | a7bb7bb2eaaae5a016721788fcaf03c4c7413acd (diff) | |
| download | iced-2665860b4ddff773bca9959fe828776ecb03ab7d.tar.gz iced-2665860b4ddff773bca9959fe828776ecb03ab7d.tar.bz2 iced-2665860b4ddff773bca9959fe828776ecb03ab7d.zip  | |
Merge pull request #678 from hecrj/feature/pane-grid-split-highlight
Split highlight for the `PaneGrid` widget
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) +    } +}  | 
