+ /*!
+ @param desktop The desktop number of the area to retrieve for. A value of
+ 0xffffffff will return an area that combines all struts
+ on all desktops.
+ */
+ const otk::Rect& area(unsigned int desktop) const;
+
+ const DesktopLayout& desktopLayout() const { return _layout; }
+
+ //! Shows and focuses the desktop and hides all the client windows, or
+ //! returns to the normal state, showing client windows.
+ void showDesktop(bool show);
+
+ //! Update's the screen's combined strut of all the clients.
+ /*!
+ Clients should call this whenever they change their strut.
+ */
+ void updateStruts();
+
+ //! Manage any pre-existing windows on the screen
+ void manageExisting();
+ //! Manage a client window
+ /*!
+ This gives the window a frame, reparents it, selects events on it, etc.
+ */
+ void manageWindow(Window window);
+ //! Unmanage a client
+ /*!
+ This removes the window's frame, reparents it to root, unselects events on
+ it, etc.
+ @param client The client to unmanage
+ */
+ void unmanageWindow(Client *client);
+
+ //! Raises a client window above all others in its stacking layer
+ /*!
+ raiseWindow has a couple of constraints that lowerWindow does not.<br>
+ 1) raiseWindow can be called after changing a Client's stack layer, and
+ the list will be reorganized properly.<br>
+ 2) raiseWindow guarantees that XRestackWindows() will <i>always</i> be
+ called for the specified client.
+ */
+ void raiseWindow(Client *client);
+
+ //! Lowers a client window below all others in its stacking layer
+ void lowerWindow(Client *client);
+
+ //! Sets the name of a desktop by changing the root window property
+ /*!
+ @param i The index of the desktop to set the name for (starts at 0)
+ @param name The name to set for the desktop
+ If the index is too large, it is simply ignored.
+ */
+ void setDesktopName(unsigned int i, const otk::ustring &name);