~ubuntu-branches/ubuntu/warty/fluxbox/warty

« back to all changes in this revision

Viewing changes to src/Workspace.hh

  • Committer: Bazaar Package Importer
  • Author(s): Matt Hope
  • Date: 2002-04-12 22:08:52 UTC
  • Revision ID: james.westby@ubuntu.com-20020412220852-0gbqxr57mgu63qdh
Tags: upstream-0.1.7
ImportĀ upstreamĀ versionĀ 0.1.7

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// Workspace.hh for Blackbox - an X11 Window manager
 
2
// Copyright (c) 1997 - 2000 Brad Hughes (bhughes@tcac.net)
 
3
//
 
4
// Permission is hereby granted, free of charge, to any person obtaining a
 
5
// copy of this software and associated documentation files (the "Software"),
 
6
// to deal in the Software without restriction, including without limitation
 
7
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
 
8
// and/or sell copies of the Software, and to permit persons to whom the
 
9
// Software is furnished to do so, subject to the following conditions:
 
10
//
 
11
// The above copyright notice and this permission notice shall be included in
 
12
// all copies or substantial portions of the Software.
 
13
//
 
14
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 
15
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 
16
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 
17
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 
18
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 
19
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 
20
// DEALINGS IN THE SOFTWARE.
 
21
 
 
22
#ifndef  WORKSPACE_HH
 
23
#define  WORKSPACE_HH
 
24
 
 
25
#include "Window.hh"
 
26
 
 
27
#include <X11/Xlib.h>
 
28
#include <string>
 
29
#include <vector>
 
30
#include <list>
 
31
 
 
32
class BScreen;
 
33
class Clientmenu;
 
34
class Workspace;
 
35
 
 
36
 
 
37
 
 
38
class Workspace {
 
39
public:
 
40
        typedef std::vector<FluxboxWindow *> Windows;
 
41
        
 
42
        Workspace(BScreen *, int = 0);
 
43
        ~Workspace(void);
 
44
 
 
45
        inline BScreen *getScreen(void) { return screen; }
 
46
        inline FluxboxWindow *getLastFocusedWindow(void) { return lastfocus; }  
 
47
        inline Clientmenu *getMenu(void) { return clientmenu; }
 
48
        inline const char *getName(void) const { return name.c_str(); }
 
49
        inline const int &getWorkspaceID(void) const { return id; }     
 
50
        inline void setLastFocusedWindow(FluxboxWindow *w) { lastfocus = w; }
 
51
        FluxboxWindow *getWindow(int);
 
52
        inline Windows &getWindowList() { return windowList; }
 
53
        bool isCurrent(void);
 
54
        bool isLastWindow(FluxboxWindow *);     
 
55
        const int addWindow(FluxboxWindow *, Bool = False);
 
56
        const int removeWindow(FluxboxWindow *);
 
57
        const int getCount(void);
 
58
 
 
59
        void showAll(void);
 
60
        void hideAll(void);
 
61
        void removeAll(void);
 
62
        void raiseWindow(FluxboxWindow *);
 
63
        void lowerWindow(FluxboxWindow *);
 
64
        void reconfigure();
 
65
        void update();
 
66
        void setCurrent(void);
 
67
        void setName(char *);
 
68
        void shutdown(void);
 
69
 
 
70
private:
 
71
        BScreen *screen;
 
72
        FluxboxWindow *lastfocus;
 
73
        Clientmenu *clientmenu;
 
74
 
 
75
        typedef std::list<FluxboxWindow *> WindowStack;
 
76
 
 
77
 
 
78
        WindowStack stackingList;
 
79
        Windows windowList;
 
80
 
 
81
        std::string name;
 
82
        int id, cascade_x, cascade_y;
 
83
 
 
84
 
 
85
protected:
 
86
        void placeWindow(FluxboxWindow *);
 
87
 
 
88
 
 
89
 
 
90
};
 
91
 
 
92
 
 
93
#endif // _WORKSPACE_HH_
 
94