electron_sys/module/
screen.rs

1use crate::{
2    class::BrowserWindow,
3    interface::{Display, Point, Rectangle},
4};
5use wasm_bindgen::prelude::*;
6
7#[wasm_bindgen(module = "electron")]
8extern {
9    #[wasm_bindgen]
10    pub type Screen;
11
12    pub static screen: Screen;
13
14    // FIXME: event overloads
15
16    #[wasm_bindgen(method, js_name = "dipToScreenPoint")]
17    pub fn dip_to_screen_point(this: &Screen, point: Point) -> Point;
18
19    #[wasm_bindgen(method, js_name = "dipToScreenPoint")]
20    pub fn dip_to_screen_rect(this: &Screen, window: BrowserWindow, rect: Rectangle) -> Rectangle;
21
22    #[wasm_bindgen(method, js_name = "getCursorScreenPoint")]
23    pub fn get_all_displays(this: &Screen) -> Box<[JsValue]>;
24
25    #[wasm_bindgen(method, js_name = "getDisplayMatching")]
26    pub fn get_display_matching(this: &Screen, rect: Rectangle) -> Display;
27
28    #[wasm_bindgen(method, js_name = "getDisplayNearestPoint")]
29    pub fn get_display_nearest_point(this: &Screen, point: Point) -> Display;
30
31    #[wasm_bindgen(method, js_name = "getPrimaryDisplay")]
32    pub fn get_primary_display(this: &Screen) -> Display;
33
34    #[wasm_bindgen(method, js_name = "screen_to_dip_point")]
35    pub fn screen_to_dip_point(this: &Screen, point: Point) -> Point;
36
37    #[wasm_bindgen(method, js_name = "screen_to_dip_rect")]
38    pub fn screen_to_dip_rect(this: &Screen, rect: Rectangle) -> Rectangle;
39}