blob: 8690afb8f855d296624d4ac30bc2038f9a1655b6 [file] [log] [blame]
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_HID_HID_SYSTEM_TRAY_ICON_H_
#define CHROME_BROWSER_HID_HID_SYSTEM_TRAY_ICON_H_
#include "chrome/browser/profiles/profile.h"
#include "ui/gfx/image/image_skia.h"
class HidSystemTrayIcon {
public:
HidSystemTrayIcon() = default;
HidSystemTrayIcon(const HidSystemTrayIcon&) = delete;
HidSystemTrayIcon& operator=(const HidSystemTrayIcon&) = delete;
virtual ~HidSystemTrayIcon() = default;
// Add a profile to the system tray icon.
virtual void AddProfile(Profile* profile) = 0;
// Remove a profile from the system tray icon.
virtual void RemoveProfile(Profile* profile) = 0;
// Notify the system tray icon the connection count of the |profile| has
// changed.
virtual void NotifyConnectionCountUpdated(Profile* profile) = 0;
protected:
// Get the image for the status tray icon.
static gfx::ImageSkia GetStatusTrayIcon();
// Get the label of the button for managing HID device permission on the HID
// system tray icon.
static std::u16string GetManageHidDeviceButtonLabel(Profile* profile);
// Get the label of the tooltip of the HID system tray icon.
static std::u16string GetTooltipLabel(size_t num_devices);
};
#endif // CHROME_BROWSER_HID_HID_SYSTEM_TRAY_ICON_H_