1 // -*- mode: C++; indent-tabs-mode: nil; -*-
12 #include "otk/screeninfo.hh"
19 static Openbox *instance; // there can only be ONE instance of this class in
20 // the program, and it is held in here
22 typedef std::vector<otk::ScreenInfo> ScreenInfoList;
31 // stuff that can be passed on the command line
32 std::string _rcfilepath; // path to the config file to use/in use
33 std::string _menufilepath; // path to the menu file to use/in use
34 char *_displayreq; // display requested by the user
35 char *_argv0; // argv[0], how the program was called
37 RunState _state; // the state of the window manager
39 ScreenInfoList _screenInfoList; // info for all screens on the display
41 void parseCommandLine(int argv, char **argv);
45 static int xerrorHandler(Display *d, XErrorEvent *e);
46 static void signalHandler(int signal);
49 //! Openbox constructor.
51 \param argc Number of command line arguments, as received in main()
52 \param argv The command line arguments, as received in main()
54 Openbox(int argc, char **argv);
55 //! Openbox destructor.
58 //! Returns the state of the window manager (starting, exiting, etc).
59 inline RunState state() const { return _state; }
63 // XXX: TEMPORARY!#!@%*!^#*!#!#!
64 virtual void process_event(XEvent *) = 0;
66 //! Requests that the window manager exit.
67 inline void shutdown() { _state = State_Exiting; }
72 #endif // __openbox_hh