btrfs: Attempt to fix GCC2 build.
[haiku.git] / src / servers / app / WorkspacePrivate.h
blob98b26a1e6fc18f73697fe32dde5e1d57eeb3b70d
1 /*
2 * Copyright 2005-2009, Haiku.
3 * Distributed under the terms of the MIT License.
5 * Authors:
6 * Axel Dörfler, axeld@pinc-software.de
7 */
8 #ifndef WORKSPACE_PRIVATE_H
9 #define WORKSPACE_PRIVATE_H
12 #include "ScreenConfigurations.h"
13 #include "WindowList.h"
14 #include "Workspace.h"
16 #include <Accelerant.h>
17 #include <ObjectList.h>
18 #include <String.h>
21 struct display_info {
22 BString identifier;
23 BPoint origin;
24 display_mode mode;
28 class Workspace::Private {
29 public:
30 Private();
31 ~Private();
33 int32 Index() const { return fWindows.Index(); }
35 WindowList& Windows() { return fWindows; }
37 // displays
39 void SetDisplaysFromDesktop(Desktop* desktop);
41 int32 CountDisplays() const
42 { return fDisplays.CountItems(); }
43 const display_info* DisplayAt(int32 index) const
44 { return fDisplays.ItemAt(index); }
46 // configuration
48 const rgb_color& Color() const { return fColor; }
49 void SetColor(const rgb_color& color);
51 ScreenConfigurations& CurrentScreenConfiguration()
52 { return fCurrentScreenConfiguration; }
53 ScreenConfigurations& StoredScreenConfiguration()
54 { return fStoredScreenConfiguration; }
56 void RestoreConfiguration(const BMessage& settings);
57 void StoreConfiguration(BMessage& settings);
59 private:
60 void _SetDefaults();
62 WindowList fWindows;
64 BObjectList<display_info> fDisplays;
66 ScreenConfigurations fStoredScreenConfiguration;
67 ScreenConfigurations fCurrentScreenConfiguration;
68 rgb_color fColor;
71 #endif /* WORKSPACE_PRIVATE_H */