# Editor.PanelDockWindows

Drags dock panels between desktop windows with panel-drawn chrome.

- Kind: class
- Namespace: `Editor`
- Assembly: `Sandbox.Tools`
- Modifiers: sealed

## Constructors

- [`PanelDockWindows`](/api/Editor.PanelDockWindows/.ctor): Enables desktop tab dragging for this host and its floating windows.

## Properties

- [`ConfigureWindow`](/api/Editor.PanelDockWindows/ConfigureWindow): Styles each floating root before content is transferred.
- [`State`](/api/Editor.PanelDockWindows/State): Saves the main layout and every floating window, including closed registrations, tab selection, splits, desktop position and UI size. Does not move panels. Call between drag/layout operations.

## Methods

- [`Dispose`](/api/Editor.PanelDockWindows/Dispose): Unhooks dragging and returns floating content if the main host survives.
- [`DockAll`](/api/Editor.PanelDockWindows/DockAll): Returns all floating registrations, including closed panels, to the main host.
- [`Float`](/api/Editor.PanelDockWindows/Float): Explicitly opens a registered panel in its own floating window. Returns false when unavailable or during a drag. The same content instance is retained; a lone floating panel is simply focused.
- [`RestoreState`](/api/Editor.PanelDockWindows/RestoreState): Restores a workspace using the existing content instances. Invalid data leaves the workspace untouched. Returns false during a drag/layout operation or if windows cannot be created. Desktop windows require the main host to belong to an editor PanelWindow. This saves layout, not the contents of each panel.
