// Generated from WebIDL - DO NOT EDIT
// Source: @webref/idl/pointerlock
///|
/// PointerLockOptions dictionary
pub(all) struct PointerLockOptions {
unadjustedMovement : Bool?
}
///|
/// Create a new PointerLockOptions with default values
pub fn PointerLockOptions::default() -> PointerLockOptions {
PointerLockOptions::{ unadjustedMovement: None }
}
///|
extern "js" fn PointerLockOptions::to_js_ffi(
self : PointerLockOptions,
) -> JsValue =
#| (self) => ({
#| unadjustedMovement: (self.unadjustedMovement === -1 ? undefined : self.unadjustedMovement)
#| })
///|
/// Convert to JsValue
pub fn PointerLockOptions::to_js(self : PointerLockOptions) -> JsValue {
PointerLockOptions::to_js_ffi(self)
}
///|
extern "js" fn PointerLockOptions::from_js_ffi(
value : JsValue,
) -> PointerLockOptions =
#| (v) => ({
#| unadjustedMovement: (v.unadjustedMovement === undefined ? -1 : v.unadjustedMovement)
#| })
///|
/// Convert from JsValue
pub fn PointerLockOptions::from_js(value : JsValue) -> PointerLockOptions {
PointerLockOptions::from_js_ffi(value)
}
///|
/// MouseEventInit dictionary
pub(all) struct MouseEventInit {
movementX : Double?
movementY : Double?
screenX : Int?
screenY : Int?
clientX : Int?
clientY : Int?
button : Int?
buttons : Int?
relatedTarget : Nullable[EventTarget]
}
///|
/// Create a new MouseEventInit with default values
pub fn MouseEventInit::default() -> MouseEventInit {
MouseEventInit::{
movementX: None,
movementY: None,
screenX: None,
screenY: None,
clientX: None,
clientY: None,
button: None,
buttons: None,
relatedTarget: Nullable::Undefined,
}
}
///|
extern "js" fn MouseEventInit::to_js_ffi(self : MouseEventInit) -> JsValue =
#| (self) => ({
#| movementX: ((() => { const v = self.movementX; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| movementY: ((() => { const v = self.movementY; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| screenX: self.screenX,
#| screenY: self.screenY,
#| clientX: self.clientX,
#| clientY: self.clientY,
#| button: self.button,
#| buttons: self.buttons,
#| relatedTarget: ((() => { const v = self.relatedTarget; if (v.$tag === 0) return undefined; if (v.$tag === 1) return null; return v._0; })())
#| })
///|
/// Convert to JsValue
pub fn MouseEventInit::to_js(self : MouseEventInit) -> JsValue {
MouseEventInit::to_js_ffi(self)
}
///|
extern "js" fn MouseEventInit::from_js_ffi(value : JsValue) -> MouseEventInit =
#| (v) => ({
#| movementX: (v.movementX === undefined ? { $tag: 0 } : { $tag: 1, _0: v.movementX }),
#| movementY: (v.movementY === undefined ? { $tag: 0 } : { $tag: 1, _0: v.movementY }),
#| screenX: v.screenX,
#| screenY: v.screenY,
#| clientX: v.clientX,
#| clientY: v.clientY,
#| button: v.button,
#| buttons: v.buttons,
#| relatedTarget: (v.relatedTarget === undefined ? { $tag: 0 } : v.relatedTarget === null ? { $tag: 1 } : { $tag: 2, _0: v.relatedTarget })
#| })
///|
/// Convert from JsValue
pub fn MouseEventInit::from_js(value : JsValue) -> MouseEventInit {
MouseEventInit::from_js_ffi(value)
}