#include "otk/strut.hh"
#include "otk/rect.hh"
#include "otk/eventhandler.hh"
+#include "otk/ustring.hh"
extern "C" {
#include <X11/Xlib.h>
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;
*/
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
//! 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();
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
*/
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
inline const otk::Strut &strut() const { return _strut; }
//! Move the client window
+ /*!
+ @param x The X coordinate to move to.
+ @param y The Y coordinate to move to.
+ */
void move(int x, int y);
//! Resizes the client window, anchoring it in a given corner
@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;