ultimatepp/uppsrc/Docking/DockMenu.h
cxl 756297693c Docking: Refactored not to use platform dependent code
git-svn-id: svn://ultimatepp.org/upp/trunk@6143 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2013-06-10 18:49:55 +00:00

41 lines
1.4 KiB
C++

class DockWindow;
class DockableCtrl;
class DockMenu {
public:
typedef DockMenu CLASSNAME;
DockMenu(DockWindow *dockwindow = NULL) : dock(dockwindow) { }
void Set(DockWindow& dockwindow) { dock = &dockwindow; }
void LayoutListMenu(Bar& bar);
void GroupListMenu(Bar& bar);
void WindowListMenu(Bar& bar, String group);
void GroupMenu(Bar& bar, String group);
void GroupWindowsMenu(Bar& bar, String group);
void GroupDockMenu(Bar& bar, String group) { GroupAlignMenu(bar, group, 0); }
void GroupHideMenu(Bar& bar, String group) { GroupAlignMenu(bar, group, 1); }
void GroupTabDockMenu(Bar& bar, String group) { GroupAlignMenu(bar, group, 2); }
void WindowMenuNoClose(Bar& bar, DockableCtrl *dc);
void WindowMenu(Bar& bar, DockableCtrl *dc);
void WindowDockMenu(Bar& bar, DockableCtrl *dc) { WindowAlignMenu(bar, dc, true); }
void WindowHideMenu(Bar& bar, DockableCtrl *dc) { WindowAlignMenu(bar, dc, false); }
protected:
DockWindow *dock;
void WindowAlignMenu(Bar& bar, DockableCtrl *dc, bool dodock);
void GroupAlignMenu(Bar& bar, String group, int mode);
virtual void MenuDock(int align, DockableCtrl *dc);
virtual void MenuFloat(DockableCtrl *dc);
virtual void MenuAutoHide(int align, DockableCtrl *dc);
virtual void MenuClose(DockableCtrl *dc);
void MenuLoadLayout(int ix);
const char *AlignText(int align);
};