diff options
author | 2024-12-17 17:28:46 +0100 | |
---|---|---|
committer | 2024-12-17 17:28:46 +0100 | |
commit | f2c9b6b2ffc50d67d9789e77cb55eeb2a0ebe470 (patch) | |
tree | 4941905adf134468acc079610bb6f25d7461d543 /src | |
parent | a687a837653a576cb0599f7bc8ecd9c6054213a9 (diff) | |
parent | e5545aaa579f428e45853d125ac86155d8395104 (diff) | |
download | iced-f2c9b6b2ffc50d67d9789e77cb55eeb2a0ebe470.tar.gz iced-f2c9b6b2ffc50d67d9789e77cb55eeb2a0ebe470.tar.bz2 iced-f2c9b6b2ffc50d67d9789e77cb55eeb2a0ebe470.zip |
Merge pull request #2698 from iced-rs/feature/test-crate
Headless Mode Testing
Diffstat (limited to '')
-rw-r--r-- | core/src/settings.rs (renamed from src/settings.rs) | 13 | ||||
-rw-r--r-- | src/application.rs | 9 | ||||
-rw-r--r-- | src/daemon.rs | 9 | ||||
-rw-r--r-- | src/lib.rs | 9 | ||||
-rw-r--r-- | src/program.rs | 29 |
5 files changed, 27 insertions, 42 deletions
diff --git a/src/settings.rs b/core/src/settings.rs index ebac7a86..3189c8d1 100644 --- a/src/settings.rs +++ b/core/src/settings.rs @@ -29,11 +29,9 @@ pub struct Settings { /// primitives. /// /// Enabling it can produce a smoother result in some widgets, like the - /// [`Canvas`], at a performance cost. + /// `canvas` widget, at a performance cost. /// /// By default, it is disabled. - /// - /// [`Canvas`]: crate::widget::Canvas pub antialiasing: bool, } @@ -48,12 +46,3 @@ impl Default for Settings { } } } - -impl From<Settings> for iced_winit::Settings { - fn from(settings: Settings) -> iced_winit::Settings { - iced_winit::Settings { - id: settings.id, - fonts: settings.fonts, - } - } -} diff --git a/src/application.rs b/src/application.rs index 2ba764be..c79ed62b 100644 --- a/src/application.rs +++ b/src/application.rs @@ -31,6 +31,7 @@ //! } //! ``` use crate::program::{self, Program}; +use crate::theme; use crate::window; use crate::{ Element, Executor, Font, Result, Settings, Size, Subscription, Task, @@ -38,8 +39,6 @@ use crate::{ use std::borrow::Cow; -pub use crate::shell::program::{Appearance, DefaultStyle}; - /// Creates an iced [`Application`] given its title, update, and view logic. /// /// # Example @@ -76,7 +75,7 @@ pub fn application<State, Message, Theme, Renderer>( where State: 'static, Message: Send + std::fmt::Debug + 'static, - Theme: Default + DefaultStyle, + Theme: Default + theme::Base, Renderer: program::Renderer, { use std::marker::PhantomData; @@ -94,7 +93,7 @@ where for Instance<State, Message, Theme, Renderer, Update, View> where Message: Send + std::fmt::Debug + 'static, - Theme: Default + DefaultStyle, + Theme: Default + theme::Base, Renderer: program::Renderer, Update: self::Update<State, Message>, View: for<'a> self::View<'a, State, Message, Theme, Renderer>, @@ -352,7 +351,7 @@ impl<P: Program> Application<P> { /// Sets the style logic of the [`Application`]. pub fn style( self, - f: impl Fn(&P::State, &P::Theme) -> Appearance, + f: impl Fn(&P::State, &P::Theme) -> theme::Style, ) -> Application< impl Program<State = P::State, Message = P::Message, Theme = P::Theme>, > { diff --git a/src/daemon.rs b/src/daemon.rs index 81254bf9..fd6d0278 100644 --- a/src/daemon.rs +++ b/src/daemon.rs @@ -1,13 +1,12 @@ //! Create and run daemons that run in the background. use crate::application; use crate::program::{self, Program}; +use crate::theme; use crate::window; use crate::{Element, Executor, Font, Result, Settings, Subscription, Task}; use std::borrow::Cow; -pub use crate::shell::program::{Appearance, DefaultStyle}; - /// Creates an iced [`Daemon`] given its title, update, and view logic. /// /// A [`Daemon`] will not open a window by default, but will run silently @@ -26,7 +25,7 @@ pub fn daemon<State, Message, Theme, Renderer>( where State: 'static, Message: Send + std::fmt::Debug + 'static, - Theme: Default + DefaultStyle, + Theme: Default + theme::Base, Renderer: program::Renderer, { use std::marker::PhantomData; @@ -44,7 +43,7 @@ where for Instance<State, Message, Theme, Renderer, Update, View> where Message: Send + std::fmt::Debug + 'static, - Theme: Default + DefaultStyle, + Theme: Default + theme::Base, Renderer: program::Renderer, Update: application::Update<State, Message>, View: for<'a> self::View<'a, State, Message, Theme, Renderer>, @@ -201,7 +200,7 @@ impl<P: Program> Daemon<P> { /// Sets the style logic of the [`Daemon`]. pub fn style( self, - f: impl Fn(&P::State, &P::Theme) -> Appearance, + f: impl Fn(&P::State, &P::Theme) -> theme::Style, ) -> Daemon< impl Program<State = P::State, Message = P::Message, Theme = P::Theme>, > { @@ -491,7 +491,6 @@ mod program; pub mod application; pub mod daemon; -pub mod settings; pub mod time; pub mod window; @@ -506,8 +505,8 @@ pub use crate::core::padding; pub use crate::core::theme; pub use crate::core::{ Alignment, Background, Border, Color, ContentFit, Degrees, Gradient, - Length, Padding, Pixels, Point, Radians, Rectangle, Rotation, Shadow, Size, - Theme, Transformation, Vector, + Length, Padding, Pixels, Point, Radians, Rectangle, Rotation, Settings, + Shadow, Size, Theme, Transformation, Vector, }; pub use crate::runtime::exit; pub use iced_futures::Subscription; @@ -624,8 +623,8 @@ pub use error::Error; pub use event::Event; pub use executor::Executor; pub use font::Font; +pub use program::Program; pub use renderer::Renderer; -pub use settings::Settings; pub use task::Task; #[doc(inline)] @@ -686,7 +685,7 @@ pub fn run<State, Message, Theme, Renderer>( where State: Default + 'static, Message: std::fmt::Debug + Send + 'static, - Theme: Default + program::DefaultStyle + 'static, + Theme: Default + theme::Base + 'static, Renderer: program::Renderer + 'static, { application(title, update, view).run() diff --git a/src/program.rs b/src/program.rs index 94cb9a7d..ace4da74 100644 --- a/src/program.rs +++ b/src/program.rs @@ -1,11 +1,10 @@ use crate::core::text; use crate::graphics::compositor; use crate::shell; +use crate::theme; use crate::window; use crate::{Element, Executor, Result, Settings, Subscription, Task}; -pub use crate::shell::program::{Appearance, DefaultStyle}; - /// The internal definition of a [`Program`]. /// /// You should not need to implement this trait directly. Instead, use the @@ -19,7 +18,7 @@ pub trait Program: Sized { type Message: Send + std::fmt::Debug + 'static; /// The theme of the program. - type Theme: Default + DefaultStyle; + type Theme: Default + theme::Base; /// The renderer of the program. type Renderer: Renderer; @@ -51,11 +50,11 @@ pub trait Program: Sized { } fn theme(&self, _state: &Self::State, _window: window::Id) -> Self::Theme { - Self::Theme::default() + <Self::Theme as Default>::default() } - fn style(&self, _state: &Self::State, theme: &Self::Theme) -> Appearance { - DefaultStyle::default_style(theme) + fn style(&self, _state: &Self::State, theme: &Self::Theme) -> theme::Style { + theme::Base::base(theme) } fn scale_factor(&self, _state: &Self::State, _window: window::Id) -> f64 { @@ -153,7 +152,7 @@ pub trait Program: Sized { self.program.theme(&self.state, window) } - fn style(&self, theme: &Self::Theme) -> Appearance { + fn style(&self, theme: &Self::Theme) -> theme::Style { self.program.style(&self.state, theme) } @@ -252,7 +251,7 @@ pub fn with_title<P: Program>( &self, state: &Self::State, theme: &Self::Theme, - ) -> Appearance { + ) -> theme::Style { self.program.style(state, theme) } @@ -322,7 +321,7 @@ pub fn with_subscription<P: Program>( &self, state: &Self::State, theme: &Self::Theme, - ) -> Appearance { + ) -> theme::Style { self.program.style(state, theme) } @@ -395,7 +394,7 @@ pub fn with_theme<P: Program>( &self, state: &Self::State, theme: &Self::Theme, - ) -> Appearance { + ) -> theme::Style { self.program.style(state, theme) } @@ -409,7 +408,7 @@ pub fn with_theme<P: Program>( pub fn with_style<P: Program>( program: P, - f: impl Fn(&P::State, &P::Theme) -> Appearance, + f: impl Fn(&P::State, &P::Theme) -> theme::Style, ) -> impl Program<State = P::State, Message = P::Message, Theme = P::Theme> { struct WithStyle<P, F> { program: P, @@ -418,7 +417,7 @@ pub fn with_style<P: Program>( impl<P: Program, F> Program for WithStyle<P, F> where - F: Fn(&P::State, &P::Theme) -> Appearance, + F: Fn(&P::State, &P::Theme) -> theme::Style, { type State = P::State; type Message = P::Message; @@ -430,7 +429,7 @@ pub fn with_style<P: Program>( &self, state: &Self::State, theme: &Self::Theme, - ) -> Appearance { + ) -> theme::Style { (self.style)(state, theme) } @@ -535,7 +534,7 @@ pub fn with_scale_factor<P: Program>( &self, state: &Self::State, theme: &Self::Theme, - ) -> Appearance { + ) -> theme::Style { self.program.style(state, theme) } @@ -609,7 +608,7 @@ pub fn with_executor<P: Program, E: Executor>( &self, state: &Self::State, theme: &Self::Theme, - ) -> Appearance { + ) -> theme::Style { self.program.style(state, theme) } |