void DockWindow::Close(DockableCtrl &dc) { DockCont *c = GetContainer(dc); if (c && c->GetCount() > 1) { dc.Remove(); c->Layout(); c = NULL; } if (c) CloseContainer(*c); }
void DockWindow::DockAsTab(DockCont &target, DockableCtrl &dc) { DockCont *c = GetContainer(dc); if (c) { if (c->GetCount() == 1) CloseContainer(*c); else { Ctrl *c = dc.GetParent(); dc.Remove(); c->Layout(); } } target.Add(dc); }
void DockCont::TabDragged(int ix) { if (ix >= 0) { // Special code needed Value v = tabbar.Get(ix); if (IsDockCont(v)) { DockCont *c = ContCast(v); c->Remove(); base->FloatFromTab(*this, *c); } else { DockableCtrl *c = DockCast(v); c->Remove(); base->FloatFromTab(*this, *c); } if (tabbar.IsAutoHide()) RefreshLayout(); } }