Source

Mirror / include / windowContainer.h

#ifndef WINDOWCONTAINER_H
#define WINDOWCONTAINER_H

#include <vector>
#include <utility>
#include <iostream>

#include <xcb/xcb.h>

#include "window.h"

typedef std::vector<Window> WindowList;
typedef std::vector<WindowList> StackList;

class WindowContainer
{
    public:
        WindowContainer();
        ~WindowContainer();
        Window &findWindow(xcb_window_t winId);
        void addWindow(Window window);
        bool removeWindow(Window window);
        void focusWindow(Window window);
        void killFocused();
        void layoutWindows(xcb_rectangle_t area);
        void addStack();
		void lowerAll();
		void raiseAll();
        void toggleExemptFocused();
        void toggleFullscreenFocused();
        std::pair<int, int> getFocusedIndex();
        Window invalidWin;

    private:
        StackList stackList;
        std::pair<int, int> focused;
        std::pair<int, int> lastFocused; 

};



#endif //WINDOWCONTAINER_H