// -*- mode: C++; indent-tabs-mode: nil; -*-
-// window.hh for Epistory - a key handler for NETWM/EWMH window managers.
+// window.hh for Epistophy - a key handler for NETWM/EWMH window managers.
// Copyright (c) 2002 - 2002 Ben Jansens <ben at orodu.net>
//
// Permission is hereby granted, free of charge, to any person obtaining a
}
#include <list>
+#include <string>
+class epist;
+class screen;
class XWindow;
+class XAtom;
-typedef std::list<XWindow> WindowList;
+typedef std::list<XWindow *> WindowList;
class XWindow {
private:
+ epist *_epist;
+ screen *_screen;
+ XAtom *_xatom;
Window _window;
+
unsigned int _desktop;
+ std::string _title;
+ std::string _app_name;
+ std::string _app_class;
+
+ // states
bool _shaded;
bool _iconic;
bool _max_vert;
bool _max_horz;
+ bool _unmapped;
+
+ void updateState();
+ void updateDesktop();
+ void updateTitle();
+ void updateClass();
+
public:
- XWindow(Window window);
+ XWindow(epist *epist, screen *screen, Window window);
virtual ~XWindow();
inline Window window() const { return _window; }
+
inline unsigned int desktop() const { return _desktop; }
+ inline const std::string &title() const { return _title; }
+ inline const std::string &appName() const { return _app_name; }
+ inline const std::string &appClass() const { return _app_name; }
+
inline bool shaded() const { return _shaded; }
inline bool iconic() const { return _iconic; }
inline bool maxVert() const { return _max_vert; }
inline bool maxHorz() const { return _max_horz; }
- void updateState();
+ void processEvent(const XEvent &e);
+
+ void shade(const bool sh) const;
+ void close() const;
+ void raise() const;
+ void lower() const;
+ void iconify() const;
+ void focus() const;
+ void sendTo(unsigned int dest) const;
bool operator == (const XWindow &w) const { return w._window == _window; }
bool operator == (const Window &w) const { return w == _window; }