added FillMode enum style for the Rule widget

This commit is contained in:
Billy Messenger 2020-08-16 10:10:32 -05:00 committed by Héctor Ramón Jiménez
parent 8d68c8584e
commit 32561bd85c
5 changed files with 108 additions and 27 deletions

View file

@ -2,6 +2,23 @@
use iced_core::Color;
/// The fill mode of a rule.
#[derive(Debug, Clone, Copy)]
pub enum FillMode {
/// Fill the whole length of the container.
Full,
/// Fill a percent of the length of the container. The rule
/// will be centered in that container.
///
/// The range is `[0.0, 100.0]`.
Percent(f32),
/// Uniform offset from each end, length units.
Padded(u16),
/// Different offset on each end of the rule, length units.
/// First = top or left.
AsymmetricPadding(u16, u16),
}
/// The appearance of a rule.
#[derive(Debug, Clone, Copy)]
pub struct Style {
@ -11,9 +28,10 @@ pub struct Style {
pub width: u16,
/// The radius of the rectangle corners.
pub radius: u16,
/// The percent from [0, 100] of the filled space the rule
/// will be drawn.
pub fill_percent: u16,
/// The [`FillMode`] of the rule.
///
/// [`FillMode`]: enum.FillMode.html
pub fill_mode: FillMode,
}
/// A set of rules that dictate the style of a rule.
@ -27,10 +45,10 @@ struct Default;
impl StyleSheet for Default {
fn style(&self) -> Style {
Style {
color: [0.6, 0.6, 0.6, 0.49].into(),
color: [0.6, 0.6, 0.6, 0.51].into(),
width: 1,
radius: 0,
fill_percent: 90,
fill_mode: FillMode::Percent(90.0),
}
}
}