Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(903)

Side by Side Diff: ui/views/widget/widget.cc

Issue 1310183009: Add ability for Widgets to override the DefaultThemeProvider (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ui/views/widget/widget.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/views/widget/widget.h" 5 #include "ui/views/widget/widget.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "base/trace_event/trace_event.h" 10 #include "base/trace_event/trace_event.h"
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 Widget::InitParams::~InitParams() { 151 Widget::InitParams::~InitParams() {
152 } 152 }
153 153
154 //////////////////////////////////////////////////////////////////////////////// 154 ////////////////////////////////////////////////////////////////////////////////
155 // Widget, public: 155 // Widget, public:
156 156
157 Widget::Widget() 157 Widget::Widget()
158 : native_widget_(NULL), 158 : native_widget_(NULL),
159 widget_delegate_(NULL), 159 widget_delegate_(NULL),
160 non_client_view_(NULL), 160 non_client_view_(NULL),
161 theme_provider_(nullptr),
161 dragged_view_(NULL), 162 dragged_view_(NULL),
162 ownership_(InitParams::NATIVE_WIDGET_OWNS_WIDGET), 163 ownership_(InitParams::NATIVE_WIDGET_OWNS_WIDGET),
163 is_secondary_widget_(true), 164 is_secondary_widget_(true),
164 frame_type_(FRAME_TYPE_DEFAULT), 165 frame_type_(FRAME_TYPE_DEFAULT),
165 disable_inactive_rendering_(false), 166 disable_inactive_rendering_(false),
166 widget_closed_(false), 167 widget_closed_(false),
167 saved_show_state_(ui::SHOW_STATE_DEFAULT), 168 saved_show_state_(ui::SHOW_STATE_DEFAULT),
168 focus_on_creation_(true), 169 focus_on_creation_(true),
169 is_top_level_(false), 170 is_top_level_(false),
170 native_widget_initialized_(false), 171 native_widget_initialized_(false),
(...skipping 564 matching lines...) Expand 10 before | Expand all | Expand 10 after
735 736
736 const View* Widget::GetRootView() const { 737 const View* Widget::GetRootView() const {
737 return root_view_.get(); 738 return root_view_.get();
738 } 739 }
739 740
740 bool Widget::IsVisible() const { 741 bool Widget::IsVisible() const {
741 return native_widget_->IsVisible(); 742 return native_widget_->IsVisible();
742 } 743 }
743 744
744 ui::ThemeProvider* Widget::GetThemeProvider() const { 745 ui::ThemeProvider* Widget::GetThemeProvider() const {
746 if (theme_provider_)
747 return theme_provider_;
745 const Widget* root_widget = GetTopLevelWidget(); 748 const Widget* root_widget = GetTopLevelWidget();
746 if (root_widget && root_widget != this) { 749 if (root_widget && root_widget != this) {
747 // Attempt to get the theme provider, and fall back to the default theme 750 // Attempt to get the theme provider, and fall back to the default theme
748 // provider if not found. 751 // provider if not found.
749 ui::ThemeProvider* provider = root_widget->GetThemeProvider(); 752 ui::ThemeProvider* provider = root_widget->GetThemeProvider();
750 if (provider) 753 if (provider)
751 return provider; 754 return provider;
752 755
753 provider = root_widget->default_theme_provider_.get(); 756 provider = root_widget->default_theme_provider_.get();
754 if (provider) 757 if (provider)
755 return provider; 758 return provider;
756 } 759 }
757 return default_theme_provider_.get(); 760 return default_theme_provider_.get();
758 } 761 }
759 762
763 void Widget::SetThemeProvider(ui::ThemeProvider* theme_provider) {
764 theme_provider_ = theme_provider;
sadrul 2015/08/31 17:51:07 If a Widget has a theme-provider, then there's no
jonross 2015/09/01 13:44:30 We would not need the DefaultThemeProvider if they
765 if (non_client_view_)
766 non_client_view_->Layout();
sadrul 2015/08/31 17:51:07 Should this just call ThemeChanged() instead? (the
767 }
768
760 const ui::NativeTheme* Widget::GetNativeTheme() const { 769 const ui::NativeTheme* Widget::GetNativeTheme() const {
761 return native_widget_->GetNativeTheme(); 770 return native_widget_->GetNativeTheme();
762 } 771 }
763 772
764 FocusManager* Widget::GetFocusManager() { 773 FocusManager* Widget::GetFocusManager() {
765 Widget* toplevel_widget = GetTopLevelWidget(); 774 Widget* toplevel_widget = GetTopLevelWidget();
766 return toplevel_widget ? toplevel_widget->focus_manager_.get() : NULL; 775 return toplevel_widget ? toplevel_widget->focus_manager_.get() : NULL;
767 } 776 }
768 777
769 const FocusManager* Widget::GetFocusManager() const { 778 const FocusManager* Widget::GetFocusManager() const {
(...skipping 713 matching lines...) Expand 10 before | Expand all | Expand 10 after
1483 1492
1484 //////////////////////////////////////////////////////////////////////////////// 1493 ////////////////////////////////////////////////////////////////////////////////
1485 // internal::NativeWidgetPrivate, NativeWidget implementation: 1494 // internal::NativeWidgetPrivate, NativeWidget implementation:
1486 1495
1487 internal::NativeWidgetPrivate* NativeWidgetPrivate::AsNativeWidgetPrivate() { 1496 internal::NativeWidgetPrivate* NativeWidgetPrivate::AsNativeWidgetPrivate() {
1488 return this; 1497 return this;
1489 } 1498 }
1490 1499
1491 } // namespace internal 1500 } // namespace internal
1492 } // namespace views 1501 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/widget/widget.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698