electron-sys 0.4.0

Raw bindings to the Electron API for projects using wasm-bindgen.
Documentation
use crate::class::BrowserWindow;
use js_sys::Function;
use wasm_bindgen::prelude::*;

#[wasm_bindgen]
#[derive(Clone, Debug)]
pub struct PopupOptions {
    callback: Option<Function>,
    positioning_item: Option<usize>,
    window: Option<BrowserWindow>,
    x: Option<usize>,
    y: Option<usize>,
}

#[wasm_bindgen]
impl PopupOptions {
    #[wasm_bindgen(constructor)]
    pub fn new(
        callback: Option<Function>,
        positioning_item: Option<usize>,
        window: Option<BrowserWindow>,
        x: Option<usize>,
        y: Option<usize>,
    ) -> PopupOptions {
        PopupOptions {
            callback,
            positioning_item,
            window,
            x,
            y,
        }
    }

    #[wasm_bindgen(getter)]
    pub fn callback(&self) -> Option<Function> {
        self.callback.clone()
    }

    #[wasm_bindgen(setter)]
    pub fn set_callback(&mut self, value: Option<Function>) {
        self.callback = value;
    }

    #[wasm_bindgen(getter)]
    pub fn positioning_item(&self) -> Option<usize> {
        self.positioning_item
    }

    #[wasm_bindgen(setter)]
    pub fn set_positioning_item(&mut self, value: Option<usize>) {
        self.positioning_item = value;
    }

    #[wasm_bindgen(getter)]
    pub fn window(&self) -> Option<BrowserWindow> {
        self.window.clone()
    }

    #[wasm_bindgen(setter)]
    pub fn set_window(&mut self, value: Option<BrowserWindow>) {
        self.window = value;
    }

    #[wasm_bindgen(getter)]
    pub fn x(&self) -> Option<usize> {
        self.x
    }

    #[wasm_bindgen(setter)]
    pub fn set_x(&mut self, value: Option<usize>) {
        self.x = value;
    }

    #[wasm_bindgen(getter)]
    pub fn y(&self) -> Option<usize> {
        self.y
    }

    #[wasm_bindgen(setter)]
    pub fn set_y(&mut self, value: Option<usize>) {
        self.y = value;
    }
}