From 4a19063d1459a4c9c8c4c50ed86eb9048f69ea3f Mon Sep 17 00:00:00 2001 From: "glen@chromium.org" Date: Sat, 9 May 2009 01:07:42 +0000 Subject: This is the first pass at themes. This CL is paired with http://codereview.chromium.org/67284 This CL (for commit purposes) includes http://codereview.chromium.org/67284 BUG=4463,11232,11233,11234,11235 Review URL: http://codereview.chromium.org/99030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15704 0039d316-1c4b-4281-b951-d872f2087c98 --- views/widget/widget_win.cc | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'views/widget/widget_win.cc') diff --git a/views/widget/widget_win.cc b/views/widget/widget_win.cc index c59f512..25f25da 100644 --- a/views/widget/widget_win.cc +++ b/views/widget/widget_win.cc @@ -15,6 +15,7 @@ #include "views/fill_layout.h" #include "views/focus/focus_util_win.h" #include "views/widget/aero_tooltip_manager.h" +#include "views/widget/default_theme_provider.h" #include "views/widget/root_view.h" #include "views/window/window_win.h" @@ -166,6 +167,8 @@ void WidgetWin::Init(HWND parent, const gfx::Rect& bounds, // Force creation of the RootView if it hasn't been created yet. GetRootView(); + default_theme_provider_.reset(new DefaultThemeProvider()); + // Ensures the parent we have been passed is valid, otherwise CreateWindowEx // will fail. if (parent && !::IsWindow(parent)) { @@ -293,6 +296,11 @@ RootView* WidgetWin::GetRootView() { return root_view_.get(); } +Widget* WidgetWin::GetRootWidget() const { + return reinterpret_cast( + win_util::GetWindowUserData(GetAncestor(hwnd_, GA_ROOT))); +} + bool WidgetWin::IsVisible() const { return !!::IsWindowVisible(GetNativeView()); } @@ -305,6 +313,16 @@ TooltipManager* WidgetWin::GetTooltipManager() { return tooltip_manager_.get(); } +ThemeProvider* WidgetWin::GetThemeProvider() const { + Widget* widget = GetRootWidget(); + if (widget) { + ThemeProvider* provider = widget->GetDialogThemeProvider(); + if (provider) + return provider; + } + return default_theme_provider_.get(); +} + Window* WidgetWin::GetWindow() { return GetWindowImpl(hwnd_); } -- cgit v1.1