- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / views / infobars / before_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_BEFORE_TRANSLATE_INFOBAR_H_
6 #define CHROME_BROWSER_UI_VIEWS_INFOBARS_BEFORE_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 BeforeTranslateInfoBar : public TranslateInfoBarBase,
19                                public views::MenuButtonListener {
20  public:
21   BeforeTranslateInfoBar(InfoBarService* owner,
22                          TranslateInfoBarDelegate* delegate);
23
24  private:
25   virtual ~BeforeTranslateInfoBar();
26
27   // TranslateInfoBarBase:
28   virtual void Layout() OVERRIDE;
29   virtual void ButtonPressed(views::Button* sender,
30                              const ui::Event& event) OVERRIDE;
31   virtual void ViewHierarchyChanged(
32       const ViewHierarchyChangedDetails& details) 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   // "The page is in <lang>. Would you like to translate it?"
41   // ...where <lang> is a combobox.  So the text is split in 2 chunks, each
42   // displayed in one of the labels below.
43   views::Label* label_1_;
44   views::Label* label_2_;
45
46   views::MenuButton* language_menu_button_;
47   views::LabelButton* accept_button_;
48   views::LabelButton* deny_button_;
49   views::LabelButton* never_translate_button_;
50   views::LabelButton* always_translate_button_;
51   views::MenuButton* options_menu_button_;
52
53   scoped_ptr<TranslateLanguageMenuModel> language_menu_model_;
54   OptionsMenuModel options_menu_model_;
55
56   DISALLOW_COPY_AND_ASSIGN(BeforeTranslateInfoBar);
57 };
58
59 #endif  // CHROME_BROWSER_UI_VIEWS_INFOBARS_BEFORE_TRANSLATE_INFOBAR_H_