Skip to main content

Window

Struct Window 

Source
pub struct Window {
    pub window_type: WindowType,
    pub state: WindowState,
    pub top_left: Point,
    pub size: Size,
    pub depth_layer: DepthLayer,
    pub name: String,
    pub transform: Mat4,
    pub alpha: f32,
    /* private fields */
}
Expand description

A window’s state, exposed to plugin callbacks and to crate::plugin::managed_windows.

Read-only fields describe the window at the time of the callback. Setter methods (set_state, set_rectangle, etc.) are available for windows returned by crate::plugin::managed_windows.

Fields§

§window_type: WindowType

The type of this window.

§state: WindowState

The state of the window.

§top_left: Point

The position of the window.

§size: Size

The size of the window.

§depth_layer: DepthLayer

The depth layer of the window.

§name: String

The name of the window.

§transform: Mat4

The 4x4 transform matrix of the window (column-major).

§alpha: f32

The alpha (opacity) of the window.

Implementations§

Source§

impl Window

Source

pub fn id(&self) -> u64

Retrieve the ID of this window.

Plugins may elect to keep a reference to this ID so that they can match it with Window later.

Source

pub fn application(&self) -> Option<ApplicationInfo>

Get the application that owns this window.

Source

pub fn container(&self) -> Option<Container>

Get the container that holds this window.

Source

pub fn workspace(&self) -> Option<Workspace>

Get the workspace that this window is on.

Source

pub fn set_state(&self, state: WindowState) -> Result<(), ()>

Set the state of this window.

Source

pub fn set_workspace(&self, workspace: &Workspace) -> Result<(), ()>

Move this window to a different workspace.

Source

pub fn set_rectangle(&self, rect: Rectangle, animate: bool) -> Result<(), ()>

Set the position and size of this window.

Source

pub fn set_transform(&self, transform: Mat4) -> Result<(), ()>

Set the 4x4 column-major transform matrix of this window.

Source

pub fn set_alpha(&self, alpha: f32) -> Result<(), ()>

Set the alpha (opacity) of this window.

Source

pub fn request_focus(&self) -> Result<(), ()>

Request keyboard focus on this window.

Source

pub fn set_shader(&self, shader_id: Option<u8>) -> Result<(), ()>

Set the custom shader applied to this window.

Pass Some(id) with the ID returned by register_window_sample_to_rgba to activate the shader, or None to clear any custom shader and revert to default rendering.

Source

pub fn set_geometry_shader( &self, geometry_shader_id: Option<u8>, ) -> Result<(), ()>

Set the geometry shader applied to this window.

Pass Some(id) with the ID returned by crate::plugin::register_window_geometry_shader to activate the shader, or None to clear it and revert to the window’s plain geometry.

Source

pub fn set_shader_uniform( &self, name: &str, value: ShaderUniform, ) -> Result<(), ()>

Set the uniform called name on every shader that draws this window, replacing any previous value of the same name. Setting it redraws the window.

Shaders that do not declare name, or that declare it with another type, ignore it. A window may have at most 16 uniforms, and names may be at most 64 bytes long. Names that the compositor sets itself (e.g. u_world_to_clip, alpha) and those starting with gl_ are rejected.

Source

pub fn clear_shader_uniform(&self, name: Option<&str>) -> Result<(), ()>

Clear the uniform called name, or every uniform if name is None. Shaders that read a cleared uniform see zero. Clearing redraws the window.

Source

pub fn set_movable(&self, movable: bool) -> Result<(), ()>

Set whether this window may be moved by the user.

Only windows managed by this plugin can be changed. This may be called at any time, including while the user is moving the window, in which case the move ends.

Trait Implementations§

Source§

impl Clone for Window

Source§

fn clone(&self) -> Window

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Window

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for Window

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.