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

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

Issue 7189019: Fix even more crashes. To help identify remaining crashes now and in the future, I have made the ... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "views/widget/widget.h" 5 #include "views/widget/widget.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/message_loop.h" 8 #include "base/message_loop.h"
9 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
10 #include "ui/base/l10n/l10n_font_util.h" 10 #include "ui/base/l10n/l10n_font_util.h"
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 Widget* widget_; 53 Widget* widget_;
54 const Event* event_; 54 const Event* event_;
55 55
56 DISALLOW_COPY_AND_ASSIGN(ScopedEvent); 56 DISALLOW_COPY_AND_ASSIGN(ScopedEvent);
57 }; 57 };
58 58
59 // A default implementation of WidgetDelegate, used by Widget when no 59 // A default implementation of WidgetDelegate, used by Widget when no
60 // WidgetDelegate is supplied. 60 // WidgetDelegate is supplied.
61 class DefaultWidgetDelegate : public WidgetDelegate { 61 class DefaultWidgetDelegate : public WidgetDelegate {
62 public: 62 public:
63 DefaultWidgetDelegate() {} 63 explicit DefaultWidgetDelegate(Widget* widget) : widget_(widget) {}
64 virtual ~DefaultWidgetDelegate() {} 64 virtual ~DefaultWidgetDelegate() {}
65 65
66 // Overridden from WidgetDelegate: 66 // Overridden from WidgetDelegate:
67 virtual void DeleteDelegate() OVERRIDE { 67 virtual void DeleteDelegate() OVERRIDE {
68 delete this; 68 delete this;
69 } 69 }
70 virtual Widget* GetWidget() {
71 return widget_;
72 }
73 virtual const Widget* GetWidget() const {
74 return widget_;
75 }
70 76
71 private: 77 private:
78 Widget* widget_;
79
72 DISALLOW_COPY_AND_ASSIGN(DefaultWidgetDelegate); 80 DISALLOW_COPY_AND_ASSIGN(DefaultWidgetDelegate);
73 }; 81 };
74 82
75 //////////////////////////////////////////////////////////////////////////////// 83 ////////////////////////////////////////////////////////////////////////////////
76 // Widget, InitParams: 84 // Widget, InitParams:
77 85
78 Widget::InitParams::InitParams() 86 Widget::InitParams::InitParams()
79 : type(TYPE_WINDOW), 87 : type(TYPE_WINDOW),
80 delegate(NULL), 88 delegate(NULL),
81 child(false), 89 child(false),
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
239 247
240 // static 248 // static
241 gfx::Size Widget::GetLocalizedContentsSize(int col_resource_id, 249 gfx::Size Widget::GetLocalizedContentsSize(int col_resource_id,
242 int row_resource_id) { 250 int row_resource_id) {
243 return gfx::Size(GetLocalizedContentsWidth(col_resource_id), 251 return gfx::Size(GetLocalizedContentsWidth(col_resource_id),
244 GetLocalizedContentsHeight(row_resource_id)); 252 GetLocalizedContentsHeight(row_resource_id));
245 } 253 }
246 254
247 void Widget::Init(const InitParams& params) { 255 void Widget::Init(const InitParams& params) {
248 widget_delegate_ = 256 widget_delegate_ =
249 params.delegate ? params.delegate : new DefaultWidgetDelegate; 257 params.delegate ? params.delegate : new DefaultWidgetDelegate(this);
250 ownership_ = params.ownership; 258 ownership_ = params.ownership;
251 native_widget_ = params.native_widget ? 259 native_widget_ = params.native_widget ?
252 params.native_widget->AsNativeWidgetPrivate() : 260 params.native_widget->AsNativeWidgetPrivate() :
253 internal::NativeWidgetPrivate::CreateNativeWidget(this); 261 internal::NativeWidgetPrivate::CreateNativeWidget(this);
254 GetRootView(); 262 GetRootView();
255 default_theme_provider_.reset(new DefaultThemeProvider); 263 default_theme_provider_.reset(new DefaultThemeProvider);
256 if (params.type == InitParams::TYPE_MENU) 264 if (params.type == InitParams::TYPE_MENU)
257 is_mouse_button_pressed_ = native_widget_->IsMouseButtonDown(); 265 is_mouse_button_pressed_ = native_widget_->IsMouseButtonDown();
258 native_widget_->InitNativeWidget(params); 266 native_widget_->InitNativeWidget(params);
259 if (params.type == InitParams::TYPE_WINDOW) { 267 if (params.type == InitParams::TYPE_WINDOW) {
(...skipping 720 matching lines...) Expand 10 before | Expand all | Expand 10 after
980 988
981 //////////////////////////////////////////////////////////////////////////////// 989 ////////////////////////////////////////////////////////////////////////////////
982 // internal::NativeWidgetPrivate, NativeWidget implementation: 990 // internal::NativeWidgetPrivate, NativeWidget implementation:
983 991
984 internal::NativeWidgetPrivate* NativeWidgetPrivate::AsNativeWidgetPrivate() { 992 internal::NativeWidgetPrivate* NativeWidgetPrivate::AsNativeWidgetPrivate() {
985 return this; 993 return this;
986 } 994 }
987 995
988 } // namespace internal 996 } // namespace internal
989 } // namespace views 997 } // namespace views
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698