Docking - MrSmith33/anchovy GitHub Wiki
To implement docking two components is needed:
- DockingRoot - which holds all the docking tree and makes all docking (docking, undocking, highlighting)
- Widget marked with 'isDockable' flag. Usually it is a frame widget.
###Docking When something is dragged over DockingRoot, it checks if that thing has isDockable flag. If flag is false, then DockingRoot lets drag event traverse down to its destination. If flag is true then DockingRoot starts search for some dockable widget under the cursor.
When dockable widget is found, DockingRoot calculates a zone where widget will be inserted. It remembers highlighted zone and draws it on every draw event.