[][src]Trait smithay_client_toolkit::window::Frame

pub trait Frame: Sized + Send {
    type Error;
    fn init(
        base_surface: &WlSurface,
        compositor: &WlCompositor,
        subcompositor: &WlSubcompositor,
        shm: &WlShm,
        implementation: Box<dyn FnMut(FrameRequest, u32) + Send>
    ) -> Result<Self, Self::Error>;
fn set_active(&mut self, active: bool) -> bool;
fn set_maximized(&mut self, maximized: bool) -> bool;
fn set_hidden(&mut self, hidden: bool);
fn set_resizable(&mut self, resizable: bool);
fn new_seat(&mut self, seat: &WlSeat);
fn resize(&mut self, newsize: (u32, u32));
fn redraw(&mut self);
fn subtract_borders(&self, width: i32, height: i32) -> (i32, i32);
fn add_borders(&self, width: i32, height: i32) -> (i32, i32);
fn set_theme<T: Theme>(&mut self, theme: T);
fn set_title(&mut self, title: String); fn location(&self) -> (i32, i32) { ... } }
[]

Interface for defining the drawing of decorations

A type implementing this trait can be used to define custom decorations additionnaly to the ones provided by this crate and be used with Window.

Associated Types

type Error[]

Type of errors that may occur when attempting to create a frame

Required methods

fn init(
    base_surface: &WlSurface,
    compositor: &WlCompositor,
    subcompositor: &WlSubcompositor,
    shm: &WlShm,
    implementation: Box<dyn FnMut(FrameRequest, u32) + Send>
) -> Result<Self, Self::Error>
[]

Initialize the Frame

fn set_active(&mut self, active: bool) -> bool[]

Set whether the decorations should be drawn as active or not

Calling this should not trigger a redraw, but return true if a redraw is needed.

fn set_maximized(&mut self, maximized: bool) -> bool[]

Set whether the decorations should be drawn as maximized or not

Calling this should not trigger a redraw, but return true if a redraw is needed.

fn set_hidden(&mut self, hidden: bool)[]

Hide or show the decorations

Calling this should not trigger a redraw

fn set_resizable(&mut self, resizable: bool)[]

Set whether interactive resize hints should be displayed and reacted to

fn new_seat(&mut self, seat: &WlSeat)[]

Notify that a new wl_seat should be handled

fn resize(&mut self, newsize: (u32, u32))[]

Change the size of the decorations

Calling this should not trigger a redraw

fn redraw(&mut self)[]

Redraw the decorations

fn subtract_borders(&self, width: i32, height: i32) -> (i32, i32)[]

Subtracts the border dimensions from the given dimensions.

fn add_borders(&self, width: i32, height: i32) -> (i32, i32)[]

Adds the border dimensions to the given dimensions.

fn set_theme<T: Theme>(&mut self, theme: T)[]

Sets the theme for the frame

fn set_title(&mut self, title: String)[]

Sets the frames title

Provided methods

fn location(&self) -> (i32, i32)[]

Returns the coordinates of the top-left corner of the borders relative to the content

Values should thus be negative

Implementors

impl Frame for BasicFrame[src][+]

type Error = Error

impl Frame for ConceptFrame[src][+]

type Error = Error