]> Dogcows Code - chaz/openbox/blobdiff - src/client.hh
add 'grab_server' for grabbing .. the .. server!
[chaz/openbox] / src / client.hh
index 597b763878097e69558839114a23787a8ee925fe..382ab1df01794e33adaf1d7dc59dca931858a7fa 100644 (file)
@@ -152,12 +152,6 @@ public:
   //! Holds a bitmask of Client::Decoration values
   typedef unsigned char DecorationFlags;
 
-  //! Possible actions that can be made with the _NET_WM_STATE client message
-  enum StateAction { State_Remove = 0, //!< _NET_WM_STATE_REMOVE
-                     State_Add,        //!< _NET_WM_STATE_ADD
-                     State_Toggle      //!< _NET_WM_STATE_TOGGLE
-  };
-
   //! The event mask to grab on client windows
   static const long event_mask = PropertyChangeMask | FocusChangeMask |
                                  StructureNotifyMask;
@@ -348,6 +342,9 @@ private:
   //! The number of icons in _icons
   int _nicons;
 
+  Pixmap _pixmap_icon;
+  Pixmap _pixmap_icon_mask;
+
   //! Retrieves the window's initial gravity
   void getGravity();
   //! Retrieves the desktop hint's value and sets Client::_desktop
@@ -382,7 +379,7 @@ private:
     Client::applyStartupState is used to do the same things during the mapping
     process.
   */
-  void setState(StateAction action, long data1, long data2);
+  void setState(Atom action, long data1, long data2);
 
   //! Sends the window to the specified desktop
   void setDesktop(unsigned int desktop);
@@ -414,6 +411,8 @@ private:
   void updateTransientFor();
   //! Updates the window's icons
   void updateIcons();
+  //! Updates the window's kwm icon
+  void updateKwmIcon();
 
   //! Change the client's state hints to match the class' data
   void changeState();
@@ -479,8 +478,11 @@ private:
   /*!
     @param x The X coordinate to move to.
     @param y The Y coordinate to move to.
+    @param final true if this is the final move, false if there are more move
+                 events coming. The client is not notified of the move when
+                 final is false.
   */
-  void internal_move(int x, int y);
+  void internal_move(int x, int y, bool final = true);
   //! Internal version of the Client::resize function
   /*!
     This also maintains things like the client's minsize, and size increments.
@@ -515,16 +517,14 @@ private:
   void applyStartupState();
   
 public:
-#ifndef SWIG
   //! Constructs a new Client object around a specified window id
   /*!
-BB    @param window The window id that the Client class should handle
+    @param window The window id that the Client class should handle
     @param screen The screen on which the window resides
   */
   Client(int screen, Window window);
   //! Destroys the Client object
   virtual ~Client();
-#endif
 
   //! Returns the screen on which the clien resides
   inline int screen() const { return _screen; }
@@ -596,7 +596,7 @@ BB    @param window The window id that the Client class should handle
   inline DecorationFlags disabledDecorations() const
     { return _disabled_decorations; }
   //! Returns the functions that the user can perform on the window
-  inline FunctionFlags funtions() const { return _functions; }
+  inline FunctionFlags functions() const { return _functions; }
 
   //! Return the client this window is transient for
   inline Client *transientFor() const { return _transient_for; }
@@ -611,7 +611,7 @@ BB    @param window The window id that the Client class should handle
   inline bool skipPager() const { return _skip_pager; }
   //! The window should not be displayed by taskbars
   inline bool skipTaskbar() const { return _skip_taskbar; } 
- //! Returns if the window is shaded
 //! Returns if the window is shaded
   /*!
     When the window is shaded, only its titlebar is visible.
   */
@@ -659,6 +659,17 @@ BB    @param window The window id that the Client class should handle
     smaller than the specified size will be returned.
   */
   const Icon *icon(const otk::Size &s) const;
+
+  //! Returns the pixmap for the pixmap icon specified on the window (or None)
+  /*!
+    The icon given by Client::icon should take precedence over this icon/mask.
+  */
+  Pixmap pixmapIcon() const { return _pixmap_icon; }
+  //! Returns the mask for the pixmap icon specified on the window (or None)
+  /*!
+    The icon given by Client::icon should take precedence over this icon/mask.
+  */
+  Pixmap pixmapIconMask() const { return _pixmap_icon_mask; }
   
   //! Move the window (actually, its frame) to a position.
   /*!
@@ -666,8 +677,11 @@ BB    @param window The window id that the Client class should handle
     the position specified.
     @param x The X coordinate to move to.
     @param y The Y coordinate to move to.
+    @param final true if this is the final move, false if there are more move
+                 events coming. The client is not notified of the move when
+                 final is false.
   */
-  void move(int x, int y);
+  void move(int x, int y, bool final = true);
   
   //! Resizes the client window, anchoring it in a given corner
   /*!
This page took 0.022953 seconds and 4 git commands to generate.