]> Dogcows Code - chaz/openbox/blobdiff - src/screen.hh
move the focus_order lists into the kernel
[chaz/openbox] / src / screen.hh
index adccf180128af8d7ef83942a0da1648ec97e1e54..20ba0a63243f9349325b4f523df7e39cfddaceb3 100644 (file)
@@ -53,10 +53,8 @@ public:
                                           ButtonPressMask |
                                           ButtonReleaseMask;
 
-  //! Holds a list of Clients
-  typedef std::list<Client*> ClientList;
   //! All managed clients on the screen (in order of being mapped)
-  ClientList clients;
+  std::list<Client*> clients;
   
 private:
   //! Was %Openbox able to manage the screen?
@@ -67,7 +65,7 @@ private:
 
   //! Information about this screen
   const otk::ScreenInfo *_info;
-  
+
   //! Area usable for placement etc (total - struts), one per desktop,
   //! plus one extra for windows on all desktops
   RectList _area;
@@ -84,7 +82,7 @@ private:
   Window _supportwindow;
 
   //! A list of all managed clients on the screen, in their stacking order
-  ClientList _stacking;
+  std::list<Client*> _stacking;
 
   //! The desktop currently being displayed
   unsigned int _desktop;
@@ -95,8 +93,12 @@ private:
   //! The names of all desktops
   otk::Property::StringVect _desktop_names;
 
+  //! The layout of the desktops as specified by an EWMH compliant pager
   DesktopLayout _layout;
 
+  //! True when the window manager is in 'showing desktop' mode
+  bool _showing_desktop;
+
   //! Calculate the Screen::_area member
   void calcArea();
   //! Set the list of supported NETWM atoms on the root window
@@ -140,12 +142,10 @@ private:
   void changeNumDesktops(unsigned int num);
 
 public:
-#ifndef SWIG
   //! Constructs a new Screen object
   Screen(int screen);
   //! Destroys the Screen object
   virtual ~Screen();
-#endif
 
   inline int number() const { return _number; }
   
@@ -155,12 +155,15 @@ public:
     used.
   */
   inline bool managed() const { return _managed; }
+
   //!  An offscreen window which gets focus when nothing else has it
   inline Window focuswindow() const { return _focuswindow; }
   //! Returns the desktop being displayed
   inline unsigned int desktop() const { return _desktop; }
   //! Returns the number of desktops
   inline unsigned int numDesktops() const { return _num_desktops; }
+  //! When true, the desktop is being shown and all clients are hidden
+  inline bool showingDesktop() const { return _showing_desktop; }
 
   //! Returns the area of the screen not reserved by applications' Struts
   /*!
@@ -170,8 +173,14 @@ public:
   */
   const otk::Rect& area(unsigned int desktop) const;
 
+  //! Gives the layout of how the desktops are being displayed, the number of
+  //! rows and columns etc.
   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.
@@ -206,13 +215,8 @@ public:
   //! 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);
+  const otk::Property::StringVect& desktopNames() const
+    { return _desktop_names; }
 
   void installColormap(bool install) const;
 
This page took 0.025124 seconds and 4 git commands to generate.