aboutsummaryrefslogtreecommitdiff
path: root/src/Pager.hh
blob: d6faa87d9dfa6f0d79656d5b80e89e2ed225bc0c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#ifndef PAGER_HH
#define PAGER_HH

#include <vector>
#include <utility>

namespace FbPager {

/// @brief pager interface
class Pager {
public:
    /// add a window to workspace
    virtual void addWindow(Window win, unsigned int workspace_num) = 0;
    virtual void moveToWorkspace(Window win, unsigned int workspace_num) = 0;
    virtual void setFocusedWindow(Window win) = 0;
    /// remove a window from workspace
    virtual void removeWindow(Window win) = 0;
    virtual void raiseWindow(Window win) = 0;
    virtual void lowerWindow(Window win) = 0;
    /// update number of workspaces
    virtual void updateWorkspaceCount(unsigned int num) = 0;
    virtual void setCurrentWorkspace(unsigned int num) = 0;
    virtual bool haveWindow(Window win) = 0;
    /// Window and workspace pair container
    typedef std::vector< std::pair<Window, unsigned int> > WindowsAndWorkspaces;

    virtual void addWindows(const WindowsAndWorkspaces& windows) = 0;

};

} // end FbPager namespace

#endif // PAGER_HH