Macro smithay_client_toolkit::new_default_environment [−][src]
macro_rules! new_default_environment {
($env_name : ident, desktop $(, with = ($display : expr, $queue : expr)) ?
$(, fields = [$($fname : ident : $fval : expr), * $(,) ?]) ? $(,) ?) => { ... };
($env_name : ident, with = ($display : expr, $queue : expr)
$(, fields = [$($fname : ident : $fval : expr), * $(,) ?]) ? $(,) ?) => { ... };
($env_name : ident $(, fields = [$($fname : ident : $fval : expr), * $(,) ?])
? $(,) ?) => { ... };
}
Expand description
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!");