void DockBase::GroupMenuAction(String name, int command, int alignment) { DockableCtrl* ctrl = NULL; Vector<int>& ids = groups.Get(name); int ncount = ids.GetCount(); bool aligned = (alignment >= DockableCtrl::DOCK_LEFT && alignment <= DockableCtrl::DOCK_BOTTOM); for(int i = 0; i < ncount * 2; i++) { if(i < ncount) { ctrl = GetCtrlRecordFromId(ids[i])->ctrl; ASSERT(ctrl); ctrl->Shut(); } else { if(i == ncount) RefreshTabWindowList(); ctrl = GetCtrlRecordFromId(ids[i - ncount])->ctrl; ASSERT(ctrl); switch(command) { case 0: Dock(ctrl->DockingStyle(alignment, DockableCtrl::STATE_SHOW)); break; case 1: Dock(ctrl->SetSizeHint(Size(0,0)).DockingStyle(alignment, DockableCtrl::STATE_AUTO)); break; case 2: Dock(ctrl->DockFloat()); break; case 3: if (i - ncount == 0) TabifyGroupAndDock(name, alignment); break; case 4: if (i - ncount == 0) TabifyGroupAndAutoHide(name, alignment); break; case 5: if (i - ncount == 0) TabifyGroupAndFloat(name); break; } } } }
void AutoHideBar::OnClose(int id, DockableCtrl& ctrl) { ctrl.Shut(); }