diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/application.rs | 10 | ||||
| -rw-r--r-- | src/lib.rs | 3 | ||||
| -rw-r--r-- | src/sandbox.rs | 10 | ||||
| -rw-r--r-- | src/settings.rs | 43 | 
4 files changed, 56 insertions, 10 deletions
| diff --git a/src/application.rs b/src/application.rs index f6d3fb90..a4d20e68 100644 --- a/src/application.rs +++ b/src/application.rs @@ -1,4 +1,4 @@ -use crate::{Command, Element}; +use crate::{Command, Element, Settings};  /// An interactive cross-platform application.  /// @@ -19,10 +19,10 @@ use crate::{Command, Element};  /// before](index.html#overview). We just need to fill in the gaps:  ///  /// ```no_run -/// use iced::{button, Application, Button, Column, Command, Element, Text}; +/// use iced::{button, Application, Button, Column, Command, Element, Settings, Text};  ///  /// pub fn main() { -///     Counter::run() +///     Counter::run(Settings::default())  /// }  ///  /// #[derive(Default)] @@ -132,12 +132,12 @@ pub trait Application: Sized {      /// It should probably be that last thing you call in your `main` function.      ///      /// [`Application`]: trait.Application.html -    fn run() +    fn run(settings: Settings)      where          Self: 'static,      {          #[cfg(not(target_arch = "wasm32"))] -        <Instance<Self> as iced_winit::Application>::run(); +        <Instance<Self> as iced_winit::Application>::run(settings.into());          #[cfg(target_arch = "wasm32")]          <Instance<Self> as iced_web::Application>::run(); @@ -185,6 +185,9 @@ mod application;  mod platform;  mod sandbox; +pub mod settings; +  pub use application::Application;  pub use platform::*;  pub use sandbox::Sandbox; +pub use settings::Settings; diff --git a/src/sandbox.rs b/src/sandbox.rs index 60e3be14..acf7f5e0 100644 --- a/src/sandbox.rs +++ b/src/sandbox.rs @@ -1,4 +1,4 @@ -use crate::{Application, Command, Element}; +use crate::{Application, Command, Element, Settings};  /// A sandboxed [`Application`].  /// @@ -19,10 +19,10 @@ use crate::{Application, Command, Element};  /// to remove the use of [`Command`]:  ///  /// ```no_run -/// use iced::{button, Button, Column, Element, Sandbox, Text}; +/// use iced::{button, Button, Column, Element, Sandbox, Settings, Text};  ///  /// pub fn main() { -///     Counter::run() +///     Counter::run(Settings::default())  /// }  ///  /// #[derive(Default)] @@ -121,11 +121,11 @@ pub trait Sandbox {      /// It should probably be that last thing you call in your `main` function.      ///      /// [`Sandbox`]: trait.Sandbox.html -    fn run() +    fn run(settings: Settings)      where          Self: 'static + Sized,      { -        <Self as Application>::run() +        <Self as Application>::run(settings)      }  } diff --git a/src/settings.rs b/src/settings.rs new file mode 100644 index 00000000..2556c51b --- /dev/null +++ b/src/settings.rs @@ -0,0 +1,43 @@ +//! Configure your application. + +/// The settings of an application. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)] +pub struct Settings { +    /// The [`Window`] settings. +    /// +    /// They will be ignored on the Web. +    /// +    /// [`Window`]: struct.Window.html +    pub window: Window, +} + +/// The window settings of an application. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct Window { +    /// The size of the window. +    pub size: (u32, u32), + +    /// Whether the window should be resizable or not. +    pub resizable: bool, +} + +impl Default for Window { +    fn default() -> Window { +        Window { +            size: (1024, 768), +            resizable: true, +        } +    } +} + +#[cfg(not(target_arch = "wasm32"))] +impl From<Settings> for iced_winit::Settings { +    fn from(settings: Settings) -> iced_winit::Settings { +        iced_winit::Settings { +            window: iced_winit::settings::Window { +                size: settings.window.size, +                resizable: settings.window.resizable, +            }, +        } +    } +} | 
