1/*
2 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef TEAM_SETTINGS_H
6#define TEAM_SETTINGS_H
7
8
9#include <String.h>
10
11#include <ObjectList.h>
12
13
14class BMessage;
15class Team;
16class BreakpointSetting;
17class TeamUiSettings;
18
19
20class TeamSettings {
21public:
22								TeamSettings();
23								TeamSettings(const TeamSettings& other);
24									// throws std::bad_alloc
25								~TeamSettings();
26
27			status_t			SetTo(Team* team);
28			status_t			SetTo(const BMessage& archive);
29			status_t			WriteTo(BMessage& archive) const;
30
31			const BString&		TeamName() const	{ return fTeamName; }
32
33			int32				CountBreakpoints() const;
34			const BreakpointSetting* BreakpointAt(int32 index) const;
35
36			int32				CountUiSettings() const;
37			const TeamUiSettings*	UiSettingAt(int32 index) const;
38			const TeamUiSettings*	UiSettingFor(const char* id) const;
39			status_t			AddUiSettings(TeamUiSettings* settings);
40
41			TeamSettings&		operator=(const TeamSettings& other);
42									// throws std::bad_alloc
43
44private:
45			typedef BObjectList<BreakpointSetting> BreakpointList;
46			typedef BObjectList<TeamUiSettings> UiSettingsList;
47
48private:
49			void				_Unset();
50
51private:
52			BreakpointList		fBreakpoints;
53			UiSettingsList		fUiSettings;
54			BString				fTeamName;
55};
56
57
58#endif	// TEAM_SETTINGS_H
59