Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(444)

Side by Side Diff: chrome/browser/extensions/api/wm/wm_api.h

Issue 10803037: [WIP] ash/extensions: Add experimental extension support for window-management in ash. Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: tot-merge-152100 Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ash/wm/window_util.cc ('k') | chrome/browser/extensions/api/wm/wm_api.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef CHROME_BROWSER_EXTENSIONS_API_WM_WM_API_H_
6 #define CHROME_BROWSER_EXTENSIONS_API_WM_WM_API_H_
7
8 #include <string>
9
10 #include "base/memory/scoped_ptr.h"
11 #include "base/values.h"
12 #include "chrome/browser/extensions/api/api_function.h"
13 #include "chrome/browser/extensions/extension_function.h"
14
15 namespace ui {
16 class Layer;
17 }
18
19 namespace extensions {
20 namespace api {
21
22 class WindowFunction : public AsyncApiFunction {
23 protected:
24 WindowFunction();
25 virtual ~WindowFunction();
26
27 virtual bool Prepare() OVERRIDE;
28 virtual void Work() OVERRIDE;
29 virtual bool Respond() OVERRIDE;
30
31 virtual bool WorkOnWindow(aura::Window* window) = 0;
32
33 private:
34 int window_id_;
35 };
36
37 class WmCloseFunction : public WindowFunction {
38 DECLARE_EXTENSION_FUNCTION_NAME("experimental.wm.close");
39 WmCloseFunction();
40
41 protected:
42 virtual ~WmCloseFunction();
43 virtual bool WorkOnWindow(aura::Window* window) OVERRIDE;
44 };
45
46 class WmMinimizeFunction : public WindowFunction {
47 DECLARE_EXTENSION_FUNCTION_NAME("experimental.wm.minimize");
48 WmMinimizeFunction();
49
50 protected:
51 virtual ~WmMinimizeFunction();
52 virtual bool WorkOnWindow(aura::Window* window) OVERRIDE;
53 };
54
55 class WmMaximizeFunction : public WindowFunction {
56 DECLARE_EXTENSION_FUNCTION_NAME("experimental.wm.maximize");
57 WmMaximizeFunction();
58
59 protected:
60 virtual ~WmMaximizeFunction();
61 virtual bool WorkOnWindow(aura::Window* window) OVERRIDE;
62 };
63
64 class WmFullscreenFunction : public WindowFunction {
65 DECLARE_EXTENSION_FUNCTION_NAME("experimental.wm.fullscreen");
66 WmFullscreenFunction();
67
68 protected:
69 virtual ~WmFullscreenFunction();
70 virtual bool WorkOnWindow(aura::Window* window) OVERRIDE;
71 };
72
73 class WmRestoreFunction : public WindowFunction {
74 DECLARE_EXTENSION_FUNCTION_NAME("experimental.wm.restore");
75 WmRestoreFunction();
76
77 protected:
78 virtual ~WmRestoreFunction();
79 virtual bool WorkOnWindow(aura::Window* window) OVERRIDE;
80 };
81
82 class WindowLayerFunction : public WindowFunction {
83 protected:
84 explicit WindowLayerFunction(int num_arguments);
85 virtual ~WindowLayerFunction();
86 virtual bool Prepare() OVERRIDE;
87
88 virtual bool WorkOnWindow(aura::Window* window) OVERRIDE;
89
90 virtual void WorkOnLayer(ui::Layer* layer) = 0;
91
92 private:
93 int duration_; // In milliseconds.
94 int num_arguments_;
95 };
96
97 class WmOpacityFunction : public WindowLayerFunction {
98 DECLARE_EXTENSION_FUNCTION_NAME("experimental.wm.opacity");
99
100 WmOpacityFunction();
101
102 protected:
103 virtual ~WmOpacityFunction();
104
105 // Overridden from AsyncApiFunction.
106 virtual bool Prepare() OVERRIDE;
107
108 // Overridden from WindowLayerFunction.
109 virtual void WorkOnLayer(ui::Layer* layer) OVERRIDE;
110
111 private:
112 double opacity_;
113 };
114
115 class WmTransformFunction : public WindowLayerFunction {
116 DECLARE_EXTENSION_FUNCTION_NAME("experimental.wm.transform");
117
118 WmTransformFunction();
119
120 protected:
121 virtual ~WmTransformFunction();
122
123 // Overridden from AsyncApiFunction.
124 virtual bool Prepare() OVERRIDE;
125
126 // Overridden from WindowLayerFunction.
127 virtual void WorkOnLayer(ui::Layer* layer) OVERRIDE;
128
129 scoped_ptr<base::DictionaryValue> dictionary_;
130 };
131
132 class WmSetWindowBoundsFunction : public WmTransformFunction {
133 DECLARE_EXTENSION_FUNCTION_NAME("experimental.wm.setWindowBounds");
134
135 protected:
136 virtual ~WmSetWindowBoundsFunction() {}
137
138 // Overridden from WindowLayerFunction.
139 virtual void WorkOnLayer(ui::Layer* layer) OVERRIDE;
140 };
141
142 class WmWindowsFunction : public SyncExtensionFunction {
143 DECLARE_EXTENSION_FUNCTION_NAME("experimental.wm.windows");
144
145 protected:
146 virtual ~WmWindowsFunction() {}
147 virtual bool RunImpl() OVERRIDE;
148 };
149
150 class WmScreenBoundsFunction : public SyncExtensionFunction {
151 DECLARE_EXTENSION_FUNCTION_NAME("experimental.wm.screenBounds");
152
153 protected:
154 virtual ~WmScreenBoundsFunction() {}
155 virtual bool RunImpl() OVERRIDE;
156 };
157
158 class WmStackWindowAboveFunction : public SyncExtensionFunction {
159 DECLARE_EXTENSION_FUNCTION_NAME("experimental.wm.stackWindowAbove");
160
161 protected:
162 virtual ~WmStackWindowAboveFunction() {}
163 virtual bool RunImpl() OVERRIDE;
164 };
165
166 } // namespace api
167 } // namespace extensions
168
169 #endif // CHROME_BROWSER_EXTENSIONS_API_WM_WM_API_H_
OLDNEW
« no previous file with comments | « ash/wm/window_util.cc ('k') | chrome/browser/extensions/api/wm/wm_api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698