Merge branch 'master' into advanced-text
This commit is contained in:
commit
4bae457c37
73 changed files with 1586 additions and 703 deletions
|
|
@ -37,12 +37,16 @@ pub trait StyleSheet {
|
|||
/// Produces the style of an active scrollbar.
|
||||
fn active(&self, style: &Self::Style) -> Scrollbar;
|
||||
|
||||
/// Produces the style of a hovered scrollbar.
|
||||
fn hovered(&self, style: &Self::Style) -> Scrollbar;
|
||||
/// Produces the style of a scrollbar when the scrollable is being hovered.
|
||||
fn hovered(
|
||||
&self,
|
||||
style: &Self::Style,
|
||||
is_mouse_over_scrollbar: bool,
|
||||
) -> Scrollbar;
|
||||
|
||||
/// Produces the style of a scrollbar that is being dragged.
|
||||
fn dragging(&self, style: &Self::Style) -> Scrollbar {
|
||||
self.hovered(style)
|
||||
self.hovered(style, true)
|
||||
}
|
||||
|
||||
/// Produces the style of an active horizontal scrollbar.
|
||||
|
|
@ -50,13 +54,17 @@ pub trait StyleSheet {
|
|||
self.active(style)
|
||||
}
|
||||
|
||||
/// Produces the style of a hovered horizontal scrollbar.
|
||||
fn hovered_horizontal(&self, style: &Self::Style) -> Scrollbar {
|
||||
self.hovered(style)
|
||||
/// Produces the style of a horizontal scrollbar when the scrollable is being hovered.
|
||||
fn hovered_horizontal(
|
||||
&self,
|
||||
style: &Self::Style,
|
||||
is_mouse_over_scrollbar: bool,
|
||||
) -> Scrollbar {
|
||||
self.hovered(style, is_mouse_over_scrollbar)
|
||||
}
|
||||
|
||||
/// Produces the style of a horizontal scrollbar that is being dragged.
|
||||
fn dragging_horizontal(&self, style: &Self::Style) -> Scrollbar {
|
||||
self.hovered_horizontal(style)
|
||||
self.hovered_horizontal(style, true)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,11 +5,20 @@ use iced_core::Color;
|
|||
#[derive(Debug, Clone, Copy)]
|
||||
pub struct Appearance {
|
||||
/// The colors of the rail of the slider.
|
||||
pub rail_colors: (Color, Color),
|
||||
pub rail: Rail,
|
||||
/// The appearance of the [`Handle`] of the slider.
|
||||
pub handle: Handle,
|
||||
}
|
||||
|
||||
/// The appearance of a slider rail
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
pub struct Rail {
|
||||
/// The colors of the rail of the slider.
|
||||
pub colors: (Color, Color),
|
||||
/// The width of the stroke of a slider rail.
|
||||
pub width: f32,
|
||||
}
|
||||
|
||||
/// The appearance of the handle of a slider.
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
pub struct Handle {
|
||||
|
|
|
|||
|
|
@ -12,6 +12,8 @@ pub struct Appearance {
|
|||
pub border_width: f32,
|
||||
/// The border [`Color`] of the text input.
|
||||
pub border_color: Color,
|
||||
/// The icon [`Color`] of the text input.
|
||||
pub icon_color: Color,
|
||||
}
|
||||
|
||||
/// A set of rules that dictate the style of a text input.
|
||||
|
|
@ -31,6 +33,9 @@ pub trait StyleSheet {
|
|||
/// Produces the [`Color`] of the value of a text input.
|
||||
fn value_color(&self, style: &Self::Style) -> Color;
|
||||
|
||||
/// Produces the [`Color`] of the value of a disabled text input.
|
||||
fn disabled_color(&self, style: &Self::Style) -> Color;
|
||||
|
||||
/// Produces the [`Color`] of the selection of a text input.
|
||||
fn selection_color(&self, style: &Self::Style) -> Color;
|
||||
|
||||
|
|
@ -38,4 +43,7 @@ pub trait StyleSheet {
|
|||
fn hovered(&self, style: &Self::Style) -> Appearance {
|
||||
self.focused(style)
|
||||
}
|
||||
|
||||
/// Produces the style of a disabled text input.
|
||||
fn disabled(&self, style: &Self::Style) -> Appearance;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -416,10 +416,13 @@ impl slider::StyleSheet for Theme {
|
|||
};
|
||||
|
||||
slider::Appearance {
|
||||
rail_colors: (
|
||||
palette.primary.base.color,
|
||||
Color::TRANSPARENT,
|
||||
),
|
||||
rail: slider::Rail {
|
||||
colors: (
|
||||
palette.primary.base.color,
|
||||
palette.primary.base.color,
|
||||
),
|
||||
width: 2.0,
|
||||
},
|
||||
handle: slider::Handle {
|
||||
color: palette.background.base.color,
|
||||
border_color: palette.primary.base.color,
|
||||
|
|
@ -906,31 +909,41 @@ impl scrollable::StyleSheet for Theme {
|
|||
}
|
||||
}
|
||||
|
||||
fn hovered(&self, style: &Self::Style) -> scrollable::Scrollbar {
|
||||
fn hovered(
|
||||
&self,
|
||||
style: &Self::Style,
|
||||
is_mouse_over_scrollbar: bool,
|
||||
) -> scrollable::Scrollbar {
|
||||
match style {
|
||||
Scrollable::Default => {
|
||||
let palette = self.extended_palette();
|
||||
if is_mouse_over_scrollbar {
|
||||
let palette = self.extended_palette();
|
||||
|
||||
scrollable::Scrollbar {
|
||||
background: palette.background.weak.color.into(),
|
||||
border_radius: 2.0,
|
||||
border_width: 0.0,
|
||||
border_color: Color::TRANSPARENT,
|
||||
scroller: scrollable::Scroller {
|
||||
color: palette.primary.strong.color,
|
||||
scrollable::Scrollbar {
|
||||
background: palette.background.weak.color.into(),
|
||||
border_radius: 2.0,
|
||||
border_width: 0.0,
|
||||
border_color: Color::TRANSPARENT,
|
||||
},
|
||||
scroller: scrollable::Scroller {
|
||||
color: palette.primary.strong.color,
|
||||
border_radius: 2.0,
|
||||
border_width: 0.0,
|
||||
border_color: Color::TRANSPARENT,
|
||||
},
|
||||
}
|
||||
} else {
|
||||
self.active(style)
|
||||
}
|
||||
}
|
||||
Scrollable::Custom(custom) => custom.hovered(self),
|
||||
Scrollable::Custom(custom) => {
|
||||
custom.hovered(self, is_mouse_over_scrollbar)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn dragging(&self, style: &Self::Style) -> scrollable::Scrollbar {
|
||||
match style {
|
||||
Scrollable::Default => self.hovered(style),
|
||||
Scrollable::Default => self.hovered(style, true),
|
||||
Scrollable::Custom(custom) => custom.dragging(self),
|
||||
}
|
||||
}
|
||||
|
|
@ -942,10 +955,16 @@ impl scrollable::StyleSheet for Theme {
|
|||
}
|
||||
}
|
||||
|
||||
fn hovered_horizontal(&self, style: &Self::Style) -> scrollable::Scrollbar {
|
||||
fn hovered_horizontal(
|
||||
&self,
|
||||
style: &Self::Style,
|
||||
is_mouse_over_scrollbar: bool,
|
||||
) -> scrollable::Scrollbar {
|
||||
match style {
|
||||
Scrollable::Default => self.hovered(style),
|
||||
Scrollable::Custom(custom) => custom.hovered_horizontal(self),
|
||||
Scrollable::Default => self.hovered(style, is_mouse_over_scrollbar),
|
||||
Scrollable::Custom(custom) => {
|
||||
custom.hovered_horizontal(self, is_mouse_over_scrollbar)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -954,7 +973,7 @@ impl scrollable::StyleSheet for Theme {
|
|||
style: &Self::Style,
|
||||
) -> scrollable::Scrollbar {
|
||||
match style {
|
||||
Scrollable::Default => self.hovered_horizontal(style),
|
||||
Scrollable::Default => self.hovered_horizontal(style, true),
|
||||
Scrollable::Custom(custom) => custom.dragging_horizontal(self),
|
||||
}
|
||||
}
|
||||
|
|
@ -1012,6 +1031,7 @@ impl text_input::StyleSheet for Theme {
|
|||
border_radius: 2.0,
|
||||
border_width: 1.0,
|
||||
border_color: palette.background.strong.color,
|
||||
icon_color: palette.background.weak.text,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1027,6 +1047,7 @@ impl text_input::StyleSheet for Theme {
|
|||
border_radius: 2.0,
|
||||
border_width: 1.0,
|
||||
border_color: palette.background.base.text,
|
||||
icon_color: palette.background.weak.text,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1042,6 +1063,7 @@ impl text_input::StyleSheet for Theme {
|
|||
border_radius: 2.0,
|
||||
border_width: 1.0,
|
||||
border_color: palette.primary.strong.color,
|
||||
icon_color: palette.background.weak.text,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1074,4 +1096,28 @@ impl text_input::StyleSheet for Theme {
|
|||
|
||||
palette.primary.weak.color
|
||||
}
|
||||
|
||||
fn disabled(&self, style: &Self::Style) -> text_input::Appearance {
|
||||
if let TextInput::Custom(custom) = style {
|
||||
return custom.disabled(self);
|
||||
}
|
||||
|
||||
let palette = self.extended_palette();
|
||||
|
||||
text_input::Appearance {
|
||||
background: palette.background.weak.color.into(),
|
||||
border_radius: 2.0,
|
||||
border_width: 1.0,
|
||||
border_color: palette.background.strong.color,
|
||||
icon_color: palette.background.strong.color,
|
||||
}
|
||||
}
|
||||
|
||||
fn disabled_color(&self, style: &Self::Style) -> Color {
|
||||
if let TextInput::Custom(custom) = style {
|
||||
return custom.disabled_color(self);
|
||||
}
|
||||
|
||||
self.placeholder_color(style)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue