]> Dogcows Code - chaz/openbox/blobdiff - src/client.hh
add internal_move/resize and wrap them with move() and resize() which are for user...
[chaz/openbox] / src / client.hh
index 14b5a45e103acd1bc213f8d7e9bc6bc1fb4e0ccd..d2c8b5f81c828c2012d1903e507040f84b3972da 100644 (file)
@@ -12,6 +12,7 @@
 #include "otk/strut.hh"
 #include "otk/rect.hh"
 #include "otk/eventhandler.hh"
+#include "otk/ustring.hh"
 
 extern "C" {
 #include <X11/Xlib.h>
@@ -182,9 +183,9 @@ private:
   long _desktop;
 
   //! Normal window title
-  std::string  _title; // XXX: Have to keep track if this string is Utf8 or not
+  otk::ustring  _title;
   //! Window title when iconifiged
-  std::string  _icon_title;
+  otk::ustring  _icon_title;
 
   //! The application that created the window
   std::string  _app_name;
@@ -310,6 +311,8 @@ private:
   */
   FunctionFlags _functions;
 
+  //! Retrieves the window's initial gravity
+  void getGravity();
   //! Retrieves the desktop hint's value and sets Client::_desktop
   void getDesktop();
   //! Retrieves the window's type and sets Client::_type
@@ -364,6 +367,8 @@ private:
 
   //! Change the client's state hints to match the class' data
   void changeState();
+  //! Change the allowed actions set on the client
+  void changeAllowedActions();
 
   //! Request the client to close its window.
   void close();
@@ -374,7 +379,29 @@ private:
                  unshaded.
   */
   void shade(bool shade);
-  
+
+  //! Internal version of the Client::move function
+  /*!
+    @param x The X coordinate to move to.
+    @param y The Y coordinate to move to.
+  */
+  void internal_move(int x, int y);
+  //! Internal version of the Client::resize function
+  /*!
+    This also maintains things like the client's minsize, and size increments.
+    @param anchor The corner to keep in the same position when resizing.
+    @param w The width component of the new size for the client.
+    @param h The height component of the new size for the client.
+    @param x An optional X coordinate to which the window will be moved
+             after resizing.
+    @param y An optional Y coordinate to which the window will be moved
+             after resizing.
+    The x and y coordinates must both be sepcified together, or they will have
+    no effect. When they are specified, the anchor is ignored.
+  */
+  void internal_resize(Corner anchor, int w, int h,
+                       int x = INT_MIN, int y = INT_MIN);
+
 public:
 #ifndef SWIG
   //! Constructs a new Client object around a specified window id
@@ -412,9 +439,9 @@ BB    @param window The window id that the Client class should handle
   */
   inline long desktop() const { return _desktop; }
   //! Returns the window's title
-  inline const std::string &title() const { return _title; }
+  inline const otk::ustring &title() const { return _title; }
   //! Returns the window's title when it is iconified
-  inline const std::string &iconTitle() const { return _title; }
+  inline const otk::ustring &iconTitle() const { return _title; }
   //! Returns the application's name to whom the window belongs
   inline const std::string &appName() const { return _app_name; }
   //! Returns the class of the window
@@ -507,14 +534,8 @@ BB    @param window The window id that the Client class should handle
     @param anchor The corner to keep in the same position when resizing.
     @param w The width component of the new size for the client.
     @param h The height component of the new size for the client.
-    @param x An optional X coordinate to which the window will be moved
-             after resizing.
-    @param y An optional Y coordinate to which the window will be moved
-             after resizing.
-    The x and y coordinates must both be sepcified together, or they will have
-    no effect. When they are specified, the anchor is ignored.
   */
-  void resize(Corner anchor, int w, int h, int x = INT_MIN, int y = INT_MIN);
+  void resize(Corner anchor, int w, int h);
 
   //! Attempt to focus the client window
   bool focus() const;
This page took 0.021762 seconds and 4 git commands to generate.