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

Side by Side Diff: chrome/browser/ui/gtk/infobars/alternate_nav_infobar_gtk.cc

Issue 14327008: Add InitWidgets() phase for GTK infobars. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 8 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/infobars/alternate_nav_infobar_gtk.h" 5 #include "chrome/browser/ui/gtk/infobars/alternate_nav_infobar_gtk.h"
6 6
7 #include "chrome/browser/ui/gtk/event_utils.h" 7 #include "chrome/browser/ui/gtk/event_utils.h"
8 #include "chrome/browser/ui/omnibox/alternate_nav_infobar_delegate.h" 8 #include "chrome/browser/ui/omnibox/alternate_nav_infobar_delegate.h"
9 9
10 // AlternateNavInfoBarDelegate ------------------------------------------------- 10 // AlternateNavInfoBarDelegate -------------------------------------------------
11 11
12 InfoBar* AlternateNavInfoBarDelegate::CreateInfoBar(InfoBarService* owner) { 12 InfoBar* AlternateNavInfoBarDelegate::CreateInfoBar(InfoBarService* owner) {
13 return new AlternateNavInfoBarGtk(owner, this); 13 return new AlternateNavInfoBarGtk(owner, this);
14 } 14 }
15 15
16 // AlternateNavInfoBarGtk ------------------------------------------------------ 16 // AlternateNavInfoBarGtk ------------------------------------------------------
17 17
18 AlternateNavInfoBarGtk::AlternateNavInfoBarGtk( 18 AlternateNavInfoBarGtk::AlternateNavInfoBarGtk(
19 InfoBarService* owner, 19 InfoBarService* owner,
20 AlternateNavInfoBarDelegate* delegate) 20 AlternateNavInfoBarDelegate* delegate)
21 : InfoBarGtk(owner, delegate) { 21 : InfoBarGtk(owner, delegate) {
22 size_t link_offset;
23 string16 display_text = delegate->GetMessageTextWithOffset(&link_offset);
24 string16 link_text = delegate->GetLinkText();
25 AddLabelWithInlineLink(display_text, link_text, link_offset,
26 G_CALLBACK(OnLinkClickedThunk));
27 } 22 }
28 23
29 AlternateNavInfoBarGtk::~AlternateNavInfoBarGtk() { 24 AlternateNavInfoBarGtk::~AlternateNavInfoBarGtk() {
30 } 25 }
31 26
27 void AlternateNavInfoBarGtk::InitWidgets() {
28 InfoBarGtk::InitWidgets();
29
30 size_t link_offset;
31 string16 display_text = GetDelegate()->GetMessageTextWithOffset(&link_offset);
32 string16 link_text = GetDelegate()->GetLinkText();
33 AddLabelWithInlineLink(display_text, link_text, link_offset,
34 G_CALLBACK(OnLinkClickedThunk));
35 }
36
32 void AlternateNavInfoBarGtk::OnLinkClicked(GtkWidget* button) { 37 void AlternateNavInfoBarGtk::OnLinkClicked(GtkWidget* button) {
33 if (GetDelegate()->LinkClicked( 38 if (GetDelegate()->LinkClicked(
34 event_utils::DispositionForCurrentButtonPressEvent())) 39 event_utils::DispositionForCurrentButtonPressEvent()))
35 RemoveSelf(); 40 RemoveSelf();
36 } 41 }
37 42
38 AlternateNavInfoBarDelegate* AlternateNavInfoBarGtk::GetDelegate() { 43 AlternateNavInfoBarDelegate* AlternateNavInfoBarGtk::GetDelegate() {
39 return static_cast<AlternateNavInfoBarDelegate*>(delegate()); 44 return static_cast<AlternateNavInfoBarDelegate*>(delegate());
40 } 45 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698