gio::prelude

Trait AppLaunchContextExt

Source
pub trait AppLaunchContextExt: IsA<AppLaunchContext> + 'static {
    // Provided methods
    fn display(
        &self,
        info: &impl IsA<AppInfo>,
        files: &[File],
    ) -> Option<GString> { ... }
    fn environment(&self) -> Vec<OsString> { ... }
    fn startup_notify_id(
        &self,
        info: Option<&impl IsA<AppInfo>>,
        files: &[File],
    ) -> Option<GString> { ... }
    fn launch_failed(&self, startup_notify_id: &str) { ... }
    fn setenv(&self, variable: impl AsRef<OsStr>, value: impl AsRef<OsStr>) { ... }
    fn unsetenv(&self, variable: impl AsRef<OsStr>) { ... }
    fn connect_launch_failed<F: Fn(&Self, &str) + 'static>(
        &self,
        f: F,
    ) -> SignalHandlerId { ... }
    fn connect_launch_started<F: Fn(&Self, &AppInfo, Option<&Variant>) + 'static>(
        &self,
        f: F,
    ) -> SignalHandlerId { ... }
    fn connect_launched<F: Fn(&Self, &AppInfo, &Variant) + 'static>(
        &self,
        f: F,
    ) -> SignalHandlerId { ... }
}
Expand description

Trait containing all AppLaunchContext methods.

§Implementors

AppLaunchContext

Provided Methods§

Source

fn display(&self, info: &impl IsA<AppInfo>, files: &[File]) -> Option<GString>

Gets the display string for the @self. This is used to ensure new applications are started on the same display as the launching application, by setting the DISPLAY environment variable.

§info

the app info

§files

a list of File objects

§Returns

a display string for the display.

Source

fn environment(&self) -> Vec<OsString>

Gets the complete environment variable list to be passed to the child process when @self is used to launch an application. This is a NULL-terminated array of strings, where each string has the form KEY=VALUE.

§Returns

the child’s environment

Source

fn startup_notify_id( &self, info: Option<&impl IsA<AppInfo>>, files: &[File], ) -> Option<GString>

Initiates startup notification for the application and returns the XDG_ACTIVATION_TOKEN or DESKTOP_STARTUP_ID for the launched operation, if supported.

The returned token may be referred to equivalently as an ‘activation token’ (using Wayland terminology) or a ‘startup sequence ID’ (using X11 terminology). The two are interoperable.

Activation tokens are defined in the XDG Activation Protocol, and startup notification IDs are defined in the freedesktop.org Startup Notification Protocol.

Support for the XDG Activation Protocol was added in GLib 2.76. Since GLib 2.82 @info and @files can be NULL. If that’s not supported by the backend, the returned token will be NULL.

§info

the app info

§files

a list of File objects

§Returns

a startup notification ID for the application, or NULL if not supported.

Source

fn launch_failed(&self, startup_notify_id: &str)

Called when an application has failed to launch, so that it can cancel the application startup notification started in startup_notify_id().

§startup_notify_id

the startup notification id that was returned by startup_notify_id().

Source

fn setenv(&self, variable: impl AsRef<OsStr>, value: impl AsRef<OsStr>)

Arranges for @variable to be set to @value in the child’s environment when @self is used to launch an application.

§variable

the environment variable to set

§value

the value for to set the variable to.

Source

fn unsetenv(&self, variable: impl AsRef<OsStr>)

Arranges for @variable to be unset in the child’s environment when @self is used to launch an application.

§variable

the environment variable to remove

Source

fn connect_launch_failed<F: Fn(&Self, &str) + 'static>( &self, f: F, ) -> SignalHandlerId

The launch-failed signal is emitted when a AppInfo launch fails. The startup notification id is provided, so that the launcher can cancel the startup notification.

Because a launch operation may involve spawning multiple instances of the target application, you should expect this signal to be emitted multiple times, one for each spawned instance.

§startup_notify_id

the startup notification id for the failed launch

Source

fn connect_launch_started<F: Fn(&Self, &AppInfo, Option<&Variant>) + 'static>( &self, f: F, ) -> SignalHandlerId

Available on crate feature v2_72 only.

The launch-started signal is emitted when a AppInfo is about to be launched. If non-null the @platform_data is an GVariant dictionary mapping strings to variants (ie a{sv}), which contains additional, platform-specific data about this launch. On UNIX, at least the startup-notification-id keys will be present.

The value of the startup-notification-id key (type s) is a startup notification ID corresponding to the format from the startup-notification specification. It allows tracking the progress of the launchee through startup.

It is guaranteed that this signal is followed by either a launched or launch-failed signal.

Because a launch operation may involve spawning multiple instances of the target application, you should expect this signal to be emitted multiple times, one for each spawned instance.

§info

the AppInfo that is about to be launched

§platform_data

additional platform-specific data for this launch

Source

fn connect_launched<F: Fn(&Self, &AppInfo, &Variant) + 'static>( &self, f: F, ) -> SignalHandlerId

The launched signal is emitted when a AppInfo is successfully launched.

Because a launch operation may involve spawning multiple instances of the target application, you should expect this signal to be emitted multiple times, one time for each spawned instance.

The @platform_data is an GVariant dictionary mapping strings to variants (ie a{sv}), which contains additional, platform-specific data about this launch. On UNIX, at least the pid and startup-notification-id keys will be present.

Since 2.72 the pid may be 0 if the process id wasn’t known (for example if the process was launched via D-Bus). The pid may not be set at all in subsequent releases.

On Windows, pid is guaranteed to be valid only for the duration of the launched signal emission; after the signal is emitted, GLib will call spawn_close_pid(). If you need to keep the alias::GLib.Pid after the signal has been emitted, then you can duplicate pid using DuplicateHandle().

§info

the AppInfo that was just launched

§platform_data

additional platform-specific data for this launch

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§