pub trait Application: Programwhere
    <Self::Renderer as Renderer>::Theme: StyleSheet,{
    type Flags;

    // Required methods
    fn new(flags: Self::Flags) -> (Self, Command<Self::Message>);
    fn title(&self) -> String;
    fn theme(&self) -> <Self::Renderer as Renderer>::Theme;

    // Provided methods
    fn style(
        &self
    ) -> <<Self::Renderer as Renderer>::Theme as StyleSheet>::Style { ... }
    fn subscription(
        &self
    ) -> Subscription<Hasher, (Event, Status), Self::Message> { ... }
    fn scale_factor(&self) -> f64 { ... }
}
Expand description

An interactive, native cross-platform application.

This trait is the main entrypoint of Iced. Once implemented, you can run your GUI application by simply calling run. It will run in its own window.

An Application can execute asynchronous actions by returning a Command in some of its methods.

When using an Application with the debug feature enabled, a debug view can be toggled by pressing F12.

Required Associated Types§

source

type Flags

The data needed to initialize your Application.

Required Methods§

source

fn new(flags: Self::Flags) -> (Self, Command<Self::Message>)

Initializes the Application with the flags provided to run as part of the Settings.

Here is where you should return the initial state of your app.

Additionally, you can return a Command if you need to perform some async action in the background on startup. This is useful if you want to load state from a file, perform an initial HTTP request, etc.

source

fn title(&self) -> String

Returns the current title of the Application.

This title can be dynamic! The runtime will automatically update the title of your application when necessary.

source

fn theme(&self) -> <Self::Renderer as Renderer>::Theme

Returns the current Theme of the Application.

Provided Methods§

source

fn style(&self) -> <<Self::Renderer as Renderer>::Theme as StyleSheet>::Style

Returns the Style variation of the Theme.

source

fn subscription(&self) -> Subscription<Hasher, (Event, Status), Self::Message>

Returns the event Subscription for the current state of the application.

The messages produced by the Subscription will be handled by update.

A Subscription will be kept alive as long as you keep returning it!

By default, it returns an empty subscription.

source

fn scale_factor(&self) -> f64

Returns the scale factor of the Application.

It can be used to dynamically control the size of the UI at runtime (i.e. zooming).

For instance, a scale factor of 2.0 will make widgets twice as big, while a scale factor of 0.5 will shrink them to half their size.

By default, it returns 1.0.

Implementors§