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

Side by Side Diff: chrome/browser/ui/gtk/global_error_bubble.cc

Issue 15987009: Update chrome/ to use WeakPtr<T>::get() instead of implicit "operator T*" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 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) 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 "chrome/browser/ui/gtk/global_error_bubble.h" 5 #include "chrome/browser/ui/gtk/global_error_bubble.h"
6 6
7 #include <gtk/gtk.h> 7 #include <gtk/gtk.h>
8 8
9 #include "base/i18n/rtl.h" 9 #include "base/i18n/rtl.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
(...skipping 20 matching lines...) Expand all
31 } // namespace 31 } // namespace
32 32
33 GlobalErrorBubble::GlobalErrorBubble(Browser* browser, 33 GlobalErrorBubble::GlobalErrorBubble(Browser* browser,
34 const base::WeakPtr<GlobalError>& error, 34 const base::WeakPtr<GlobalError>& error,
35 GtkWidget* anchor) 35 GtkWidget* anchor)
36 : browser_(browser), 36 : browser_(browser),
37 bubble_(NULL), 37 bubble_(NULL),
38 error_(error), 38 error_(error),
39 message_width_(kMinMessageLabelWidth) { 39 message_width_(kMinMessageLabelWidth) {
40 DCHECK(browser_); 40 DCHECK(browser_);
41 DCHECK(error_); 41 DCHECK(error_.get());
42 GtkWidget* content = gtk_vbox_new(FALSE, ui::kControlSpacing); 42 GtkWidget* content = gtk_vbox_new(FALSE, ui::kControlSpacing);
43 gtk_container_set_border_width(GTK_CONTAINER(content), 43 gtk_container_set_border_width(GTK_CONTAINER(content),
44 ui::kContentAreaBorder); 44 ui::kContentAreaBorder);
45 g_signal_connect(content, "destroy", G_CALLBACK(OnDestroyThunk), this); 45 g_signal_connect(content, "destroy", G_CALLBACK(OnDestroyThunk), this);
46 46
47 GtkThemeService* theme_service = 47 GtkThemeService* theme_service =
48 GtkThemeService::GetFrom(browser_->profile()); 48 GtkThemeService::GetFrom(browser_->profile());
49 49
50 gfx::Image image = error_->GetBubbleViewIcon(); 50 gfx::Image image = error_->GetBubbleViewIcon();
51 CHECK(!image.IsEmpty()); 51 CHECK(!image.IsEmpty());
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 BubbleGtk::GRAB_INPUT, 115 BubbleGtk::GRAB_INPUT,
116 theme_service, 116 theme_service,
117 this); // error_ 117 this); // error_
118 } 118 }
119 119
120 GlobalErrorBubble::~GlobalErrorBubble() { 120 GlobalErrorBubble::~GlobalErrorBubble() {
121 } 121 }
122 122
123 void GlobalErrorBubble::BubbleClosing(BubbleGtk* bubble, 123 void GlobalErrorBubble::BubbleClosing(BubbleGtk* bubble,
124 bool closed_by_escape) { 124 bool closed_by_escape) {
125 if (error_) 125 if (error_.get())
126 error_->BubbleViewDidClose(browser_); 126 error_->BubbleViewDidClose(browser_);
127 } 127 }
128 128
129 void GlobalErrorBubble::OnDestroy(GtkWidget* sender) { 129 void GlobalErrorBubble::OnDestroy(GtkWidget* sender) {
130 delete this; 130 delete this;
131 } 131 }
132 132
133 void GlobalErrorBubble::OnAcceptButton(GtkWidget* sender) { 133 void GlobalErrorBubble::OnAcceptButton(GtkWidget* sender) {
134 if (error_) 134 if (error_.get())
135 error_->BubbleViewAcceptButtonPressed(browser_); 135 error_->BubbleViewAcceptButtonPressed(browser_);
136 bubble_->Close(); 136 bubble_->Close();
137 } 137 }
138 138
139 void GlobalErrorBubble::OnCancelButton(GtkWidget* sender) { 139 void GlobalErrorBubble::OnCancelButton(GtkWidget* sender) {
140 if (error_) 140 if (error_.get())
141 error_->BubbleViewCancelButtonPressed(browser_); 141 error_->BubbleViewCancelButtonPressed(browser_);
142 bubble_->Close(); 142 bubble_->Close();
143 } 143 }
144 144
145 void GlobalErrorBubble::OnRealize(GtkWidget* sender) { 145 void GlobalErrorBubble::OnRealize(GtkWidget* sender) {
146 int width = gtk_util::GetWidgetSize(sender).width(); 146 int width = gtk_util::GetWidgetSize(sender).width();
147 message_width_ = std::max(message_width_, width); 147 message_width_ = std::max(message_width_, width);
148 for (size_t i = 0; i < message_labels_.size(); ++i) 148 for (size_t i = 0; i < message_labels_.size(); ++i)
149 gtk_util::SetLabelWidth(message_labels_[i], message_width_); 149 gtk_util::SetLabelWidth(message_labels_[i], message_width_);
150 } 150 }
151 151
152 void GlobalErrorBubble::CloseBubbleView() { 152 void GlobalErrorBubble::CloseBubbleView() {
153 bubble_->Close(); 153 bubble_->Close();
154 } 154 }
155 155
156 GlobalErrorBubbleViewBase* GlobalErrorBubbleViewBase::ShowBubbleView( 156 GlobalErrorBubbleViewBase* GlobalErrorBubbleViewBase::ShowBubbleView(
157 Browser* browser, 157 Browser* browser,
158 const base::WeakPtr<GlobalError>& error) { 158 const base::WeakPtr<GlobalError>& error) {
159 BrowserWindowGtk* browser_window = 159 BrowserWindowGtk* browser_window =
160 BrowserWindowGtk::GetBrowserWindowForNativeWindow( 160 BrowserWindowGtk::GetBrowserWindowForNativeWindow(
161 browser->window()->GetNativeWindow()); 161 browser->window()->GetNativeWindow());
162 GtkWidget* anchor = browser_window->GetToolbar()->GetAppMenuButton(); 162 GtkWidget* anchor = browser_window->GetToolbar()->GetAppMenuButton();
163 163
164 // The bubble will be automatically deleted when it's closed. 164 // The bubble will be automatically deleted when it's closed.
165 return new GlobalErrorBubble(browser, error, anchor); 165 return new GlobalErrorBubble(browser, error, anchor);
166 } 166 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/autofill/tab_autofill_manager_delegate.cc ('k') | chrome/browser/ui/webui/net_internals/net_internals_ui.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698