summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
authorben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-11 03:49:41 +0000
committerben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-11 03:49:41 +0000
commitae79f8bbf66c3de33a7f08a4117fa3ae4423af7e (patch)
tree2bb0d11281dc043f2a383e2bf8519e80f159baad /chrome/browser
parent0a993c822f1b65cf0c8b40d30896ce98a1d45f0c (diff)
downloadchromium_src-ae79f8bbf66c3de33a7f08a4117fa3ae4423af7e.zip
chromium_src-ae79f8bbf66c3de33a7f08a4117fa3ae4423af7e.tar.gz
chromium_src-ae79f8bbf66c3de33a7f08a4117fa3ae4423af7e.tar.bz2
Allow a Views client to provide a default frameview for window widgets.
Provides a default one in Ash that will be used to match kennedy-spec. Much tweaking is needed, but that can come in future CLs. http://crbug.com/109138 TEST=none Review URL: http://codereview.chromium.org/9166014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@117165 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r--chrome/browser/about_flags.cc7
-rw-r--r--chrome/browser/ui/views/chrome_views_delegate.cc13
-rw-r--r--chrome/browser/ui/views/chrome_views_delegate.h2
-rw-r--r--chrome/browser/ui/views/constrained_window_views.cc8
4 files changed, 30 insertions, 0 deletions
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 0d0a177..21ff5d7 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -465,6 +465,13 @@ const Experiment kExperiments[] = {
kOsWin | kOsLinux | kOsCrOS,
SINGLE_VALUE_TYPE(ash::switches::kAuraTranslucentFrames)
},
+ {
+ "aura-google-dialog-frames",
+ IDS_FLAGS_AURA_GOOGLE_DIALOG_FRAMES_NAME,
+ IDS_FLAGS_AURA_GOOGLE_DIALOG_FRAMES_DESCRIPTION,
+ kOsWin | kOsLinux | kOsCrOS,
+ SINGLE_VALUE_TYPE(ash::switches::kAuraGoogleDialogFrames)
+ },
#endif // defined(USE_AURA)
{
"enable-gamepad",
diff --git a/chrome/browser/ui/views/chrome_views_delegate.cc b/chrome/browser/ui/views/chrome_views_delegate.cc
index ac0f073..f5aceb5 100644
--- a/chrome/browser/ui/views/chrome_views_delegate.cc
+++ b/chrome/browser/ui/views/chrome_views_delegate.cc
@@ -24,6 +24,10 @@
#include "chrome/browser/app_icon_win.h"
#endif
+#if defined(USE_AURA)
+#include "ash/shell.h"
+#endif
+
namespace {
// If the given window has a profile associated with it, use that profile's
@@ -124,6 +128,15 @@ HICON ChromeViewsDelegate::GetDefaultWindowIcon() const {
}
#endif
+views::NonClientFrameView* ChromeViewsDelegate::CreateDefaultNonClientFrameView(
+ views::Widget* widget) {
+#if defined(USE_AURA)
+ return ash::Shell::GetInstance()->CreateDefaultNonClientFrameView(widget);
+#else
+ return NULL;
+#endif
+}
+
void ChromeViewsDelegate::AddRef() {
g_browser_process->AddRefModule();
}
diff --git a/chrome/browser/ui/views/chrome_views_delegate.h b/chrome/browser/ui/views/chrome_views_delegate.h
index 71c5dc1..136b5e8 100644
--- a/chrome/browser/ui/views/chrome_views_delegate.h
+++ b/chrome/browser/ui/views/chrome_views_delegate.h
@@ -38,6 +38,8 @@ class ChromeViewsDelegate : public views::ViewsDelegate {
#if defined(OS_WIN)
virtual HICON GetDefaultWindowIcon() const OVERRIDE;
#endif
+ virtual views::NonClientFrameView* CreateDefaultNonClientFrameView(
+ views::Widget* widget) OVERRIDE;
virtual void AddRef() OVERRIDE;
virtual void ReleaseRef() OVERRIDE;
diff --git a/chrome/browser/ui/views/constrained_window_views.cc b/chrome/browser/ui/views/constrained_window_views.cc
index 899cc02..36e1418 100644
--- a/chrome/browser/ui/views/constrained_window_views.cc
+++ b/chrome/browser/ui/views/constrained_window_views.cc
@@ -46,6 +46,10 @@
#include "ui/views/widget/native_widget_win.h"
#endif
+#if defined(USE_AURA)
+#include "ash/shell.h"
+#endif
+
using base::TimeDelta;
namespace views {
@@ -602,7 +606,11 @@ gfx::NativeWindow ConstrainedWindowViews::GetNativeWindow() {
// ConstrainedWindowViews, views::Widget overrides:
views::NonClientFrameView* ConstrainedWindowViews::CreateNonClientFrameView() {
+#if defined(USE_AURA)
+ return ash::Shell::GetInstance()->CreateDefaultNonClientFrameView(this);
+#else
return new ConstrainedWindowFrameView(this);
+#endif
}
////////////////////////////////////////////////////////////////////////////////