[−][src]Macro smithay_client_toolkit::new_default_environment
Initialize a batteries-included SCTK environment
Sister macro of default_environment!
. You need
to use it to initialize the environment instead of
Envrionment::init
. It has the same semantics.
If a preset was used for default_environment!
, it
must be provided here as well.
The macro will automatically setup a Wayland connection and evaluate to a Result
containing either Ok((env, display, queue))
, providing you the initialized Environment
as well as the wayland Display
and EventQueue
associated to it, or to an error
if the connection failed.
let (env, display, queue) = new_default_environment!(MyEnv, desktop, // the optional preset /* initializers for your extra fields if any, can be ommited if no fields are added */ fields=[ somefield: 42, otherfield: String::from("Hello World"), ] ).expect("Unable to connect to the wayland compositor");
If you instead want the macro to use some pre-existing display and event queue, you can
add the with
argument providing them. In that case the macro will evaluate to
a Result<Environment, io::Error>
, forwarding to you any error that may have occured
during the initial roundtrips.
let env = new_default_environment!(MyEnv, desktop, // the optional preset with=(display, queue), // the display and event queue to use /* initializers for your extra fields if any, can be ommited if no fields are added */ fields=[ somefield: 42, otherfield: String::from("Hello World"), ] ).expect("Initial roundtrips failed!");