QtitanDocking - component for Qt Framework allows to create a Microsoft like dockable user interface. The component has all the basic functionality that exists in Microsoft's products in which the dockable UI is used (for instance in Microsoft Visual Studio). Most of features can not be implemented by means of standard Qt solution.
The docking system can be conditionally divided into two main subsystems - DockBars and DockPanels.
DockBars - implements the work with traditional ToolBars. Each DockBar can have several rows for docking, and each row contains a set of ToolBars. When you move TooBar from one row to another within the same DockBar, the mechanism either creates a new row or deletes it. This changes the size of the DockBar. Automatic positioning is optimized so that when the DockBar container is narrowed then ToolBar has the full size as long as possible which allows to observe all the commands on the ToolBar In contrast to the native Qt solution.
- Creating or adding the ToolBar to the container in the required position.
- Positioning the ToolBar side-by-side without overlapping.
- Dragging ToolBar between containers.
- Supports floating ToolBars.
- Supports multiple rows and columns in each container when placing the ToolBar.
- Automatic calculation of the optimal ToolBar location when the container is narrowed.
- Creating DockBar container on any QWidget.
DockPanels - implements the mechanism of dockable panels with wide possibilities. Includes support for such functionality as automatic hiding of panels, group of panels separated by splitter or placed in tabs and etc.
Below are the main features of the subsystem:
- Ability to deploy the docking mechanism on any QWidget. For example inside MainWindow, MDI Window, Dialog.
- - Supports Tabbed, Split, AutoHide containers.
- - Supports Drag & Drop mechanism without any restrictions.
- - Panel that is active and has a focus is highlighted in a special way.
- Ability to hide the panel, and then show it again with the restoration of the previous position.
- AutoHide mode with animation.
- Grouping of panels into the tabs in the AutoHide mode.
- Save/Load the panels states and layout to XML file.
- Ability to lock the panel inside the window.
- Supports handling for mouse double click on the panel's title. For panels inside the container it leads the panel to take the maximum possible size in the container. For float panels the action will restore its previous position which was before the panel was undocked from the main window.
- Ability to add a custom menu to the dock panel's title.
- Docked area is highlighted with a transparent panel when the mouse is pointing at a special marker. The mechanism has options for customization.
- Ability to cancel the start of panel docking by pressing the ESC key.