diff options
Diffstat (limited to '')
| -rw-r--r-- | native/src/overlay/menu.rs | 51 | ||||
| -rw-r--r-- | native/src/widget/combo_box.rs | 15 | 
2 files changed, 33 insertions, 33 deletions
| diff --git a/native/src/overlay/menu.rs b/native/src/overlay/menu.rs index 8475f130..a192e389 100644 --- a/native/src/overlay/menu.rs +++ b/native/src/overlay/menu.rs @@ -11,6 +11,7 @@ pub struct Menu<'a, T, Message, Renderer: self::Renderer> {      width: u16,      padding: u16,      text_size: Option<u16>, +    font: Renderer::Font,      style: <Renderer as self::Renderer>::Style,  } @@ -32,6 +33,7 @@ where              width: 0,              padding: 0,              text_size: None, +            font: Default::default(),              style: Default::default(),          }      } @@ -51,6 +53,11 @@ where          self      } +    pub fn font(mut self, font: Renderer::Font) -> Self { +        self.font = font; +        self +    } +      pub fn style(          mut self,          style: impl Into<<Renderer as self::Renderer>::Style>, @@ -115,21 +122,22 @@ where              on_selected,              width,              padding, +            font,              text_size,              style,          } = menu; -        let container = Container::new( -            Scrollable::new(&mut state.scrollable).push(List::new( +        let container = +            Container::new(Scrollable::new(&mut state.scrollable).push(List {                  options, -                &mut state.hovered_option, +                hovered_option: &mut state.hovered_option,                  on_selected, +                font,                  text_size,                  padding, -                style.clone(), -            )), -        ) -        .padding(1); +                style: style.clone(), +            })) +            .padding(1);          Self {              container, @@ -246,31 +254,12 @@ struct List<'a, T, Message, Renderer: self::Renderer> {      options: &'a [T],      hovered_option: &'a mut Option<usize>,      on_selected: &'a dyn Fn(T) -> Message, -    text_size: Option<u16>,      padding: u16, +    text_size: Option<u16>, +    font: Renderer::Font,      style: <Renderer as self::Renderer>::Style,  } -impl<'a, T, Message, Renderer: self::Renderer> List<'a, T, Message, Renderer> { -    pub fn new( -        options: &'a [T], -        hovered_option: &'a mut Option<usize>, -        on_selected: &'a dyn Fn(T) -> Message, -        text_size: Option<u16>, -        padding: u16, -        style: <Renderer as self::Renderer>::Style, -    ) -> Self { -        List { -            options, -            hovered_option, -            on_selected, -            text_size, -            padding, -            style, -        } -    } -} -  impl<'a, T, Message, Renderer: self::Renderer> Widget<'a, Message, Renderer>      for List<'a, T, Message, Renderer>  where @@ -370,8 +359,9 @@ where              cursor_position,              self.options,              *self.hovered_option, -            self.text_size.unwrap_or(renderer.default_size()),              self.padding, +            self.text_size.unwrap_or(renderer.default_size()), +            self.font,              &self.style,          )      } @@ -396,8 +386,9 @@ pub trait Renderer:          cursor_position: Point,          options: &[T],          hovered_option: Option<usize>, -        text_size: u16,          padding: u16, +        text_size: u16, +        font: Self::Font,          style: &<Self as Renderer>::Style,      ) -> Self::Output;  } diff --git a/native/src/widget/combo_box.rs b/native/src/widget/combo_box.rs index f6da076a..84789789 100644 --- a/native/src/widget/combo_box.rs +++ b/native/src/widget/combo_box.rs @@ -17,6 +17,7 @@ where      width: Length,      padding: u16,      text_size: Option<u16>, +    font: Renderer::Font,      style: <Renderer as self::Renderer>::Style,  } @@ -45,7 +46,8 @@ where              width: Length::Shrink,              text_size: None,              padding: Renderer::DEFAULT_PADDING, -            style: <Renderer as self::Renderer>::Style::default(), +            font: Default::default(), +            style: Default::default(),          }      } @@ -70,6 +72,11 @@ where          self      } +    pub fn font(mut self, font: Renderer::Font) -> Self { +        self.font = font; +        self +    } +      /// Sets the style of the [`ComboBox`].      ///      /// [`ComboBox`]: struct.ComboBox.html @@ -200,8 +207,9 @@ where              layout.bounds(),              cursor_position,              self.selected.as_ref().map(ToString::to_string), -            self.text_size.unwrap_or(renderer.default_size()),              self.padding, +            self.text_size.unwrap_or(renderer.default_size()), +            self.font,              &self.style,          )      } @@ -244,8 +252,9 @@ pub trait Renderer: text::Renderer + menu::Renderer {          bounds: Rectangle,          cursor_position: Point,          selected: Option<String>, -        text_size: u16,          padding: u16, +        text_size: u16, +        font: Self::Font,          style: &<Self as Renderer>::Style,      ) -> Self::Output;  } | 
