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
3 // found in the LICENSE file.
5 #ifndef CHROME_BROWSER_UI_VIEWS_INFOBARS_AFTER_TRANSLATE_INFOBAR_H_
6 #define CHROME_BROWSER_UI_VIEWS_INFOBARS_AFTER_TRANSLATE_INFOBAR_H_
8 #include "chrome/browser/translate/options_menu_model.h"
9 #include "chrome/browser/ui/views/infobars/translate_infobar_base.h"
10 #include "chrome/browser/ui/views/infobars/translate_language_menu_model.h"
11 #include "ui/views/controls/button/menu_button_listener.h"
13 class TranslateInfoBarDelegate;
18 class AfterTranslateInfoBar : public TranslateInfoBarBase,
19 public views::MenuButtonListener {
21 AfterTranslateInfoBar(InfoBarService* owner,
22 TranslateInfoBarDelegate* delegate);
25 virtual ~AfterTranslateInfoBar();
27 // TranslateInfoBarBase:
28 virtual void Layout() OVERRIDE;
29 virtual void ViewHierarchyChanged(
30 const ViewHierarchyChangedDetails& details) OVERRIDE;
31 virtual void ButtonPressed(views::Button* sender,
32 const ui::Event& event) OVERRIDE;
33 virtual int ContentMinimumWidth() const OVERRIDE;
35 // views::MenuButtonListener:
36 virtual void OnMenuButtonClicked(views::View* source,
37 const gfx::Point& point) OVERRIDE;
39 // The text displayed in the infobar is something like:
40 // "Translated from <lang1> to <lang2> [more text in some languages]"
41 // ...where <lang1> and <lang2> are comboboxes. So the text is split in 3
42 // chunks, each displayed in one of the labels below.
43 views::Label* label_1_;
44 views::Label* label_2_;
45 views::Label* label_3_;
47 views::MenuButton* original_language_menu_button_;
48 views::MenuButton* target_language_menu_button_;
49 views::LabelButton* revert_button_;
50 views::MenuButton* options_menu_button_;
52 scoped_ptr<TranslateLanguageMenuModel> original_language_menu_model_;
53 scoped_ptr<TranslateLanguageMenuModel> target_language_menu_model_;
54 OptionsMenuModel options_menu_model_;
56 // True if the target language comes before the original one.
57 bool swapped_language_buttons_;
59 // True if the source language is expected to be determined by a server.
60 bool autodetermined_source_language_;
62 DISALLOW_COPY_AND_ASSIGN(AfterTranslateInfoBar);
65 #endif // CHROME_BROWSER_UI_VIEWS_INFOBARS_AFTER_TRANSLATE_INFOBAR_H_