diff options
Diffstat (limited to 'style/src')
| -rw-r--r-- | style/src/lib.rs | 8 | ||||
| -rw-r--r-- | style/src/theme.rs | 27 | 
2 files changed, 27 insertions, 8 deletions
diff --git a/style/src/lib.rs b/style/src/lib.rs index 286ff9db..0c555ed8 100644 --- a/style/src/lib.rs +++ b/style/src/lib.rs @@ -7,16 +7,18 @@  #![doc(      html_logo_url = "https://raw.githubusercontent.com/iced-rs/iced/9ab6923e943f784985e9ef9ca28b10278297225d/docs/logo.svg"  )] +#![forbid(unsafe_code, rust_2018_idioms)]  #![deny(      unused_results,      clippy::extra_unused_lifetimes,      clippy::from_over_into,      clippy::needless_borrow,      clippy::new_without_default, -    clippy::useless_conversion +    clippy::useless_conversion, +    missing_docs, +    unused_results, +    rustdoc::broken_intra_doc_links  )] -#![deny(missing_docs, unused_results)] -#![forbid(unsafe_code, rust_2018_idioms)]  #![allow(clippy::inherent_to_string, clippy::type_complexity)]  pub use iced_core as core; diff --git a/style/src/theme.rs b/style/src/theme.rs index 64497181..893d7202 100644 --- a/style/src/theme.rs +++ b/style/src/theme.rs @@ -1,8 +1,7 @@  //! Use the built-in theme and styles.  pub mod palette; -use self::palette::Extended; -pub use self::palette::Palette; +pub use palette::Palette;  use crate::application;  use crate::button; @@ -40,7 +39,16 @@ pub enum Theme {  impl Theme {      /// Creates a new custom [`Theme`] from the given [`Palette`].      pub fn custom(palette: Palette) -> Self { -        Self::Custom(Box::new(Custom::new(palette))) +        Self::custom_with_fn(palette, palette::Extended::generate) +    } + +    /// Creates a new custom [`Theme`] from the given [`Palette`], with +    /// a custom generator of a [`palette::Extended`]. +    pub fn custom_with_fn( +        palette: Palette, +        generate: impl FnOnce(Palette) -> palette::Extended, +    ) -> Self { +        Self::Custom(Box::new(Custom::with_fn(palette, generate)))      }      /// Returns the [`Palette`] of the [`Theme`]. @@ -66,15 +74,24 @@ impl Theme {  #[derive(Debug, Clone, Copy, PartialEq)]  pub struct Custom {      palette: Palette, -    extended: Extended, +    extended: palette::Extended,  }  impl Custom {      /// Creates a [`Custom`] theme from the given [`Palette`].      pub fn new(palette: Palette) -> Self { +        Self::with_fn(palette, palette::Extended::generate) +    } + +    /// Creates a [`Custom`] theme from the given [`Palette`] with +    /// a custom generator of a [`palette::Extended`]. +    pub fn with_fn( +        palette: Palette, +        generate: impl FnOnce(Palette) -> palette::Extended, +    ) -> Self {          Self {              palette, -            extended: Extended::generate(palette), +            extended: generate(palette),          }      }  }  | 
