system_tray_delegate.h revision 5f1c94371a64b3196d4be9466099bb892df9b88e
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/user/login_status.h" 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/files/file_path.h" 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/i18n/time_formatting.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/scoped_ptr.h" 16868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/string16.h" 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/gfx/image/image_skia.h" 18ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch#include "ui/gfx/native_widget_types.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)struct ASH_EXPORT IMEPropertyInfo { 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IMEPropertyInfo(); 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ~IMEPropertyInfo(); 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool selected; 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string key; 62c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::string16 name; 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef std::vector<IMEPropertyInfo> IMEPropertyInfoList; 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct ASH_EXPORT IMEInfo { 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IMEInfo(); 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ~IMEInfo(); 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool selected; 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool third_party; 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string id; 74c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::string16 name; 75c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::string16 medium_name; 76c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::string16 short_name; 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef std::vector<IMEInfo> IMEInfoList; 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class VolumeControlDelegate; 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 83a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochnamespace tray { 84a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochclass UserAccountsDelegate; 85a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch} // namespace tray 86a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 873551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)class ASH_EXPORT SystemTrayDelegate { 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~SystemTrayDelegate() {} 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Called after SystemTray has been instantiated. 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void Initialize() = 0; 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 94c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Called before SystemTray is destroyed. 95c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void Shutdown() = 0; 96c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns true if system tray should be visible on startup. 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool GetTrayVisibilityOnStartup() = 0; 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 100c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Gets information about the active user. 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual user::LoginStatus GetUserLoginStatus() const = 0; 1022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Shows UI for changing user's profile picture. 1042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void ChangeProfilePicture() = 0; 1052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns the domain that manages the device, if it is enterprise-enrolled. 1072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual const std::string GetEnterpriseDomain() const = 0; 1082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns notification for enterprise enrolled devices. 110c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual const base::string16 GetEnterpriseMessage() const = 0; 111c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) // Returns the display email of the user that manages the current supervised 1135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) // user. 1145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual const std::string GetSupervisedUserManager() const = 0; 115c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) // Returns the name of the user that manages the current supervised user. 1175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual const base::string16 GetSupervisedUserManagerName() const = 0; 118eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 1195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) // Returns the notification for supervised users. 1205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual const base::string16 GetSupervisedUserMessage() const = 0; 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns whether a system upgrade is available. 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool SystemShouldUpgrade() const = 0; 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns the desired hour clock type. 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual base::HourClockType GetHourClockType() const = 0; 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Shows settings. 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ShowSettings() = 0; 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1313551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) // Returns true if settings menu item should appear. 1323551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) virtual bool ShouldShowSettings() = 0; 1333551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Shows the settings related to date, timezone etc. 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ShowDateSettings() = 0; 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1375c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu // Shows the dialog to set system time, date, and timezone. 1385c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu virtual void ShowSetTimeDialog() = 0; 1395c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 14090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) // Shows the settings related to network. If |service_path| is not empty, 14190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) // show the settings for that network. 14290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) virtual void ShowNetworkSettings(const std::string& service_path) = 0; 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Shows the settings related to bluetooth. 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ShowBluetoothSettings() = 0; 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Shows settings related to multiple displays. 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ShowDisplaySettings() = 0; 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 150ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch // Shows the page that lets you disable performance tracing. 151ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch virtual void ShowChromeSlow() = 0; 152ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 153eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch // Returns true if the notification for the display configuration change 154eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch // should appear. 155eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual bool ShouldShowDisplayNotification() = 0; 156eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Shows settings related to input methods. 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ShowIMESettings() = 0; 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Shows help. 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ShowHelp() = 0; 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Show accessilibity help. 1642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void ShowAccessibilityHelp() = 0; 1652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 166b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) // Show the settings related to accessilibity. 167b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) virtual void ShowAccessibilitySettings() = 0; 168b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) 1692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Shows more information about public account mode. 1702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void ShowPublicAccountInfo() = 0; 1712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Shows information about enterprise enrolled devices. 1732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void ShowEnterpriseInfo() = 0; 1742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1755f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) // Shows information about supervised users. 1765f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual void ShowSupervisedUserInfo() = 0; 177c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 178c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Shows login UI to add other users to this session. 179c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void ShowUserLogin() = 0; 180c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1815d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Shows the spring charger replacement dialog if necessary. 1825d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Returns true if the dialog is shown by the call. 1835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual bool ShowSpringChargerReplacementDialog() = 0; 1845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // True if the spring charger replacement dialog is visible. 1865d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual bool IsSpringChargerReplacementDialogVisible() = 0; 1875d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1885d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // True if user has confirmed using safe spring charger. 1895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual bool HasUserConfirmedSafeSpringCharger() = 0; 1905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Attempts to shut down the system. 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ShutDown() = 0; 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Attempts to sign out the user. 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SignOut() = 0; 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Attempts to lock the screen. 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void RequestLockScreen() = 0; 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 200a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) // Attempts to restart the system for update. 201a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) virtual void RequestRestartForUpdate() = 0; 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns a list of available bluetooth devices. 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void GetAvailableBluetoothDevices(BluetoothDeviceList* devices) = 0; 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Requests bluetooth start discovering devices. 2072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void BluetoothStartDiscovering() = 0; 2082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Requests bluetooth stop discovering devices. 2102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void BluetoothStopDiscovering() = 0; 2112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 212c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Connect to a specific bluetooth device. 213c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void ConnectToBluetoothDevice(const std::string& address) = 0; 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns true if bluetooth adapter is discovering bluetooth devices. 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool IsBluetoothDiscovering() = 0; 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns the currently selected IME. 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void GetCurrentIME(IMEInfo* info) = 0; 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns a list of availble IMEs. 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void GetAvailableIMEList(IMEInfoList* list) = 0; 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns a list of properties for the currently selected IME. 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void GetCurrentIMEProperties(IMEPropertyInfoList* list) = 0; 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Switches to the selected input method. 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SwitchIME(const std::string& ime_id) = 0; 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Activates an IME property. 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ActivateIMEProperty(const std::string& key) = 0; 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2333551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) // Shows UI to configure or activate the network specified by |network_id|, 2343551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) // which may include showing Payment or Portal UI when appropriate. 2354e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) // |parent_window| is used to parent any configuration UI. If NULL a default 2364e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) // window will be used. 2374e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) virtual void ShowNetworkConfigure(const std::string& network_id, 2384e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) gfx::NativeWindow parent_window) = 0; 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2404e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) // Shows UI to enroll the network specified by |network_id| if appropriate 2414e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) // and returns true, otherwise returns false. |parent_window| is used 242ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch // to parent any configuration UI. If NULL a default window will be used. 2434e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) virtual bool EnrollNetwork(const std::string& network_id, 2444e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) gfx::NativeWindow parent_window) = 0; 2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 246a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch // Shows UI to manage bluetooth devices. 247a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch virtual void ManageBluetoothDevices() = 0; 2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Toggles bluetooth. 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ToggleBluetooth() = 0; 2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 25290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) // Shows UI to unlock a mobile sim. 25390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) virtual void ShowMobileSimDialog() = 0; 25490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 255ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch // Shows UI to setup a mobile network. 2563551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) virtual void ShowMobileSetupDialog(const std::string& service_path) = 0; 257ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 2584e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) // Shows UI to connect to an unlisted network of type |type|. On Chrome OS 2594e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) // |type| corresponds to a Shill network type. 2604e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) virtual void ShowOtherNetworkDialog(const std::string& type) = 0; 2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns whether bluetooth capability is available. 2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool GetBluetoothAvailable() = 0; 2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns whether bluetooth is enabled. 2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool GetBluetoothEnabled() = 0; 2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 268e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch // Returns whether the delegate has initiated a bluetooth discovery session. 269e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch virtual bool GetBluetoothDiscovering() = 0; 270e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch 2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Shows UI for changing proxy settings. 2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ChangeProxySettings() = 0; 2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns VolumeControlDelegate. 2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual VolumeControlDelegate* GetVolumeControlDelegate() const = 0; 2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Sets VolumeControlDelegate. 2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SetVolumeControlDelegate( 2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<VolumeControlDelegate> delegate) = 0; 2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Retrieves the session start time. Returns |false| if the time is not set. 2822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual bool GetSessionStartTime(base::TimeTicks* session_start_time) = 0; 2832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Retrieves the session length limit. Returns |false| if no limit is set. 2852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual bool GetSessionLengthLimit(base::TimeDelta* session_length_limit) = 0; 2862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Get the system tray menu size in pixels (dependent on the language). 2882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual int GetSystemTrayMenuWidth() = 0; 2895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 2905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // The active user has been changed. This will be called when the UI is ready 2915d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // to be switched to the new user. 2925d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Note: This will happen after SessionStateObserver::ActiveUserChanged fires. 2935d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual void ActiveUserWasChanged() = 0; 2945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // Returns true when the Search key is configured to be treated as Caps Lock. 296a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) virtual bool IsSearchKeyMappedToCapsLock() = 0; 297a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 298a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // Returns accounts delegate for given user. 299a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual tray::UserAccountsDelegate* GetUserAccountsDelegate( 300a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch const std::string& user_id) = 0; 301a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}; 302a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 3035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace ash 3045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // ASH_SYSTEM_TRAY_SYSTEM_TRAY_DELEGATE_H_ 306