@brief The main class for the Openbox window manager
*/
+/*
+ cuz girls look soooo goood.. on the end of my DICK
+*/
+
extern "C" {
#include <X11/Xlib.h>
}
#include "otk/screeninfo.hh"
#include "otk/timerqueuemanager.hh"
#include "otk/property.hh"
-#include "xeventhandler.hh"
+#include "otk/configuration.hh"
+#include "otk/eventdispatcher.hh"
+#include "otk/eventhandler.hh"
#include "client.hh"
namespace ob {
+class OBScreen;
+
//! The main class for the Openbox window manager.
/*!
Only a single instance of the Openbox class may be used in the application. A
not exit until the window manager is ready to be destroyed. Destruction of
the Openbox class instance will shutdown the window manager.
*/
-class Openbox
+class Openbox : public otk::OtkEventDispatcher, public otk::OtkEventHandler
{
public:
//! The single instance of the Openbox class for the application.
//! A map for looking up a specific client class from the window id
typedef std::map<Window, OBClient *> ClientMap;
+
+ //! A list of OBScreen classes
+ typedef std::vector<OBScreen *> ScreenList;
private:
// stuff that can be passed on the command line
//! A list of all managed clients
ClientMap _clients;
+ //! A list of all the managed screens
+ ScreenList _screens;
+
//! Manages all timers for the application
/*!
Use of the otk::OBTimerQueueManager::fire funtion in this object ensures
*/
otk::OBTimerQueueManager _timermanager;
- //! The class which will handle raw XEvents
- OBXEventHandler _xeventhandler;
-
//! Cached atoms on the display
/*!
This is a pointer because the OBProperty class uses otk::OBDisplay::display
//! When set to true, the Openbox::eventLoop function will stop and return
bool _doshutdown;
+ //! The configuration of the application. TEMPORARY
+ otk::Configuration _config;
+
//! Parses the command line used when executing this application
void parseCommandLine(int argv, char **argv);
//! Displays the version string to stdout
*/
inline otk::OBTimerQueueManager *timerManager() { return &_timermanager; }
+ //! Returns the otk::OBProperty instance for the window manager
inline const otk::OBProperty *property() const { return _property; }
+ //! Returns a managed screen
+ inline OBScreen *screen(int num) {
+ assert(num >= 0); assert(num < (signed)_screens.size());
+ return _screens[num];
+ }
+
//! Returns the mouse cursors used throughout Openbox
inline const Cursors &cursors() const { return _cursors; }
manager can be destroyed.
*/
inline void shutdown() { _doshutdown = true; }
+
+ virtual void mapRequestHandler(const XMapRequestEvent &);
};
}