summaryrefslogtreecommitdiffstats
path: root/native
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-07-08 07:04:20 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-07-08 11:29:21 +0200
commit69ac47f463fd5c392f1f8e788fcf89b1a76abcae (patch)
treef4a4f6618766acd15d1d7ca726668c07ec9857dc /native
parent1c12bad866d06b320f16609576d5937413418a0c (diff)
downloadiced-69ac47f463fd5c392f1f8e788fcf89b1a76abcae.tar.gz
iced-69ac47f463fd5c392f1f8e788fcf89b1a76abcae.tar.bz2
iced-69ac47f463fd5c392f1f8e788fcf89b1a76abcae.zip
Implement `font` method for `ComboBox`
Diffstat (limited to 'native')
-rw-r--r--native/src/overlay/menu.rs51
-rw-r--r--native/src/widget/combo_box.rs15
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;
}