diff options
| author | 2020-01-01 18:26:49 +0100 | |
|---|---|---|
| committer | 2020-01-01 18:26:49 +0100 | |
| commit | 5af4159848341b14f6ff9ae14a9a222d8d8b0fb8 (patch) | |
| tree | 436220784428b33b8e378403d11496db2d87884b /wgpu/src/renderer | |
| parent | d96ced8e2da703117a43399110ef2b8fa21a7546 (diff) | |
| download | iced-5af4159848341b14f6ff9ae14a9a222d8d8b0fb8.tar.gz iced-5af4159848341b14f6ff9ae14a9a222d8d8b0fb8.tar.bz2 iced-5af4159848341b14f6ff9ae14a9a222d8d8b0fb8.zip  | |
Draft basic styling for `TextInput`
Diffstat (limited to '')
| -rw-r--r-- | wgpu/src/renderer/widget/text_input.rs | 32 | 
1 files changed, 19 insertions, 13 deletions
diff --git a/wgpu/src/renderer/widget/text_input.rs b/wgpu/src/renderer/widget/text_input.rs index cf3a31ab..8b774a48 100644 --- a/wgpu/src/renderer/widget/text_input.rs +++ b/wgpu/src/renderer/widget/text_input.rs @@ -1,4 +1,4 @@ -use crate::{Primitive, Renderer}; +use crate::{text_input::StyleSheet, Primitive, Renderer};  use iced_native::{      text_input, Background, Color, Font, HorizontalAlignment, MouseCursor, @@ -7,6 +7,8 @@ use iced_native::{  use std::f32;  impl text_input::Renderer for Renderer { +    type Style = Box<dyn StyleSheet>; +      fn default_size(&self) -> u16 {          // TODO: Make this configurable          20 @@ -61,20 +63,24 @@ impl text_input::Renderer for Renderer {          placeholder: &str,          value: &text_input::Value,          state: &text_input::State, +        style_sheet: &Self::Style,      ) -> Self::Output {          let is_mouse_over = bounds.contains(cursor_position); +        let style = if state.is_focused() { +            style_sheet.focused() +        } else if is_mouse_over { +            style_sheet.hovered() +        } else { +            style_sheet.active() +        }; +          let input = Primitive::Quad {              bounds, -            background: Background::Color(Color::WHITE), -            border_radius: 5, -            border_width: 1, -            border_color: if is_mouse_over || state.is_focused() { -                [0.5, 0.5, 0.5] -            } else { -                [0.7, 0.7, 0.7] -            } -            .into(), +            background: style.background, +            border_radius: style.border_radius, +            border_width: style.border_width, +            border_color: style.border_color,          };          let text = value.to_string(); @@ -86,9 +92,9 @@ impl text_input::Renderer for Renderer {                  text.clone()              },              color: if text.is_empty() { -                [0.7, 0.7, 0.7] +                style_sheet.placeholder_color()              } else { -                [0.3, 0.3, 0.3] +                style_sheet.value_color()              }              .into(),              font: Font::Default, @@ -117,7 +123,7 @@ impl text_input::Renderer for Renderer {                      width: 1.0,                      height: text_bounds.height,                  }, -                background: Background::Color(Color::BLACK), +                background: Background::Color(style_sheet.value_color()),                  border_radius: 0,                  border_width: 0,                  border_color: Color::TRANSPARENT,  | 
