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_APP_CURRENT_WINDOW_INTERNAL_APP_CURRENT_WINDOW_INTERNAL_API_H_ 6 #define CHROME_BROWSER_EXTENSIONS_API_APP_CURRENT_WINDOW_INTERNAL_APP_CURRENT_WINDOW_INTERNAL_API_H_ 7 8 #include "chrome/browser/extensions/chrome_extension_function.h" 9 10 namespace apps { 11 class AppWindow; 12 } 13 14 namespace extensions { 15 16 class AppCurrentWindowInternalExtensionFunction 17 : public ChromeSyncExtensionFunction { 18 protected: ~AppCurrentWindowInternalExtensionFunction()19 virtual ~AppCurrentWindowInternalExtensionFunction() {} 20 21 // Invoked with the current app window. 22 virtual bool RunWithWindow(apps::AppWindow* window) = 0; 23 24 private: 25 virtual bool RunSync() OVERRIDE; 26 }; 27 28 class AppCurrentWindowInternalFocusFunction 29 : public AppCurrentWindowInternalExtensionFunction { 30 public: 31 DECLARE_EXTENSION_FUNCTION("app.currentWindowInternal.focus", 32 APP_CURRENTWINDOWINTERNAL_FOCUS) 33 34 protected: ~AppCurrentWindowInternalFocusFunction()35 virtual ~AppCurrentWindowInternalFocusFunction() {} 36 virtual bool RunWithWindow(apps::AppWindow* window) OVERRIDE; 37 }; 38 39 class AppCurrentWindowInternalFullscreenFunction 40 : public AppCurrentWindowInternalExtensionFunction { 41 public: 42 DECLARE_EXTENSION_FUNCTION("app.currentWindowInternal.fullscreen", 43 APP_CURRENTWINDOWINTERNAL_FULLSCREEN) 44 45 protected: ~AppCurrentWindowInternalFullscreenFunction()46 virtual ~AppCurrentWindowInternalFullscreenFunction() {} 47 virtual bool RunWithWindow(apps::AppWindow* window) OVERRIDE; 48 }; 49 50 class AppCurrentWindowInternalMaximizeFunction 51 : public AppCurrentWindowInternalExtensionFunction { 52 public: 53 DECLARE_EXTENSION_FUNCTION("app.currentWindowInternal.maximize", 54 APP_CURRENTWINDOWINTERNAL_MAXIMIZE) 55 56 protected: ~AppCurrentWindowInternalMaximizeFunction()57 virtual ~AppCurrentWindowInternalMaximizeFunction() {} 58 virtual bool RunWithWindow(apps::AppWindow* window) OVERRIDE; 59 }; 60 61 class AppCurrentWindowInternalMinimizeFunction 62 : public AppCurrentWindowInternalExtensionFunction { 63 public: 64 DECLARE_EXTENSION_FUNCTION("app.currentWindowInternal.minimize", 65 APP_CURRENTWINDOWINTERNAL_MINIMIZE) 66 67 protected: ~AppCurrentWindowInternalMinimizeFunction()68 virtual ~AppCurrentWindowInternalMinimizeFunction() {} 69 virtual bool RunWithWindow(apps::AppWindow* window) OVERRIDE; 70 }; 71 72 class AppCurrentWindowInternalRestoreFunction 73 : public AppCurrentWindowInternalExtensionFunction { 74 public: 75 DECLARE_EXTENSION_FUNCTION("app.currentWindowInternal.restore", 76 APP_CURRENTWINDOWINTERNAL_RESTORE) 77 78 protected: ~AppCurrentWindowInternalRestoreFunction()79 virtual ~AppCurrentWindowInternalRestoreFunction() {} 80 virtual bool RunWithWindow(apps::AppWindow* window) OVERRIDE; 81 }; 82 83 class AppCurrentWindowInternalDrawAttentionFunction 84 : public AppCurrentWindowInternalExtensionFunction { 85 public: 86 DECLARE_EXTENSION_FUNCTION("app.currentWindowInternal.drawAttention", 87 APP_CURRENTWINDOWINTERNAL_DRAWATTENTION) 88 89 protected: ~AppCurrentWindowInternalDrawAttentionFunction()90 virtual ~AppCurrentWindowInternalDrawAttentionFunction() {} 91 virtual bool RunWithWindow(apps::AppWindow* window) OVERRIDE; 92 }; 93 94 class AppCurrentWindowInternalClearAttentionFunction 95 : public AppCurrentWindowInternalExtensionFunction { 96 public: 97 DECLARE_EXTENSION_FUNCTION("app.currentWindowInternal.clearAttention", 98 APP_CURRENTWINDOWINTERNAL_CLEARATTENTION) 99 100 protected: ~AppCurrentWindowInternalClearAttentionFunction()101 virtual ~AppCurrentWindowInternalClearAttentionFunction() {} 102 virtual bool RunWithWindow(apps::AppWindow* window) OVERRIDE; 103 }; 104 105 class AppCurrentWindowInternalShowFunction 106 : public AppCurrentWindowInternalExtensionFunction { 107 public: 108 DECLARE_EXTENSION_FUNCTION("app.currentWindowInternal.show", 109 APP_CURRENTWINDOWINTERNAL_SHOW) 110 111 protected: ~AppCurrentWindowInternalShowFunction()112 virtual ~AppCurrentWindowInternalShowFunction() {} 113 virtual bool RunWithWindow(apps::AppWindow* window) OVERRIDE; 114 }; 115 116 class AppCurrentWindowInternalHideFunction 117 : public AppCurrentWindowInternalExtensionFunction { 118 public: 119 DECLARE_EXTENSION_FUNCTION("app.currentWindowInternal.hide", 120 APP_CURRENTWINDOWINTERNAL_HIDE) 121 122 protected: ~AppCurrentWindowInternalHideFunction()123 virtual ~AppCurrentWindowInternalHideFunction() {} 124 virtual bool RunWithWindow(apps::AppWindow* window) OVERRIDE; 125 }; 126 127 class AppCurrentWindowInternalSetBoundsFunction 128 : public AppCurrentWindowInternalExtensionFunction { 129 public: 130 DECLARE_EXTENSION_FUNCTION("app.currentWindowInternal.setBounds", 131 APP_CURRENTWINDOWINTERNAL_SETBOUNDS) 132 protected: ~AppCurrentWindowInternalSetBoundsFunction()133 virtual ~AppCurrentWindowInternalSetBoundsFunction() {} 134 virtual bool RunWithWindow(apps::AppWindow* window) OVERRIDE; 135 }; 136 137 class AppCurrentWindowInternalSetSizeConstraintsFunction 138 : public AppCurrentWindowInternalExtensionFunction { 139 public: 140 DECLARE_EXTENSION_FUNCTION("app.currentWindowInternal.setSizeConstraints", 141 APP_CURRENTWINDOWINTERNAL_SETSIZECONSTRAINTS) 142 protected: ~AppCurrentWindowInternalSetSizeConstraintsFunction()143 virtual ~AppCurrentWindowInternalSetSizeConstraintsFunction() {} 144 virtual bool RunWithWindow(apps::AppWindow* window) OVERRIDE; 145 }; 146 147 class AppCurrentWindowInternalSetIconFunction 148 : public AppCurrentWindowInternalExtensionFunction { 149 public: 150 DECLARE_EXTENSION_FUNCTION("app.currentWindowInternal.setIcon", 151 APP_CURRENTWINDOWINTERNAL_SETICON) 152 153 protected: ~AppCurrentWindowInternalSetIconFunction()154 virtual ~AppCurrentWindowInternalSetIconFunction() {} 155 virtual bool RunWithWindow(apps::AppWindow* window) OVERRIDE; 156 }; 157 158 class AppCurrentWindowInternalSetBadgeIconFunction 159 : public AppCurrentWindowInternalExtensionFunction { 160 public: 161 DECLARE_EXTENSION_FUNCTION("app.currentWindowInternal.setBadgeIcon", 162 APP_CURRENTWINDOWINTERNAL_SETBADGEICON) 163 164 protected: ~AppCurrentWindowInternalSetBadgeIconFunction()165 virtual ~AppCurrentWindowInternalSetBadgeIconFunction() {} 166 virtual bool RunWithWindow(apps::AppWindow* window) OVERRIDE; 167 }; 168 169 class AppCurrentWindowInternalClearBadgeFunction 170 : public AppCurrentWindowInternalExtensionFunction { 171 public: 172 DECLARE_EXTENSION_FUNCTION("app.currentWindowInternal.clearBadge", 173 APP_CURRENTWINDOWINTERNAL_CLEARBADGE) 174 175 protected: ~AppCurrentWindowInternalClearBadgeFunction()176 virtual ~AppCurrentWindowInternalClearBadgeFunction() {} 177 virtual bool RunWithWindow(apps::AppWindow* window) OVERRIDE; 178 }; 179 180 class AppCurrentWindowInternalSetShapeFunction 181 : public AppCurrentWindowInternalExtensionFunction { 182 public: 183 DECLARE_EXTENSION_FUNCTION("app.currentWindowInternal.setShape", 184 APP_CURRENTWINDOWINTERNAL_SETSHAPE) 185 186 protected: ~AppCurrentWindowInternalSetShapeFunction()187 virtual ~AppCurrentWindowInternalSetShapeFunction() {} 188 virtual bool RunWithWindow(apps::AppWindow* window) OVERRIDE; 189 }; 190 191 class AppCurrentWindowInternalSetAlwaysOnTopFunction 192 : public AppCurrentWindowInternalExtensionFunction { 193 public: 194 DECLARE_EXTENSION_FUNCTION("app.currentWindowInternal.setAlwaysOnTop", 195 APP_CURRENTWINDOWINTERNAL_SETALWAYSONTOP) 196 197 protected: ~AppCurrentWindowInternalSetAlwaysOnTopFunction()198 virtual ~AppCurrentWindowInternalSetAlwaysOnTopFunction() {} 199 virtual bool RunWithWindow(apps::AppWindow* window) OVERRIDE; 200 }; 201 202 } // namespace extensions 203 204 #endif // CHROME_BROWSER_EXTENSIONS_API_APP_CURRENT_WINDOW_INTERNAL_APP_CURRENT_WINDOW_INTERNAL_API_H_ 205