Linux multi-monitor fullscreen support
[ryzomcore.git] / ryzom / client / src / interface_v3 / task_bar_manager.h
blob06222413eaa56cf775e51993db8e68ae44104116
1 // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
2 // Copyright (C) 2010 Winch Gate Property Limited
3 //
4 // This source file has been modified by the following contributors:
5 // Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>
6 //
7 // This program is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU Affero General Public License as
9 // published by the Free Software Foundation, either version 3 of the
10 // License, or (at your option) any later version.
12 // This program is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU Affero General Public License for more details.
17 // You should have received a copy of the GNU Affero General Public License
18 // along with this program. If not, see <http://www.gnu.org/licenses/>.
22 #ifndef NL_TASK_BAR_MANAGER_H
23 #define NL_TASK_BAR_MANAGER_H
25 #include "nel/misc/types_nl.h"
26 #include "nel/misc/stream.h"
27 #include "dbctrl_sheet.h"
28 #include "nel/gui/group_container.h"
31 // ***************************************************************************
32 class CMacroCmd;
34 // ***************************************************************************
35 #define TBM_SHORTCUT_DB "ui:interface:taskbar:shortcuts:shortcut_bar"
36 #define TBM_EMPTY_SHORTCUT_DB "UI:SHORTCUTS:EMPTY"
37 #define TBM_NUM_BARS 10
38 #define TBM_NUM_SHORTCUT_PER_BAR 10
41 // ***************************************************************************
42 /**
43 * DEPRECATED. Still here for serial() compatibility (icfg)
44 * Management of the TaskBar
45 * \author Lionel Berenguier
46 * \author Nevrax France
47 * \date 2003
49 class CTaskBarManager
51 public:
53 static CTaskBarManager *getInstance();
55 // release singleton
56 static void releaseInstance();
58 // serial
59 void serial(NLMISC::IStream &f);
61 private:
63 static CTaskBarManager *_Instance;
65 struct CShortcutInfo
67 CCtrlSheetInfo::TSheetType SheetType;
68 std::string DBSheet;
69 sint32 MacroId;
71 CShortcutInfo()
73 MacroId= -1;
74 SheetType= CCtrlSheetInfo::SheetType_SBrick;
77 void serial(NLMISC::IStream &f);
80 /// Constructor
81 CTaskBarManager();
84 // ***************************************************************************
85 /**
86 * Management of the TaskBar (windows)
87 * \author Matthieu 'Trap' Besson
88 * \author Nevrax France
89 * \date October 2003
91 class CGroupContainerWindows : public CGroupContainer
94 public:
95 CGroupContainerWindows(const TCtorParam &param)
96 : CGroupContainer(param)
98 _ShowDesktops = true;
101 virtual bool wantSerialConfig() const { return true; }
103 virtual void serialConfig(NLMISC::IStream &f);
105 void update(bool updatePos=false);
107 bool getShowDesktops () { return _ShowDesktops; }
109 void setShowDesktops (bool newVal) { _ShowDesktops = newVal; update(true); }
111 private:
112 bool _ShowDesktops;
116 #endif // NL_TASK_BAR_MANAGER_H
118 /* End of task_bar_manager.h */