PieDock 1.6.0

src/WindowStack.h

00001 /*
00002  *   O         ,-
00003  *  ° o    . -´  '     ,-
00004  *   °  .´        ` . ´,´
00005  *     ( °   ))     . (
00006  *      `-;_    . -´ `.`.
00007  *          `._'       ´
00008  *
00009  * Copyright (c) 2007-2010 Markus Fisch <mf@markusfisch.de>
00010  *
00011  * Licensed under the MIT license:
00012  * http://www.opensource.org/licenses/mit-license.php
00013  */
00014 #ifndef _PieDock_WindowStack_
00015 #define _PieDock_WindowStack_
00016 
00017 #include <X11/Xlib.h>
00018 
00019 #include <vector>
00020 
00021 namespace PieDock
00022 {
00028     class WindowStack
00029     {
00030         public:
00031             typedef struct
00032             {
00033                 Window window;
00034                 XWindowAttributes attributes;
00035             } WindowInfo;
00036 
00037             typedef std::vector<WindowInfo> WindowInfos;
00038 
00039             WindowStack() : last( 0 ) {}
00040             virtual ~WindowStack() {}
00041             inline WindowInfos &getWindowInfos() {
00042                 return windowInfos; }
00043             inline const bool hasWindows() const {
00044                 return windowInfos.empty()^true; }
00045             inline void clearWindows() { windowInfos.clear(); }
00046             void addWindow( Display *, Window );
00047             const Window getNextWindow();
00048             const Window getPreviousWindow();
00049             const bool isUnmapped();
00050 
00051         private:
00052             WindowInfos windowInfos;
00053             Window last;
00054     };
00055 }
00056 
00057 #endif