diff options
author | 2021-01-01 15:28:38 +0100 | |
---|---|---|
committer | 2021-01-01 15:28:38 +0100 | |
commit | a7bb7bb2eaaae5a016721788fcaf03c4c7413acd (patch) | |
tree | 624c5cc45010ec5f08832f0b8288499267878969 /style | |
parent | f8aef03456ecc185098b6305a8cd0e22f5297d06 (diff) | |
download | iced-a7bb7bb2eaaae5a016721788fcaf03c4c7413acd.tar.gz iced-a7bb7bb2eaaae5a016721788fcaf03c4c7413acd.tar.bz2 iced-a7bb7bb2eaaae5a016721788fcaf03c4c7413acd.zip |
Implement split highlight on hover for `PaneGrid`
Diffstat (limited to 'style')
-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) + } +} |