system_tray_delegate.h revision c2e0dbddbe15c98d52c4786dac06cb8952a8ae6d
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef ASH_SYSTEM_TRAY_SYSTEM_TRAY_DELEGATE_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ASH_SYSTEM_TRAY_SYSTEM_TRAY_DELEGATE_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string> 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <vector> 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ash/ash_export.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ash/system/power/power_supply_status.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ash/system/user/login_status.h" 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/files/file_path.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/i18n/time_formatting.h" 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/scoped_ptr.h" 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/string16.h" 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/gfx/image/image_skia.h" 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace base { 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class TimeDelta; 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class TimeTicks; 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ash { 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct ASH_EXPORT NetworkIconInfo { 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NetworkIconInfo(); 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ~NetworkIconInfo(); 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool highlight() const { return connected || connecting; } 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool connecting; 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool connected; 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool tray_icon_visible; 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) gfx::ImageSkia image; 37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::string16 name; 38c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::string16 description; 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string service_path; 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool is_cellular; 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct ASH_EXPORT BluetoothDeviceInfo { 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BluetoothDeviceInfo(); 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ~BluetoothDeviceInfo(); 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string address; 48c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::string16 display_name; 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool connected; 50c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) bool connecting; 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool paired; 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef std::vector<BluetoothDeviceInfo> BluetoothDeviceList; 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Structure that packs progress information of each operation. 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct ASH_EXPORT DriveOperationStatus { 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) enum OperationType { 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) OPERATION_UPLOAD, 60c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) OPERATION_DOWNLOAD 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) enum OperationState { 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) OPERATION_NOT_STARTED, 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) OPERATION_IN_PROGRESS, 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) OPERATION_COMPLETED, 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) OPERATION_FAILED, 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DriveOperationStatus(); 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ~DriveOperationStatus(); 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 73c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Unique ID for the operation. 74c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) int32 id; 75c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // File path. 772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::FilePath file_path; 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Current operation completion progress [0.0 - 1.0]. 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) double progress; 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) OperationType type; 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) OperationState state; 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef std::vector<DriveOperationStatus> DriveOperationStatusList; 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct ASH_EXPORT IMEPropertyInfo { 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IMEPropertyInfo(); 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ~IMEPropertyInfo(); 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool selected; 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string key; 93c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::string16 name; 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef std::vector<IMEPropertyInfo> IMEPropertyInfoList; 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct ASH_EXPORT IMEInfo { 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IMEInfo(); 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ~IMEInfo(); 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool selected; 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool third_party; 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string id; 105c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::string16 name; 106c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::string16 medium_name; 107c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::string16 short_name; 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef std::vector<IMEInfo> IMEInfoList; 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class VolumeControlDelegate; 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 114c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)typedef std::vector<std::string> UserEmailList; 115c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SystemTrayDelegate { 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~SystemTrayDelegate() {} 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Called after SystemTray has been instantiated. 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void Initialize() = 0; 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 123c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Called before SystemTray is destroyed. 124c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void Shutdown() = 0; 125c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns true if system tray should be visible on startup. 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool GetTrayVisibilityOnStartup() = 0; 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 129c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Gets information about the active user. 130c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual const base::string16 GetUserDisplayName() const = 0; 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual const std::string GetUserEmail() const = 0; 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual const gfx::ImageSkia& GetUserImage() const = 0; 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual user::LoginStatus GetUserLoginStatus() const = 0; 1342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual bool IsOobeCompleted() const = 0; 1352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 136c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Returns a list of all logged in users. 137c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void GetLoggedInUsers(UserEmailList* users) = 0; 138c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 139c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Switches to another active user (if that user has already signed in). 140c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void SwitchActiveUser(const std::string& email) = 0; 141c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Shows UI for changing user's profile picture. 1432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void ChangeProfilePicture() = 0; 1442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns the domain that manages the device, if it is enterprise-enrolled. 1462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual const std::string GetEnterpriseDomain() const = 0; 1472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns notification for enterprise enrolled devices. 149c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual const base::string16 GetEnterpriseMessage() const = 0; 150c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 151c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Returns the email of user that manages current locally managed user. 152c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual const std::string GetLocallyManagedUserManager() const = 0; 153c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 154c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Returns notification for locally managed users. 155c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual const base::string16 GetLocallyManagedUserMessage() const = 0; 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns whether a system upgrade is available. 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool SystemShouldUpgrade() const = 0; 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns the desired hour clock type. 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual base::HourClockType GetHourClockType() const = 0; 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Gets the current power supply status. 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual PowerSupplyStatus GetPowerSupplyStatus() const = 0; 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Requests a status update. 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void RequestStatusUpdate() const = 0; 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Shows settings. 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ShowSettings() = 0; 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Shows the settings related to date, timezone etc. 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ShowDateSettings() = 0; 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Shows the settings related to network. 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ShowNetworkSettings() = 0; 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Shows the settings related to bluetooth. 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ShowBluetoothSettings() = 0; 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Shows settings related to multiple displays. 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ShowDisplaySettings() = 0; 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Shows settings related to Google Drive. 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ShowDriveSettings() = 0; 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Shows settings related to input methods. 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ShowIMESettings() = 0; 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Shows help. 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ShowHelp() = 0; 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Show accessilibity help. 1942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void ShowAccessibilityHelp() = 0; 1952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Shows more information about public account mode. 1972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void ShowPublicAccountInfo() = 0; 1982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Shows information about enterprise enrolled devices. 2002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void ShowEnterpriseInfo() = 0; 2012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 202c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Shows information about locally managed users. 203c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void ShowLocallyManagedUserInfo() = 0; 204c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 205c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Shows login UI to add other users to this session. 206c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void ShowUserLogin() = 0; 207c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Attempts to shut down the system. 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ShutDown() = 0; 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Attempts to sign out the user. 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SignOut() = 0; 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Attempts to lock the screen. 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void RequestLockScreen() = 0; 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Attempts to restart the system. 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void RequestRestart() = 0; 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns a list of available bluetooth devices. 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void GetAvailableBluetoothDevices(BluetoothDeviceList* devices) = 0; 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Requests bluetooth start discovering devices. 2242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void BluetoothStartDiscovering() = 0; 2252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Requests bluetooth stop discovering devices. 2272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void BluetoothStopDiscovering() = 0; 2282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 229c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Connect to a specific bluetooth device. 230c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void ConnectToBluetoothDevice(const std::string& address) = 0; 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns true if bluetooth adapter is discovering bluetooth devices. 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool IsBluetoothDiscovering() = 0; 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns the currently selected IME. 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void GetCurrentIME(IMEInfo* info) = 0; 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns a list of availble IMEs. 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void GetAvailableIMEList(IMEInfoList* list) = 0; 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns a list of properties for the currently selected IME. 2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void GetCurrentIMEProperties(IMEPropertyInfoList* list) = 0; 2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Switches to the selected input method. 2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SwitchIME(const std::string& ime_id) = 0; 2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Activates an IME property. 2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ActivateIMEProperty(const std::string& key) = 0; 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Cancels ongoing drive operation. 251c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void CancelDriveOperation(int32 operation_id) = 0; 2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns information about the ongoing drive operations. 2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void GetDriveOperationStatusList( 2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DriveOperationStatusList* list) = 0; 2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns information about the most relevant network. Relevance is 2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // determined by the implementor (e.g. a connecting network may be more 2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // relevant over a connected network etc.) 2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void GetMostRelevantNetworkIcon(NetworkIconInfo* info, 2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool large) = 0; 2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void GetVirtualNetworkIcon(ash::NetworkIconInfo* info) = 0; 2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns information about the available networks. 2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void GetAvailableNetworks(std::vector<NetworkIconInfo>* list) = 0; 2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns the information about all virtual networks. 2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void GetVirtualNetworks(std::vector<NetworkIconInfo>* list) = 0; 2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Connects to the network specified by the unique id. 2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ConnectToNetwork(const std::string& network_id) = 0; 2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Gets the network IP address, and the mac addresses for the ethernet and 2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // wifi devices. If any of this is unavailable, empty strings are returned. 2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void GetNetworkAddresses(std::string* ip_address, 2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string* ethernet_mac_address, 2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string* wifi_mac_address) = 0; 2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Requests network scan when list of networks is opened. 2815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void RequestNetworkScan() = 0; 2825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Shous UI to add a new bluetooth device. 2845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void AddBluetoothDevice() = 0; 2855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Toggles airplane mode. 2875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ToggleAirplaneMode() = 0; 2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Toggles wifi network. 2905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ToggleWifi() = 0; 2915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Toggles mobile network. 2935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ToggleMobile() = 0; 2945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Toggles bluetooth. 2965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ToggleBluetooth() = 0; 2975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Shows UI to connect to an unlisted wifi network. 2995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ShowOtherWifi() = 0; 3005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Shows UI to configure vpn. 3025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ShowOtherVPN() = 0; 3035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Shows UI to search for cellular networks. 3055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ShowOtherCellular() = 0; 3065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns whether the system is connected to any network. 3085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool IsNetworkConnected() = 0; 3095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns whether wifi is available. 3115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool GetWifiAvailable() = 0; 3125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns whether mobile networking (cellular or wimax) is available. 3145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool GetMobileAvailable() = 0; 3155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns whether bluetooth capability is available. 3175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool GetBluetoothAvailable() = 0; 3185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns whether wifi is enabled. 3205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool GetWifiEnabled() = 0; 3215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns whether mobile (cellular or wimax) networking is enabled. 3235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool GetMobileEnabled() = 0; 3245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns whether bluetooth is enabled. 3265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool GetBluetoothEnabled() = 0; 3275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns whether mobile scanning is supported. 3295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool GetMobileScanSupported() = 0; 3305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Retrieves information about the carrier and locale specific |setup_url|. 3325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // If none of the carrier info/setup URL cannot be retrieved, returns false. 3335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Note: |setup_url| is returned when carrier is not defined (no SIM card). 3345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool GetCellularCarrierInfo(std::string* carrier_id, 3355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string* topup_url, 3365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string* setup_url) = 0; 3375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns whether the network manager is scanning for wifi networks. 3392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual bool GetWifiScanning() = 0; 3402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns whether the network manager is initializing the cellular modem. 3422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual bool GetCellularInitializing() = 0; 3432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Opens the cellular network specific URL. 3455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ShowCellularURL(const std::string& url) = 0; 3465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Shows UI for changing proxy settings. 3485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ChangeProxySettings() = 0; 3495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns VolumeControlDelegate. 3515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual VolumeControlDelegate* GetVolumeControlDelegate() const = 0; 3525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Sets VolumeControlDelegate. 3545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SetVolumeControlDelegate( 3555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<VolumeControlDelegate> delegate) = 0; 3565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Retrieves the session start time. Returns |false| if the time is not set. 3582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual bool GetSessionStartTime(base::TimeTicks* session_start_time) = 0; 3592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Retrieves the session length limit. Returns |false| if no limit is set. 3612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual bool GetSessionLengthLimit(base::TimeDelta* session_length_limit) = 0; 3622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Get the system tray menu size in pixels (dependent on the language). 3642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual int GetSystemTrayMenuWidth() = 0; 3652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns the duration formatted as a localized string. 3672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // TODO(stevenjb): Move TimeFormat from src/chrome to src/ui so that it can be 3682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // accessed without going through the delegate. crbug.com/222697 369c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual base::string16 FormatTimeDuration( 370c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const base::TimeDelta& delta) const = 0; 3712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Speaks the given text if spoken feedback is enabled. 3732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void MaybeSpeak(const std::string& utterance) const = 0; 3742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Creates a dummy delegate for testing. 3765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static SystemTrayDelegate* CreateDummyDelegate(); 3775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 3785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace ash 3805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // ASH_SYSTEM_TRAY_SYSTEM_TRAY_DELEGATE_H_ 382