~mc-return/unity/unity.merge-fix1069243-update-manual-tests

« back to all changes in this revision

Viewing changes to unity-shared/StandaloneWindowManager.h

  • Committer: MC Return
  • Date: 2012-12-30 13:37:37 UTC
  • mfrom: (2849.2.159 trunk)
  • Revision ID: mc.return@gmx.net-20121230133737-9othnsjk2felbx53
Merged latest lp:unity

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
16
16
 *
17
17
 * Authored by: Tim Penhey <tim.penhey@canonical.com>
 
18
 *              Marco Trevisan (Treviño) <marco.trevisan@canonical.com>
18
19
 */
19
20
 
20
21
#ifndef UNITYSHARED_STANDALONE_WINDOW_MANAGER_H
21
22
#define UNITYSHARED_STANDALONE_WINDOW_MANAGER_H
22
23
 
23
24
#include "unity-shared/WindowManager.h"
 
25
#include <map>
24
26
 
25
27
namespace unity
26
28
{
27
29
 
 
30
struct StandaloneWindow
 
31
{
 
32
  typedef std::shared_ptr<StandaloneWindow> Ptr;
 
33
  StandaloneWindow(Window xid);
 
34
 
 
35
private:
 
36
  Window xid;
 
37
 
 
38
public:
 
39
  Window Xid() const { return xid; }
 
40
 
 
41
  std::string name;
 
42
  nux::Geometry geo;
 
43
  nux::Size deco_sizes[4];
 
44
  unsigned current_desktop;
 
45
  unsigned monitor;
 
46
  bool active;
 
47
  bool mapped;
 
48
  bool visible;
 
49
  bool maximized;
 
50
  bool minimized;
 
51
  bool decorated;
 
52
  bool has_decorations;
 
53
  bool on_top;
 
54
  bool closable;
 
55
  bool minimizable;
 
56
  bool maximizable;
 
57
};
 
58
 
28
59
class StandaloneWindowManager : public WindowManager
29
60
{
30
61
public:
40
71
  virtual bool IsWindowVisible(Window window_id) const;
41
72
  virtual bool IsWindowOnTop(Window window_id) const;
42
73
  virtual bool IsWindowClosable(Window window_id) const;
 
74
  virtual bool IsWindowMinimized(Window window_id) const;
43
75
  virtual bool IsWindowMinimizable(Window window_id) const;
44
76
  virtual bool IsWindowMaximizable(Window window_id) const;
 
77
  virtual bool HasWindowDecorations(Window) const;
45
78
 
46
79
  virtual void ShowDesktop();
47
80
  virtual bool InShowDesktop() const;
48
81
 
 
82
  virtual void Maximize(Window window_id);
49
83
  virtual void Restore(Window window_id);
50
84
  virtual void RestoreAt(Window window_id, int x, int y);
51
85
  virtual void Minimize(Window window_id);
 
86
  virtual void UnMinimize(Window window_id);
52
87
  virtual void Close(Window window_id);
53
88
 
54
89
  virtual void Activate(Window window_id);
55
90
  virtual void Raise(Window window_id);
56
91
  virtual void Lower(Window window_id);
57
92
 
 
93
  virtual void Decorate(Window window_id) const;
 
94
  virtual void Undecorate(Window window_id) const;
 
95
 
58
96
  virtual void TerminateScale();
59
97
  virtual bool IsScaleActive() const;
60
98
  virtual bool IsScaleActiveForGroup() const;
79
117
  virtual int GetWindowMonitor(Window window_id) const;
80
118
  virtual nux::Geometry GetWindowGeometry(Window window_id) const;
81
119
  virtual nux::Geometry GetWindowSavedGeometry(Window window_id) const;
 
120
  virtual nux::Size GetWindowDecorationSize(Window window_id, Edge) const;
82
121
  virtual nux::Geometry GetScreenGeometry() const;
83
122
  virtual nux::Geometry GetWorkAreaGeometry(Window window_id) const;
84
123
 
90
129
 
91
130
  virtual int WorkspaceCount() const;
92
131
 
 
132
  nux::Point GetCurrentViewport() const override;
 
133
  int GetViewportHSize() const override;
 
134
  int GetViewportVSize() const override;
 
135
 
93
136
  virtual bool SaveInputFocus();
94
137
  virtual bool RestoreInputFocus();
95
138
 
96
139
  virtual std::string GetWindowName(Window window_id) const;
97
140
 
 
141
  // Mock functions
 
142
  void SetScaleActive(bool scale_active);
 
143
  void SetScaleActiveForGroup(bool scale_active_for_group);
 
144
  void SetCurrentDesktop(unsigned desktop_id);
 
145
 
 
146
  void AddStandaloneWindow(StandaloneWindow::Ptr const& window);
 
147
  std::map<Window, StandaloneWindow::Ptr> GetStandaloneWindows() const;
 
148
 
 
149
  void SetCurrentViewport(nux::Point const& vp);
 
150
 
98
151
protected:
99
152
  virtual void AddProperties(GVariantBuilder* builder);
100
153
 
101
154
private:
102
155
  bool expo_state_;
103
156
  bool in_show_desktop_;
 
157
  bool scale_active_;
 
158
  bool scale_active_for_group_;
 
159
  unsigned current_desktop_;
 
160
  std::map<Window, StandaloneWindow::Ptr> standalone_windows_;
 
161
  nux::Point current_vp_;
104
162
};
105
163
 
106
164
}