summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/window_controller.cc
diff options
context:
space:
mode:
authorrdevlin.cronin@chromium.org <rdevlin.cronin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-17 20:36:57 +0000
committerrdevlin.cronin@chromium.org <rdevlin.cronin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-17 20:36:57 +0000
commit44f4b13cdb4e198475e9150b9f9e9f3fa8d35b47 (patch)
treebe1d09d56535d967e05e709499dca570301c74c8 /chrome/browser/extensions/window_controller.cc
parent0776b0bfbc5a634e3f89cd0f0105d7e2f727db92 (diff)
downloadchromium_src-44f4b13cdb4e198475e9150b9f9e9f3fa8d35b47.zip
chromium_src-44f4b13cdb4e198475e9150b9f9e9f3fa8d35b47.tar.gz
chromium_src-44f4b13cdb4e198475e9150b9f9e9f3fa8d35b47.tar.bz2
Move ExtensionWindowController and related into extensions namespace
Moved ExtensionWindowController, BrowserExtensionWindowController, ExtensionWindowList to extensions namespace; renamed appropriately. BUG=136874, 117261 Review URL: https://chromiumcodereview.appspot.com/10735061 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@147083 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/window_controller.cc')
-rw-r--r--chrome/browser/extensions/window_controller.cc68
1 files changed, 68 insertions, 0 deletions
diff --git a/chrome/browser/extensions/window_controller.cc b/chrome/browser/extensions/window_controller.cc
new file mode 100644
index 0000000..28e1e2e
--- /dev/null
+++ b/chrome/browser/extensions/window_controller.cc
@@ -0,0 +1,68 @@
+// 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.
+
+#include "chrome/browser/extensions/window_controller.h"
+
+#include "base/values.h"
+#include "chrome/browser/extensions/api/tabs/tabs_constants.h"
+#include "chrome/browser/extensions/window_controller_list.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/base_window.h"
+#include "ui/gfx/rect.h"
+
+namespace extensions {
+
+///////////////////////////////////////////////////////////////////////////////
+// WindowController
+
+WindowController::WindowController(BaseWindow* window, Profile* profile)
+ : window_(window), profile_(profile) {
+ WindowControllerList::GetInstance()->AddExtensionWindow(this);
+}
+
+WindowController::~WindowController() {
+ WindowControllerList::GetInstance()->RemoveExtensionWindow(this);
+}
+
+Browser* WindowController::GetBrowser() const {
+ return NULL;
+}
+
+namespace keys = tabs_constants;
+
+base::DictionaryValue* WindowController::CreateWindowValue() const {
+ DictionaryValue* result = new DictionaryValue();
+
+ result->SetInteger(keys::kIdKey, GetWindowId());
+ result->SetString(keys::kWindowTypeKey, GetWindowTypeText());
+ result->SetBoolean(keys::kFocusedKey, window()->IsActive());
+ result->SetBoolean(keys::kIncognitoKey, profile_->IsOffTheRecord());
+ result->SetBoolean(keys::kAlwaysOnTopKey, window()->IsAlwaysOnTop());
+
+ std::string window_state;
+ if (window()->IsMinimized()) {
+ window_state = keys::kShowStateValueMinimized;
+ } else if (window()->IsFullscreen()) {
+ window_state = keys::kShowStateValueFullscreen;
+ } else if (window()->IsMaximized()) {
+ window_state = keys::kShowStateValueMaximized;
+ } else {
+ window_state = keys::kShowStateValueNormal;
+ }
+ result->SetString(keys::kShowStateKey, window_state);
+
+ gfx::Rect bounds;
+ if (window()->IsMinimized())
+ bounds = window()->GetRestoredBounds();
+ else
+ bounds = window()->GetBounds();
+ result->SetInteger(keys::kLeftKey, bounds.x());
+ result->SetInteger(keys::kTopKey, bounds.y());
+ result->SetInteger(keys::kWidthKey, bounds.width());
+ result->SetInteger(keys::kHeightKey, bounds.height());
+
+ return result;
+}
+
+} // namespace extensions