- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / views / infobars / after_translate_infobar.h
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.
4
5 #ifndef CHROME_BROWSER_UI_VIEWS_INFOBARS_AFTER_TRANSLATE_INFOBAR_H_
6 #define CHROME_BROWSER_UI_VIEWS_INFOBARS_AFTER_TRANSLATE_INFOBAR_H_
7
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"
12
13 class TranslateInfoBarDelegate;
14 namespace views {
15 class MenuButton;
16 }
17
18 class AfterTranslateInfoBar : public TranslateInfoBarBase,
19                               public views::MenuButtonListener {
20  public:
21   AfterTranslateInfoBar(InfoBarService* owner,
22                         TranslateInfoBarDelegate* delegate);
23
24  private:
25   virtual ~AfterTranslateInfoBar();
26
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;
34
35   // views::MenuButtonListener:
36   virtual void OnMenuButtonClicked(views::View* source,
37                                    const gfx::Point& point) OVERRIDE;
38
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_;
46
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_;
51
52   scoped_ptr<TranslateLanguageMenuModel> original_language_menu_model_;
53   scoped_ptr<TranslateLanguageMenuModel> target_language_menu_model_;
54   OptionsMenuModel options_menu_model_;
55
56   // True if the target language comes before the original one.
57   bool swapped_language_buttons_;
58
59   // True if the source language is expected to be determined by a server.
60   bool autodetermined_source_language_;
61
62   DISALLOW_COPY_AND_ASSIGN(AfterTranslateInfoBar);
63 };
64
65 #endif  // CHROME_BROWSER_UI_VIEWS_INFOBARS_AFTER_TRANSLATE_INFOBAR_H_