AboutSupportDeveloper GuideVersion 36.122.80.11

Interface WindowOptionDiff

Hierarchy

  • WindowOptionDiff

Properties

accelerator: {
    newVal: Partial<Accelerator>;
    oldVal: Partial<Accelerator>;
}

Enable keyboard shortcuts for devtools, zoom, reload, and reload ignoring cache.

Type declaration

alphaMask: {
    newVal: RGB;
    oldVal: 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

Type declaration

alwaysOnTop: {
    newVal: boolean;
    oldVal: boolean;
}

Type declaration

  • newVal: boolean
  • oldVal: boolean

Default Value

false

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

api: {
    newVal: ApiSettings;
    oldVal: ApiSettings;
}

Configurations for API injection.

Type declaration

applicationIcon: {
    newVal: string;
    oldVal: string;
}

Type declaration

  • newVal: string
  • oldVal: string

Deprecated

use icon instead.

aspectRatio: {
    newVal: number;
    oldVal: number;
}

Type declaration

  • newVal: number
  • oldVal: 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.

autoShow: {
    newVal: boolean;
    oldVal: boolean;
}

Automatically show the window when it is created.

Type declaration

  • newVal: boolean
  • oldVal: boolean
autoplayPolicy: {
    newVal: AutoplayPolicyOptions;
    oldVal: AutoplayPolicyOptions;
}

Autoplay policy to apply to content in the window, can be no-user-gesture-required, user-gesture-required, document-user-activation-required. Defaults to no-user-gesture-required.

Type declaration

backgroundColor: {
    newVal: string;
    oldVal: string;
}

The window’s backfill color as a hexadecimal value. Not to be confused with the content background color (document.body.style.backgroundColor), this color briefly fills a window’s (a) content area before its content is loaded as well as (b) newly exposed areas when growing a window. Setting this value to the anticipated content background color can help improve user experience. Default is white.

Type declaration

  • newVal: string
  • oldVal: string
closeOnLastViewRemoved: {
    newVal: boolean;
    oldVal: boolean;
}

Type declaration

  • newVal: boolean
  • oldVal: boolean

Default Value

true

Setting this to false would keep the Window alive even if all its Views were closed. This is meant for advanced users and should be used with caution. Limitations - Once a Layout has been emptied out of all views it's not usable anymore, and certain API calls will fail. Use layout.replace to create a fresh Layout instance in case you want to populate it with Views again. NOTE: - This option is ignored in non-Platforms apps.

contentCreation: {
    newVal: ContentCreationOptions;
    oldVal: ContentCreationOptions;
}

Configures how new content (e,g, from window.open or a link) is opened.

Type declaration

contentNavigation: {
    newVal: NavigationRules;
    oldVal: NavigationRules;
}

Restrict navigation to URLs that match an allowed pattern. In the lack of an allowlist, navigation to URLs that match a denied pattern would be prohibited. See here for more details.

Type declaration

contentRedirect: {
    newVal: Partial<NavigationRules>;
    oldVal: Partial<NavigationRules>;
}

Restrict redirects to URLs that match an allowed pattern. In the lack of an allowlist, redirects to URLs that match a denied pattern would be prohibited. See here for more details.

Type declaration

contextMenu: {
    newVal: boolean;
    oldVal: boolean;
}

Type declaration

  • newVal: boolean
  • oldVal: 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: {
    newVal: ContextMenuOptions;
    oldVal: ContextMenuOptions;
}

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

Type declaration

contextMenuSettings: {
    newVal: ContextMenuSettings;
    oldVal: ContextMenuSettings;
}

Type declaration

Deprecated

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

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

cornerRounding: {
    newVal: Partial<CornerRounding>;
    oldVal: 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.

Type declaration

customContext: {
    newVal: any;
    oldVal: 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.

Type declaration

  • newVal: any
  • oldVal: any

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: {
    newVal: any;
    oldVal: 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.

Type declaration

  • newVal: any
  • oldVal: any
customRequestHeaders: {
    newVal: CustomRequestHeaders[];
    oldVal: CustomRequestHeaders[];
}

Custom headers for requests sent by the window.

Type declaration

defaultCentered: {
    newVal: boolean;
    oldVal: boolean;
}

Centers the window in the primary monitor. This option overrides defaultLeft and defaultTop. When saveWindowState is true, this value will be ignored for subsequent launches in favor of the cached value.

NOTE: On macOS defaultCenter is somewhat above center vertically.

Type declaration

  • newVal: boolean
  • oldVal: boolean
defaultHeight: {
    newVal: number;
    oldVal: number;
}

Type declaration

  • newVal: number
  • oldVal: number

Default Value

500

The default height of the window. When saveWindowState is true, this value will be ignored for subsequent launches in favor of the cached value.

defaultLeft: {
    newVal: number;
    oldVal: number;
}

Type declaration

  • newVal: number
  • oldVal: number

Default Value

100

The default left position of the window. When saveWindowState is true, this value will be ignored for subsequent launches in favor of the cached value.

defaultTop: {
    newVal: number;
    oldVal: number;
}

Type declaration

  • newVal: number
  • oldVal: number

Default Value

100

The default top position of the window. When saveWindowState is true, this value will be ignored for subsequent launches in favor of the cached value.

defaultWidth: {
    newVal: number;
    oldVal: number;
}

Type declaration

  • newVal: number
  • oldVal: number

Default Value

800

The default width of the window. When saveWindowState is true, this value will be ignored for subsequent launches in favor of the cached value.

downloadShelf: {
    newVal: DownloadShelfOptions;
    oldVal: DownloadShelfOptions;
}

Controls the styling and behavior of the window download shelf.

Type declaration

Remarks

This will control the styling for the download shelf regardless of whether its display was triggered by the window itself, or a view targeting the window.

experimental?: {
    newVal: any;
    oldVal: any;
}

Type declaration

  • newVal: any
  • oldVal: any
fdc3InteropApi?: {
    newVal: undefined | string;
    oldVal: undefined | string;
}

Type declaration

  • newVal: undefined | string
  • oldVal: undefined | string
frame: {
    newVal: boolean;
    oldVal: boolean;
}

Type declaration

  • newVal: boolean
  • oldVal: boolean

Default Value

true

Show the window's frame.

height: {
    newVal: number;
    oldVal: number;
}

Type declaration

  • newVal: number
  • oldVal: number
hideOnClose: {
    newVal: boolean;
    oldVal: boolean;
}

Type declaration

  • newVal: boolean
  • oldVal: boolean

Default Value

false

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

hotkeys: {
    newVal: Hotkey[];
    oldVal: 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.

Type declaration

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: {
    newVal: string;
    oldVal: 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.

Type declaration

  • newVal: string
  • oldVal: string
ignoreSavedWindowState: {
    newVal: boolean;
    oldVal: boolean;
}

Ignores the cached state of the window. Defaults the opposite value of saveWindowState to maintain backwards compatibility.

Type declaration

  • newVal: boolean
  • oldVal: boolean
includeInSnapshots: {
    newVal: boolean;
    oldVal: boolean;
}

Type declaration

  • newVal: boolean
  • oldVal: 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.

inheritance?: {
    newVal: undefined | Partial<InheritableOptions>;
    oldVal: undefined | Partial<InheritableOptions>;
}

Controls whether an option is inherited from the parent application. The option is set as part of the window options for the parent application in either the startup_app or platform properties in the manifest or in mainWindowOptions when calling Application.start. Use { [option]: false } to disable a specific [option]. All inheritable properties will be inherited by default if omitted.

Type declaration

interop: {
    newVal: InteropConfig;
    oldVal: InteropConfig;
}

Type declaration

layout: {
    newVal: any;
    oldVal: any;
}

Type declaration

  • newVal: any
  • oldVal: any
layoutSnapshot: {
    newVal: LayoutSnapshot;
    oldVal: LayoutSnapshot;
}

The collection of layouts to load when the window is created. When launching multiple layouts, manage the lifecycle via fin.Platform.Layout.create()/destroy() methods.

Type declaration

maxHeight: {
    newVal: number;
    oldVal: number;
}

Type declaration

  • newVal: number
  • oldVal: number

Default Value

-1

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

maxWidth: {
    newVal: number;
    oldVal: number;
}

Type declaration

  • newVal: number
  • oldVal: number

Default Value

-1

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

maximizable: {
    newVal: boolean;
    oldVal: boolean;
}

Type declaration

  • newVal: boolean
  • oldVal: boolean

Default Value

true

Allows the window to be maximized.

minHeight: {
    newVal: number;
    oldVal: number;
}

Type declaration

  • newVal: number
  • oldVal: number

Default Value

0

The minimum height of the window.

minWidth: {
    newVal: number;
    oldVal: number;
}

Type declaration

  • newVal: number
  • oldVal: number

Default Value

true

The minimum width of the window.

minimizable: {
    newVal: boolean;
    oldVal: boolean;
}

Type declaration

  • newVal: boolean
  • oldVal: boolean

Default Value

true

Allows the window to be minimized.

modalParentIdentity: {
    newVal: Identity;
    oldVal: Identity;
}

Parent identity of a modal window. It will create a modal child window when this option is set.

Type declaration

name: {
    newVal: string;
    oldVal: string;
}

The name of the window.

Type declaration

  • newVal: string
  • oldVal: string
opacity: {
    newVal: number;
    oldVal: number;
}

Type declaration

  • newVal: number
  • oldVal: 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.

permissions: {
    newVal: Partial<Permissions>;
    oldVal: Partial<Permissions>;
}

Type declaration

preloadScripts: {
    newVal: PreloadScript[];
    oldVal: PreloadScript[];
}

Scripts that run before page load. When omitted, inherits from the parent application.

Type declaration

processAffinity: {
    newVal: string;
    oldVal: string;
}

String tag that attempts to group like-tagged renderers together. Will only be used if pages are on the same origin.

Type declaration

  • newVal: string
  • oldVal: string
resizable: {
    newVal: boolean;
    oldVal: boolean;
}

Type declaration

  • newVal: boolean
  • oldVal: boolean

Default Value

true

A flag to allow the user to resize the window.

resizeRegion: {
    newVal: ResizeRegion;
    oldVal: ResizeRegion;
}

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

Type declaration

saveWindowState: {
    newVal: boolean;
    oldVal: boolean;
}

Type declaration

  • newVal: boolean
  • oldVal: boolean

Default Value

true

Caches the location of the window.

Note: this option is ignored in Platforms as it would cause inconsistent applySnapshot behavior.

shadow: {
    newVal: boolean;
    oldVal: boolean;
}

Type declaration

  • newVal: boolean
  • oldVal: boolean

Default Value

false

Displays a shadow on frameless windows. shadow and cornerRounding are mutually exclusive. On Windows 7, Aero theme is required.

showBackgroundImages: {
    newVal: boolean;
    oldVal: boolean;
}

Type declaration

  • newVal: boolean
  • oldVal: 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: {
    newVal: boolean;
    oldVal: boolean;
}

Type declaration

  • newVal: boolean
  • oldVal: boolean

Default Value

true

Shows the window's icon in the taskbar.

smallWindow: {
    newVal: boolean;
    oldVal: boolean;
}

Type declaration

  • newVal: boolean
  • oldVal: boolean

Default Value

false

Makes this window a frameless window that can be created and resized to less than 41x36 px (width x height).

Note: Caveats of small windows are no Aero Snap and drag to/from maximize. Windows 10: Requires maximizable to be false. Resizing with the mouse is only possible down to 38x39 px.

state: {
    newVal: WindowState;
    oldVal: WindowState;
}

Type declaration

Default Value

"normal"

The visible state of the window on creation. One of:

  • "maximized"
  • "minimized"
  • "normal"
taskbarIcon: {
    newVal: string;
    oldVal: string;
}

Type declaration

  • newVal: string
  • oldVal: string

Deprecated

  • use icon instead.
taskbarIconGroup: {
    newVal: string;
    oldVal: string;
}

Specify a taskbar group for the window. If omitted, defaults to app's uuid (fin.Application.getCurrentSync().identity.uuid).

Type declaration

  • newVal: string
  • oldVal: string
url: {
    newVal: string;
    oldVal: string;
}

Type declaration

  • newVal: string
  • oldVal: string

Default Value

"about:blank"

The URL of the window

uuid: {
    newVal: string;
    oldVal: string;
}

Type declaration

  • newVal: string
  • oldVal: string

Default Value

The uuid of the application, unique within the set of all Applications running in OpenFin Runtime. If omitted, defaults to the uuid of the application spawning the window. If given, must match the uuid of the application spawning the window. In other words, the application's uuid is the only acceptable value, but is the default, so there's really no need to provide it.

viewVisibility?: {
    newVal: undefined | ViewVisibilityOptions;
    oldVal: undefined | ViewVisibilityOptions;
}

Platform Windows Only. Controls behavior for showing views when they are being resized by the user.

Type declaration

viewsPreventingClose: {
    newVal: "layout" | "all";
    oldVal: "layout" | "all";
}

Type declaration

  • newVal: "layout" | "all"
  • oldVal: "layout" | "all"

Default Value

'all'

When closeOnLastViewRemoved is set to true, determines which views prevent closing the window.

    • Defaults to all. You may want to switch this to layout if using View closeBehavior: 'hide'.

NOTE: - This option is ignored in non-Platforms apps.

waitForPageLoad: {
    newVal: boolean;
    oldVal: boolean;
}

Type declaration

  • newVal: boolean
  • oldVal: boolean

Default Value

false

When set to true, the window will not appear until the window object's load event fires. When set to false, the window will appear immediately without waiting for content to be loaded.

width: {
    newVal: number;
    oldVal: number;
}

Type declaration

  • newVal: number
  • oldVal: number
x: {
    newVal: number;
    oldVal: number;
}

Type declaration

  • newVal: number
  • oldVal: number
y: {
    newVal: number;
    oldVal: number;
}

Type declaration

  • newVal: number
  • oldVal: number