pub struct LaunchBuilder { /* private fields */ }Implementations§
Source§impl LaunchBuilder
impl LaunchBuilder
pub fn new() -> Self
pub fn with_mode(self, mode: LoopMode) -> Self
Sourcepub fn with_theme(self, theme: Theme) -> Self
pub fn with_theme(self, theme: Theme) -> Self
Theme::unified for one design system everywhere, Theme::adaptive to follow the
host platform. Not calling this follows the host platform, falling back to
Material 3.
Sourcepub fn with_window(self, window: Window) -> Self
pub fn with_window(self, window: Window) -> Self
What the application asks of its own window: its size, and whether it wears the platform’s title bar or has content run into it.
Not calling this gets a modern window that the Renderer sizes. The window belongs to the Renderer and most of what it looks like is the design system’s, so what can be said here is short on purpose: nothing names a colour, a corner, or where the window buttons go.
Sourcepub fn windows(self) -> Self
pub fn windows(self) -> Self
Runs several windows in one process: the root’s children are Window
nodes, each a platform window, and they share one composition and one set of
states. Without this the root’s content fills the one window.
The window that closes last ends the application, except on macOS where the
application stays; LaunchBuilder::on_last_window_closed chooses.
Sourcepub fn on_last_window_closed(self, policy: LastWindowClosed) -> Self
pub fn on_last_window_closed(self, policy: LastWindowClosed) -> Self
What happens when the last Window node is removed. Mobile platforms
ignore it: the system decides how long the process lives.
Sourcepub fn identifier(self, identifier: impl Into<String>) -> Self
pub fn identifier(self, identifier: impl Into<String>) -> Self
The application’s identifier, which names its storage (compose_rust::storage).
Use the same value as [bundle] identifier in the application’s Dioxus.toml,
such as "dev.darkpyonix.composerust.samples.todo". It is not read from anywhere
else: a bundle, a package name or an executable name would give the same program a
different storage depending on how it was started, and the web has none of them.
It is 1 to 255 bytes of ASCII letters, digits, . and -, because it names a
directory and a browser database as it is. One that is not stops the launch before
anything starts, with a sentence that says what is wrong and a failing exit status.
An application that never uses storage does not need one.
Sourcepub fn launch_runtime(
self,
runtime: impl Fn() -> Box<dyn Runtime> + Send + Sync + 'static,
)
pub fn launch_runtime( self, runtime: impl Fn() -> Box<dyn Runtime> + Send + Sync + 'static, )
Runs the application whose tree runtime builds. Does not return while it is
running, and ends the process with a failing status if the renderer loop could
not run at all.
runtime is called on the Renderer’s UI thread each time a Host is made: once at
start, and again whenever the Renderer asks for the whole tree back.
Exiting rather than returning is the point. Launching is the last statement of
main in every application that uses this crate, so returning from it means main
returns, which means the process exits 0. A window that never opened would then be
indistinguishable from a program that did its work and stopped.
Sourcepub fn try_launch_runtime(
self,
runtime: impl Fn() -> Box<dyn Runtime> + Send + Sync + 'static,
) -> i32
pub fn try_launch_runtime( self, runtime: impl Fn() -> Box<dyn Runtime> + Send + Sync + 'static, ) -> i32
LaunchBuilder::launch_runtime without the exit: the status the renderer loop
ended with, handed back for a caller that has its own idea of what to do with it.
Source§impl LaunchBuilder
impl LaunchBuilder
Sourcepub fn launch(self, content: fn())
pub fn launch(self, content: fn())
Runs a composable as the application. Does not return while it is running, and ends the process with a failing status if the renderer loop could not run at all.
#[Composable]
fn app() {
Text("Hello");
}
fn main() {
compose_rust::LaunchBuilder::new().launch(app);
}Sourcepub fn try_launch(self, content: fn()) -> i32
pub fn try_launch(self, content: fn()) -> i32
crate::LaunchBuilder::launch without the exit: the status the renderer loop
ended with.
Sourcepub fn application(self, content: fn())
pub fn application(self, content: fn())
The same as launch, under Compose Desktop’s name for it.