1d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)// Copyright 2013 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)
5d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#ifndef ASH_SYSTEM_TRAY_DEFAULT_SYSTEM_TRAY_DELEGATE_H_
6d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#define ASH_SYSTEM_TRAY_DEFAULT_SYSTEM_TRAY_DELEGATE_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
83551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "ash/ash_export.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ash/system/tray/system_tray_delegate.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/compiler_specific.h"
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/scoped_ptr.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ash {
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)class ASH_EXPORT DefaultSystemTrayDelegate : public SystemTrayDelegate {
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public:
17d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)  DefaultSystemTrayDelegate();
18d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)  virtual ~DefaultSystemTrayDelegate();
193551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
20d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)  // Overridden from SystemTrayDelegate:
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void Initialize() OVERRIDE;
22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  virtual void Shutdown() OVERRIDE;
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool GetTrayVisibilityOnStartup() OVERRIDE;
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual user::LoginStatus GetUserLoginStatus() const OVERRIDE;
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void ChangeProfilePicture() OVERRIDE;
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual const std::string GetEnterpriseDomain() const OVERRIDE;
27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  virtual const base::string16 GetEnterpriseMessage() const OVERRIDE;
28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  virtual const std::string GetLocallyManagedUserManager() const OVERRIDE;
29eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  virtual const base::string16 GetLocallyManagedUserManagerName() const
30eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch      OVERRIDE;
31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  virtual const base::string16 GetLocallyManagedUserMessage() const OVERRIDE;
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool SystemShouldUpgrade() const OVERRIDE;
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual base::HourClockType GetHourClockType() const OVERRIDE;
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ShowSettings() OVERRIDE;
353551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  virtual bool ShouldShowSettings() OVERRIDE;
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ShowDateSettings() OVERRIDE;
375c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  virtual void ShowSetTimeDialog() OVERRIDE;
3890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  virtual void ShowNetworkSettings(const std::string& service_path) OVERRIDE;
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ShowBluetoothSettings() OVERRIDE;
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ShowDisplaySettings() OVERRIDE;
41ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  virtual void ShowChromeSlow() OVERRIDE;
42eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  virtual bool ShouldShowDisplayNotification() OVERRIDE;
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ShowDriveSettings() OVERRIDE;
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ShowIMESettings() OVERRIDE;
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ShowHelp() OVERRIDE;
462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void ShowAccessibilityHelp() OVERRIDE;
47b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  virtual void ShowAccessibilitySettings() OVERRIDE;
482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void ShowPublicAccountInfo() OVERRIDE;
492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void ShowEnterpriseInfo() OVERRIDE;
50c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  virtual void ShowLocallyManagedUserInfo() OVERRIDE;
51c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  virtual void ShowUserLogin() OVERRIDE;
525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  virtual bool ShowSpringChargerReplacementDialog() OVERRIDE;
535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  virtual bool IsSpringChargerReplacementDialogVisible() OVERRIDE;
545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  virtual bool HasUserConfirmedSafeSpringCharger() OVERRIDE;
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ShutDown() OVERRIDE;
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void SignOut() OVERRIDE;
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void RequestLockScreen() OVERRIDE;
58a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)  virtual void RequestRestartForUpdate() OVERRIDE;
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void GetAvailableBluetoothDevices(BluetoothDeviceList* list) OVERRIDE;
602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void BluetoothStartDiscovering() OVERRIDE;
612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void BluetoothStopDiscovering() OVERRIDE;
62c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  virtual void ConnectToBluetoothDevice(const std::string& address) OVERRIDE;
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void GetCurrentIME(IMEInfo* info) OVERRIDE;
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void GetAvailableIMEList(IMEInfoList* list) OVERRIDE;
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void GetCurrentIMEProperties(IMEPropertyInfoList* list) OVERRIDE;
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void SwitchIME(const std::string& ime_id) OVERRIDE;
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ActivateIMEProperty(const std::string& key) OVERRIDE;
68c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  virtual void CancelDriveOperation(int32 operation_id) OVERRIDE;
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void GetDriveOperationStatusList(
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ash::DriveOperationStatusList*) OVERRIDE;
714e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  virtual void ShowNetworkConfigure(const std::string& network_id,
724e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                                    gfx::NativeWindow parent_window) OVERRIDE;
734e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  virtual bool EnrollNetwork(const std::string& network_id,
744e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                             gfx::NativeWindow parent_window) OVERRIDE;
75a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch  virtual void ManageBluetoothDevices() OVERRIDE;
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ToggleBluetooth() OVERRIDE;
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool IsBluetoothDiscovering() OVERRIDE;
7890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  virtual void ShowMobileSimDialog() OVERRIDE;
793551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  virtual void ShowMobileSetupDialog(const std::string& service_path) OVERRIDE;
804e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  virtual void ShowOtherNetworkDialog(const std::string& type) OVERRIDE;
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool GetBluetoothAvailable() OVERRIDE;
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool GetBluetoothEnabled() OVERRIDE;
83e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch  virtual bool GetBluetoothDiscovering() OVERRIDE;
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ChangeProxySettings() OVERRIDE;
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual VolumeControlDelegate* GetVolumeControlDelegate() const OVERRIDE;
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void SetVolumeControlDelegate(
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      scoped_ptr<VolumeControlDelegate> delegate) OVERRIDE;
882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual bool GetSessionStartTime(
892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      base::TimeTicks* session_start_time) OVERRIDE;
902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual bool GetSessionLengthLimit(
912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      base::TimeDelta* session_length_limit) OVERRIDE;
922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual int GetSystemTrayMenuWidth() OVERRIDE;
935d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  virtual void ActiveUserWasChanged() OVERRIDE;
94a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  virtual bool IsNetworkBehindCaptivePortal(
95a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      const std::string& service_path) const OVERRIDE;
96a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  virtual bool IsSearchKeyMappedToCapsLock() OVERRIDE;
97a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch  virtual tray::UserAccountsDelegate* GetUserAccountsDelegate(
98a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch      const std::string& user_id) OVERRIDE;
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private:
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  bool bluetooth_enabled_;
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  scoped_ptr<VolumeControlDelegate> volume_control_delegate_;
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
104d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(DefaultSystemTrayDelegate);
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace ash
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
109d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#endif  // ASH_SYSTEM_TRAY_DEFAULT_SYSTEM_TRAY_DELEGATE_H_
110