1/*
2 * Copyright 2011, Rene Gollent, rene@gollent.com.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef GUI_TEAM_UI_SETTINGS_H
6#define GUI_TEAM_UI_SETTINGS_H
7
8
9#include <Message.h>
10#include <String.h>
11
12#include <ObjectList.h>
13
14#include "Setting.h"
15#include "TeamUiSettings.h"
16
17
18class GuiTeamUiSettings : public TeamUiSettings {
19public:
20								GuiTeamUiSettings();
21								GuiTeamUiSettings(const char* settingsID);
22								GuiTeamUiSettings(const GuiTeamUiSettings&
23									other);
24									// throws std::bad_alloc
25								~GuiTeamUiSettings();
26
27	virtual team_ui_settings_type Type() const;
28	virtual	const char*			ID() const;
29	virtual	status_t			SetTo(const BMessage& archive);
30	virtual	status_t			WriteTo(BMessage& archive) const;
31	virtual TeamUiSettings*		Clone() const;
32
33			bool				AddSettings(const char* settingID,
34									const BMessage& data);
35			status_t			Settings(const char* settingID,
36									BMessage& data) const;
37
38			const BMessage&		Values() const;
39
40			GuiTeamUiSettings&	operator=(const GuiTeamUiSettings& other);
41									// throws std::bad_alloc
42
43private:
44
45			status_t			_SetTo(const GuiTeamUiSettings& other);
46			void				_Unset();
47
48			BMessage			fValues;
49			BString				fID;
50};
51
52
53#endif	// GUI_TEAM_UI_SETTINGS_H
54