OLD | NEW |
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/views/infobars/alternate_nav_infobar_view.h" | 5 #include "chrome/browser/ui/views/infobars/alternate_nav_infobar_view.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "chrome/browser/ui/omnibox/alternate_nav_infobar_delegate.h" | 8 #include "chrome/browser/ui/omnibox/alternate_nav_infobar_delegate.h" |
9 #include "ui/base/window_open_disposition.h" | 9 #include "ui/base/window_open_disposition.h" |
10 #include "ui/views/controls/label.h" | 10 #include "ui/views/controls/label.h" |
11 #include "ui/views/controls/link.h" | 11 #include "ui/views/controls/link.h" |
12 | 12 |
13 | 13 |
14 // AlternateNavInfoBarDelegate ------------------------------------------------- | 14 // AlternateNavInfoBarDelegate ------------------------------------------------- |
15 | 15 |
16 InfoBar* AlternateNavInfoBarDelegate::CreateInfoBar(InfoBarService* owner) { | 16 // static |
17 return new AlternateNavInfoBarView(owner, this); | 17 scoped_ptr<InfoBar> AlternateNavInfoBarDelegate::CreateInfoBar( |
| 18 scoped_ptr<AlternateNavInfoBarDelegate> delegate) { |
| 19 return scoped_ptr<InfoBar>(new AlternateNavInfoBarView(delegate.Pass())); |
18 } | 20 } |
19 | 21 |
20 | 22 |
21 // AlternateNavInfoBarView ----------------------------------------------------- | 23 // AlternateNavInfoBarView ----------------------------------------------------- |
22 | 24 |
23 AlternateNavInfoBarView::AlternateNavInfoBarView( | 25 AlternateNavInfoBarView::AlternateNavInfoBarView( |
24 InfoBarService* owner, | 26 scoped_ptr<AlternateNavInfoBarDelegate> delegate) |
25 AlternateNavInfoBarDelegate* delegate) | 27 : InfoBarView(delegate.PassAs<InfoBarDelegate>()), |
26 : InfoBarView(owner, delegate), | |
27 label_1_(NULL), | 28 label_1_(NULL), |
28 link_(NULL), | 29 link_(NULL), |
29 label_2_(NULL) { | 30 label_2_(NULL) { |
30 } | 31 } |
31 | 32 |
32 AlternateNavInfoBarView::~AlternateNavInfoBarView() { | 33 AlternateNavInfoBarView::~AlternateNavInfoBarView() { |
33 } | 34 } |
34 | 35 |
35 void AlternateNavInfoBarView::Layout() { | 36 void AlternateNavInfoBarView::Layout() { |
36 InfoBarView::Layout(); | 37 InfoBarView::Layout(); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
81 return; // We're closing; don't call anything, it might access the owner. | 82 return; // We're closing; don't call anything, it might access the owner. |
82 DCHECK(link_ != NULL); | 83 DCHECK(link_ != NULL); |
83 DCHECK_EQ(link_, source); | 84 DCHECK_EQ(link_, source); |
84 if (GetDelegate()->LinkClicked(ui::DispositionFromEventFlags(event_flags))) | 85 if (GetDelegate()->LinkClicked(ui::DispositionFromEventFlags(event_flags))) |
85 RemoveSelf(); | 86 RemoveSelf(); |
86 } | 87 } |
87 | 88 |
88 AlternateNavInfoBarDelegate* AlternateNavInfoBarView::GetDelegate() { | 89 AlternateNavInfoBarDelegate* AlternateNavInfoBarView::GetDelegate() { |
89 return static_cast<AlternateNavInfoBarDelegate*>(delegate()); | 90 return static_cast<AlternateNavInfoBarDelegate*>(delegate()); |
90 } | 91 } |
OLD | NEW |