OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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_CHOOSER_CONTROLLER_CHOOSER_CONTROLLER_H_ | 5 #ifndef CHROME_BROWSER_CHOOSER_CONTROLLER_CHOOSER_CONTROLLER_H_ |
6 #define CHROME_BROWSER_CHOOSER_CONTROLLER_CHOOSER_CONTROLLER_H_ | 6 #define CHROME_BROWSER_CHOOSER_CONTROLLER_CHOOSER_CONTROLLER_H_ |
7 | 7 |
| 8 #include <vector> |
| 9 |
8 #include "base/macros.h" | 10 #include "base/macros.h" |
9 #include "base/strings/string16.h" | 11 #include "base/strings/string16.h" |
10 | 12 |
11 namespace content { | 13 namespace content { |
12 class RenderFrameHost; | 14 class RenderFrameHost; |
13 } | 15 } |
14 | 16 |
15 // Subclass ChooserController to implement a chooser, which has some | 17 // Subclass ChooserController to implement a chooser, which has some |
16 // introductory text and a list of options that users can pick one of. | 18 // introductory text and a list of options that users can pick one of. |
17 // Your subclass must define the set of options users can pick from; | 19 // Your subclass must define the set of options users can pick from; |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
59 virtual ~View() {} | 61 virtual ~View() {} |
60 }; | 62 }; |
61 | 63 |
62 // Returns the text to be displayed in the chooser title. | 64 // Returns the text to be displayed in the chooser title. |
63 base::string16 GetTitle() const; | 65 base::string16 GetTitle() const; |
64 | 66 |
65 // Returns if the chooser needs to show an icon before the text. | 67 // Returns if the chooser needs to show an icon before the text. |
66 // For WebBluetooth, it is a signal strength icon. | 68 // For WebBluetooth, it is a signal strength icon. |
67 virtual bool ShouldShowIconBeforeText() const; | 69 virtual bool ShouldShowIconBeforeText() const; |
68 | 70 |
| 71 // Returns if the chooser allows multiple items to be selected. |
| 72 virtual bool AllowMultipleSelection() const; |
| 73 |
69 // Returns the text to be displayed in the chooser when there are no options. | 74 // Returns the text to be displayed in the chooser when there are no options. |
70 virtual base::string16 GetNoOptionsText() const = 0; | 75 virtual base::string16 GetNoOptionsText() const = 0; |
71 | 76 |
72 // Returns the label for OK button. | 77 // Returns the label for OK button. |
73 virtual base::string16 GetOkButtonLabel() const = 0; | 78 virtual base::string16 GetOkButtonLabel() const = 0; |
74 | 79 |
75 // The number of options users can pick from. For example, it can be | 80 // The number of options users can pick from. For example, it can be |
76 // the number of USB/Bluetooth device names which are listed in the | 81 // the number of USB/Bluetooth device names which are listed in the |
77 // chooser so that users can grant permission. | 82 // chooser so that users can grant permission. |
78 virtual size_t NumOptions() const = 0; | 83 virtual size_t NumOptions() const = 0; |
(...skipping 15 matching lines...) Expand all Loading... |
94 virtual bool IsPaired(size_t index) const; | 99 virtual bool IsPaired(size_t index) const; |
95 | 100 |
96 // Refresh the list of options. | 101 // Refresh the list of options. |
97 virtual void RefreshOptions() = 0; | 102 virtual void RefreshOptions() = 0; |
98 | 103 |
99 // Returns the status text to be shown in the chooser. | 104 // Returns the status text to be shown in the chooser. |
100 virtual base::string16 GetStatus() const = 0; | 105 virtual base::string16 GetStatus() const = 0; |
101 | 106 |
102 // These three functions are called just before this object is destroyed: | 107 // These three functions are called just before this object is destroyed: |
103 | 108 |
104 // Called when the user selects the |index|th element from the dialog. | 109 // Called when the user selects elements from the dialog. |indices| contains |
105 virtual void Select(size_t index) = 0; | 110 // the indices of the selected elements. |
| 111 virtual void Select(const std::vector<size_t>& indices) = 0; |
106 | 112 |
107 // Called when the user presses the 'Cancel' button in the dialog. | 113 // Called when the user presses the 'Cancel' button in the dialog. |
108 virtual void Cancel() = 0; | 114 virtual void Cancel() = 0; |
109 | 115 |
110 // Called when the user clicks outside the dialog or the dialog otherwise | 116 // Called when the user clicks outside the dialog or the dialog otherwise |
111 // closes without the user taking an explicit action. | 117 // closes without the user taking an explicit action. |
112 virtual void Close() = 0; | 118 virtual void Close() = 0; |
113 | 119 |
114 // Open help center URL. | 120 // Open help center URL. |
115 virtual void OpenHelpCenterUrl() const = 0; | 121 virtual void OpenHelpCenterUrl() const = 0; |
116 | 122 |
117 // Provide help information when the adapter is off. | 123 // Provide help information when the adapter is off. |
118 virtual void OpenAdapterOffHelpUrl() const; | 124 virtual void OpenAdapterOffHelpUrl() const; |
119 | 125 |
120 // Only one view may be registered at a time. | 126 // Only one view may be registered at a time. |
121 void set_view(View* view) { view_ = view; } | 127 void set_view(View* view) { view_ = view; } |
122 View* view() const { return view_; } | 128 View* view() const { return view_; } |
123 | 129 |
124 private: | 130 private: |
125 content::RenderFrameHost* const owning_frame_; | 131 content::RenderFrameHost* const owning_frame_; |
126 const int title_string_id_origin_; | 132 const int title_string_id_origin_; |
127 const int title_string_id_extension_; | 133 const int title_string_id_extension_; |
128 View* view_ = nullptr; | 134 View* view_ = nullptr; |
129 | 135 |
130 DISALLOW_COPY_AND_ASSIGN(ChooserController); | 136 DISALLOW_COPY_AND_ASSIGN(ChooserController); |
131 }; | 137 }; |
132 | 138 |
133 #endif // CHROME_BROWSER_CHOOSER_CONTROLLER_CHOOSER_CONTROLLER_H_ | 139 #endif // CHROME_BROWSER_CHOOSER_CONTROLLER_CHOOSER_CONTROLLER_H_ |
OLD | NEW |