---
sidebar_position: 4
---

# Window

These methods give control of the application window.

### WindowSetTitle

Sets the text in the window title bar.

Go: `WindowSetTitle(ctx context.Context, title string)`<br/>
JS: `WindowSetTitle(title: string)`

### WindowFullscreen

Makes the window full screen.

Go: `WindowFullscreen(ctx context.Context)`<br/>
JS: `WindowFullscreen()`

### WindowUnfullscreen

Restores the previous window dimensions and position prior to full screen.

Go: `WindowUnfullscreen(ctx context.Context)`<br/>
JS: `WindowUnfullscreen()`

### WindowIsFullscreen

Returns true if the window is full screen.

Go: `WindowIsFullscreen(ctx context.Context) bool`<br/>
JS: `WindowIsFullscreen() Promise<boolean>`

### WindowCenter

Centers the window on the monitor the window is currently on.

Go: `WindowCenter(ctx context.Context)`<br/>
JS: `WindowCenter()`

### WindowExecJS

Executes arbitrary JS code in the window.

This method runs the code in the browser asynchronously and returns immediately. 
If the script causes any errors, they will only be available in the browser console.

Go: `WindowExecJS(ctx context.Context, js string)`

### WindowReload

Performs a "reload" (Reloads current page).

Go: `WindowReload(ctx context.Context)`<br/>
JS: `WindowReload()`

### WindowReloadApp

Reloads the application frontend.

Go: `WindowReloadApp(ctx context.Context)`<br/>
JS: `WindowReloadApp()`

### WindowSetSystemDefaultTheme

Windows only.

Go: `WindowSetSystemDefaultTheme(ctx context.Context)`<br/>
JS: `WindowSetSystemDefaultTheme()`

Sets window theme to system default (dark/light).

### WindowSetLightTheme

Windows only.

Go: `WindowSetLightTheme(ctx context.Context)`<br/>
JS: `WindowSetLightTheme()`

Sets window theme to light.

### WindowSetDarkTheme

Windows only.

Go: `WindowSetDarkTheme(ctx context.Context)`<br/>
JS: `WindowSetDarkTheme()`

Sets window theme to dark.

### WindowShow

Shows the window, if it is currently hidden.

Go: `WindowShow(ctx context.Context)`<br/>
JS: `WindowShow()`

### WindowHide

Hides the window, if it is currently visible.

Go: `WindowHide(ctx context.Context)`<br/>
JS: `WindowHide()`

### WindowIsNormal

Returns true if the window not minimised, maximised or fullscreen.

Go: `WindowIsNormal(ctx context.Context) bool`<br/>
JS: `WindowIsNormal() Promise<boolean>`

### WindowSetSize

Sets the width and height of the window.

Go: `WindowSetSize(ctx context.Context, width int, height int)`<br/>
JS: `WindowSetSize(width: number, height: number)`

### WindowGetSize

Gets the width and height of the window.

Go: `WindowGetSize(ctx context.Context) (width int, height int)`<br/>
JS: `WindowGetSize(): Promise<Size>`

### WindowSetMinSize

Sets the minimum window size.
Will resize the window if the window is currently smaller than the given dimensions.

Setting a size of `0,0` will disable this constraint.

Go: `WindowSetMinSize(ctx context.Context, width int, height int)`<br/>
JS: `WindowSetMinSize(width: number, height: number)`

### WindowSetMaxSize

Sets the maximum window size.
Will resize the window if the window is currently larger than the given dimensions.

Setting a size of `0,0` will disable this constraint.

Go: `WindowSetMaxSize(ctx context.Context, width int, height int)`<br/>
JS: `WindowSetMaxSize(width: number, height: number)`

### WindowSetAlwaysOnTop

Sets the window AlwaysOnTop or not on top.

Go: `WindowSetAlwaysOnTop(ctx context.Context, b bool)`<br/>
JS: `WindowSetAlwaysOnTop(b: boolean)`

### WindowSetPosition

Sets the window position relative to the monitor the window is currently on.

Go: `WindowSetPosition(ctx context.Context, x int, y int)`<br/>
JS: `WindowSetPosition(x: number, y: number)`

### WindowGetPosition

Gets the window position relative to the monitor the window is currently on.

Go: `WindowGetPosition(ctx context.Context) (x int, y int)`<br/>
JS: `WindowGetPosition(): Promise<Position>`

### WindowMaximise

Maximises the window to fill the screen.

Go: `WindowMaximise(ctx context.Context)`<br/>
JS: `WindowMaximise()`

### WindowUnmaximise

Restores the window to the dimensions and position prior to maximising.

Go: `WindowUnmaximise(ctx context.Context)`<br/>
JS: `WindowUnmaximise()`

### WindowIsMaximised

Returns true if the window is maximised.

Go: `WindowIsMaximised(ctx context.Context) bool`<br/>
JS: `WindowIsMaximised() Promise<boolean>`

### WindowToggleMaximise

Toggles between Maximised and UnMaximised.

Go: `WindowToggleMaximise(ctx context.Context)`<br/>
JS: `WindowToggleMaximise()`

### WindowMinimise

Minimises the window.

Go: `WindowMinimise(ctx context.Context)`<br/>
JS: `WindowMinimise()`

### WindowUnminimise

Restores the window to the dimensions and position prior to minimising.

Go: `WindowUnminimise(ctx context.Context)`<br/>
JS: `WindowUnminimise()`

### WindowIsMinimised

Returns true if the window is minimised.

Go: `WindowIsMinimised(ctx context.Context) bool`<br/>
JS: `WindowIsMinimised() Promise<boolean>`

### WindowSetBackgroundColour

Sets the background colour of the window to the given RGBA colour definition.
This colour will show through for all transparent pixels.

Valid values for R, G, B and A are 0-255.

:::info Windows

On Windows, only alpha values of 0 or 255 are supported.
Any value that is not 0 will be considered 255.

:::

Go: `WindowSetBackgroundColour(ctx context.Context, R, G, B, A uint8)`<br/>
JS: `WindowSetBackgroundColour(R, G, B, A)`

### WindowPrint

Opens tha native print dialog.

Go: `WindowPrint(ctx context.Context)`<br/>
JS: `WindowPrint()`

## TypeScript Object Definitions

### Position

```ts
interface Position {
  x: number;
  y: number;
}
```

### Size

```ts
interface Size {
  w: number;
  h: number;
}
```
