From 213dac2f0bff9162502fe325b6ebb85a255efcb2 Mon Sep 17 00:00:00 2001 From: "ben@chromium.org" Date: Tue, 9 Nov 2010 07:35:32 +0000 Subject: 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 --- chrome/browser/ui/views/chrome_views_delegate.cc | 102 +++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 chrome/browser/ui/views/chrome_views_delegate.cc (limited to 'chrome/browser/ui/views/chrome_views_delegate.cc') 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 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(); +} -- cgit v1.1