summaryrefslogtreecommitdiffstats
path: root/style/src/text_editor.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector@hecrj.dev>2023-10-27 17:36:54 +0200
committerLibravatar GitHub <noreply@github.com>2023-10-27 17:36:54 +0200
commitd731996342118dccfd50df8db9607741d162a639 (patch)
tree9f7db10dea8e6faf25041b19d0fe595acb995e9c /style/src/text_editor.rs
parent3ec5ad42251d4f35861f3bed621223e383742b12 (diff)
parentc8eca4e6bfae82013e6bb08e9d8bf66560b36564 (diff)
downloadiced-d731996342118dccfd50df8db9607741d162a639.tar.gz
iced-d731996342118dccfd50df8db9607741d162a639.tar.bz2
iced-d731996342118dccfd50df8db9607741d162a639.zip
Merge pull request #2123 from iced-rs/text-editor
`TextEditor` widget (or multi-line text input)
Diffstat (limited to 'style/src/text_editor.rs')
-rw-r--r--style/src/text_editor.rs47
1 files changed, 47 insertions, 0 deletions
diff --git a/style/src/text_editor.rs b/style/src/text_editor.rs
new file mode 100644
index 00000000..f6bae7e6
--- /dev/null
+++ b/style/src/text_editor.rs
@@ -0,0 +1,47 @@
+//! Change the appearance of a text editor.
+use crate::core::{Background, BorderRadius, Color};
+
+/// The appearance of a text input.
+#[derive(Debug, Clone, Copy)]
+pub struct Appearance {
+ /// The [`Background`] of the text input.
+ pub background: Background,
+ /// The border radius of the text input.
+ pub border_radius: BorderRadius,
+ /// The border width of the text input.
+ pub border_width: f32,
+ /// The border [`Color`] of the text input.
+ pub border_color: Color,
+}
+
+/// A set of rules that dictate the style of a text input.
+pub trait StyleSheet {
+ /// The supported style of the [`StyleSheet`].
+ type Style: Default;
+
+ /// Produces the style of an active text input.
+ fn active(&self, style: &Self::Style) -> Appearance;
+
+ /// Produces the style of a focused text input.
+ fn focused(&self, style: &Self::Style) -> Appearance;
+
+ /// Produces the [`Color`] of the placeholder of a text input.
+ fn placeholder_color(&self, style: &Self::Style) -> Color;
+
+ /// 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;
+
+ /// Produces the style of an hovered text input.
+ 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;
+}