Contents

BrowserWindow

An application window that displays content of a Browser instance associated with it.

import { BrowserWindow } from '@mobrowser/api';

Example 

import { app, BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.browser.loadUrl(app.url)
win.show()

Properties 

browser 

readonly browser: Browser;

The browser instance associated with the browser window.

title 

readonly title: string;

The current title of the window.

position 

readonly position: Point;

The current position of the window on the screen.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.show()
console.log(`Window position: ${win.position.x}, ${win.position.y}`)

size 

readonly size: Size;

The current size of the window.

Example 

Persist the window size before closing so it can be restored on next launch:

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.show()
console.log(`Window size: ${win.size.width}, ${win.size.height}`)

minimumSize 

readonly minimumSize: Size;

The current minimum size of the window.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow({
  minimumSize: { width: 200, height: 100 }
})
win.show()
console.log(`Window minimum width: ${win.minimumSize.width}`)
console.log(`Window minimum height: ${win.minimumSize.height}`)

bounds 

readonly bounds: Rect;

The current bounds of the window on the screen.

isFocused 

readonly isFocused: boolean;

Whether the window content is focused.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.show()
console.log(`Window is focused: ${win.isFocused}`)

isActive 

readonly isActive: boolean;

Whether the window is active.

isMaximized 

readonly isMaximized: boolean;

Whether the window is maximized.

isMinimized 

readonly isMinimized: boolean;

Whether the window is minimized.

isFullScreen 

readonly isFullScreen: boolean;

Whether the window is in full screen mode.

isAlwaysOnTop 

readonly isAlwaysOnTop: boolean;

Whether the window is always on top of other windows.

isClosed 

readonly isClosed: boolean;

Whether the window is closed.

isWindowTitleVisible 

readonly isWindowTitleVisible: boolean;

Whether the window title is visible.

isWindowTitlebarVisible 

readonly isWindowTitlebarVisible: boolean;

Whether the window titlebar is visible.

windowDisplayPolicy 

readonly windowDisplayPolicy: WindowDisplayPolicy;

The policy for displaying the window across multiple desktops.

isWindowAnimationEnabled 

readonly isWindowAnimationEnabled: boolean;

Whether window animation is enabled when showing the window on macOS.

isActivationIndependenceEnabled 

readonly isActivationIndependenceEnabled: boolean;

Whether the user can interact with the always on top window without causing the application to be activated on macOS.

isVisible 

readonly isVisible: boolean;

Whether the window is visible.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.show()
console.log(`Window is visible: ${win.isVisible}`)

vibrancyEffect 

readonly vibrancyEffect: VibrancyEffect;

The vibrancy effect of the window on macOS.

windowButtonPosition 

readonly windowButtonPosition: Point | null;

The position of the traffic light buttons on the window titlebar on macOS, or null if no custom position is set.

Methods 

constructor() 

constructor(options?: BrowserWindowOptions): void;

Creates a new browser window with the given options.

ParameterTypeDescription
options?BrowserWindowOptionsThe options to use for creating the new browser window. If not provided, default options will be used.

Example 

import { app, BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.browser.loadUrl(app.url)
win.show()

setTitle() 

setTitle(title: string): void;

Sets the title of the window.

ParameterTypeDescription
titlestringThe title to set for the window. Can be an empty string.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.setTitle('My App')

show() 

show(): void;

Shows the window if it is hidden, or brings it to the front if it is already visible.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.show()

hide() 

hide(): void;

Hides the window if it is visible.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.show()
// do something ...
win.hide()

focus() 

focus(): void;

Brings the window to the front and gives it focus.

blur() 

blur(): void;

Removes the window from the front and gives focus to the next window.

maximize() 

maximize(): void;

Maximizes the window.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.show()
win.maximize()

minimize() 

minimize(): void;

Minimizes the window.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.show()
win.minimize()

restore() 

restore(): void;

Restores the window to its previous size.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.show()
win.minimize()
win.restore()

enterFullScreen() 

enterFullScreen(): void;

Enters full screen mode.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.enterFullScreen()
win.show()

exitFullScreen() 

exitFullScreen(): void;

Exits full screen mode.

setPosition() 

setPosition(position: Point): void;

Sets the position of the window.

ParameterTypeDescription
positionPointThe position to set for the window.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.setPosition({ x: 800, y: 600 })
win.show()

setSize() 

setSize(size: Size): void;

Sets the size of the window.

ParameterTypeDescription
sizeSizeThe size to set for the window.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.setSize({ width: 800, height: 600 })
win.show()

setMinimumSize() 

setMinimumSize(size: Size): void;

Sets the minimum size of the window. By default, the minimum size of the window is 1x1.

ParameterTypeDescription
sizeSizeThe minimum size to set for the window.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.setMinSize({ width: 200, height: 100 })
win.show()

setBounds() 

setBounds(bounds: Rect): void;

Sets the bounds of the window.

ParameterTypeDescription
boundsRectThe bounds to set for the window.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.setBounds({ origin: { x: 800, y: 600 }, size: { width: 800, height: 600 } })
win.show()

centerWindow() 

centerWindow(): void;

Centers the window on the screen where it is located.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.centerWindow()
win.show()

setAlwaysOnTop() 

setAlwaysOnTop(alwaysOnTop: boolean): void;

Sets whether the window should be always on top of other windows.

ParameterTypeDescription
alwaysOnTopbooleanWhether the window should be always on top.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.setAlwaysOnTop(true)
win.show()

setWindowTitleVisible() 

setWindowTitleVisible(visible: boolean): void;

Sets whether the window title is visible.

ParameterTypeDescription
visiblebooleanWhether the window title should be visible.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.setWindowTitleVisible(true)
win.show()

setWindowTitlebarVisible() 

setWindowTitlebarVisible(visible: boolean): void;

Sets whether the window titlebar is visible.

ParameterTypeDescription
visiblebooleanWhether the window titlebar should be visible.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.setWindowTitlebarVisible(true)
win.show()

setWindowDisplayPolicy() 

setWindowDisplayPolicy(policy: WindowDisplayPolicy): void;

Sets the policy for displaying the window across multiple desktops.

This functionality is available on macOS only. On Windows and Linux the method does nothing.

ParameterTypeDescription
policyWindowDisplayPolicyThe policy for displaying the window across multiple desktops.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.setWindowDisplayPolicy('appearOnAllDesktops')
win.show()

setWindowButtonVisible() 

setWindowButtonVisible(button: WindowButtonType, visible: boolean): void;

Sets whether the window button of the given type is visible.

ParameterTypeDescription
buttonWindowButtonTypeThe type of the window button.
visiblebooleanWhether the window button is visible.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.setWindowButtonVisible('close', true)
win.show()

isWindowButtonVisible() 

isWindowButtonVisible(button: WindowButtonType): boolean;

Checks if the window button of the given type is visible.

ParameterTypeDescription
buttonWindowButtonTypeThe type of the window button.

setWindowAnimationEnabled() 

setWindowAnimationEnabled(enabled: boolean): void;

Allows enabling or disabling the default window animation when showing the browser window on macOS.

ParameterTypeDescription
enabledbooleanWhether window animation should be enabled.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.setWindowAnimationEnabled(true)
win.show()

setActivationIndependenceEnabled() 

setActivationIndependenceEnabled(enabled: boolean): void;

Specifies whether the user can interact with the always on top window without causing the application to be activated on macOS. Does nothing if the window is not configured to be always on top.

ParameterTypeDescription
enabledbooleanWhether activation independence should be enabled.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.setActivationIndependenceEnabled(true)
win.show()

setVibrancyEffect() 

setVibrancyEffect(effect: VibrancyEffect): void;

Sets the vibrancy effect of the window on macOS.

ParameterTypeDescription
effectVibrancyEffectThe vibrancy effect to set for the window.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.setVibrancyEffect('titlebar')
win.show()

setWindowButtonPosition() 

setWindowButtonPosition(position: Point | null): void;

Sets the position of the traffic light buttons on the window titlebar on macOS. Pass null to reset the position to the macOS default.

On Windows and Linux, the method does nothing.

ParameterTypeDescription
positionPointnull

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.setWindowButtonPosition({ x: 10, y: 10 })
win.show()

close() 

close(): void;

Try to close the window. It is the same as a user clicking the close button of the window.

The window will try to close all its browser instances. If all browser instances are closed successfully, the window will be closed. If some browser instance cancels the close request, the window will stay open.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.show()
// do something ...
win.close()

Events 

’titleChanged' 

on(event: 'titleChanged', listener: () => void): void;
off(event: 'titleChanged', listener: () => void): void;

Emitted when the window title is changed.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.on('titleChanged', (title: string) => {
  console.log('Window title changed')
})
win.show()
win.setTitle('New Title')

‘closed’ 

on(event: 'closed', listener: () => void): void;
off(event: 'closed', listener: () => void): void;

Emitted when the window is closed. After you receive this event, the window object will be destroyed, so you should remove any references to it and avoid using it.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.on('closed', () => {
  console.log('Window is closed')
})
win.show()
// do something ...
win.close()

‘focused’ 

on(event: 'focused', listener: () => void): void;
off(event: 'focused', listener: () => void): void;

Emitted when the window gains focus.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.on('focused', () => {
  console.log('Window is focused')
})
win.show()

‘blurred’ 

on(event: 'blurred', listener: () => void): void;
off(event: 'blurred', listener: () => void): void;

Emitted when the window loses focus.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.on('blurred', () => {
  console.log('Window is blurred')
})
win.show()
// do something ...
win.blur() // or click on another window

‘hidden’ 

on(event: 'hidden', listener: () => void): void;
off(event: 'hidden', listener: () => void): void;

Emitted when the window is hidden.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.on('hidden', () => {
  console.log('Window is hidden')
})
win.show()
// do something ...
win.hide()

‘shown’ 

on(event: 'shown', listener: () => void): void;
off(event: 'shown', listener: () => void): void;

Emitted when the window is shown.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.on('shown', () => {
  console.log('Window is shown')
})
win.show()

‘resized’ 

on(event: 'resized', listener: (newSize: Size) => void): void;
off(event: 'resized', listener: (newSize: Size) => void): void;

Emitted when the window is resized. newSize: The new size of the window.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.on('resized', (newSize: Size) => {
  console.log('Window is resized')
})
win.show()
win.setSize({ width: 800, height: 600 }) // or by resizing the window

‘moved’ 

on(event: 'moved', listener: (newPosition: Point) => void): void;
off(event: 'moved', listener: (newPosition: Point) => void): void;

Emitted when the window is moved to a new position. newPosition: The new position of the window.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.on('moved', (newPosition: Point) => {
  console.log('Window is moved')
})
win.show()
win.setPosition({ x: 800, y: 600 })

‘minimized’ 

on(event: 'minimized', listener: () => void): void;
off(event: 'minimized', listener: () => void): void;

Emitted when the window is minimized.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.on('minimized', () => {
  console.log('Window is minimized')
})
win.show()
win.minimize()

‘maximized’ 

on(event: 'maximized', listener: () => void): void;
off(event: 'maximized', listener: () => void): void;

Emitted when the window is maximized.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.on('maximized', () => {
  console.log('Window is maximized')
})
win.show()
win.maximize()

‘restored’ 

on(event: 'restored', listener: () => void): void;
off(event: 'restored', listener: () => void): void;

Emitted when the window is restored from minimized or maximized state.

Example 

import { BrowserWindow } from '@mobrowser/api';

const win = new BrowserWindow()
win.on('restored', () => {
  console.log('Window is restored')
})
win.show()
win.minimize()
win.restore()