diff options
Diffstat (limited to 'widget/src')
| -rw-r--r-- | widget/src/button.rs | 4 | ||||
| -rw-r--r-- | widget/src/checkbox.rs | 4 | ||||
| -rw-r--r-- | widget/src/column.rs | 19 | ||||
| -rw-r--r-- | widget/src/combo_box.rs | 4 | ||||
| -rw-r--r-- | widget/src/markdown.rs | 4 | ||||
| -rw-r--r-- | widget/src/qr_code.rs | 24 | ||||
| -rw-r--r-- | widget/src/row.rs | 19 | ||||
| -rw-r--r-- | widget/src/text/rich.rs | 2 | 
8 files changed, 41 insertions, 39 deletions
| diff --git a/widget/src/button.rs b/widget/src/button.rs index 3323c0d3..552298bb 100644 --- a/widget/src/button.rs +++ b/widget/src/button.rs @@ -477,9 +477,9 @@ pub struct Style {      pub background: Option<Background>,      /// The text [`Color`] of the button.      pub text_color: Color, -    /// The [`Border`] of the buton. +    /// The [`Border`] of the button.      pub border: Border, -    /// The [`Shadow`] of the butoon. +    /// The [`Shadow`] of the button.      pub shadow: Shadow,  } diff --git a/widget/src/checkbox.rs b/widget/src/checkbox.rs index 4a3f35ed..4b2f6075 100644 --- a/widget/src/checkbox.rs +++ b/widget/src/checkbox.rs @@ -487,7 +487,7 @@ pub struct Style {      pub background: Background,      /// The icon [`Color`] of the checkbox.      pub icon_color: Color, -    /// The [`Border`] of hte checkbox. +    /// The [`Border`] of the checkbox.      pub border: Border,      /// The text [`Color`] of the checkbox.      pub text_color: Option<Color>, @@ -600,7 +600,7 @@ pub fn success(theme: &Theme, status: Status) -> Style {      }  } -/// A danger checkbox; denoting a negaive toggle. +/// A danger checkbox; denoting a negative toggle.  pub fn danger(theme: &Theme, status: Status) -> Style {      let palette = theme.extended_palette(); diff --git a/widget/src/column.rs b/widget/src/column.rs index fc4653b9..213f68fc 100644 --- a/widget/src/column.rs +++ b/widget/src/column.rs @@ -320,24 +320,21 @@ where          viewport: &Rectangle,      ) {          if let Some(clipped_viewport) = layout.bounds().intersection(viewport) { +            let viewport = if self.clip { +                &clipped_viewport +            } else { +                viewport +            }; +              for ((child, state), layout) in self                  .children                  .iter()                  .zip(&tree.children)                  .zip(layout.children()) +                .filter(|(_, layout)| layout.bounds().intersects(viewport))              {                  child.as_widget().draw( -                    state, -                    renderer, -                    theme, -                    style, -                    layout, -                    cursor, -                    if self.clip { -                        &clipped_viewport -                    } else { -                        viewport -                    }, +                    state, renderer, theme, style, layout, cursor, viewport,                  );              }          } diff --git a/widget/src/combo_box.rs b/widget/src/combo_box.rs index fb661ad5..e300f1d0 100644 --- a/widget/src/combo_box.rs +++ b/widget/src/combo_box.rs @@ -608,8 +608,8 @@ where                      ..                  }) = event                  { -                    let shift_modifer = modifiers.shift(); -                    match (named_key, shift_modifer) { +                    let shift_modifier = modifiers.shift(); +                    match (named_key, shift_modifier) {                          (key::Named::Enter, _) => {                              if let Some(index) = &menu.hovered_option {                                  if let Some(option) = diff --git a/widget/src/markdown.rs b/widget/src/markdown.rs index 912ef2f5..d6bebb9b 100644 --- a/widget/src/markdown.rs +++ b/widget/src/markdown.rs @@ -1,6 +1,6 @@  //! Markdown widgets can parse and display Markdown.  //! -//! You can enable the `highlighter` feature for syntax highligting +//! You can enable the `highlighter` feature for syntax highlighting  //! in code blocks.  //!  //! Only the variants of [`Item`] are currently supported. @@ -72,7 +72,7 @@ pub enum Item {      Paragraph(Text),      /// A code block.      /// -    /// You can enable the `highlighter` feature for syntax highligting. +    /// You can enable the `highlighter` feature for syntax highlighting.      CodeBlock(Text),      /// A list.      List { diff --git a/widget/src/qr_code.rs b/widget/src/qr_code.rs index 21dee6b1..d1834465 100644 --- a/widget/src/qr_code.rs +++ b/widget/src/qr_code.rs @@ -26,15 +26,15 @@ use crate::core::mouse;  use crate::core::renderer::{self, Renderer as _};  use crate::core::widget::tree::{self, Tree};  use crate::core::{ -    Color, Element, Layout, Length, Point, Rectangle, Size, Theme, Vector, -    Widget, +    Color, Element, Layout, Length, Pixels, Point, Rectangle, Size, Theme, +    Vector, Widget,  };  use crate::Renderer;  use std::cell::RefCell;  use thiserror::Error; -const DEFAULT_CELL_SIZE: u16 = 4; +const DEFAULT_CELL_SIZE: f32 = 4.0;  const QUIET_ZONE: usize = 2;  /// A type of matrix barcode consisting of squares arranged in a grid which @@ -66,7 +66,7 @@ where      Theme: Catalog,  {      data: &'a Data, -    cell_size: u16, +    cell_size: f32,      class: Theme::Class<'a>,  } @@ -84,8 +84,16 @@ where      }      /// Sets the size of the squares of the grid cell of the [`QRCode`]. -    pub fn cell_size(mut self, cell_size: u16) -> Self { -        self.cell_size = cell_size; +    pub fn cell_size(mut self, cell_size: impl Into<Pixels>) -> Self { +        self.cell_size = cell_size.into().0; +        self +    } + +    /// Sets the size of the entire [`QRCode`]. +    pub fn total_size(mut self, total_size: impl Into<Pixels>) -> Self { +        self.cell_size = +            total_size.into().0 / (self.data.width + 2 * QUIET_ZONE) as f32; +          self      } @@ -133,8 +141,8 @@ where          _renderer: &Renderer,          _limits: &layout::Limits,      ) -> layout::Node { -        let side_length = (self.data.width + 2 * QUIET_ZONE) as f32 -            * f32::from(self.cell_size); +        let side_length = +            (self.data.width + 2 * QUIET_ZONE) as f32 * self.cell_size;          layout::Node::new(Size::new(side_length, side_length))      } diff --git a/widget/src/row.rs b/widget/src/row.rs index 75d5fb40..9c0fa97e 100644 --- a/widget/src/row.rs +++ b/widget/src/row.rs @@ -316,24 +316,21 @@ where          viewport: &Rectangle,      ) {          if let Some(clipped_viewport) = layout.bounds().intersection(viewport) { +            let viewport = if self.clip { +                &clipped_viewport +            } else { +                viewport +            }; +              for ((child, state), layout) in self                  .children                  .iter()                  .zip(&tree.children)                  .zip(layout.children()) +                .filter(|(_, layout)| layout.bounds().intersects(viewport))              {                  child.as_widget().draw( -                    state, -                    renderer, -                    theme, -                    style, -                    layout, -                    cursor, -                    if self.clip { -                        &clipped_viewport -                    } else { -                        viewport -                    }, +                    state, renderer, theme, style, layout, cursor, viewport,                  );              }          } diff --git a/widget/src/text/rich.rs b/widget/src/text/rich.rs index 921c55a5..3d241375 100644 --- a/widget/src/text/rich.rs +++ b/widget/src/text/rich.rs @@ -72,7 +72,7 @@ where          self      } -    /// Sets the defualt [`LineHeight`] of the [`Rich`] text. +    /// Sets the default [`LineHeight`] of the [`Rich`] text.      pub fn line_height(mut self, line_height: impl Into<LineHeight>) -> Self {          self.line_height = line_height.into();          self | 
