2 * Copyright 2005, Haiku.
3 * Distributed under the terms of the MIT License.
6 * Axel Dörfler, axeld@pinc-software.de
8 #ifndef SCREEN_MANAGER_H
9 #define SCREEN_MANAGER_H
13 #include <ObjectList.h>
20 class HWInterfaceListener
;
24 typedef BObjectList
<Screen
> ScreenList
;
29 virtual ~ScreenOwner() {};
30 virtual void ScreenRemoved(Screen
* screen
) = 0;
31 virtual void ScreenAdded(Screen
* screen
) = 0;
32 virtual void ScreenChanged(Screen
* screen
) = 0;
34 virtual bool ReleaseScreen(Screen
* screen
) = 0;
38 class ScreenManager
: public BLooper
{
41 virtual ~ScreenManager();
43 Screen
* ScreenAt(int32 index
) const;
44 int32
CountScreens() const;
46 status_t
AcquireScreens(ScreenOwner
* owner
, int32
* wishList
,
47 int32 wishCount
, const char* target
, bool force
,
49 void ReleaseScreens(ScreenList
& list
);
51 void ScreenChanged(Screen
* screen
);
53 virtual void MessageReceived(BMessage
* message
);
59 HWInterfaceListener
* listener
;
63 screen_item
* _AddHWInterface(HWInterface
* interface
);
65 BObjectList
<screen_item
> fScreenList
;
68 extern ScreenManager
*gScreenManager
;
70 #endif /* SCREEN_MANAGER_H */