blob: 06406525ef8865d3b08f59766a2b44f2699d882a [file] [log] [blame]
Jack Hsiehea76b94b52022-12-13 16:37:051// Copyright 2022 The Chromium Authors
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_HID_HID_SYSTEM_TRAY_ICON_H_
6#define CHROME_BROWSER_HID_HID_SYSTEM_TRAY_ICON_H_
7
Antonio Gomes00d63aa2023-02-15 22:21:108#include <string>
Jack Hsiehe057e1552023-05-19 17:14:069#include "chrome/browser/device_notifications/device_system_tray_icon.h"
Jack Hsiehea76b94b52022-12-13 16:37:0510#include "ui/gfx/image/image_skia.h"
Lei Zhangc6d0edb2023-01-31 22:31:4911
Jack Hsiehe057e1552023-05-19 17:14:0612class HidSystemTrayIcon : public DeviceSystemTrayIcon {
Jack Hsiehea76b94b52022-12-13 16:37:0513 public:
Juan Garza Sanchez852a31092023-06-20 20:45:1814 explicit HidSystemTrayIcon(
15 std::unique_ptr<DeviceSystemTrayIconRenderer> icon_renderer);
Jack Hsiehea76b94b52022-12-13 16:37:0516 HidSystemTrayIcon(const HidSystemTrayIcon&) = delete;
17 HidSystemTrayIcon& operator=(const HidSystemTrayIcon&) = delete;
Jack Hsiehe057e1552023-05-19 17:14:0618 ~HidSystemTrayIcon() override;
Jack Hsiehea76b94b52022-12-13 16:37:0519
Jack Hsieh13a0a3d82024-06-04 22:09:2220 const gfx::VectorIcon& GetIcon() override;
Juan Garza Sanchez852a31092023-06-20 20:45:1821 std::u16string GetTitleLabel(size_t num_origins,
22 size_t num_connections) override;
23 std::u16string GetContentSettingsLabel() override;
Jack Hsiehea76b94b52022-12-13 16:37:0524
Juan Garza Sanchez852a31092023-06-20 20:45:1825 private:
26 DeviceConnectionTracker* GetConnectionTracker(
27 base::WeakPtr<Profile> profile) override;
Jack Hsiehea76b94b52022-12-13 16:37:0528};