Esempio n. 1
0
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;
			}
		}
	}
}
Esempio n. 2
0
void AutoHideBar::OnClose(int id, DockableCtrl& ctrl)
{
    ctrl.Shut();
}