# Windows

**Kind**: module | **Library**: @interopio/desktop | **Access**: `io.windows`

**Source**: https://docs.interop.io/desktop/reference/javascript/windows/index.html

The Window Management API lets you create and manipulate windows and is the basis of the App Management API.
It allows users to group io.Connect Windows so that they move, maximize and minimize together,
and provides the following features, not found in any normal browser:

- 4 types of window modes: flat, tab, HTML and frameless.
- visibility - create hidden windows, show them later;
- bounds - set window location and size;
- user interaction - allow a window to be sticky, enable or disable default system buttons ("Minimize", "Maximize", "Close");
- add custom frame buttons to the windows and respond accordingly to user interaction with them;
- organize windows into tabs that the user can also tear off;

Native apps, as opposed to web apps, can have more than one window. After you interop-enable your native app,
your app windows aren't automatically registered as io.Connect Windows. You can choose which ones to register as io.Connect Windows
so that they can use io.Connect Desktop functionalities.

Web and native windows are handled by io.Connect Desktop as window abstractions, which means that:

- You can use any technology adapter provided by io.Connect (JavaScript, .NET, Java, and many more) to control any window, web or native.
- From an end user perspective, there is no difference between web or native windows.
- Feature parity is provided by the different technology adapters.

The Window Management API is accessible via the [`io.windows`](https://docs.interop.io/desktop/reference/javascript/windows/api/index.md) object.

## Interfaces

- [API](https://docs.interop.io/desktop/reference/javascript/windows/api/index.md): Window Management API.
- [AttachOptions](https://docs.interop.io/desktop/reference/javascript/windows/attachoptions/index.md): Settings for a window being attached to a tab group.
- [Bounds](https://docs.interop.io/desktop/reference/javascript/windows/bounds/index.md): Describes the window bounds.
- [ButtonInfo](https://docs.interop.io/desktop/reference/javascript/windows/buttoninfo/index.md): Window button settings.
- [CaptureOptions](https://docs.interop.io/desktop/reference/javascript/windows/captureoptions/index.md): Options for capturing a display.
- [CascadeSettings](https://docs.interop.io/desktop/reference/javascript/windows/cascadesettings/index.md): Settings for cascading windows.
- [ChannelSelector](https://docs.interop.io/desktop/reference/javascript/windows/channelselector/index.md): Settings for the Channel Selector UI.
- [ClearPlacementSettings](https://docs.interop.io/desktop/reference/javascript/windows/clearplacementsettings/index.md): Settings for clearing the window placement.
- [CloseOptions](https://docs.interop.io/desktop/reference/javascript/windows/closeoptions/index.md): Options for closing an io.Connect Window.
- [CreateGroupApplicationOptions](https://docs.interop.io/desktop/reference/javascript/windows/creategroupapplicationoptions/index.md): Options for the app that will be started and loaded in a window frame of a created window group.
- [CreateGroupsOptions](https://docs.interop.io/desktop/reference/javascript/windows/creategroupsoptions/index.md): Options for creating window groups.
- [CreatePopupOptions](https://docs.interop.io/desktop/reference/javascript/windows/createpopupoptions/index.md): Options for creating a popup window. The created window will be frameless and hidden.
- [CreatePopupResult](https://docs.interop.io/desktop/reference/javascript/windows/createpopupresult/index.md): Describes the result from creating a popup window via the `createPopup()` method.
- [DetachOptions](https://docs.interop.io/desktop/reference/javascript/windows/detachoptions/index.md): Settings for a window detached from a window group.
- [DialogOptions](https://docs.interop.io/desktop/reference/javascript/windows/dialogoptions/index.md): Options for showing a dialog.
- [DialogResult](https://docs.interop.io/desktop/reference/javascript/windows/dialogresult/index.md): Describes the result returned from showing a dialog.
- [DockingConfig](https://docs.interop.io/desktop/reference/javascript/windows/dockingconfig/index.md): Docking configuration for a window.
- [DockingOptions](https://docs.interop.io/desktop/reference/javascript/windows/dockingoptions/index.md): Options for docking a window.
- [DockingPlacement](https://docs.interop.io/desktop/reference/javascript/windows/dockingplacement/index.md): Describes a docked window.
- [DownloadOptions](https://docs.interop.io/desktop/reference/javascript/windows/downloadoptions/index.md): Options for downloading a file.
- [DownloadResult](https://docs.interop.io/desktop/reference/javascript/windows/downloadresult/index.md): Describes the result from downloading a file.
- [DownloadSettings](https://docs.interop.io/desktop/reference/javascript/windows/downloadsettings/index.md): Describes the window download behavior.
- [DragMoveOptions](https://docs.interop.io/desktop/reference/javascript/windows/dragmoveoptions/index.md): Options for dragging a window.
- [Flydown](https://docs.interop.io/desktop/reference/javascript/windows/flydown/index.md): Flydown instance returned when creating flydown windows.
- [FlydownOptions](https://docs.interop.io/desktop/reference/javascript/windows/flydownoptions/index.md): Options for creating flydown windows.
- [FlydownZone](https://docs.interop.io/desktop/reference/javascript/windows/flydownzone/index.md): Describes a flydown trigger zone.
- [FrameDefinition](https://docs.interop.io/desktop/reference/javascript/windows/framedefinition/index.md): Describes a window frame that will be part of a created window group.
- [Group](https://docs.interop.io/desktop/reference/javascript/windows/group/index.md): Describes a window group.
- [GroupDefinition](https://docs.interop.io/desktop/reference/javascript/windows/groupdefinition/index.md): Describes a window group that will be created.
- [GroupsAPI](https://docs.interop.io/desktop/reference/javascript/windows/groupsapi/index.md): API for managing window groups.
- [IOConnectWindow](https://docs.interop.io/desktop/reference/javascript/windows/ioconnectwindow/index.md): Describes an io.Connect Window.
- [JumpList](https://docs.interop.io/desktop/reference/javascript/windows/jumplist/index.md): API for managing window jump lists.
- [JumpListActionsAPI](https://docs.interop.io/desktop/reference/javascript/windows/jumplistactionsapi/index.md): API for managing jump list actions within a category.
- [JumpListActionSettings](https://docs.interop.io/desktop/reference/javascript/windows/jumplistactionsettings/index.md): Settings for a jump list action.
- [JumpListCategoriesAPI](https://docs.interop.io/desktop/reference/javascript/windows/jumplistcategoriesapi/index.md): API for managing jump list categories.
- [JumpListCategory](https://docs.interop.io/desktop/reference/javascript/windows/jumplistcategory/index.md): Describes a jump list category.
- [JumpListCategorySettings](https://docs.interop.io/desktop/reference/javascript/windows/jumplistcategorysettings/index.md): Settings for a jump list category.
- [JumpListSettings](https://docs.interop.io/desktop/reference/javascript/windows/jumplistsettings/index.md): Settings for app jump lists.
- [Loader](https://docs.interop.io/desktop/reference/javascript/windows/loader/index.md): Window loader settings.
- [LoadURLOptions](https://docs.interop.io/desktop/reference/javascript/windows/loadurloptions/index.md): Options for loading a window URL.
- [Margins](https://docs.interop.io/desktop/reference/javascript/windows/margins/index.md): Margins for the printed web page.
- [Neighbours](https://docs.interop.io/desktop/reference/javascript/windows/neighbours/index.md): Describes the window neighbors of an io.Connect Window.
- [PageRange](https://docs.interop.io/desktop/reference/javascript/windows/pagerange/index.md): Page range to print.
- [PlacementSettings](https://docs.interop.io/desktop/reference/javascript/windows/placementsettings/index.md): Describes the window position relative to the screen.
- [PopupOptions](https://docs.interop.io/desktop/reference/javascript/windows/popupoptions/index.md): Options for creating popup windows.
- [PreventClosingOptions](https://docs.interop.io/desktop/reference/javascript/windows/preventclosingoptions/index.md): Options for the `prevent()` function passed as an argument to the `onClosing()` method when an io.Connect Window is about to be closed.
- [PrintOptions](https://docs.interop.io/desktop/reference/javascript/windows/printoptions/index.md): Options for printing web pages.
- [PrintToPDFOptions](https://docs.interop.io/desktop/reference/javascript/windows/printtopdfoptions/index.md): Options for printing PDF files.
- [Referrer](https://docs.interop.io/desktop/reference/javascript/windows/referrer/index.md): Describes the values that will be used for the `Referer` and the `Referrer-Policy` request headers.
- [ShowFlydownData](https://docs.interop.io/desktop/reference/javascript/windows/showflydowndata/index.md): Describes a flydown window.
- [Size](https://docs.interop.io/desktop/reference/javascript/windows/size/index.md): Describes the size of the window.
- [SizeConstraints](https://docs.interop.io/desktop/reference/javascript/windows/sizeconstraints/index.md): Describes the minimum and maximum constraints for the window size.
- [SnappingOptions](https://docs.interop.io/desktop/reference/javascript/windows/snappingoptions/index.md): Options for snapping a window to another window or a window group.
- [StartDragOptions](https://docs.interop.io/desktop/reference/javascript/windows/startdragoptions/index.md): Options for moving a file from a web page to the OS.
- [UndockingOptions](https://docs.interop.io/desktop/reference/javascript/windows/undockingoptions/index.md): Settings for undocking the window.
- [UngroupOptions](https://docs.interop.io/desktop/reference/javascript/windows/ungroupoptions/index.md): Settings for a window extracted from a window group.
- [UploadBase64Data](https://docs.interop.io/desktop/reference/javascript/windows/uploadbase64data/index.md): Describes data to upload encoded as a Base64 string.
- [UploadFile](https://docs.interop.io/desktop/reference/javascript/windows/uploadfile/index.md): Describes a file to upload.
- [WindowButtons](https://docs.interop.io/desktop/reference/javascript/windows/windowbuttons/index.md): Describes the buttons for the window frame.
- [WindowConfiguration](https://docs.interop.io/desktop/reference/javascript/windows/windowconfiguration/index.md): Configuration options for an io.Connect Window.
- [WindowCreateOptions](https://docs.interop.io/desktop/reference/javascript/windows/windowcreateoptions/index.md): Options for creating a new window.
- [WindowsConfiguration](https://docs.interop.io/desktop/reference/javascript/windows/windowsconfiguration/index.md): Configuration settings for overriding the default global io.Connect Windows settings.
- [WindowSettings](https://docs.interop.io/desktop/reference/javascript/windows/windowsettings/index.md): Settings for io.Connect Windows.

## Enumerations

- [DialogMode](https://docs.interop.io/desktop/reference/javascript/windows/dialogmode/index.md): Mode for the dialog.
- [DialogType](https://docs.interop.io/desktop/reference/javascript/windows/dialogtype/index.md): Type of the dialog to show. Can be either a predefined io.Connect dialog type, or a custom one.
- [PopupTargetLocation](https://docs.interop.io/desktop/reference/javascript/windows/popuptargetlocation/index.md): Location of the window (flydown or popup) relative to the defined trigger zone (flydown trigger zone or popup trigger area).

## Type Aliases

- [DockingPosition](https://docs.interop.io/desktop/reference/javascript/windows/dockingposition/index.md): Position of the docked window on the screen - top, bottom, left or right.
- [FlashMode](https://docs.interop.io/desktop/reference/javascript/windows/flashmode/index.md): Modes for flashing the window icon in the taskbar:
- [RelativeDirection](https://docs.interop.io/desktop/reference/javascript/windows/relativedirection/index.md): Relative direction for positioning the window.
- [WindowMode](https://docs.interop.io/desktop/reference/javascript/windows/windowmode/index.md): io.Connect Window mode.
- [WindowState](https://docs.interop.io/desktop/reference/javascript/windows/windowstate/index.md): Window state.
