OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_UI_VIEWS_TRANSLATE_TRANSLATE_BUBBLE_VIEW_H_ | 5 #ifndef CHROME_BROWSER_UI_VIEWS_TRANSLATE_TRANSLATE_BUBBLE_VIEW_H_ |
6 #define CHROME_BROWSER_UI_VIEWS_TRANSLATE_TRANSLATE_BUBBLE_VIEW_H_ | 6 #define CHROME_BROWSER_UI_VIEWS_TRANSLATE_TRANSLATE_BUBBLE_VIEW_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <string> | 9 #include <string> |
10 | 10 |
11 #include "base/basictypes.h" | 11 #include "base/basictypes.h" |
12 #include "chrome/browser/ui/translate/language_combobox_model.h" | 12 #include "chrome/browser/ui/translate/language_combobox_model.h" |
13 #include "chrome/browser/ui/translate/translate_bubble_model.h" | 13 #include "chrome/browser/ui/translate/translate_bubble_model.h" |
| 14 #include "chrome/browser/ui/translate/translate_denial_menu_model_observer.h" |
14 #include "ui/views/bubble/bubble_delegate.h" | 15 #include "ui/views/bubble/bubble_delegate.h" |
15 #include "ui/views/controls/button/button.h" | 16 #include "ui/views/controls/button/button.h" |
16 #include "ui/views/controls/combobox/combobox_listener.h" | 17 #include "ui/views/controls/combobox/combobox_listener.h" |
17 #include "ui/views/controls/link_listener.h" | 18 #include "ui/views/controls/link_listener.h" |
18 | 19 |
19 class Browser; | 20 class Browser; |
20 class PrefService; | 21 class PrefService; |
21 class TranslateBubbleModel; | 22 class TranslateBubbleModel; |
22 | 23 |
23 namespace content { | 24 namespace content { |
24 class WebContents; | 25 class WebContents; |
25 } | 26 } |
26 | 27 |
27 namespace views { | 28 namespace views { |
28 class Checkbox; | 29 class Checkbox; |
29 class GridLayout; | 30 class GridLayout; |
30 class LabelButton; | 31 class LabelButton; |
31 class Link; | 32 class Link; |
| 33 class MultiTargetButton; |
32 class View; | 34 class View; |
33 } | 35 } |
34 | 36 |
| 37 namespace ui { |
| 38 class MenuModel; |
| 39 } |
| 40 |
35 class TranslateBubbleView : public views::BubbleDelegateView, | 41 class TranslateBubbleView : public views::BubbleDelegateView, |
36 public views::ButtonListener, | 42 public views::ButtonListener, |
37 public views::ComboboxListener, | 43 public views::ComboboxListener, |
38 public views::LinkListener { | 44 public views::LinkListener, |
| 45 public TranslateDenialMenuModelObserver { |
39 public: | 46 public: |
40 virtual ~TranslateBubbleView(); | 47 virtual ~TranslateBubbleView(); |
41 | 48 |
42 // Shows the Translate bubble. | 49 // Shows the Translate bubble. |
43 static void ShowBubble(views::View* anchor_view, | 50 static void ShowBubble(views::View* anchor_view, |
44 content::WebContents* web_contents, | 51 content::WebContents* web_contents, |
45 TranslateBubbleModel::ViewState type, | 52 TranslateBubbleModel::ViewState type, |
46 Browser* browser); | 53 Browser* browser); |
47 | 54 |
48 // If true, the Translate bubble is being shown. | 55 // If true, the Translate bubble is being shown. |
(...skipping 15 matching lines...) Expand all Loading... |
64 // views::View methods. | 71 // views::View methods. |
65 virtual bool AcceleratorPressed(const ui::Accelerator& accelerator) OVERRIDE; | 72 virtual bool AcceleratorPressed(const ui::Accelerator& accelerator) OVERRIDE; |
66 virtual gfx::Size GetPreferredSize() OVERRIDE; | 73 virtual gfx::Size GetPreferredSize() OVERRIDE; |
67 | 74 |
68 // views::CombboxListener method. | 75 // views::CombboxListener method. |
69 virtual void OnSelectedIndexChanged(views::Combobox* combobox) OVERRIDE; | 76 virtual void OnSelectedIndexChanged(views::Combobox* combobox) OVERRIDE; |
70 | 77 |
71 // views::LinkListener method. | 78 // views::LinkListener method. |
72 virtual void LinkClicked(views::Link* source, int event_flags) OVERRIDE; | 79 virtual void LinkClicked(views::Link* source, int event_flags) OVERRIDE; |
73 | 80 |
| 81 // TranslateDenialMenuModelObserver method. |
| 82 virtual void OnExecutingDenialCommand( |
| 83 TranslateDenialMenuModelObserver::Command command) OVERRIDE; |
| 84 |
74 // Returns the current view state. | 85 // Returns the current view state. |
75 TranslateBubbleModel::ViewState GetViewState() const; | 86 TranslateBubbleModel::ViewState GetViewState() const; |
76 | 87 |
77 private: | 88 private: |
78 enum LinkID { | 89 enum LinkID { |
79 LINK_ID_ADVANCED, | 90 LINK_ID_ADVANCED, |
80 LINK_ID_LEARN_MORE, | 91 LINK_ID_LEARN_MORE, |
81 }; | 92 }; |
82 | 93 |
83 enum ButtonID { | 94 enum ButtonID { |
84 BUTTON_ID_TRANSLATE, | 95 BUTTON_ID_TRANSLATE, |
85 BUTTON_ID_DONE, | 96 BUTTON_ID_DONE, |
86 BUTTON_ID_CANCEL, | 97 BUTTON_ID_CANCEL, |
87 BUTTON_ID_SHOW_ORIGINAL, | 98 BUTTON_ID_SHOW_ORIGINAL, |
88 BUTTON_ID_TRY_AGAIN, | 99 BUTTON_ID_TRY_AGAIN, |
89 BUTTON_ID_ALWAYS_TRANSLATE, | 100 BUTTON_ID_ALWAYS_TRANSLATE, |
90 }; | 101 }; |
91 | 102 |
92 enum ComboboxID { | 103 enum ComboboxID { |
93 COMBOBOX_ID_DENIAL, | |
94 COMBOBOX_ID_SOURCE_LANGUAGE, | 104 COMBOBOX_ID_SOURCE_LANGUAGE, |
95 COMBOBOX_ID_TARGET_LANGUAGE, | 105 COMBOBOX_ID_TARGET_LANGUAGE, |
96 }; | 106 }; |
97 | 107 |
98 friend class TranslateBubbleViewTest; | 108 friend class TranslateBubbleViewTest; |
99 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest, TranslateButton); | 109 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest, TranslateButton); |
100 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest, AdvancedLink); | 110 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest, AdvancedLink); |
101 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest, ShowOriginalButton); | 111 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest, ShowOriginalButton); |
102 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest, TryAgainButton); | 112 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest, TryAgainButton); |
103 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest, AlwaysTranslateCheckbox); | 113 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest, AlwaysTranslateCheckbox); |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
156 | 166 |
157 views::View* before_translate_view_; | 167 views::View* before_translate_view_; |
158 views::View* translating_view_; | 168 views::View* translating_view_; |
159 views::View* after_translate_view_; | 169 views::View* after_translate_view_; |
160 views::View* error_view_; | 170 views::View* error_view_; |
161 views::View* advanced_view_; | 171 views::View* advanced_view_; |
162 | 172 |
163 scoped_ptr<LanguageComboboxModel> source_language_combobox_model_; | 173 scoped_ptr<LanguageComboboxModel> source_language_combobox_model_; |
164 scoped_ptr<LanguageComboboxModel> target_language_combobox_model_; | 174 scoped_ptr<LanguageComboboxModel> target_language_combobox_model_; |
165 | 175 |
166 views::Combobox* denial_combobox_; | 176 scoped_ptr<ui::MenuModel> denial_button_model_; |
| 177 views::MultiTargetButton* denial_button_; |
| 178 |
167 views::Combobox* source_language_combobox_; | 179 views::Combobox* source_language_combobox_; |
168 views::Combobox* target_language_combobox_; | 180 views::Combobox* target_language_combobox_; |
169 | 181 |
170 views::Checkbox* always_translate_checkbox_; | 182 views::Checkbox* always_translate_checkbox_; |
171 | 183 |
172 scoped_ptr<TranslateBubbleModel> model_; | 184 scoped_ptr<TranslateBubbleModel> model_; |
173 | 185 |
174 // Whether the window is an incognito window. | 186 // Whether the window is an incognito window. |
175 bool is_in_incognito_window_; | 187 bool is_in_incognito_window_; |
176 | 188 |
177 // The browser to open the help URL into a new tab. | 189 // The browser to open the help URL into a new tab. |
178 Browser* browser_; | 190 Browser* browser_; |
179 | 191 |
180 // Whether the translation is acutually executed. | 192 // Whether the translation is acutually executed. |
181 bool translate_executed_; | 193 bool translate_executed_; |
182 | 194 |
183 DISALLOW_COPY_AND_ASSIGN(TranslateBubbleView); | 195 DISALLOW_COPY_AND_ASSIGN(TranslateBubbleView); |
184 }; | 196 }; |
185 | 197 |
186 #endif // CHROME_BROWSER_UI_VIEWS_TRANSLATE_TRANSLATE_BUBBLE_VIEW_H_ | 198 #endif // CHROME_BROWSER_UI_VIEWS_TRANSLATE_TRANSLATE_BUBBLE_VIEW_H_ |
OLD | NEW |