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

Unified 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 side-by-side diff with in-line comments
Download patch
« 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 »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/api/wm/wm_api.h
diff --git a/chrome/browser/extensions/api/wm/wm_api.h b/chrome/browser/extensions/api/wm/wm_api.h
new file mode 100644
index 0000000000000000000000000000000000000000..4073f0b62bdaa8d406dae28ddbfb84505c20a30e
--- /dev/null
+++ b/chrome/browser/extensions/api/wm/wm_api.h
@@ -0,0 +1,169 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_EXTENSIONS_API_WM_WM_API_H_
+#define CHROME_BROWSER_EXTENSIONS_API_WM_WM_API_H_
+
+#include <string>
+
+#include "base/memory/scoped_ptr.h"
+#include "base/values.h"
+#include "chrome/browser/extensions/api/api_function.h"
+#include "chrome/browser/extensions/extension_function.h"
+
+namespace ui {
+class Layer;
+}
+
+namespace extensions {
+namespace api {
+
+class WindowFunction : public AsyncApiFunction {
+ protected:
+ WindowFunction();
+ virtual ~WindowFunction();
+
+ virtual bool Prepare() OVERRIDE;
+ virtual void Work() OVERRIDE;
+ virtual bool Respond() OVERRIDE;
+
+ virtual bool WorkOnWindow(aura::Window* window) = 0;
+
+ private:
+ int window_id_;
+};
+
+class WmCloseFunction : public WindowFunction {
+ DECLARE_EXTENSION_FUNCTION_NAME("experimental.wm.close");
+ WmCloseFunction();
+
+ protected:
+ virtual ~WmCloseFunction();
+ virtual bool WorkOnWindow(aura::Window* window) OVERRIDE;
+};
+
+class WmMinimizeFunction : public WindowFunction {
+ DECLARE_EXTENSION_FUNCTION_NAME("experimental.wm.minimize");
+ WmMinimizeFunction();
+
+ protected:
+ virtual ~WmMinimizeFunction();
+ virtual bool WorkOnWindow(aura::Window* window) OVERRIDE;
+};
+
+class WmMaximizeFunction : public WindowFunction {
+ DECLARE_EXTENSION_FUNCTION_NAME("experimental.wm.maximize");
+ WmMaximizeFunction();
+
+ protected:
+ virtual ~WmMaximizeFunction();
+ virtual bool WorkOnWindow(aura::Window* window) OVERRIDE;
+};
+
+class WmFullscreenFunction : public WindowFunction {
+ DECLARE_EXTENSION_FUNCTION_NAME("experimental.wm.fullscreen");
+ WmFullscreenFunction();
+
+ protected:
+ virtual ~WmFullscreenFunction();
+ virtual bool WorkOnWindow(aura::Window* window) OVERRIDE;
+};
+
+class WmRestoreFunction : public WindowFunction {
+ DECLARE_EXTENSION_FUNCTION_NAME("experimental.wm.restore");
+ WmRestoreFunction();
+
+ protected:
+ virtual ~WmRestoreFunction();
+ virtual bool WorkOnWindow(aura::Window* window) OVERRIDE;
+};
+
+class WindowLayerFunction : public WindowFunction {
+ protected:
+ explicit WindowLayerFunction(int num_arguments);
+ virtual ~WindowLayerFunction();
+ virtual bool Prepare() OVERRIDE;
+
+ virtual bool WorkOnWindow(aura::Window* window) OVERRIDE;
+
+ virtual void WorkOnLayer(ui::Layer* layer) = 0;
+
+ private:
+ int duration_; // In milliseconds.
+ int num_arguments_;
+};
+
+class WmOpacityFunction : public WindowLayerFunction {
+ DECLARE_EXTENSION_FUNCTION_NAME("experimental.wm.opacity");
+
+ WmOpacityFunction();
+
+ protected:
+ virtual ~WmOpacityFunction();
+
+ // Overridden from AsyncApiFunction.
+ virtual bool Prepare() OVERRIDE;
+
+ // Overridden from WindowLayerFunction.
+ virtual void WorkOnLayer(ui::Layer* layer) OVERRIDE;
+
+ private:
+ double opacity_;
+};
+
+class WmTransformFunction : public WindowLayerFunction {
+ DECLARE_EXTENSION_FUNCTION_NAME("experimental.wm.transform");
+
+ WmTransformFunction();
+
+ protected:
+ virtual ~WmTransformFunction();
+
+ // Overridden from AsyncApiFunction.
+ virtual bool Prepare() OVERRIDE;
+
+ // Overridden from WindowLayerFunction.
+ virtual void WorkOnLayer(ui::Layer* layer) OVERRIDE;
+
+ scoped_ptr<base::DictionaryValue> dictionary_;
+};
+
+class WmSetWindowBoundsFunction : public WmTransformFunction {
+ DECLARE_EXTENSION_FUNCTION_NAME("experimental.wm.setWindowBounds");
+
+ protected:
+ virtual ~WmSetWindowBoundsFunction() {}
+
+ // Overridden from WindowLayerFunction.
+ virtual void WorkOnLayer(ui::Layer* layer) OVERRIDE;
+};
+
+class WmWindowsFunction : public SyncExtensionFunction {
+ DECLARE_EXTENSION_FUNCTION_NAME("experimental.wm.windows");
+
+ protected:
+ virtual ~WmWindowsFunction() {}
+ virtual bool RunImpl() OVERRIDE;
+};
+
+class WmScreenBoundsFunction : public SyncExtensionFunction {
+ DECLARE_EXTENSION_FUNCTION_NAME("experimental.wm.screenBounds");
+
+ protected:
+ virtual ~WmScreenBoundsFunction() {}
+ virtual bool RunImpl() OVERRIDE;
+};
+
+class WmStackWindowAboveFunction : public SyncExtensionFunction {
+ DECLARE_EXTENSION_FUNCTION_NAME("experimental.wm.stackWindowAbove");
+
+ protected:
+ virtual ~WmStackWindowAboveFunction() {}
+ virtual bool RunImpl() OVERRIDE;
+};
+
+} // namespace api
+} // namespace extensions
+
+#endif // CHROME_BROWSER_EXTENSIONS_API_WM_WM_API_H_
« 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