X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fclient.hh;h=89da0dc9a0e782c154412e1294e3f90279f4877e;hb=9b23dff16cd85461da6f99aa95a79422cffd72f8;hp=fa441b6dcd801b8a722702461d5eec995b0652b2;hpb=d3b7c84d4c640face48dfb54d70de2bff1551429;p=chaz%2Fopenbox diff --git a/src/client.hh b/src/client.hh index fa441b6d..89da0dc9 100644 --- a/src/client.hh +++ b/src/client.hh @@ -13,8 +13,6 @@ extern "C" { namespace ob { -class BScreen; - class OBClient { public: enum Max { Max_None, @@ -64,19 +62,19 @@ public: }; private: - BScreen *_screen; + //! The actual window that this class is wrapping up Window _window; //! The id of the group the window belongs to - XID _group; + Window _group; // XXX: transient_for, transients //! The desktop on which the window resides (0xffffffff for all desktops) - unsigned int _desktop; + unsigned long _desktop; //! Normal window title - std::string _title; + std::string _title; // XXX: Have to keep track if this string is Utf8 or not //! Window title when iconifiged std::string _icon_title; @@ -103,7 +101,7 @@ private: //! The state of the window, one of WithdrawnState, IconicState, or //! NormalState - long _state; + long _wmstate; //! Can the window receive input focus? bool _can_focus; @@ -133,23 +131,30 @@ private: // XXX: motif decoration hints! + void getDesktop(); + void getType(); + void getArea(); + void getState(); + void getShaped(); + void setWMState(long state); void setDesktop(long desktop); void setState(StateAction action, long data1, long data2); void updateNormalHints(); void updateWMHints(); + // XXX: updateTransientFor(); void updateTitle(); void updateClass(); public: - OBClient(BScreen *screen, Window window); + OBClient(Window window); virtual ~OBClient(); inline Window window() const { return _window; } inline WindowType type() const { return _type; } - inline unsigned int desktop() const { return _desktop; } + inline unsigned long desktop() const { return _desktop; } inline const std::string &title() const { return _title; } inline const std::string &iconTitle() const { return _title; } inline const std::string &appName() const { return _app_name; } @@ -182,6 +187,8 @@ public: void update(const XPropertyEvent &e); void update(const XClientMessageEvent &e); + + void setArea(const otk::Rect &area); }; }