From d5e02408bbe5d2188e590b1e175816e55ae48137 Mon Sep 17 00:00:00 2001 From: MYT Date: Wed, 1 Jan 2025 13:03:38 +0000 Subject: [PATCH] Add `text_shaping` method to `combo_box` widget --- examples/combo_box/src/main.rs | 6 +++++- widget/src/combo_box.rs | 15 ++++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/examples/combo_box/src/main.rs b/examples/combo_box/src/main.rs index fc16d88b..8517bafd 100644 --- a/examples/combo_box/src/main.rs +++ b/examples/combo_box/src/main.rs @@ -84,18 +84,20 @@ pub enum Language { French, German, Italian, + Japanese, Portuguese, Spanish, Other, } impl Language { - const ALL: [Language; 8] = [ + const ALL: [Language; 9] = [ Language::Danish, Language::English, Language::French, Language::German, Language::Italian, + Language::Japanese, Language::Portuguese, Language::Spanish, Language::Other, @@ -108,6 +110,7 @@ impl Language { Language::French => "Salut!", Language::German => "Hallo!", Language::Italian => "Ciao!", + Language::Japanese => "こんにちは!", Language::Portuguese => "Olá!", Language::Spanish => "¡Hola!", Language::Other => "... hello?", @@ -126,6 +129,7 @@ impl std::fmt::Display for Language { Language::French => "French", Language::German => "German", Language::Italian => "Italian", + Language::Japanese => "日本語", Language::Portuguese => "Portuguese", Language::Spanish => "Spanish", Language::Other => "Some other language", diff --git a/widget/src/combo_box.rs b/widget/src/combo_box.rs index db7121ce..99839c10 100644 --- a/widget/src/combo_box.rs +++ b/widget/src/combo_box.rs @@ -149,9 +149,10 @@ pub struct ComboBox< on_open: Option, on_close: Option, on_input: Option Message>>, - menu_class: ::Class<'a>, padding: Padding, size: Option, + text_shaping: text::Shaping, + menu_class: ::Class<'a>, menu_height: Length, } @@ -186,9 +187,10 @@ where on_input: None, on_open: None, on_close: None, - menu_class: ::default_menu(), padding: text_input::DEFAULT_PADDING, size: None, + text_shaping: text::Shaping::default(), + menu_class: ::default_menu(), menu_height: Length::Shrink, } } @@ -281,6 +283,12 @@ where self } + /// Sets the [`text::Shaping`] strategy of the [`ComboBox`]. + pub fn text_shaping(mut self, shaping: text::Shaping) -> Self { + self.text_shaping = shaping; + self + } + /// Sets the style of the input of the [`ComboBox`]. #[must_use] pub fn input_style( @@ -902,7 +910,8 @@ where &self.menu_class, ) .width(bounds.width) - .padding(self.padding); + .padding(self.padding) + .text_shaping(self.text_shaping); if let Some(font) = self.font { menu = menu.font(font);