Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(323)

Side by Side Diff: chrome/browser/ui/views/translate/translate_bubble_view.h

Issue 1923143003: Implement the 2016Q2 Translate UI designe spec out in (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix namespace in .h and other minor review comments Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/gtest_prod_util.h" 11 #include "base/gtest_prod_util.h"
12 #include "base/macros.h" 12 #include "base/macros.h"
13 #include "base/strings/utf_string_conversions.h"
13 #include "chrome/browser/translate/chrome_translate_client.h" 14 #include "chrome/browser/translate/chrome_translate_client.h"
14 #include "chrome/browser/ui/translate/language_combobox_model.h" 15 #include "chrome/browser/ui/translate/language_combobox_model.h"
15 #include "chrome/browser/ui/translate/translate_bubble_model.h" 16 #include "chrome/browser/ui/translate/translate_bubble_model.h"
16 #include "chrome/browser/ui/translate/translate_bubble_test_utils.h" 17 #include "chrome/browser/ui/translate/translate_bubble_test_utils.h"
17 #include "chrome/browser/ui/views/location_bar/location_bar_bubble_delegate_view .h" 18 #include "chrome/browser/ui/views/location_bar/location_bar_bubble_delegate_view .h"
18 #include "components/translate/core/common/translate_errors.h" 19 #include "components/translate/core/common/translate_errors.h"
19 #include "content/public/browser/web_contents_observer.h" 20 #include "content/public/browser/web_contents_observer.h"
20 #include "ui/views/controls/button/button.h" 21 #include "ui/views/controls/button/button.h"
21 #include "ui/views/controls/combobox/combobox_listener.h" 22 #include "ui/views/controls/combobox/combobox_listener.h"
22 #include "ui/views/controls/link_listener.h" 23 #include "ui/views/controls/link_listener.h"
24 #include "ui/views/controls/styled_label_listener.h"
23 25
24 class Browser; 26 class Browser;
25 class PrefService; 27 class PrefService;
26 28
29 namespace gfx {
30 class Range;
31 }
32
27 namespace views { 33 namespace views {
28 class Checkbox; 34 class Checkbox;
29 class GridLayout; 35 class GridLayout;
30 class LabelButton; 36 class LabelButton;
31 class Link; 37 class Link;
32 class View; 38 class View;
39 class StyledLabel;
33 } 40 }
34 41
35 namespace ui { 42 namespace ui {
36 class SimpleComboboxModel; 43 class SimpleComboboxModel;
37 } 44 }
38 45
39 class TranslateBubbleView : public LocationBarBubbleDelegateView, 46 class TranslateBubbleView : public LocationBarBubbleDelegateView,
40 public views::ButtonListener, 47 public views::ButtonListener,
41 public views::ComboboxListener, 48 public views::ComboboxListener,
42 public views::LinkListener, 49 public views::LinkListener,
50 public views::StyledLabelListener,
43 public content::WebContentsObserver { 51 public content::WebContentsObserver {
44 public: 52 public:
45 // Commands shown in the action-style combobox. The value corresponds to the 53 // Commands shown in the action-style combobox. The value corresponds to the
46 // position in the combobox menu. Gaps will become separators. 54 // position in the combobox menu. Gaps will become separators.
47 enum class DenialComboboxIndex { 55 enum class DenialComboboxIndex {
48 DONT_TRANSLATE = 0, 56 DONT_TRANSLATE = 0,
49 NEVER_TRANSLATE_LANGUAGE = 1, 57 NEVER_TRANSLATE_LANGUAGE = 1,
50 NEVER_TRANSLATE_SITE = 3, 58 NEVER_TRANSLATE_SITE = 3,
51 MENU_SIZE = 4, 59 MENU_SIZE = 4,
52 }; 60 };
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 97
90 // views::LinkListener method. 98 // views::LinkListener method.
91 void LinkClicked(views::Link* source, int event_flags) override; 99 void LinkClicked(views::Link* source, int event_flags) override;
92 100
93 // content::WebContentsObserver method. 101 // content::WebContentsObserver method.
94 void WebContentsDestroyed() override; 102 void WebContentsDestroyed() override;
95 103
96 // Returns the current view state. 104 // Returns the current view state.
97 TranslateBubbleModel::ViewState GetViewState() const; 105 TranslateBubbleModel::ViewState GetViewState() const;
98 106
107 bool ShouldShowCloseButton() const override;
msw 2016/04/29 20:00:02 Order with the other WidgetDelegate method, Window
ftang 2016/04/29 22:37:02 Done.
108
109 // views::StyledLabelListener method.
110 void StyledLabelLinkClicked(views::StyledLabel* label,
msw 2016/04/29 20:00:02 Order just after the LinkListener override and bef
ftang 2016/04/29 22:37:02 Done.
111 const gfx::Range& range,
112 int event_flags) override;
113
114 // Overridden from views::WidgetObserver:
115 void OnWidgetClosing(views::Widget* widget) override;
msw 2016/04/29 20:00:02 Order before non-override function GetViewState.
ftang 2016/04/29 22:37:02 Done.
116
99 private: 117 private:
100 enum LinkID { 118 enum LinkID {
101 LINK_ID_ADVANCED, 119 LINK_ID_ADVANCED,
102 LINK_ID_LANGUAGE_SETTINGS, 120 LINK_ID_LANGUAGE_SETTINGS,
103 }; 121 };
104 122
105 enum ButtonID { 123 enum ButtonID {
106 BUTTON_ID_TRANSLATE, 124 BUTTON_ID_TRANSLATE,
107 BUTTON_ID_DONE, 125 BUTTON_ID_DONE,
108 BUTTON_ID_CANCEL, 126 BUTTON_ID_CANCEL,
109 BUTTON_ID_SHOW_ORIGINAL, 127 BUTTON_ID_SHOW_ORIGINAL,
110 BUTTON_ID_TRY_AGAIN, 128 BUTTON_ID_TRY_AGAIN,
111 BUTTON_ID_ALWAYS_TRANSLATE, 129 BUTTON_ID_ALWAYS_TRANSLATE,
112 }; 130 };
113 131
114 enum ComboboxID { 132 enum ComboboxID {
115 COMBOBOX_ID_DENIAL, 133 COMBOBOX_ID_DENIAL,
116 COMBOBOX_ID_SOURCE_LANGUAGE, 134 COMBOBOX_ID_SOURCE_LANGUAGE,
117 COMBOBOX_ID_TARGET_LANGUAGE, 135 COMBOBOX_ID_TARGET_LANGUAGE,
118 }; 136 };
119 137
120 friend class TranslateBubbleViewTest; 138 friend class TranslateBubbleViewTest;
121 friend void ::translate::test_utils::PressTranslate(::Browser*); 139 friend void ::translate::test_utils::PressTranslate(::Browser*);
122 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest, TranslateButton); 140 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest, TranslateButton);
141 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest, TranslateButtonIn2016Q2UI);
142 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest, CloseButtonIn2016Q2UI);
123 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest, AdvancedLink); 143 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest, AdvancedLink);
144 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest, AdvancedLinkIn2016Q2UI);
124 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest, ShowOriginalButton); 145 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest, ShowOriginalButton);
125 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest, TryAgainButton); 146 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest, TryAgainButton);
126 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest, 147 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest,
127 AlwaysTranslateCheckboxAndCancelButton); 148 AlwaysTranslateCheckboxAndCancelButton);
128 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest, 149 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest,
129 AlwaysTranslateCheckboxAndDoneButton); 150 AlwaysTranslateCheckboxAndDoneButton);
130 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest, DoneButton); 151 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest, DoneButton);
131 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest, 152 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest,
132 DoneButtonWithoutTranslating); 153 DoneButtonWithoutTranslating);
133 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest, 154 FRIEND_TEST_ALL_PREFIXES(TranslateBubbleViewTest,
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 197
177 // Switches the view type. 198 // Switches the view type.
178 void SwitchView(TranslateBubbleModel::ViewState view_state); 199 void SwitchView(TranslateBubbleModel::ViewState view_state);
179 200
180 // Switches to the error view. 201 // Switches to the error view.
181 void SwitchToErrorView(translate::TranslateErrors::Type error_type); 202 void SwitchToErrorView(translate::TranslateErrors::Type error_type);
182 203
183 // Updates the advanced view. 204 // Updates the advanced view.
184 void UpdateAdvancedView(); 205 void UpdateAdvancedView();
185 206
207 void ReportUiAction(int action);
208
186 static TranslateBubbleView* translate_bubble_view_; 209 static TranslateBubbleView* translate_bubble_view_;
187 210
188 views::View* before_translate_view_; 211 views::View* before_translate_view_;
189 views::View* translating_view_; 212 views::View* translating_view_;
190 views::View* after_translate_view_; 213 views::View* after_translate_view_;
191 views::View* error_view_; 214 views::View* error_view_;
192 views::View* advanced_view_; 215 views::View* advanced_view_;
193 216
194 std::unique_ptr<ui::SimpleComboboxModel> denial_combobox_model_; 217 std::unique_ptr<ui::SimpleComboboxModel> denial_combobox_model_;
195 std::unique_ptr<LanguageComboboxModel> source_language_combobox_model_; 218 std::unique_ptr<LanguageComboboxModel> source_language_combobox_model_;
196 std::unique_ptr<LanguageComboboxModel> target_language_combobox_model_; 219 std::unique_ptr<LanguageComboboxModel> target_language_combobox_model_;
197 220
198 views::Combobox* denial_combobox_; 221 views::Combobox* denial_combobox_;
199 views::Combobox* source_language_combobox_; 222 views::Combobox* source_language_combobox_;
200 views::Combobox* target_language_combobox_; 223 views::Combobox* target_language_combobox_;
201 224
202 views::Checkbox* always_translate_checkbox_; 225 views::Checkbox* always_translate_checkbox_;
203 226
204 views::LabelButton* advanced_cancel_button_; 227 views::LabelButton* advanced_cancel_button_;
205 views::LabelButton* advanced_done_button_; 228 views::LabelButton* advanced_done_button_;
206 229
207 std::unique_ptr<TranslateBubbleModel> model_; 230 std::unique_ptr<TranslateBubbleModel> model_;
208 231
209 translate::TranslateErrors::Type error_type_; 232 translate::TranslateErrors::Type error_type_;
210 233
211 // Whether the window is an incognito window. 234 // Whether the window is an incognito window.
212 const bool is_in_incognito_window_; 235 const bool is_in_incognito_window_;
213 236
214 // Whether the translation is acutually executed. 237 // Whether one of denial buttons is clicked.
msw 2016/04/29 20:00:02 nit: 'the', 'was': "Whether one of the denial was
ftang 2016/04/29 22:37:02 this is merge mistake. removed
215 bool translate_executed_; 238 bool denial_button_clicked_;
239
240 // Use 2016 Q2 Translate UI
msw 2016/04/29 20:00:02 nit: trailing period; "Use the new (2016 Q2) trans
ftang 2016/04/29 22:37:02 Done.
241 bool use_2016_q2_ui_;
216 242
217 DISALLOW_COPY_AND_ASSIGN(TranslateBubbleView); 243 DISALLOW_COPY_AND_ASSIGN(TranslateBubbleView);
218 }; 244 };
219 245
220 #endif // CHROME_BROWSER_UI_VIEWS_TRANSLATE_TRANSLATE_BUBBLE_VIEW_H_ 246 #endif // CHROME_BROWSER_UI_VIEWS_TRANSLATE_TRANSLATE_BUBBLE_VIEW_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698