diff options
Diffstat (limited to 'chromium/ash/system/tray/system_tray_delegate.h')
-rw-r--r-- | chromium/ash/system/tray/system_tray_delegate.h | 325 |
1 files changed, 325 insertions, 0 deletions
diff --git a/chromium/ash/system/tray/system_tray_delegate.h b/chromium/ash/system/tray/system_tray_delegate.h new file mode 100644 index 00000000000..a66726b8232 --- /dev/null +++ b/chromium/ash/system/tray/system_tray_delegate.h @@ -0,0 +1,325 @@ +// Copyright (c) 2012 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_SYSTEM_TRAY_SYSTEM_TRAY_DELEGATE_H_ +#define ASH_SYSTEM_TRAY_SYSTEM_TRAY_DELEGATE_H_ + +#include <string> +#include <vector> + +#include "ash/ash_export.h" +#include "ash/system/user/login_status.h" +#include "base/files/file_path.h" +#include "base/i18n/time_formatting.h" +#include "base/memory/scoped_ptr.h" +#include "base/strings/string16.h" +#include "ui/gfx/image/image_skia.h" +#include "ui/gfx/native_widget_types.h" + +namespace base { +class TimeDelta; +class TimeTicks; +} + +namespace ash { + +struct ASH_EXPORT NetworkIconInfo { + NetworkIconInfo(); + ~NetworkIconInfo(); + + bool highlight() const { return connected || connecting; } + + bool connecting; + bool connected; + bool tray_icon_visible; + gfx::ImageSkia image; + base::string16 name; + base::string16 description; + std::string service_path; + bool is_cellular; +}; + +struct ASH_EXPORT BluetoothDeviceInfo { + BluetoothDeviceInfo(); + ~BluetoothDeviceInfo(); + + std::string address; + base::string16 display_name; + bool connected; + bool connecting; + bool paired; +}; + +typedef std::vector<BluetoothDeviceInfo> BluetoothDeviceList; + +// Structure that packs progress information of each operation. +struct ASH_EXPORT DriveOperationStatus { + enum OperationType { + OPERATION_UPLOAD, + OPERATION_DOWNLOAD + }; + + enum OperationState { + OPERATION_NOT_STARTED, + OPERATION_IN_PROGRESS, + OPERATION_COMPLETED, + OPERATION_FAILED, + }; + + DriveOperationStatus(); + ~DriveOperationStatus(); + + // Unique ID for the operation. + int32 id; + + // File path. + base::FilePath file_path; + // Current operation completion progress [0.0 - 1.0]. + double progress; + OperationType type; + OperationState state; +}; + +typedef std::vector<DriveOperationStatus> DriveOperationStatusList; + + +struct ASH_EXPORT IMEPropertyInfo { + IMEPropertyInfo(); + ~IMEPropertyInfo(); + + bool selected; + std::string key; + base::string16 name; +}; + +typedef std::vector<IMEPropertyInfo> IMEPropertyInfoList; + +struct ASH_EXPORT IMEInfo { + IMEInfo(); + ~IMEInfo(); + + bool selected; + bool third_party; + std::string id; + base::string16 name; + base::string16 medium_name; + base::string16 short_name; +}; + +typedef std::vector<IMEInfo> IMEInfoList; + +class VolumeControlDelegate; + +class SystemTrayDelegate { + public: + virtual ~SystemTrayDelegate() {} + + // Called after SystemTray has been instantiated. + virtual void Initialize() = 0; + + // Called before SystemTray is destroyed. + virtual void Shutdown() = 0; + + // Returns true if system tray should be visible on startup. + virtual bool GetTrayVisibilityOnStartup() = 0; + + // Gets information about the active user. + virtual user::LoginStatus GetUserLoginStatus() const = 0; + virtual bool IsOobeCompleted() const = 0; + + // Shows UI for changing user's profile picture. + virtual void ChangeProfilePicture() = 0; + + // Returns the domain that manages the device, if it is enterprise-enrolled. + virtual const std::string GetEnterpriseDomain() const = 0; + + // Returns notification for enterprise enrolled devices. + virtual const base::string16 GetEnterpriseMessage() const = 0; + + // Returns the display email of user that manages current + // locally managed user. + virtual const std::string GetLocallyManagedUserManager() const = 0; + + // Returns the name of user that manages current locally managed user. + virtual const base::string16 GetLocallyManagedUserManagerName() const = 0; + + // Returns notification for locally managed users. + virtual const base::string16 GetLocallyManagedUserMessage() const = 0; + + // Returns whether a system upgrade is available. + virtual bool SystemShouldUpgrade() const = 0; + + // Returns the desired hour clock type. + virtual base::HourClockType GetHourClockType() const = 0; + + // Shows settings. + virtual void ShowSettings() = 0; + + // Shows the settings related to date, timezone etc. + virtual void ShowDateSettings() = 0; + + // Shows the settings related to network. If |service_path| is not empty, + // show the settings for that network. + virtual void ShowNetworkSettings(const std::string& service_path) = 0; + + // Shows the settings related to bluetooth. + virtual void ShowBluetoothSettings() = 0; + + // Shows settings related to multiple displays. + virtual void ShowDisplaySettings() = 0; + + // Shows the page that lets you disable performance tracing. + virtual void ShowChromeSlow() = 0; + + // Returns true if the notification for the display configuration change + // should appear. + virtual bool ShouldShowDisplayNotification() = 0; + + // Shows settings related to Google Drive. + virtual void ShowDriveSettings() = 0; + + // Shows settings related to input methods. + virtual void ShowIMESettings() = 0; + + // Shows help. + virtual void ShowHelp() = 0; + + // Show accessilibity help. + virtual void ShowAccessibilityHelp() = 0; + + // Show the settings related to accessilibity. + virtual void ShowAccessibilitySettings() = 0; + + // Shows more information about public account mode. + virtual void ShowPublicAccountInfo() = 0; + + // Shows information about enterprise enrolled devices. + virtual void ShowEnterpriseInfo() = 0; + + // Shows information about locally managed users. + virtual void ShowLocallyManagedUserInfo() = 0; + + // Shows login UI to add other users to this session. + virtual void ShowUserLogin() = 0; + + // Attempts to shut down the system. + virtual void ShutDown() = 0; + + // Attempts to sign out the user. + virtual void SignOut() = 0; + + // Attempts to lock the screen. + virtual void RequestLockScreen() = 0; + + // Attempts to restart the system for update. + virtual void RequestRestartForUpdate() = 0; + + // Returns a list of available bluetooth devices. + virtual void GetAvailableBluetoothDevices(BluetoothDeviceList* devices) = 0; + + // Requests bluetooth start discovering devices. + virtual void BluetoothStartDiscovering() = 0; + + // Requests bluetooth stop discovering devices. + virtual void BluetoothStopDiscovering() = 0; + + // Connect to a specific bluetooth device. + virtual void ConnectToBluetoothDevice(const std::string& address) = 0; + + // Returns true if bluetooth adapter is discovering bluetooth devices. + virtual bool IsBluetoothDiscovering() = 0; + + // Returns the currently selected IME. + virtual void GetCurrentIME(IMEInfo* info) = 0; + + // Returns a list of availble IMEs. + virtual void GetAvailableIMEList(IMEInfoList* list) = 0; + + // Returns a list of properties for the currently selected IME. + virtual void GetCurrentIMEProperties(IMEPropertyInfoList* list) = 0; + + // Switches to the selected input method. + virtual void SwitchIME(const std::string& ime_id) = 0; + + // Activates an IME property. + virtual void ActivateIMEProperty(const std::string& key) = 0; + + // Cancels ongoing drive operation. + virtual void CancelDriveOperation(int32 operation_id) = 0; + + // Returns information about the ongoing drive operations. + virtual void GetDriveOperationStatusList( + DriveOperationStatusList* list) = 0; + + // Shows UI to configure or activate the network specified by |network_id|. + virtual void ConfigureNetwork(const std::string& network_id) = 0; + + // Shows UI to enroll the network specified by |network_id| if appropriate, + // otherwise behaves the same as ConfigureNetwork. |parent_window| is used + // to parent any configuration UI. If NULL a default window will be used. + virtual void EnrollOrConfigureNetwork(const std::string& network_id, + gfx::NativeWindow parent_window) = 0; + + // Shows UI to manage bluetooth devices. + virtual void ManageBluetoothDevices() = 0; + + // Toggles bluetooth. + virtual void ToggleBluetooth() = 0; + + // Shows UI to unlock a mobile sim. + virtual void ShowMobileSimDialog() = 0; + + // Shows UI to setup a mobile network. + virtual void ShowMobileSetup(const std::string& network_id) = 0; + + // Shows UI to connect to an unlisted wifi network. + virtual void ShowOtherWifi() = 0; + + // Shows UI to configure vpn. + virtual void ShowOtherVPN() = 0; + + // Shows UI to search for cellular networks. + virtual void ShowOtherCellular() = 0; + + // Returns whether bluetooth capability is available. + virtual bool GetBluetoothAvailable() = 0; + + // Returns whether bluetooth is enabled. + virtual bool GetBluetoothEnabled() = 0; + + // Shows UI for changing proxy settings. + virtual void ChangeProxySettings() = 0; + + // Returns VolumeControlDelegate. + virtual VolumeControlDelegate* GetVolumeControlDelegate() const = 0; + + // Sets VolumeControlDelegate. + virtual void SetVolumeControlDelegate( + scoped_ptr<VolumeControlDelegate> delegate) = 0; + + // Retrieves the session start time. Returns |false| if the time is not set. + virtual bool GetSessionStartTime(base::TimeTicks* session_start_time) = 0; + + // Retrieves the session length limit. Returns |false| if no limit is set. + virtual bool GetSessionLengthLimit(base::TimeDelta* session_length_limit) = 0; + + // Get the system tray menu size in pixels (dependent on the language). + virtual int GetSystemTrayMenuWidth() = 0; + + // Returns the duration formatted as a localized string. + // TODO(stevenjb): Move TimeFormat from src/chrome to src/ui so that it can be + // accessed without going through the delegate. crbug.com/222697 + virtual base::string16 FormatTimeDuration( + const base::TimeDelta& delta) const = 0; + + // Speaks the given text if spoken feedback is enabled. + virtual void MaybeSpeak(const std::string& utterance) const = 0; + + // Creates a dummy delegate for testing. + static SystemTrayDelegate* CreateDummyDelegate(); +}; + +} // namespace ash + +#endif // ASH_SYSTEM_TRAY_SYSTEM_TRAY_DELEGATE_H_ |