DockManager implementation steps: Initial: - Open up two editor windows on app start - Initially DockManager has empty background - Dragging one editor window anywhere on the empty background docks the window - Dragging another editor window over the window shows the drop overlay and you can dock that window onto any side - Currently the overlay is always shown and will trigger on mouse move and not only mouse drag Undock: - Dragging on a title of a docked window undocks it Resize sliders - Add a button between docked windows - Allow the button to be dragged, and it will automatically resize separating widgets TitleBar dock/undock move - Dragging a title bar will move the title bar button while the cursor is within the widget area - If there are other title bars this will allow you to reposition the title bar - If cursor leaves the title bar (or widget area?) close the window and start actual drag and drop operation TitleBar dock/undock - Releasing the dragged window anywhere not on editor will re-open the window at that location - Releasing the dragged window over the drop overlay will dock the window - Moving the dragged window over a title bar will temporarily dock the title bar and allow you to move it (as in first step) - If you release the mouse the window will then be permanently docked at that location Polish TOOD: - Change cursor icon when window is dragged - Prevent docking if available size is less than 20 pixels, otherwise there might be some weirdness ------------------------ Other things to remember: - Possibly add a way to have hidden widgets in the EditorWidgetContainer (like side-bars that pop on mouse over in Visual Studio) - A way to persist window states - Also a way to reset all widgets to original locations