Home | History | Annotate | Download | only in infobars
      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
      3 // found in the LICENSE file.
      4 
      5 #include "chrome/browser/ui/gtk/infobars/translate_message_infobar_gtk.h"
      6 
      7 #include "base/strings/utf_string_conversions.h"
      8 #include "chrome/browser/translate/translate_infobar_delegate.h"
      9 #include "chrome/browser/ui/gtk/gtk_util.h"
     10 #include "ui/base/gtk/gtk_hig_constants.h"
     11 #include "ui/base/gtk/gtk_signal_registrar.h"
     12 
     13 TranslateMessageInfoBar::TranslateMessageInfoBar(
     14     InfoBarService* owner,
     15     TranslateInfoBarDelegate* delegate)
     16     : TranslateInfoBarBase(owner, delegate) {
     17 }
     18 
     19 TranslateMessageInfoBar::~TranslateMessageInfoBar() {
     20 }
     21 
     22 void TranslateMessageInfoBar::InitWidgets() {
     23   TranslateInfoBarBase::InitWidgets();
     24 
     25   GtkWidget* new_hbox = gtk_hbox_new(FALSE, ui::kControlSpacing);
     26   gtk_util::CenterWidgetInHBox(hbox(), new_hbox, false, 0);
     27 
     28   std::string text = UTF16ToUTF8(GetDelegate()->GetMessageInfoBarText());
     29   gtk_box_pack_start(GTK_BOX(new_hbox), CreateLabel(text.c_str()), FALSE, FALSE,
     30                      0);
     31   string16 button_text = GetDelegate()->GetMessageInfoBarButtonText();
     32   if (!button_text.empty()) {
     33     GtkWidget* button =
     34         gtk_button_new_with_label(UTF16ToUTF8(button_text).c_str());
     35     signals()->Connect(button, "clicked", G_CALLBACK(&OnButtonPressedThunk),
     36                        this);
     37     gtk_box_pack_start(GTK_BOX(new_hbox), button, FALSE, FALSE, 0);
     38   }
     39 }
     40 
     41 void TranslateMessageInfoBar::OnButtonPressed(GtkWidget* sender) {
     42   GetDelegate()->MessageInfoBarButtonPressed();
     43 }
     44