summaryrefslogtreecommitdiffstats
path: root/style/src/theme.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-06-29 10:51:01 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-06-29 10:51:01 +0200
commit1dd1a2f97fc747e15e12b5188dad6c41b0d052ea (patch)
treeba2b24b9c8dec02b9232068dee299ca27a4823ba /style/src/theme.rs
parentc807abdfd70c49b0c93868c12f142a2fb4c08036 (diff)
downloadiced-1dd1a2f97fc747e15e12b5188dad6c41b0d052ea.tar.gz
iced-1dd1a2f97fc747e15e12b5188dad6c41b0d052ea.tar.bz2
iced-1dd1a2f97fc747e15e12b5188dad6c41b0d052ea.zip
Introduce `StyleSheet` for `Text` widget
Diffstat (limited to '')
-rw-r--r--style/src/theme.rs35
1 files changed, 35 insertions, 0 deletions
diff --git a/style/src/theme.rs b/style/src/theme.rs
index b1e18c55..0bae671e 100644
--- a/style/src/theme.rs
+++ b/style/src/theme.rs
@@ -14,6 +14,7 @@ use crate::radio;
use crate::rule;
use crate::scrollable;
use crate::slider;
+use crate::text;
use crate::text_input;
use crate::toggler;
@@ -602,6 +603,40 @@ impl scrollable::StyleSheet for Theme {
}
/*
+ * Text
+ */
+#[derive(Clone, Copy)]
+pub enum Text {
+ Default,
+ Color(Color),
+ Custom(fn(&Theme) -> text::Appearance),
+}
+
+impl Default for Text {
+ fn default() -> Self {
+ Self::Default
+ }
+}
+
+impl From<Color> for Text {
+ fn from(color: Color) -> Self {
+ Text::Color(color)
+ }
+}
+
+impl text::StyleSheet for Theme {
+ type Style = Text;
+
+ fn appearance(&self, style: Self::Style) -> text::Appearance {
+ match style {
+ Text::Default => Default::default(),
+ Text::Color(c) => text::Appearance { color: Some(c) },
+ Text::Custom(f) => f(self),
+ }
+ }
+}
+
+/*
* Text Input
*/
impl text_input::StyleSheet for Theme {