summaryrefslogtreecommitdiffstats
path: root/views/widget
diff options
context:
space:
mode:
authorben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-02 15:09:39 +0000
committerben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-02 15:09:39 +0000
commitb6b53155952432917e19b69eaa1040c4f1d6cb96 (patch)
tree90f3b6783221c587f7f72691c0b8ff61dc991a9e /views/widget
parentd4ae5794b83ca02e76a5f527ca7ac8a2fdf16d10 (diff)
downloadchromium_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.cc9
-rw-r--r--views/widget/native_widget_win.cc14
-rw-r--r--views/widget/widget.cc4
-rw-r--r--views/widget/widget.h5
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