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_BLUETOOTH_BLUETOOTH_CHOOSER_BUBBLE_DELEGATE_H_ | 5 #ifndef CHROME_BROWSER_UI_BLUETOOTH_BLUETOOTH_CHOOSER_BUBBLE_DELEGATE_H_ |
6 #define CHROME_BROWSER_UI_BLUETOOTH_BLUETOOTH_CHOOSER_BUBBLE_DELEGATE_H_ | 6 #define CHROME_BROWSER_UI_BLUETOOTH_BLUETOOTH_CHOOSER_BUBBLE_DELEGATE_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 | 9 |
10 #include "base/macros.h" | 10 #include "base/macros.h" |
11 #include "chrome/browser/ui/website_settings/chooser_bubble_delegate.h" | 11 #include "chrome/browser/ui/website_settings/chooser_bubble_delegate.h" |
12 #include "components/bubble/bubble_reference.h" | 12 #include "components/bubble/bubble_reference.h" |
13 | 13 |
14 class Browser; | 14 class Browser; |
15 class BluetoothChooserDesktop; | 15 class BluetoothChooserDesktop; |
16 | 16 |
17 // BluetoothChooserBubbleDelegate is a chooser that presents a list of | 17 // BluetoothChooserBubbleDelegate is a chooser that presents a list of |
18 // Bluetooth device names, which come from |bluetooth_chooser_desktop_|. | 18 // Bluetooth device names, which come from |bluetooth_chooser_desktop_|. |
19 // It can be used by WebBluetooth API to get the user's permission to | 19 // It can be used by WebBluetooth API to get the user's permission to |
20 // access a Bluetooth device. | 20 // access a Bluetooth device. |
21 class BluetoothChooserBubbleDelegate : public ChooserBubbleDelegate { | 21 class BluetoothChooserBubbleDelegate : public ChooserBubbleDelegate { |
22 public: | 22 public: |
23 explicit BluetoothChooserBubbleDelegate(Browser* browser); | 23 explicit BluetoothChooserBubbleDelegate(Browser* browser); |
24 ~BluetoothChooserBubbleDelegate() override; | 24 ~BluetoothChooserBubbleDelegate() override; |
25 | 25 |
26 // ChooserBubbleDelegate: | 26 // ChooserBubbleDelegate: |
27 const std::vector<base::string16>& GetOptions() const override; | 27 size_t NumOptions() const override; |
28 void Select(int index) override; | 28 const base::string16& GetOption(size_t index) const override; |
| 29 void Select(size_t index) override; |
29 void Cancel() override; | 30 void Cancel() override; |
30 void Close() override; | 31 void Close() override; |
31 | 32 |
32 // Shows a new device in the chooser. | 33 // Shows a new device in the chooser. |
33 void AddDevice(const std::string& device_id, | 34 void AddDevice(const std::string& device_id, |
34 const base::string16& device_name); | 35 const base::string16& device_name); |
35 | 36 |
36 // Tells the chooser that a device is no longer available. | 37 // Tells the chooser that a device is no longer available. |
37 void RemoveDevice(const std::string& device_id); | 38 void RemoveDevice(const std::string& device_id); |
38 | 39 |
39 void set_bluetooth_chooser(BluetoothChooserDesktop* bluetooth_chooser) { | 40 void set_bluetooth_chooser(BluetoothChooserDesktop* bluetooth_chooser) { |
40 bluetooth_chooser_ = bluetooth_chooser; | 41 bluetooth_chooser_ = bluetooth_chooser; |
41 } | 42 } |
42 | 43 |
43 void set_bubble_controller(BubbleReference bubble_controller) { | 44 void set_bubble_controller(BubbleReference bubble_controller) { |
44 bubble_controller_ = bubble_controller; | 45 bubble_controller_ = bubble_controller; |
45 } | 46 } |
46 | 47 |
47 private: | 48 private: |
48 // TODO(juncai): use std::vector<std::pair<base::string16, std::string>> | 49 // Each pair is a (device name, device id). |
49 // here since the lengths can't get out of sync and each pair of items | 50 std::vector<std::pair<base::string16, std::string>> device_names_and_ids_; |
50 // is tightly associated. | |
51 // Also need to change ChooserBubbleDelegate::GetOptions to be: | |
52 // size_t NumOptions() | |
53 // const base::string16& GetOption(size_t index) | |
54 // | |
55 // |device_names_| and |device_ids_| have the same length. | |
56 // device_names_[i] is the name for the device with id device_ids_[i]. | |
57 std::vector<base::string16> device_names_; | |
58 std::vector<std::string> device_ids_; | |
59 BluetoothChooserDesktop* bluetooth_chooser_; | 51 BluetoothChooserDesktop* bluetooth_chooser_; |
60 BubbleReference bubble_controller_; | 52 BubbleReference bubble_controller_; |
61 | 53 |
62 DISALLOW_COPY_AND_ASSIGN(BluetoothChooserBubbleDelegate); | 54 DISALLOW_COPY_AND_ASSIGN(BluetoothChooserBubbleDelegate); |
63 }; | 55 }; |
64 | 56 |
65 #endif // CHROME_BROWSER_UI_BLUETOOTH_BLUETOOTH_CHOOSER_BUBBLE_DELEGATE_H_ | 57 #endif // CHROME_BROWSER_UI_BLUETOOTH_BLUETOOTH_CHOOSER_BUBBLE_DELEGATE_H_ |
OLD | NEW |