• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #ifndef CHROME_BROWSER_UI_VIEWS_INFOBARS_BEFORE_TRANSLATE_INFOBAR_H_
6 #define CHROME_BROWSER_UI_VIEWS_INFOBARS_BEFORE_TRANSLATE_INFOBAR_H_
7 #pragma once
8 
9 #include "chrome/browser/translate/languages_menu_model.h"
10 #include "chrome/browser/translate/options_menu_model.h"
11 #include "chrome/browser/ui/views/infobars/translate_infobar_base.h"
12 #include "views/controls/menu/view_menu_delegate.h"
13 
14 class TranslateInfoBarDelegate;
15 namespace views {
16 class Menu2;
17 class MenuButton;
18 }
19 
20 class BeforeTranslateInfoBar : public TranslateInfoBarBase,
21                                public views::ViewMenuDelegate {
22  public:
23   explicit BeforeTranslateInfoBar(TranslateInfoBarDelegate* delegate);
24 
25  private:
26   virtual ~BeforeTranslateInfoBar();
27 
28   // TranslateInfoBarBase:
29   virtual void Layout();
30   virtual void ButtonPressed(views::Button* sender, const views::Event& event);
31   virtual void ViewHierarchyChanged(bool is_add, View* parent, View* child);
32   virtual int ContentMinimumWidth() const;
33   virtual void OriginalLanguageChanged();
34 
35   // views::ViewMenuDelegate:
36   virtual void RunMenu(View* source, const gfx::Point& pt);
37 
38   // The text displayed in the infobar is something like:
39   // "The page is in <lang>. Would you like to translate it?"
40   // ...where <lang> is a combobox.  So the text is split in 2 chunks, each
41   // displayed in one of the labels below.
42   views::Label* label_1_;
43   views::Label* label_2_;
44 
45   views::MenuButton* language_menu_button_;
46   views::TextButton* accept_button_;
47   views::TextButton* deny_button_;
48   views::TextButton* never_translate_button_;
49   views::TextButton* always_translate_button_;
50   views::MenuButton* options_menu_button_;
51 
52   LanguagesMenuModel languages_menu_model_;
53   scoped_ptr<views::Menu2> languages_menu_;
54 
55   OptionsMenuModel options_menu_model_;
56   scoped_ptr<views::Menu2> options_menu_;
57 
58   DISALLOW_COPY_AND_ASSIGN(BeforeTranslateInfoBar);
59 };
60 
61 #endif  // CHROME_BROWSER_UI_VIEWS_INFOBARS_BEFORE_TRANSLATE_INFOBAR_H_
62