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

Side by Side Diff: chrome/browser/ui/views/infobars/infobar_view.cc

Issue 6452011: Rework tree APIs to reflect Google style and more const-correctness.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 10 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 "chrome/browser/ui/views/infobars/infobar_view.h" 5 #include "chrome/browser/ui/views/infobars/infobar_view.h"
6 6
7 #include "base/message_loop.h" 7 #include "base/message_loop.h"
8 #include "base/utf_string_conversions.h" 8 #include "base/utf_string_conversions.h"
9 #include "chrome/browser/ui/views/infobars/infobar_background.h" 9 #include "chrome/browser/ui/views/infobars/infobar_background.h"
10 #include "chrome/browser/ui/views/infobars/infobar_container.h" 10 #include "chrome/browser/ui/views/infobars/infobar_container.h"
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 // top-level window became active. 83 // top-level window became active.
84 if (GetWidget() && 84 if (GetWidget() &&
85 !ui::DoesWindowBelongToActiveWindow(GetWidget()->GetNativeView())) 85 !ui::DoesWindowBelongToActiveWindow(GetWidget()->GetNativeView()))
86 restore_focus = false; 86 restore_focus = false;
87 #endif // defined(OS_WIN) 87 #endif // defined(OS_WIN)
88 DestroyFocusTracker(restore_focus); 88 DestroyFocusTracker(restore_focus);
89 animation_->Hide(); 89 animation_->Hide();
90 } 90 }
91 91
92 void InfoBarView::Close() { 92 void InfoBarView::Close() {
93 GetParent()->RemoveChildView(this); 93 parent()->RemoveChildView(this);
94 // Note that we only tell the delegate we're closed here, and not when we're 94 // Note that we only tell the delegate we're closed here, and not when we're
95 // simply destroyed (by virtue of a tab switch or being moved from window to 95 // simply destroyed (by virtue of a tab switch or being moved from window to
96 // window), since this action can cause the delegate to destroy itself. 96 // window), since this action can cause the delegate to destroy itself.
97 if (delegate_) { 97 if (delegate_) {
98 delegate_->InfoBarClosed(); 98 delegate_->InfoBarClosed();
99 delegate_ = NULL; 99 delegate_ = NULL;
100 } 100 }
101 } 101 }
102 102
103 void InfoBarView::PaintArrow(gfx::Canvas* canvas, 103 void InfoBarView::PaintArrow(gfx::Canvas* canvas,
104 View* outer_view, 104 View* outer_view,
105 int arrow_center_x) { 105 int arrow_center_x) {
106 gfx::Point infobar_top(0, y()); 106 gfx::Point infobar_top(0, y());
107 ConvertPointToView(GetParent(), outer_view, &infobar_top); 107 ConvertPointToView(parent(), outer_view, &infobar_top);
108 int infobar_top_y = infobar_top.y(); 108 int infobar_top_y = infobar_top.y();
109 SkPoint gradient_points[2] = { 109 SkPoint gradient_points[2] = {
110 {SkIntToScalar(0), SkIntToScalar(infobar_top_y)}, 110 {SkIntToScalar(0), SkIntToScalar(infobar_top_y)},
111 {SkIntToScalar(0), SkIntToScalar(infobar_top_y + target_height_)} 111 {SkIntToScalar(0), SkIntToScalar(infobar_top_y + target_height_)}
112 }; 112 };
113 InfoBarDelegate::Type infobar_type = delegate_->GetInfoBarType(); 113 InfoBarDelegate::Type infobar_type = delegate_->GetInfoBarType();
114 SkColor gradient_colors[2] = { 114 SkColor gradient_colors[2] = {
115 InfoBarBackground::GetTopColor(infobar_type), 115 InfoBarBackground::GetTopColor(infobar_type),
116 InfoBarBackground::GetBottomColor(infobar_type), 116 InfoBarBackground::GetBottomColor(infobar_type),
117 }; 117 };
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 // since no-one refers to us now. 187 // since no-one refers to us now.
188 MessageLoop::current()->PostTask(FROM_HERE, 188 MessageLoop::current()->PostTask(FROM_HERE,
189 delete_factory_.NewRunnableMethod(&InfoBarView::DeleteSelf)); 189 delete_factory_.NewRunnableMethod(&InfoBarView::DeleteSelf));
190 if (GetFocusManager()) 190 if (GetFocusManager())
191 GetFocusManager()->RemoveFocusChangeListener(this); 191 GetFocusManager()->RemoveFocusChangeListener(this);
192 } 192 }
193 } 193 }
194 194
195 // For accessibility, ensure the close button is the last child view. 195 // For accessibility, ensure the close button is the last child view.
196 if ((parent == this) && (child != close_button_) && 196 if ((parent == this) && (child != close_button_) &&
197 HasChildView(close_button_) && 197 (close_button_->parent() == this) &&
198 (GetChildViewAt(GetChildViewCount() - 1) != close_button_)) { 198 (GetChildViewAt(child_count() - 1) != close_button_)) {
199 RemoveChildView(close_button_); 199 RemoveChildView(close_button_);
200 AddChildView(close_button_); 200 AddChildView(close_button_);
201 } 201 }
202 } 202 }
203 203
204 void InfoBarView::ButtonPressed(views::Button* sender, 204 void InfoBarView::ButtonPressed(views::Button* sender,
205 const views::Event& event) { 205 const views::Event& event) {
206 if (sender == close_button_) { 206 if (sender == close_button_) {
207 if (delegate_) 207 if (delegate_)
208 delegate_->InfoBarDismissed(); 208 delegate_->InfoBarDismissed();
(...skipping 29 matching lines...) Expand all
238 } 238 }
239 239
240 gfx::Size InfoBarView::GetPreferredSize() { 240 gfx::Size InfoBarView::GetPreferredSize() {
241 return gfx::Size(0, 241 return gfx::Size(0,
242 static_cast<int>(target_height_ * animation_->GetCurrentValue())); 242 static_cast<int>(target_height_ * animation_->GetCurrentValue()));
243 } 243 }
244 244
245 void InfoBarView::FocusWillChange(View* focused_before, View* focused_now) { 245 void InfoBarView::FocusWillChange(View* focused_before, View* focused_now) {
246 // This will trigger some screen readers to read the entire contents of this 246 // This will trigger some screen readers to read the entire contents of this
247 // infobar. 247 // infobar.
248 if (focused_before && focused_now && !this->IsParentOf(focused_before) && 248 if (focused_before && focused_now && !this->Contains(focused_before) &&
249 this->IsParentOf(focused_now)) 249 this->Contains(focused_now))
250 NotifyAccessibilityEvent(AccessibilityTypes::EVENT_ALERT); 250 NotifyAccessibilityEvent(AccessibilityTypes::EVENT_ALERT);
251 } 251 }
252 252
253 void InfoBarView::AnimationEnded(const ui::Animation* animation) { 253 void InfoBarView::AnimationEnded(const ui::Animation* animation) {
254 if (container_) { 254 if (container_) {
255 container_->InfoBarAnimated(false); 255 container_->InfoBarAnimated(false);
256 256
257 if (!animation_->IsShowing()) 257 if (!animation_->IsShowing())
258 Close(); 258 Close();
259 } 259 }
260 } 260 }
261 261
262 void InfoBarView::DestroyFocusTracker(bool restore_focus) { 262 void InfoBarView::DestroyFocusTracker(bool restore_focus) {
263 if (focus_tracker_ != NULL) { 263 if (focus_tracker_ != NULL) {
264 if (restore_focus) 264 if (restore_focus)
265 focus_tracker_->FocusLastFocusedExternalView(); 265 focus_tracker_->FocusLastFocusedExternalView();
266 focus_tracker_->SetFocusManager(NULL); 266 focus_tracker_->SetFocusManager(NULL);
267 focus_tracker_.reset(); 267 focus_tracker_.reset();
268 } 268 }
269 } 269 }
270 270
271 void InfoBarView::DeleteSelf() { 271 void InfoBarView::DeleteSelf() {
272 delete this; 272 delete this;
273 } 273 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/infobars/infobar_container.cc ('k') | chrome/browser/ui/views/location_bar/location_bar_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698