1 // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
2 // Copyright (C) 2010 Winch Gate Property Limited
4 // This source file has been modified by the following contributors:
5 // Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>
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_INTERFACE_CONFIG_H
23 #define NL_INTERFACE_CONFIG_H
25 #include "nel/misc/stream.h"
29 class CGroupContainer
;
38 * class used to managed an interface configuration
39 * \author Matthieu 'TRAP' Besson
40 * \author Nevrax France
43 class CInterfaceConfig
46 // Elements saved from the container
50 uint8 ContainerMode
; // 0 - Normal, 1 - Small (save just Opened, ActiveSavable and Active)
67 uint8 RolloverAlphaContent
;
68 uint8 RolloverAlphaContainer
;
77 bool BackupedPositionValid
;
84 // ------------------------------
85 void serial (NLMISC::IStream
&f
);
86 // ------------------------------
87 void setFrom ( NLGUI::CGroupContainer
*pGC
);
88 void setTo ( NLGUI::CGroupContainer
*pGC
);
95 std::vector
<SCont
> GCImages
; // Image of each group container in the desktop
96 sint Version
; // Stream version for extra datas
97 NLMISC::CMemStream ExtraDatas
; // TODO : replace it with some polymorphic scheme
100 void serial(NLMISC::IStream
&s
);
101 // Build a virtual desktop image from the current desktop
102 void fromCurrentDesktop();
103 // Set current desktop from this desktop image
104 void toCurrentDesktop();
105 // Update image of the given group container (added to the list if it does not exist)
106 void updateGroupContainerImage( NLGUI::CGroupContainer
&gc
);
107 // Remove a group container from the image
108 void removeGroupContainerImage(const std::string
&groupName
);
110 void read(NLMISC::IStream
&s
);
111 void write(NLMISC::IStream
&s
);
114 // Elements saved from database
120 // ------------------------------
121 void serial (NLMISC::IStream
&f
);
122 // ------------------------------
123 void setFrom (NLMISC::CCDBNodeLeaf
*pNL
);
124 void setTo (NLMISC::CCDBNodeLeaf
*pNL
);
127 void dataBaseToStream (NLMISC::IStream
&f
);
129 // Write to stream (should support seek functionnality)
130 void streamToDataBase (NLMISC::IStream
&f
, uint32 uiDbSaveVersion
);
139 #endif // NL_INTERFACE_CONFIG_H
141 /* End of interface_config.h */