OLD | NEW |
---|---|
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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_TOOLBAR_MEDIA_ROUTER_CONTEXTUAL_MENU_H_ | 5 #ifndef CHROME_BROWSER_UI_TOOLBAR_MEDIA_ROUTER_CONTEXTUAL_MENU_H_ |
6 #define CHROME_BROWSER_UI_TOOLBAR_MEDIA_ROUTER_CONTEXTUAL_MENU_H_ | 6 #define CHROME_BROWSER_UI_TOOLBAR_MEDIA_ROUTER_CONTEXTUAL_MENU_H_ |
7 | 7 |
8 #include "base/macros.h" | 8 #include "base/macros.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "ui/base/models/simple_menu_model.h" | 10 #include "ui/base/models/simple_menu_model.h" |
11 | 11 |
12 class Browser; | 12 class Browser; |
13 | 13 |
14 // The class for the contextual menu for the Media Router action. | 14 // The class for the contextual menu for the Media Router action. |
15 class MediaRouterContextualMenu : public ui::SimpleMenuModel::Delegate { | 15 class MediaRouterContextualMenu : public ui::SimpleMenuModel::Delegate { |
16 public: | 16 public: |
17 explicit MediaRouterContextualMenu(Browser* browser); | 17 static std::unique_ptr<MediaRouterContextualMenu> CreateForToolbar( |
msw
2017/03/02 03:12:58
nit: add function comments here and below
takumif
2017/03/03 00:10:48
Done.
| |
18 Browser* browser); | |
18 | 19 |
19 // Constructor for injecting values in tests. | 20 static std::unique_ptr<MediaRouterContextualMenu> CreateForOverflowMenu( |
20 MediaRouterContextualMenu(Browser* browser, bool shown_by_policy); | 21 Browser* browser); |
22 | |
23 // Constructor called by the static Create* methods above and tests. | |
24 MediaRouterContextualMenu(Browser* browser, | |
25 bool is_in_toolbar, | |
msw
2017/03/02 03:12:58
optional nit: rename this and the new member |is_a
takumif
2017/03/03 00:10:48
Done.
| |
26 bool shown_by_policy); | |
21 ~MediaRouterContextualMenu() override; | 27 ~MediaRouterContextualMenu() override; |
22 | 28 |
23 ui::MenuModel* menu_model() { return &menu_model_; } | 29 ui::SimpleMenuModel* menu_model() { return &menu_model_; } |
24 | 30 |
25 private: | 31 private: |
26 FRIEND_TEST_ALL_PREFIXES(MediaRouterContextualMenuUnitTest, | 32 FRIEND_TEST_ALL_PREFIXES(MediaRouterContextualMenuUnitTest, |
27 ToggleCloudServicesItem); | 33 ToggleCloudServicesItem); |
28 FRIEND_TEST_ALL_PREFIXES(MediaRouterContextualMenuUnitTest, | 34 FRIEND_TEST_ALL_PREFIXES(MediaRouterContextualMenuUnitTest, |
29 ToggleAlwaysShowIconItem); | 35 ToggleAlwaysShowIconItem); |
30 FRIEND_TEST_ALL_PREFIXES(MediaRouterContextualMenuUnitTest, | 36 FRIEND_TEST_ALL_PREFIXES(MediaRouterContextualMenuUnitTest, |
31 ActionShownByPolicy); | 37 ActionShownByPolicy); |
32 | 38 |
33 // Gets or sets the "Always show icon" option. | 39 // Gets or sets the "Always show icon" option. |
34 bool GetAlwaysShowActionPref() const; | 40 bool GetAlwaysShowActionPref() const; |
35 void SetAlwaysShowActionPref(bool always_show); | 41 void SetAlwaysShowActionPref(bool always_show); |
36 | 42 |
37 // ui::SimpleMenuModel::Delegate: | 43 // ui::SimpleMenuModel::Delegate: |
38 bool IsCommandIdChecked(int command_id) const override; | 44 bool IsCommandIdChecked(int command_id) const override; |
39 bool IsCommandIdEnabled(int command_id) const override; | 45 bool IsCommandIdEnabled(int command_id) const override; |
40 bool IsCommandIdVisible(int command_id) const override; | 46 bool IsCommandIdVisible(int command_id) const override; |
41 void ExecuteCommand(int command_id, int event_flags) override; | 47 void ExecuteCommand(int command_id, int event_flags) override; |
42 | 48 |
43 void ReportIssue(); | 49 void ReportIssue(); |
50 int GetChangeVisibilityTextId(); | |
msw
2017/03/02 03:12:58
nit: add function comments for this and ReportIsss
takumif
2017/03/03 00:10:48
Done.
| |
44 | 51 |
45 Browser* const browser_; | 52 Browser* const browser_; |
46 ui::SimpleMenuModel menu_model_; | 53 ui::SimpleMenuModel menu_model_; |
47 | 54 |
55 // Whether the action icon is in the toolbar, as opposed to the overflow menu. | |
56 const bool is_in_toolbar_; | |
57 | |
48 DISALLOW_COPY_AND_ASSIGN(MediaRouterContextualMenu); | 58 DISALLOW_COPY_AND_ASSIGN(MediaRouterContextualMenu); |
49 }; | 59 }; |
50 | 60 |
51 #endif // CHROME_BROWSER_UI_TOOLBAR_MEDIA_ROUTER_CONTEXTUAL_MENU_H_ | 61 #endif // CHROME_BROWSER_UI_TOOLBAR_MEDIA_ROUTER_CONTEXTUAL_MENU_H_ |
OLD | NEW |