summaryrefslogtreecommitdiff
path: root/util/epist/window.cc
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2002-07-20 18:44:39 +0000
committerDana Jansens <danakj@orodu.net>2002-07-20 18:44:39 +0000
commit4aeca296e895bfe74d59d4732e740c2d49c10080 (patch)
tree05265db6f0408c67c6821ce3286b5649bde22551 /util/epist/window.cc
parentf7a41999bfa20750f192d7fa5447bb133451db76 (diff)
implement toggleMaximize(Vert|Horz|Full)
Diffstat (limited to 'util/epist/window.cc')
-rw-r--r--util/epist/window.cc66
1 files changed, 66 insertions, 0 deletions
diff --git a/util/epist/window.cc b/util/epist/window.cc
index fd951aa1..aca644c3 100644
--- a/util/epist/window.cc
+++ b/util/epist/window.cc
@@ -289,3 +289,69 @@ void XWindow::move(int x, int y) const {
findFramePosition(fx, fy);
XMoveWindow(_epist->getXDisplay(), _window, fx + x, fy + y);
}
+
+
+void XWindow::toggleMaximize(Max max) const {
+ switch (max) {
+ case Max_Full:
+ _xatom->
+ sendClientMessage(_screen->rootWindow(), XAtom::net_wm_state,
+ _window, (_max_vert == _max_horz ? 2 : 1),
+ _xatom->getAtom(XAtom::net_wm_state_maximized_horz),
+ _xatom->getAtom(XAtom::net_wm_state_maximized_vert));
+ break;
+
+ case Max_Horz:
+ _xatom->
+ sendClientMessage(_screen->rootWindow(), XAtom::net_wm_state,
+ _window, 2,
+ _xatom->getAtom(XAtom::net_wm_state_maximized_horz));
+ break;
+
+ case Max_Vert:
+ _xatom->
+ sendClientMessage(_screen->rootWindow(), XAtom::net_wm_state,
+ _window, 2,
+ _xatom->getAtom(XAtom::net_wm_state_maximized_vert));
+ break;
+
+ case Max_None:
+ assert(false); // you should not do this. it is pointless and probly a bug
+ break;
+ }
+}
+
+
+void XWindow::maximize(Max max) const {
+ switch (max) {
+ case Max_None:
+ _xatom->
+ sendClientMessage(_screen->rootWindow(), XAtom::net_wm_state,
+ _window, 0,
+ _xatom->getAtom(XAtom::net_wm_state_maximized_horz),
+ _xatom->getAtom(XAtom::net_wm_state_maximized_vert));
+ break;
+
+ case Max_Full:
+ _xatom->
+ sendClientMessage(_screen->rootWindow(), XAtom::net_wm_state,
+ _window, 1,
+ _xatom->getAtom(XAtom::net_wm_state_maximized_horz),
+ _xatom->getAtom(XAtom::net_wm_state_maximized_vert));
+ break;
+
+ case Max_Horz:
+ _xatom->
+ sendClientMessage(_screen->rootWindow(), XAtom::net_wm_state,
+ _window, 1,
+ _xatom->getAtom(XAtom::net_wm_state_maximized_horz));
+ break;
+
+ case Max_Vert:
+ _xatom->
+ sendClientMessage(_screen->rootWindow(), XAtom::net_wm_state,
+ _window, 1,
+ _xatom->getAtom(XAtom::net_wm_state_maximized_vert));
+ break;
+ }
+}