Ende.BrowserWindow
interface · desktop apps only
interface Ende.BrowserWindow<T extends ValidBindings<T> = WindowBindings> extends BrowserWindowEventHandlersclass · desktop apps only
class Ende.BrowserWindow<T extends ValidBindings<T> = WindowBindings> extends EventTargetConstructors
constructor
new BrowserWindow(options?: BrowserWindowOptions)Properties
windowId
readonly windowId: numberMethods
bind
bind<N extends keyof T, F extends T[N]>(name: N, fn: F & BrowserWindowSerializableCheck<F>): voidExpose fn to the webview under name.
The resolved value must be serializable; see
BrowserWindowSerializable. This is checked even when T is
left to its default, so returning e.g. a Date is a type error rather
than an empty object at runtime.
unbind
unbind<N extends keyof T>(name: N): voidexecuteJs
executeJs(script: string): Promise<BrowserWindowValue>setTitle
setTitle(title: string): voidgetSize
getSize(): [number, number]setSize
setSize(width: number, height: number): voidgetPosition
getPosition(): [number, number]setPosition
setPosition(x: number, y: number): voidisResizable
isResizable(): booleansetResizable
setResizable(resizable: boolean): voidisAlwaysOnTop
isAlwaysOnTop(): booleansetAlwaysOnTop
setAlwaysOnTop(alwaysOnTop: boolean): voidgetOpacity
getOpacity(): numberGet the window's overall opacity, a uniform factor in the range 0–1
where 1 is fully opaque.
setOpacity
setOpacity(opacity: number): voidSet the window's overall opacity, a uniform factor in the range 0–1
where 1 is fully opaque (the default) and 0 is fully transparent.
Fades the entire window — web content and native chrome alike — like CSS
opacity. Out-of-range values are clamped. No-op on backends without
opacity support.
isClosed
isClosed(): booleanclose
close(): voidisVisible
isVisible(): booleanshow
show(): voidhide
hide(): voidfocus
focus(): voidnavigate
navigate(url: string): voidopenDevtools
openDevtools(options?: OpenDevtoolsOptions): voidOpen a DevTools window.
By default both targets are shown. Pass an options object to
select which targets to inspect. At least one must be true.
reload
reload(): voidsetApplicationMenu
setApplicationMenu(menu: MenuItem[]): voidshowContextMenu
showContextMenu(x: number, y: number, menu: MenuItem[]): voidPop up a context menu inside this window.
x and y are window-relative CSS pixels with a top-left origin — the
same space as a DOM mouse event's clientX / clientY, so those can be
forwarded unchanged:
win.addEventListener("mousedown", (e) => {
if (e.button === 2) win.showContextMenu(e.clientX, e.clientY, menu);
});
The platform may shift the menu to keep it on screen when it does not fit below or to the right of that point.
getNativeWindow
getNativeWindow(): Ende.UnsafeWindowSurfaceaddEventListener
addEventListener<K extends keyof BrowserWindowEventMap>(type: K, listener: (this: BrowserWindow, ev: BrowserWindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): voidaddEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): voidremoveEventListener
removeEventListener<K extends keyof BrowserWindowEventMap>(type: K, listener: (this: BrowserWindow, ev: BrowserWindowEventMap[K]) => any, options?: boolean | EventListenerOptions): voidremoveEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void