+ //! Adds an Client to the client list for lookups
+ void addClient(Window window, Client *client);
+
+ //! Removes an Client from the client list for lookups
+ void removeClient(Window window);
+
+ //! Finds an Client based on its window id
+ Client *findClient(Window window);
+
+ //! The client with input focus
+ inline Client *focusedClient() { return _focused_client; }
+
+ //! Change the client which has focus.
+ /*!
+ This is called by the clients themselves when their focus state changes.
+ */
+ void setFocusedClient(Client *c);
+
+ //! The screen with input focus
+ inline Screen *focusedScreen() { return _focused_screen; }
+
+ //! Requests that the window manager exit
+ /*!
+ Causes the Openbox::eventLoop function to stop looping, so that the window
+ manager can be destroyed.
+ */
+ inline void shutdown() { _shutdown = true; }
+
+ inline void restart(const std::string &bin = "") {
+ _shutdown = true; _restart = true; _restart_prog = bin;
+ }
+
+ //! True if Openbox should be restarted instead of exiting
+ inline bool doRestart() const { return _restart; }