summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/views/chrome_views_delegate.cc
diff options
context:
space:
mode:
authorben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-09 07:35:32 +0000
committerben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-09 07:35:32 +0000
commit213dac2f0bff9162502fe325b6ebb85a255efcb2 (patch)
tree3640cb1f19976e38677b8632537d2d41f8444d0f /chrome/browser/ui/views/chrome_views_delegate.cc
parent6de53d401aa8dc6c7e0a9874c71a95ce88ade50d (diff)
downloadchromium_src-213dac2f0bff9162502fe325b6ebb85a255efcb2.zip
chromium_src-213dac2f0bff9162502fe325b6ebb85a255efcb2.tar.gz
chromium_src-213dac2f0bff9162502fe325b6ebb85a255efcb2.tar.bz2
Move browser/views to browser/ui/views
TBR=brettw BUG=none TEST=none Review URL: http://codereview.chromium.org/4694005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65508 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/ui/views/chrome_views_delegate.cc')
-rw-r--r--chrome/browser/ui/views/chrome_views_delegate.cc102
1 files changed, 102 insertions, 0 deletions
diff --git a/chrome/browser/ui/views/chrome_views_delegate.cc b/chrome/browser/ui/views/chrome_views_delegate.cc
new file mode 100644
index 0000000..d872ace
--- /dev/null
+++ b/chrome/browser/ui/views/chrome_views_delegate.cc
@@ -0,0 +1,102 @@
+// Copyright (c) 2010 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/views/chrome_views_delegate.h"
+
+#include "app/clipboard/clipboard.h"
+#include "base/scoped_ptr.h"
+#include "base/utf_string_conversions.h"
+#include "chrome/browser/browser_process.h"
+#include "chrome/browser/prefs/pref_service.h"
+#include "chrome/browser/views/accessibility_event_router_views.h"
+#include "chrome/browser/window_sizer.h"
+#include "gfx/rect.h"
+
+#if defined(OS_WIN)
+#include "chrome/browser/app_icon_win.h"
+#endif
+
+///////////////////////////////////////////////////////////////////////////////
+// ChromeViewsDelegate, views::ViewsDelegate implementation:
+
+Clipboard* ChromeViewsDelegate::GetClipboard() const {
+ return g_browser_process->clipboard();
+}
+
+void ChromeViewsDelegate::SaveWindowPlacement(const std::wstring& window_name,
+ const gfx::Rect& bounds,
+ bool maximized) {
+ if (!g_browser_process->local_state())
+ return;
+
+ DictionaryValue* window_preferences =
+ g_browser_process->local_state()->GetMutableDictionary(
+ WideToUTF8(window_name).c_str());
+ window_preferences->SetInteger("left", bounds.x());
+ window_preferences->SetInteger("top", bounds.y());
+ window_preferences->SetInteger("right", bounds.right());
+ window_preferences->SetInteger("bottom", bounds.bottom());
+ window_preferences->SetBoolean("maximized", maximized);
+
+ scoped_ptr<WindowSizer::MonitorInfoProvider> monitor_info_provider(
+ WindowSizer::CreateDefaultMonitorInfoProvider());
+ gfx::Rect work_area(
+ monitor_info_provider->GetMonitorWorkAreaMatching(bounds));
+ window_preferences->SetInteger("work_area_left", work_area.x());
+ window_preferences->SetInteger("work_area_top", work_area.y());
+ window_preferences->SetInteger("work_area_right", work_area.right());
+ window_preferences->SetInteger("work_area_bottom", work_area.bottom());
+}
+
+bool ChromeViewsDelegate::GetSavedWindowBounds(const std::wstring& window_name,
+ gfx::Rect* bounds) const {
+ if (!g_browser_process->local_state())
+ return false;
+
+ const DictionaryValue* dictionary =
+ g_browser_process->local_state()->GetDictionary(
+ WideToUTF8(window_name).c_str());
+ int left, top, right, bottom;
+ if (!dictionary || !dictionary->GetInteger("left", &left) ||
+ !dictionary->GetInteger("top", &top) ||
+ !dictionary->GetInteger("right", &right) ||
+ !dictionary->GetInteger("bottom", &bottom))
+ return false;
+
+ bounds->SetRect(left, top, right - left, bottom - top);
+ return true;
+}
+
+bool ChromeViewsDelegate::GetSavedMaximizedState(
+ const std::wstring& window_name,
+ bool* maximized) const {
+ if (!g_browser_process->local_state())
+ return false;
+
+ const DictionaryValue* dictionary =
+ g_browser_process->local_state()->GetDictionary(
+ WideToUTF8(window_name).c_str());
+ return dictionary && dictionary->GetBoolean("maximized", maximized) &&
+ maximized;
+}
+
+void ChromeViewsDelegate::NotifyAccessibilityEvent(
+ views::View* view, AccessibilityTypes::Event event_type) {
+ AccessibilityEventRouterViews::GetInstance()->HandleAccessibilityEvent(
+ view, event_type);
+}
+
+#if defined(OS_WIN)
+HICON ChromeViewsDelegate::GetDefaultWindowIcon() const {
+ return GetAppIcon();
+}
+#endif
+
+void ChromeViewsDelegate::AddRef() {
+ g_browser_process->AddRefModule();
+}
+
+void ChromeViewsDelegate::ReleaseRef() {
+ g_browser_process->ReleaseModule();
+}