1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/vr/elements/indicator_spec.h"
#include "build/build_config.h"
#include "chrome/app/vector_icons/vector_icons.h"
#include "chrome/grit/generated_resources.h"
#include "components/vector_icons/vector_icons.h"
namespace vr {
IndicatorSpec::IndicatorSpec(UiElementName name,
UiElementName webvr_name,
const gfx::VectorIcon& icon,
int resource_string,
int background_resource_string,
int potential_resource_string,
CapturingStateModelMemberPtr signal)
: name(name),
webvr_name(webvr_name),
icon(icon),
resource_string(resource_string),
background_resource_string(background_resource_string),
potential_resource_string(potential_resource_string),
signal(signal) {}
IndicatorSpec::IndicatorSpec(const IndicatorSpec& other)
: name(other.name),
webvr_name(other.webvr_name),
icon(*other.icon),
resource_string(other.resource_string),
background_resource_string(other.background_resource_string),
potential_resource_string(other.potential_resource_string),
signal(other.signal) {}
IndicatorSpec::~IndicatorSpec() = default;
// clang-format off
std::vector<IndicatorSpec> GetIndicatorSpecs() {
std::vector<IndicatorSpec> specs = {
{kLocationAccessIndicator, kWebVrLocationAccessIndicator,
kMyLocationIcon,
IDS_VR_SHELL_SITE_IS_TRACKING_LOCATION,
// Background tabs cannot track high accuracy location.
0,
IDS_VR_SHELL_SITE_CAN_TRACK_LOCATION,
&CapturingStateModel::location_access_enabled},
{kAudioCaptureIndicator, kWebVrAudioCaptureIndicator,
vector_icons::kMicIcon,
IDS_VR_SHELL_SITE_IS_USING_MICROPHONE,
IDS_VR_SHELL_BG_IS_USING_MICROPHONE,
IDS_VR_SHELL_SITE_CAN_USE_MICROPHONE,
&CapturingStateModel::audio_capture_enabled},
{kVideoCaptureIndicator, kWebVrVideoCaptureIndicator,
vector_icons::kVideocamIcon,
IDS_VR_SHELL_SITE_IS_USING_CAMERA,
IDS_VR_SHELL_BG_IS_USING_CAMERA,
IDS_VR_SHELL_SITE_CAN_USE_CAMERA,
&CapturingStateModel::video_capture_enabled},
{kBluetoothConnectedIndicator, kWebVrBluetoothConnectedIndicator,
vector_icons::kBluetoothConnectedIcon,
IDS_VR_SHELL_SITE_IS_USING_BLUETOOTH,
#if BUILDFLAG(IS_ANDROID)
IDS_VR_SHELL_BG_IS_USING_BLUETOOTH,
#else
0,
#endif
IDS_VR_SHELL_SITE_CAN_USE_BLUETOOTH,
&CapturingStateModel::bluetooth_connected},
{kScreenCaptureIndicator, kWebVrScreenCaptureIndicator,
// TODO(crbug.com/413285138): Update to kScreenShareIcon
vector_icons::kScreenShareOldIcon,
IDS_VR_SHELL_SITE_IS_SHARING_SCREEN,
IDS_VR_SHELL_BG_IS_SHARING_SCREEN,
IDS_VR_SHELL_SITE_CAN_SHARE_SCREEN,
&CapturingStateModel::screen_capture_enabled},
#if !BUILDFLAG(IS_ANDROID)
{kUsbConnectedIndicator, kWebXrUsbConnectedIndicator,
vector_icons::kUsbIcon,
IDS_VR_SHELL_SITE_IS_USING_USB,
0,
0,
&CapturingStateModel::usb_connected},
{kMidiConnectedIndicator, kWebXrMidiConnectedIndicator,
vector_icons::kMidiIcon,
IDS_VR_SHELL_SITE_IS_USING_MIDI,
0,
IDS_VR_SHELL_SITE_CAN_USE_MIDI,
&CapturingStateModel::midi_connected},
#endif
};
return specs;
}
// clang-format on
} // namespace vr
|