Added text color and font options for native radio and checkbox (#831)
* text color and font options to radio * code formatting * code formatting * code formatting * Added text_color for native checkbox * Removed clone as color has Copy * Fix code formatting with `cargo fmt` Co-authored-by: Héctor Ramón <hector@lich.io>
This commit is contained in:
parent
0ce6a2db21
commit
40d21d2365
@ -8,8 +8,8 @@ use crate::row;
|
|||||||
use crate::text;
|
use crate::text;
|
||||||
use crate::touch;
|
use crate::touch;
|
||||||
use crate::{
|
use crate::{
|
||||||
Align, Clipboard, Element, Hasher, HorizontalAlignment, Layout, Length,
|
Align, Clipboard, Color, Element, Hasher, HorizontalAlignment, Layout,
|
||||||
Point, Rectangle, Row, Text, VerticalAlignment, Widget,
|
Length, Point, Rectangle, Row, Text, VerticalAlignment, Widget,
|
||||||
};
|
};
|
||||||
|
|
||||||
/// A box that can be checked.
|
/// A box that can be checked.
|
||||||
@ -39,6 +39,7 @@ pub struct Checkbox<Message, Renderer: self::Renderer + text::Renderer> {
|
|||||||
spacing: u16,
|
spacing: u16,
|
||||||
text_size: Option<u16>,
|
text_size: Option<u16>,
|
||||||
font: Renderer::Font,
|
font: Renderer::Font,
|
||||||
|
text_color: Option<Color>,
|
||||||
style: Renderer::Style,
|
style: Renderer::Style,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -66,6 +67,7 @@ impl<Message, Renderer: self::Renderer + text::Renderer>
|
|||||||
spacing: Renderer::DEFAULT_SPACING,
|
spacing: Renderer::DEFAULT_SPACING,
|
||||||
text_size: None,
|
text_size: None,
|
||||||
font: Renderer::Font::default(),
|
font: Renderer::Font::default(),
|
||||||
|
text_color: None,
|
||||||
style: Renderer::Style::default(),
|
style: Renderer::Style::default(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -102,6 +104,12 @@ impl<Message, Renderer: self::Renderer + text::Renderer>
|
|||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Sets the text color of the [`Checkbox`] button.
|
||||||
|
pub fn text_color(mut self, color: Color) -> Self {
|
||||||
|
self.text_color = Some(color);
|
||||||
|
self
|
||||||
|
}
|
||||||
|
|
||||||
/// Sets the style of the [`Checkbox`].
|
/// Sets the style of the [`Checkbox`].
|
||||||
pub fn style(mut self, style: impl Into<Renderer::Style>) -> Self {
|
pub fn style(mut self, style: impl Into<Renderer::Style>) -> Self {
|
||||||
self.style = style.into();
|
self.style = style.into();
|
||||||
@ -193,7 +201,7 @@ where
|
|||||||
&self.label,
|
&self.label,
|
||||||
self.text_size.unwrap_or(renderer.default_size()),
|
self.text_size.unwrap_or(renderer.default_size()),
|
||||||
self.font,
|
self.font,
|
||||||
None,
|
self.text_color,
|
||||||
HorizontalAlignment::Left,
|
HorizontalAlignment::Left,
|
||||||
VerticalAlignment::Center,
|
VerticalAlignment::Center,
|
||||||
);
|
);
|
||||||
|
@ -1,17 +1,17 @@
|
|||||||
//! Create choices using radio buttons.
|
//! Create choices using radio buttons.
|
||||||
|
use std::hash::Hash;
|
||||||
|
|
||||||
use crate::event::{self, Event};
|
use crate::event::{self, Event};
|
||||||
use crate::layout;
|
|
||||||
use crate::mouse;
|
use crate::mouse;
|
||||||
use crate::row;
|
use crate::row;
|
||||||
use crate::text;
|
use crate::text;
|
||||||
use crate::touch;
|
use crate::touch;
|
||||||
|
use crate::{layout, Color};
|
||||||
use crate::{
|
use crate::{
|
||||||
Align, Clipboard, Element, Hasher, HorizontalAlignment, Layout, Length,
|
Align, Clipboard, Element, Hasher, HorizontalAlignment, Layout, Length,
|
||||||
Point, Rectangle, Row, Text, VerticalAlignment, Widget,
|
Point, Rectangle, Row, Text, VerticalAlignment, Widget,
|
||||||
};
|
};
|
||||||
|
|
||||||
use std::hash::Hash;
|
|
||||||
|
|
||||||
/// A circular button representing a choice.
|
/// A circular button representing a choice.
|
||||||
///
|
///
|
||||||
/// # Example
|
/// # Example
|
||||||
@ -47,6 +47,8 @@ pub struct Radio<Message, Renderer: self::Renderer + text::Renderer> {
|
|||||||
size: u16,
|
size: u16,
|
||||||
spacing: u16,
|
spacing: u16,
|
||||||
text_size: Option<u16>,
|
text_size: Option<u16>,
|
||||||
|
text_color: Option<Color>,
|
||||||
|
font: Renderer::Font,
|
||||||
style: Renderer::Style,
|
style: Renderer::Style,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -81,6 +83,8 @@ where
|
|||||||
size: <Renderer as self::Renderer>::DEFAULT_SIZE,
|
size: <Renderer as self::Renderer>::DEFAULT_SIZE,
|
||||||
spacing: Renderer::DEFAULT_SPACING, //15
|
spacing: Renderer::DEFAULT_SPACING, //15
|
||||||
text_size: None,
|
text_size: None,
|
||||||
|
text_color: None,
|
||||||
|
font: Default::default(),
|
||||||
style: Renderer::Style::default(),
|
style: Renderer::Style::default(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -109,6 +113,18 @@ where
|
|||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Sets the text color of the [`Radio`] button.
|
||||||
|
pub fn text_color(mut self, color: Color) -> Self {
|
||||||
|
self.text_color = Some(color);
|
||||||
|
self
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Sets the text font of the [`Radio`] button.
|
||||||
|
pub fn font(mut self, font: Renderer::Font) -> Self {
|
||||||
|
self.font = font;
|
||||||
|
self
|
||||||
|
}
|
||||||
|
|
||||||
/// Sets the style of the [`Radio`] button.
|
/// Sets the style of the [`Radio`] button.
|
||||||
pub fn style(mut self, style: impl Into<Renderer::Style>) -> Self {
|
pub fn style(mut self, style: impl Into<Renderer::Style>) -> Self {
|
||||||
self.style = style.into();
|
self.style = style.into();
|
||||||
@ -196,8 +212,8 @@ where
|
|||||||
label_layout.bounds(),
|
label_layout.bounds(),
|
||||||
&self.label,
|
&self.label,
|
||||||
self.text_size.unwrap_or(renderer.default_size()),
|
self.text_size.unwrap_or(renderer.default_size()),
|
||||||
Default::default(),
|
self.font,
|
||||||
None,
|
self.text_color,
|
||||||
HorizontalAlignment::Left,
|
HorizontalAlignment::Left,
|
||||||
VerticalAlignment::Center,
|
VerticalAlignment::Center,
|
||||||
);
|
);
|
||||||
|
Loading…
Reference in New Issue
Block a user