From fe4dfeafdbc8f427bd351f394d27f606a3843b44 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 28 Oct 2021 15:41:12 +0700 Subject: Wire up style to `PickList` and `overlay::Menu` --- graphics/src/overlay/menu.rs | 11 ---------- graphics/src/widget/pick_list.rs | 17 --------------- native/src/overlay/menu.rs | 43 +++++++++++++------------------------ native/src/widget/pick_list.rs | 46 +++++++++++++--------------------------- 4 files changed, 30 insertions(+), 87 deletions(-) diff --git a/graphics/src/overlay/menu.rs b/graphics/src/overlay/menu.rs index 7dfb48b9..c5ff093d 100644 --- a/graphics/src/overlay/menu.rs +++ b/graphics/src/overlay/menu.rs @@ -1,14 +1,3 @@ //! Build and show dropdown menus. -use crate::backend::{self, Backend}; -use crate::Renderer; - -use iced_native::overlay; pub use iced_style::menu::Style; - -impl overlay::menu::Renderer for Renderer -where - B: Backend + backend::Text, -{ - type Style = Style; -} diff --git a/graphics/src/widget/pick_list.rs b/graphics/src/widget/pick_list.rs index 54f42cde..b5cb0a44 100644 --- a/graphics/src/widget/pick_list.rs +++ b/graphics/src/widget/pick_list.rs @@ -1,26 +1,9 @@ //! Display a dropdown list of selectable values. -use crate::backend::{self, Backend}; use crate::Renderer; -use iced_native::Padding; -use iced_style::menu; - pub use iced_native::pick_list::State; pub use iced_style::pick_list::{Style, StyleSheet}; /// A widget allowing the selection of a single value from a list of options. pub type PickList<'a, T, Message, Backend> = iced_native::PickList<'a, T, Message, Renderer>; - -impl iced_native::pick_list::Renderer for Renderer -where - B: Backend + backend::Text, -{ - type Style = Box; - - const DEFAULT_PADDING: Padding = Padding::new(5); - - fn menu_style(style: &Box) -> menu::Style { - style.menu() - } -} diff --git a/native/src/overlay/menu.rs b/native/src/overlay/menu.rs index 0c335bb6..ebb2a4e1 100644 --- a/native/src/overlay/menu.rs +++ b/native/src/overlay/menu.rs @@ -5,16 +5,17 @@ use crate::mouse; use crate::overlay; use crate::renderer; use crate::scrollable; -use crate::text; use crate::touch; use crate::{ Clipboard, Container, Element, Hasher, Layout, Length, Padding, Point, Rectangle, Scrollable, Size, Vector, Widget, }; +pub use iced_style::menu::Style; + /// A list of selectable options. #[allow(missing_debug_implementations)] -pub struct Menu<'a, T, Renderer: self::Renderer> { +pub struct Menu<'a, T, Renderer: renderer::Text> { state: &'a mut State, options: &'a [T], hovered_option: &'a mut Option, @@ -23,13 +24,13 @@ pub struct Menu<'a, T, Renderer: self::Renderer> { padding: Padding, text_size: Option, font: Renderer::Font, - style: ::Style, + style: Style, } impl<'a, T, Renderer> Menu<'a, T, Renderer> where T: ToString + Clone, - Renderer: self::Renderer + 'a, + Renderer: renderer::Text + 'a, { /// Creates a new [`Menu`] with the given [`State`], a list of options, and /// the message to produced when an option is selected. @@ -77,10 +78,7 @@ where } /// Sets the style of the [`Menu`]. - pub fn style( - mut self, - style: impl Into<::Style>, - ) -> Self { + pub fn style(mut self, style: impl Into