Module nw_sys::screen

source ·
Expand description

Access to system display information, including system resolution, display layout and display layout change notification events.

Synopsis

// init must be called once during startup, before any function to nw.Screen can be called
nw_sys::screen::init_once();

let display_bounds_changed_callback = Callback::new(move |screen:JsValue|{
    let screen: nw_sys::screen::ScreenInfo = screen.try_into()?;
    log_info!("displayBoundsChanged: {:#?}", screen);
    Ok(())
});

let display_added_callback = Callback::new(move |screen:JsValue|{
    let screen: nw_sys::screen::ScreenInfo = screen.try_into()?;
    log_info!("displayAdded: {:#?}", screen);
    Ok(())
});

let display_removed_callback = Callback::new(move |screen:JsValue|{
    let screen: nw_sys::screen::ScreenInfo = screen.try_into()?;
    log_info!("displayRemoved: {:#?}", screen);
    Ok(())
});

// listen to screen events
nw_sys::screen::on("displayBoundsChanged", display_bounds_changed_callback.as_ref());
nw_sys::screen::on("displayAdded", display_added_callback.as_ref());
nw_sys::screen::on("displayRemoved", display_removed_callback.as_ref());

// save callbacks somewhere
app.push_callback(display_bounds_changed_callback)?;
app.push_callback(display_added_callback)?;
app.push_callback(display_removed_callback)?;

Screen

Synopsis

use workflow_wasm::prelude::*;

// init must be called once during startup, before any function to nw.Screen can be called
nw_sys::screen::init_once();

let display_bounds_changed_callback = callback!(move |screen:JsValue|{
    let screen: nw_sys::screen::ScreenInfo = screen.try_into()?;
    log_info!("displayBoundsChanged: {:#?}", screen);
    Ok(())
});

let display_added_callback = callback!(move |screen:JsValue|{
    let screen: nw_sys::screen::ScreenInfo = screen.try_into()?;
    log_info!("displayAdded: {:#?}", screen);
    Ok(())
});

let display_removed_callback = callback!(move |screen:JsValue|{
    let screen: nw_sys::screen::ScreenInfo = screen.try_into()?;
    log_info!("displayRemoved: {:#?}", screen);
    Ok(())
});

// listen to screen events
nw_sys::screen::on("displayBoundsChanged", display_bounds_changed_callback.into_js());
nw_sys::screen::on("displayAdded", display_added_callback.into_js());
nw_sys::screen::on("displayRemoved", display_removed_callback.into_js());

// save callbacks somewhere
app.push_callback(display_bounds_changed_callback)?;
app.push_callback(display_added_callback)?;
app.push_callback(display_removed_callback)?;

Modules

Structs

  • physical screen resolution, can be negative, not necessarily start from 0, depending on screen arrangement
  • Screen Info
  • useable area within the screen bound

Enums

Functions

  • Choose desktop media
  • Init the Screen singleton object, you only need to call this once
  • Call the screen::init() if screen is not initialized yet
  • Return true is screen is initialized
  • Interface for accessing display & monitor layout information. For usage example please refer to nw_sys::screen
  • Get the array of screen (number of screen connected to the computer)