#include <string>
#include <vector>
-#include <map>
+#include "python.hh"
#include "otk/screeninfo.hh"
#include "otk/timerqueuemanager.hh"
#include "otk/property.hh"
#include "otk/configuration.hh"
#include "otk/eventdispatcher.hh"
#include "otk/eventhandler.hh"
-#include "client.hh"
namespace ob {
class OBScreen;
+class OBClient;
+class OBActions;
-//! The main class for the Openbox window manager.
+//! The main class for the Openbox window manager
/*!
Only a single instance of the Openbox class may be used in the application. A
pointer to this instance is held in the Openbox::instance static member
class Openbox : public otk::OtkEventDispatcher, public otk::OtkEventHandler
{
public:
- //! The single instance of the Openbox class for the application.
+ //! The single instance of the Openbox class for the application
/*!
Since this variable is globally available in the application, the Openbox
class does not need to be passed around to any of the other classes.
Cursor ur_angle; //!< For resizing the right corner of a window
};
- //! 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;
char *_argv0;
//! A list of all managed clients
- ClientMap _clients;
+ PyDictObject *_clients;
//! A list of all the managed screens
ScreenList _screens;
*/
otk::OBProperty *_property;
+ //! The action interface through which all user-available actions occur
+ OBActions *_actions;
+
//! The running state of the window manager
RunState _state;
//! Returns the mouse cursors used throughout Openbox
inline const Cursors &cursors() const { return _cursors; }
+ inline PyDictObject *clients() const { return _clients; }
+
//! The main function of the Openbox class
/*!
This function should be called after instantiating the Openbox class.