PieDock  1.6.3
WindowStack.h
1 /*
2  * O ,-
3  * ° o . -´ ' ,-
4  * ° .´ ` . ´,´
5  * ( ° )) . (
6  * `-;_ . -´ `.`.
7  * `._' ´
8  *
9  * Copyright (c) 2007-2010 Markus Fisch <mf@markusfisch.de>
10  *
11  * Licensed under the MIT license:
12  * http://www.opensource.org/licenses/mit-license.php
13  */
14 #ifndef _PieDock_WindowStack_
15 #define _PieDock_WindowStack_
16 
17 #include <X11/Xlib.h>
18 
19 #include <vector>
20 
21 namespace PieDock
22 {
29  {
30  public:
31  typedef struct
32  {
33  Window window;
34  XWindowAttributes attributes;
35  } WindowInfo;
36 
37  typedef std::vector<WindowInfo> WindowInfos;
38 
39  WindowStack() : last( 0 ) {}
40  virtual ~WindowStack() {}
41  inline WindowInfos &getWindowInfos() {
42  return windowInfos; }
43  inline const bool hasWindows() const {
44  return windowInfos.empty()^true; }
45  inline void clearWindows() { windowInfos.clear(); }
46  void addWindow( Display *, Window );
47  const Window getNextWindow();
48  const Window getPreviousWindow();
49  const bool isUnmapped();
50 
51  private:
52  WindowInfos windowInfos;
53  Window last;
54  };
55 }
56 
57 #endif