Trait gtk4_layer_shell::LayerShell

source ·
pub trait LayerShell: IsA<Window> {
Show 18 methods // Provided methods fn auto_exclusive_zone_enable(&self) { ... } fn auto_exclusive_zone_is_enabled(&self) -> bool { ... } fn is_anchor(&self, edge: Edge) -> bool { ... } fn exclusive_zone(&self) -> i32 { ... } fn keyboard_mode(&self) -> KeyboardMode { ... } fn layer(&self) -> Layer { ... } fn margin(&self, edge: Edge) -> i32 { ... } fn monitor(&self) -> Option<Monitor> { ... } fn namespace(&self) -> Option<GString> { ... } fn init_layer_shell(&self) { ... } fn is_layer_window(&self) -> bool { ... } fn set_anchor(&self, edge: Edge, anchor_to_edge: bool) { ... } fn set_exclusive_zone(&self, exclusive_zone: i32) { ... } fn set_keyboard_mode(&self, mode: KeyboardMode) { ... } fn set_layer(&self, layer: Layer) { ... } fn set_margin(&self, edge: Edge, margin_size: i32) { ... } fn set_monitor(&self, monitor: &Monitor) { ... } fn set_namespace(&self, name_space: &str) { ... }
}

Provided Methods§

source

fn auto_exclusive_zone_enable(&self)

When auto exclusive zone is enabled, exclusive zone is automatically set to the size of the window + relevant margin. To disable auto exclusive zone, just set the exclusive zone to 0 or any other fixed value.

NOTE: you can control the auto exclusive zone by changing the margin on the non-anchored edge. This behavior is specific to gtk-layer-shell and not part of the underlying protocol

§window

A layer surface.

source

fn auto_exclusive_zone_is_enabled(&self) -> bool

§window

A layer surface.

§Returns

if the surface’s exclusive zone is set to change based on the window’s size

source

fn is_anchor(&self, edge: Edge) -> bool

§window

A layer surface.

§edge

the edge to which the surface may or may not be anchored

§Returns

if this surface is anchored to the given edge.

source

fn exclusive_zone(&self) -> i32

§window

A layer surface.

§Returns

the window’s exclusive zone (which may have been set manually or automatically)

source

fn keyboard_mode(&self) -> KeyboardMode

§window

A layer surface.

§Returns

current keyboard interactivity mode for window.

source

fn layer(&self) -> Layer

§window

A layer surface.

§Returns

the current layer.

source

fn margin(&self, edge: Edge) -> i32

§window

A layer surface.

§edge

the margin edge to get

§Returns

the size of the margin for the given edge.

source

fn monitor(&self) -> Option<Monitor>

NOTE: To get which monitor the surface is actually on, use gdk_display_get_monitor_at_window().

§window

A layer surface.

§Returns

the monitor this surface will/has requested to be on, can be None.

source

fn namespace(&self) -> Option<GString>

NOTE: this function does not return ownership of the string. Do not free the returned string. Future calls into the library may invalidate the returned string.

§window

A layer surface.

§Returns

a reference to the namespace property. If namespace is unset, returns the default namespace (“gtk-layer-shell”). Never returns None.

source

fn init_layer_shell(&self)

Set the window up to be a layer surface once it is mapped. this must be called before the window is realized.

§window

A gtk::Window to be turned into a layer surface.

source

fn is_layer_window(&self) -> bool

§window

A gtk::Window that may or may not have a layer surface.

§Returns

if window has been initialized as a layer surface.

source

fn set_anchor(&self, edge: Edge, anchor_to_edge: bool)

Set whether window should be anchored to edge.

  • If two perpendicular edges are anchored, the surface with be anchored to that corner
  • If two opposite edges are anchored, the window will be stretched across the screen in that direction

Default is false for each Edge

§window

A layer surface.

§edge

A Edge this layer surface may be anchored to.

§anchor_to_edge

Whether or not to anchor this layer surface to edge.

source

fn set_exclusive_zone(&self, exclusive_zone: i32)

Has no effect unless the surface is anchored to an edge. Requests that the compositor does not place other surfaces within the given exclusive zone of the anchored edge. For example, a panel can request to not be covered by maximized windows. See wlr-layer-shell-unstable-v1.xml for details.

Default is 0

§window

A layer surface.

§exclusive_zone

The size of the exclusive zone.

source

fn set_keyboard_mode(&self, mode: KeyboardMode)

Sets if/when window should receive keyboard events from the compositor, see GtkLayerShellKeyboardMode for details.

Default is KeyboardMode::None

§window

A layer surface.

§mode

The type of keyboard interactivity requested.

source

fn set_layer(&self, layer: Layer)

Set the “layer” on which the surface appears (controls if it is over top of or below other surfaces). The layer may be changed on-the-fly in the current version of the layer shell protocol, but on compositors that only support an older version the window is remapped so the change can take effect.

Default is Layer::Top

§window

A layer surface.

§layer

The layer on which this surface appears.

source

fn set_margin(&self, edge: Edge, margin_size: i32)

Set the margin for a specific edge of a window. Effects both surface’s distance from the edge and its exclusive zone size (if auto exclusive zone enabled).

Default is 0 for each Edge

§window

A layer surface.

§edge

The Edge for which to set the margin.

§margin_size

The margin for edge to be set.

source

fn set_monitor(&self, monitor: &Monitor)

Set the output for the window to be placed on, or None to let the compositor choose. If the window is currently mapped, it will get remapped so the change can take effect.

Default is None

§window

A layer surface.

§monitor

The output this layer surface will be placed on (None to let the compositor decide).

source

fn set_namespace(&self, name_space: &str)

Set the “namespace” of the surface.

No one is quite sure what this is for, but it probably should be something generic (“panel”, “osk”, etc). The name_space string is copied, and caller maintains ownership of original. If the window is currently mapped, it will get remapped so the change can take effect.

Default is “gtk-layer-shell” (which will be used if set to None)

§window

A layer surface.

§name_space

The namespace of this layer surface.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<T: IsA<Window>> LayerShell for T