summaryrefslogtreecommitdiffstats
path: root/style
diff options
context:
space:
mode:
authorLibravatar Joao Freitas <51237625+jhff@users.noreply.github.com>2023-05-16 16:12:29 +0100
committerLibravatar Joao Freitas <51237625+jhff@users.noreply.github.com>2023-05-16 16:12:29 +0100
commit99aa54cd88d7eb99149699d539ee4d59e08047b1 (patch)
treeacf92d0abab84919f0dc660aa234c824a2f96632 /style
parent8e8b1e1eacc4e2c19c9878625f423c8e09e2d3b9 (diff)
downloadiced-99aa54cd88d7eb99149699d539ee4d59e08047b1.tar.gz
iced-99aa54cd88d7eb99149699d539ee4d59e08047b1.tar.bz2
iced-99aa54cd88d7eb99149699d539ee4d59e08047b1.zip
Add pane_grid functionality to split a pane with another pane
Diffstat (limited to 'style')
-rw-r--r--style/src/pane_grid.rs18
-rw-r--r--style/src/theme.rs19
2 files changed, 36 insertions, 1 deletions
diff --git a/style/src/pane_grid.rs b/style/src/pane_grid.rs
index fd8fc05f..ec422e86 100644
--- a/style/src/pane_grid.rs
+++ b/style/src/pane_grid.rs
@@ -1,11 +1,14 @@
//! Change the appearance of a pane grid.
-use iced_core::Color;
+use iced_core::{Background, Color};
/// A set of rules that dictate the style of a container.
pub trait StyleSheet {
/// The supported style of the [`StyleSheet`].
type Style: Default;
+ /// The [`Region`] to draw when a pane is hovered.
+ fn hovered_region(&self, style: &Self::Style) -> Region;
+
/// The [`Line`] to draw when a split is picked.
fn picked_split(&self, style: &Self::Style) -> Option<Line>;
@@ -13,6 +16,19 @@ pub trait StyleSheet {
fn hovered_split(&self, style: &Self::Style) -> Option<Line>;
}
+/// The appearance of the hovered region of a pane grid.
+#[derive(Debug, Clone, Copy)]
+pub struct Region {
+ /// The [`Background`] of the hovered pane region.
+ pub background: Background,
+ /// The border width of the hovered pane region.
+ pub border_width: f32,
+ /// The border [`Color`] of the hovered pane region.
+ pub border_color: Color,
+ /// The border radius of the hovered pane region.
+ pub border_radius: f32,
+}
+
/// A line.
///
/// It is normally used to define the highlight of something, like a split.
diff --git a/style/src/theme.rs b/style/src/theme.rs
index d9893bcf..c7b2bada 100644
--- a/style/src/theme.rs
+++ b/style/src/theme.rs
@@ -703,6 +703,25 @@ pub enum PaneGrid {
impl pane_grid::StyleSheet for Theme {
type Style = PaneGrid;
+ fn hovered_region(&self, style: &Self::Style) -> pane_grid::Region {
+ match style {
+ PaneGrid::Default => {
+ let palette = self.extended_palette();
+
+ pane_grid::Region {
+ background: Background::Color(Color {
+ a: 0.5,
+ ..palette.primary.base.color
+ }),
+ border_width: 2.0,
+ border_color: palette.primary.strong.color,
+ border_radius: 0.0,
+ }
+ }
+ PaneGrid::Custom(custom) => custom.hovered_region(self),
+ }
+ }
+
fn picked_split(&self, style: &Self::Style) -> Option<pane_grid::Line> {
match style {
PaneGrid::Default => {