Interface MutableWindowOptions

Window options that can be changed after window creation.

Hierarchy

  • MutableWindowOptions

Properties

alphaMask: RGB

Turns anything of matching RGB value transparent.

Caveats:

  • runtime key --disable-gpu is required. Note: Unclear behavior on remote Desktop support
  • User cannot click-through transparent regions
  • Not supported on Mac
  • Windows Aero must be enabled
  • Won't make visual sense on Pixel-pushed environments such as Citrix
  • Not supported on rounded corner windows
alwaysOnTop: boolean

Default Value

false

Always position the window at the top of the window stack.

aspectRatio: number

Default Value

0

The aspect ratio of width to height to enforce for the window. If this value is equal to or less than zero, an aspect ratio will not be enforced.

contextMenu: boolean

Deprecated

Superseded by contextMenuOptions, which offers a larger feature-set and cleaner syntax.

Default Value

true

Show the context menu when right-clicking on the window. Gives access to the devtools for the window.

contextMenuOptions: ContextMenuOptions

Configure the context menu when right-clicking on a window.

contextMenuSettings: ContextMenuSettings

Deprecated

Superseded by contextMenuOptions, which offers a larger feature-set and cleaner syntax.

Configure the context menu when right-clicking on a window.

cornerRounding: Partial<CornerRounding>

Defines and applies rounded corners for a frameless window. NOTE: On macOS corner is not ellipse but circle rounded by the average of height and width.

customContext: any

A field that the user can use to attach serializable data that will be saved when Platform.getSnapshot is called. If a window in a Platform is trying to update or retrieve its own context, it can use the Platform.setWindowContext and Platform.getWindowContext calls. When omitted, inherits from the parent application. As opposed to customData, this is meant for frequent updates and sharing with other contexts.

Example

This Example shows a window sharing context to all it's views. By executing the code here in the correct context, the view will have global broadcastContext and addContextListener methods available. The window will synchronize context between views such that calling broadcastContext in any of the views will invoke any listeners added with addContextListener in all attached views.

In Window (frame)

const me = fin.Window.getCurrentSync();
me.on('options-changed', async (event) => {
if (event.diff.customContext) {
const myViews = await me.getCurrentViews();
const customContext = event.diff.customContext.newVal;
myViews.forEach(v => {
v.updateOptions({customContext});
});
}
})

in View (content)

const me = fin.View.getCurrentSync();
const broadcastContext = async (customContext) => {
const myWindow = await me.getCurrentWindow()
await myWindow.updateOptions({customContext})
};
const addContextListener = async (listener) => {
await me.on('options-changed', (event) => {
if (event.diff.customContext) {
listener(event.diff.customContext.newVal);
}
});
}
customData: any

A field that the user can attach serializable data to be ferried around with the window options. When omitted, inherits from the parent application.

frame: boolean

Default Value

true

Show the window's frame.

hideOnClose: boolean

Default Value

false

Hides the window instead of closing it when the close button is pressed.

hotkeys: Hotkey[]

Defines the hotkeys that will be emitted as a hotkey event on the window. Within Platform, OpenFin also implements a set of pre-defined actions called keyboard commands that can be assigned to a specific hotkey in the platform manifest.

Example

This example shows the example of using the hotkeys option on Windows/Views and the corresponding hotkey event emitted when a specified hotkey is pressed.

Defining the hotkey

const myMagicWindow = await fin.Window.create({
name: 'magicWin',
hotkeys: [
{
keys: 'Ctrl+M',
}
]
});

Listening to the hotkey

myMagicWindow.on('hotkey', (hotkeyEvent) => {
console.log(`A hotkey was pressed in the magic window!: ${JSON.stringify(hotkeyEvent)}`);
});

Removing a hotkey

After the following change, the hotkey event will no longer be emitted when Ctrl+M is pressed:

const currentHotkeys = (await myMagicWindow.getOptions()).hotkeys;
const newHotkeys = currentHotkeys.filter(hotkey => hotkey.keys !== 'Ctrl+M');
myMagicWindow.updateOptions({
hotkeys: newHotkeys
});

Remarks

The hotkeys option is configured per-instance and isn't passed down to the children of Window/View. Therefore, if you want a Window/View and all of its children to support hotkeys, you must configure the hotkeys option for every created child.

icon: string

A URL for the icon to be shown in the window title bar and the taskbar. When omitted, inherits from the parent application.

Note: Window OS caches taskbar icons, therefore an icon change might only be visible after the cache is removed or the uuid is changed.

includeInSnapshots: boolean

Default Value

true

Include window in snapshots returned by Platform.getSnapshot(). Turning this off may be desirable when dealing with inherently temporary windows whose state shouldn't be preserved, such as modals, menus, or popups.

interop: InteropConfig
maxHeight: number

Default Value

-1

The maximum height of a window. Will default to the OS defined value if set to -1.

maxWidth: number

Default Value

-1

The maximum width of a window. Will default to the OS defined value if set to -1.

maximizable: boolean

Default Value

true

Allows the window to be maximized.

minHeight: number

Default Value

0

The minimum height of the window.

minWidth: number

Default Value

true

The minimum width of the window.

minimizable: boolean

Default Value

true

Allows the window to be minimized.

opacity: number

Default Value

1

A flag that specifies how transparent the window will be. Changing opacity doesn't work on Windows 7 without Aero so setting this value will have no effect there. This value is clamped between 0.0 and 1.0.

resizable: boolean

Default Value

true

A flag to allow the user to resize the window.

resizeRegion: ResizeRegion

Defines a region in pixels that will respond to user mouse interaction for resizing a frameless window.

showBackgroundImages: boolean

Default Value

false

Platforms Only. If true, will show background images in the layout when the Views are hidden. This occurs when the window is resizing or a tab is being dragged within the layout.

showTaskbarIcon: boolean

Default Value

true

Shows the window's icon in the taskbar.

workspacePlatform: WorkspacePlatformOptions