diff options
author | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-02 15:09:39 +0000 |
---|---|---|
committer | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-02 15:09:39 +0000 |
commit | b6b53155952432917e19b69eaa1040c4f1d6cb96 (patch) | |
tree | 90f3b6783221c587f7f72691c0b8ff61dc991a9e /views/widget | |
parent | d4ae5794b83ca02e76a5f527ca7ac8a2fdf16d10 (diff) | |
download | chromium_src-b6b53155952432917e19b69eaa1040c4f1d6cb96.zip chromium_src-b6b53155952432917e19b69eaa1040c4f1d6cb96.tar.gz chromium_src-b6b53155952432917e19b69eaa1040c4f1d6cb96.tar.bz2 |
WidgetDelegate is now always created. Specified through InitParams, if NULL Widget will make a default one.
BUG=72040
TEST=none
Review URL: http://codereview.chromium.org/7080068
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@87609 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/widget')
-rw-r--r-- | views/widget/native_widget_gtk.cc | 9 | ||||
-rw-r--r-- | views/widget/native_widget_win.cc | 14 | ||||
-rw-r--r-- | views/widget/widget.cc | 4 | ||||
-rw-r--r-- | views/widget/widget.h | 5 |
4 files changed, 13 insertions, 19 deletions
diff --git a/views/widget/native_widget_gtk.cc b/views/widget/native_widget_gtk.cc index e5dd8b1..c5f926c 100644 --- a/views/widget/native_widget_gtk.cc +++ b/views/widget/native_widget_gtk.cc @@ -446,19 +446,14 @@ void NativeWidgetGtk::DoDrag(const OSExchangeData& data, int operation) { } void NativeWidgetGtk::IsActiveChanged() { - WidgetDelegate* d = GetWidget()->widget_delegate(); - if (d) { - bool a = IsActive(); - d->OnWidgetActivated(a); - } + GetWidget()->widget_delegate()->OnWidgetActivated(IsActive()); } void NativeWidgetGtk::SetInitialFocus() { if (!focus_on_creation_) return; - View* v = GetWidget()->widget_delegate() ? - GetWidget()->widget_delegate()->GetInitiallyFocusedView() : NULL; + View* v = GetWidget()->widget_delegate()->GetInitiallyFocusedView(); if (v) v->RequestFocus(); } diff --git a/views/widget/native_widget_win.cc b/views/widget/native_widget_win.cc index 221b684..1afb3e5 100644 --- a/views/widget/native_widget_win.cc +++ b/views/widget/native_widget_win.cc @@ -924,8 +924,7 @@ void NativeWidgetWin::OnDestroy() { } void NativeWidgetWin::OnDisplayChange(UINT bits_per_pixel, CSize screen_size) { - if (GetWidget()->widget_delegate()) - GetWidget()->widget_delegate()->OnDisplayChanged(); + GetWidget()->widget_delegate()->OnDisplayChanged(); } LRESULT NativeWidgetWin::OnDwmCompositionChanged(UINT msg, @@ -1115,15 +1114,13 @@ LRESULT NativeWidgetWin::OnMouseRange(UINT message, void NativeWidgetWin::OnMove(const CPoint& point) { // TODO(beng): move to Widget. - if (GetWidget()->widget_delegate()) - GetWidget()->widget_delegate()->OnWidgetMove(); + GetWidget()->widget_delegate()->OnWidgetMove(); SetMsgHandled(FALSE); } void NativeWidgetWin::OnMoving(UINT param, const LPRECT new_bounds) { // TODO(beng): move to Widget. - if (GetWidget()->widget_delegate()) - GetWidget()->widget_delegate()->OnWidgetMove(); + GetWidget()->widget_delegate()->OnWidgetMove(); } LRESULT NativeWidgetWin::OnNCActivate(BOOL active) { @@ -1237,7 +1234,7 @@ void NativeWidgetWin::OnSettingChange(UINT flags, const wchar_t* section) { SetMsgHandled(TRUE); } else { // TODO(beng): move to Widget. - if (flags == SPI_SETWORKAREA && GetWidget()->widget_delegate()) + if (flags == SPI_SETWORKAREA) GetWidget()->widget_delegate()->OnWorkAreaChanged(); SetMsgHandled(FALSE); } @@ -1318,8 +1315,7 @@ void NativeWidgetWin::SetInitialFocus() { return; // TODO(beng): move to Widget. - View* v = GetWidget()->widget_delegate() ? - GetWidget()->widget_delegate()->GetInitiallyFocusedView() : NULL; + View* v = GetWidget()->widget_delegate()->GetInitiallyFocusedView(); if (v) { v->RequestFocus(); } else if (!(GetWindowLong(GWL_EXSTYLE) & WS_EX_TRANSPARENT) && diff --git a/views/widget/widget.cc b/views/widget/widget.cc index 52e311a..bc84fb0 100644 --- a/views/widget/widget.cc +++ b/views/widget/widget.cc @@ -13,6 +13,7 @@ #include "views/widget/default_theme_provider.h" #include "views/widget/root_view.h" #include "views/widget/native_widget.h" +#include "views/widget/widget_delegate.h" namespace views { @@ -26,6 +27,7 @@ bool use_pure_views = false; Widget::InitParams::InitParams() : type(TYPE_WINDOW), + delegate(NULL), child(false), transient(false), transparent(false), @@ -43,6 +45,7 @@ Widget::InitParams::InitParams() Widget::InitParams::InitParams(Type type) : type(type), + delegate(NULL), child(type == TYPE_CONTROL), transient(type == TYPE_POPUP || type == TYPE_MENU), transparent(false), @@ -101,6 +104,7 @@ Widget* Widget::GetWidgetForNativeView(gfx::NativeView native_view) { } void Widget::Init(const InitParams& params) { + widget_delegate_ = params.delegate ? params.delegate : new WidgetDelegate; ownership_ = params.ownership; native_widget_ = params.native_widget ? params.native_widget diff --git a/views/widget/widget.h b/views/widget/widget.h index de31f4a..912cc76 100644 --- a/views/widget/widget.h +++ b/views/widget/widget.h @@ -104,6 +104,8 @@ class Widget : public internal::NativeWidgetDelegate, explicit InitParams(Type type); Type type; + // If NULL, a default implementation will be constructed. + WidgetDelegate* delegate; bool child; bool transient; bool transparent; @@ -196,9 +198,6 @@ class Widget : public internal::NativeWidgetDelegate, // Gets/Sets the WidgetDelegate. WidgetDelegate* widget_delegate() const { return widget_delegate_; } - void set_widget_delegate(WidgetDelegate* widget_delegate) { - widget_delegate_ = widget_delegate; - } // Sets the specified view as the contents of this Widget. There can only // be one contents view child of this Widget's RootView. This view is sized to |