#include "otk/display.hh"
#include "otk/screeninfo.hh"
-#include "otk/configuration.hh"
#include "otk/eventdispatcher.hh"
#include "otk/eventhandler.hh"
typedef std::vector<Screen *> ScreenList;
private:
- //! The display on which Openbox is running
- otk::Display _display;
-
// stuff that can be passed on the command line
//! Path to the config file to use/in use
/*!
Defaults to $(HOME)/.openbox/user.py
*/
std::string _scriptfilepath;
- //! The display requested by the user, or null to use the DISPLAY env var
- char *_displayreq;
//! The value of argv, i.e. how this application was executed
char **_argv;
//! Run the application in synchronous mode? (for debugging)
//! Returns the Bindings instance for the window manager
inline Bindings *bindings() const { return _bindings; }
- //! Returns a managed screen
+ //! Returns a managed screen or a null pointer
+ /*!
+ ALWAYS check the return value for a non-null, as any unmanaged screens
+ will return one. This includes screen(0) if the first managed screen is 1.
+ */
inline Screen *screen(int num) {
- assert(num >= 0); assert(num < (signed)_screens.size());
- if (num < 0 || num >= screenCount())
- return NULL;
+ assert(num >= 0); assert(num < (signed)ScreenCount(**otk::display));
+ if (num >= (signed)_screens.size()) return 0;
return _screens[num];
}
- //! Returns the number of managed screens
- inline int screenCount() const {
- return (signed)_screens.size();
- }
-
//! Returns the mouse cursors used throughout Openbox
inline const Cursors &cursors() const { return _cursors; }
_shutdown = true; _restart = true; _restart_prog = bin;
}
- //! Executes a command on a screen
- void execute(int screen, const std::string &bin);
+ //! True if Openbox should be restarted instead of exiting
+ inline bool doRestart() const { return _restart; }
+
+ //! The command line requested to be executed in place of restarting
+ //! Openbox the way it was run previously.
+ inline const std::string &restartProgram() const { return _restart_prog; }
};
}