| 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 |