123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- // Copyright 2019 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef ASH_PUBLIC_CPP_SYSTEM_TRAY_H_
- #define ASH_PUBLIC_CPP_SYSTEM_TRAY_H_
- #include <string>
- #include "ash/public/cpp/ash_public_export.h"
- namespace ash {
- class SystemTrayClient;
- enum class DeferredUpdateState;
- enum class NotificationStyle;
- enum class UpdateSeverity;
- enum class UpdateType;
- struct DeviceEnterpriseInfo;
- struct LocaleInfo;
- struct RelaunchNotificationState;
- namespace phonehub {
- class PhoneHubManager;
- }
- // Public interface to control the system tray bubble in ash.
- class ASH_PUBLIC_EXPORT SystemTray {
- public:
- static SystemTray* Get();
- // Sets the client interface in the browser.
- virtual void SetClient(SystemTrayClient* client) = 0;
- // Sets the enabled state of the tray on the primary display. If not |enabled|
- // any open menu will be closed.
- virtual void SetPrimaryTrayEnabled(bool enabled) = 0;
- // Sets the visibility of the tray on the primary display.
- virtual void SetPrimaryTrayVisible(bool visible) = 0;
- // Sets the clock to use 24 hour time formatting if |use_24_hour| is true.
- // Otherwise sets 12 hour time formatting.
- virtual void SetUse24HourClock(bool use_24_hour) = 0;
- // Creates or updates an item in the system tray menu with information about
- // enterprise management.
- virtual void SetDeviceEnterpriseInfo(
- const DeviceEnterpriseInfo& device_enterprise_info) = 0;
- // Creates or updates an item in the system tray menu with information about
- // enterprise management.
- // |account_domain_manager| may be either a domain name (foo.com) or an email
- // address (user@foo.com). These strings will not be sanitized and so must
- // come from a trusted location.
- virtual void SetEnterpriseAccountDomainInfo(
- const std::string& account_domain_manager) = 0;
- // Shows or hides an item in the system tray indicating that performance
- // tracing is running.
- virtual void SetPerformanceTracingIconVisible(bool visible) = 0;
- // Sets the list of supported UI locales. |current_locale_iso_code| refers to
- // the locale currently used by the UI.
- virtual void SetLocaleList(std::vector<LocaleInfo> locale_list,
- const std::string& current_locale_iso_code) = 0;
- // Shows an icon in the system tray or a notification on the unified system
- // menu indicating that a software update is available. Once shown, the icon
- // or the notification persists until reboot.
- // |severity| specifies how critical is the update.
- // |factory_reset_required| is true if during the update the device will
- // be wiped.
- // |rollback| specifies whether the update is actually an admin-initiated
- // rollback. This implies that a the device will be wiped.
- // |update_type| specifies the component which has been updated.
- //
- // These values are used to control the icon, color and the text of the
- // tooltip or the notification.
- virtual void ShowUpdateIcon(UpdateSeverity severity,
- bool factory_reset_required,
- bool rollback,
- UpdateType update_type) = 0;
- // Changes the update notification in the unified system menu,
- // according to different policies, when there is an update available
- // (it may be recommended or required, from Relaunch Notification policy,
- // for example).
- // Providing the `RelaunchNotificationState` allows the update countdown logic
- // to remain in //chrome/browser, where it is shared with other platforms.
- virtual void SetRelaunchNotificationState(
- const RelaunchNotificationState& relaunch_notification_state) = 0;
- // Resets update state to hide the update icon and notification. It is called
- // when a new update starts before the current update is applied.
- virtual void ResetUpdateState() = 0;
- // Set deferred update state to be either showing a dialog or showing an icon
- // in the system tray to indicate that a update is downloaded but deferred.
- virtual void SetUpdateDeferred(DeferredUpdateState state) = 0;
- // If |visible| is true, shows an icon in the system tray which indicates that
- // a software update is available but user's agreement is required as current
- // connection is cellular. If |visible| is false, hides the icon because the
- // user's one time permission on update over cellular connection has been
- // granted.
- virtual void SetUpdateOverCellularAvailableIconVisible(bool visible) = 0;
- // Shows the volume slider bubble shown at the right bottom of screen.
- virtual void ShowVolumeSliderBubble() = 0;
- // Shows the network detailed view bubble at the right bottom of the primary
- // display.
- virtual void ShowNetworkDetailedViewBubble() = 0;
- // Provides Phone Hub functionality to the system tray.
- virtual void SetPhoneHubManager(
- phonehub::PhoneHubManager* phone_hub_manager) = 0;
- protected:
- SystemTray();
- virtual ~SystemTray();
- };
- } // namespace ash
- #endif // ASH_PUBLIC_CPP_SYSTEM_TRAY_H_
|