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;
285f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  virtual const std::string GetSupervisedUserManager() const OVERRIDE;
295f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  virtual const base::string16 GetSupervisedUserManagerName() const
30eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch      OVERRIDE;
315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  virtual const base::string16 GetSupervisedUserMessage() const OVERRIDE;
321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  virtual bool IsUserSupervised() const OVERRIDE;
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool SystemShouldUpgrade() const OVERRIDE;
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual base::HourClockType GetHourClockType() const OVERRIDE;
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ShowSettings() OVERRIDE;
363551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  virtual bool ShouldShowSettings() OVERRIDE;
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ShowDateSettings() OVERRIDE;
385c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  virtual void ShowSetTimeDialog() OVERRIDE;
3990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  virtual void ShowNetworkSettings(const std::string& service_path) OVERRIDE;
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ShowBluetoothSettings() OVERRIDE;
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ShowDisplaySettings() OVERRIDE;
42ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  virtual void ShowChromeSlow() OVERRIDE;
43eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  virtual bool ShouldShowDisplayNotification() 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;
505f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  virtual void ShowSupervisedUserInfo() 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;
681320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  virtual void ShowNetworkConfigure(const std::string& network_id) OVERRIDE;
691320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  virtual bool EnrollNetwork(const std::string& network_id) OVERRIDE;
70a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch  virtual void ManageBluetoothDevices() OVERRIDE;
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ToggleBluetooth() OVERRIDE;
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool IsBluetoothDiscovering() OVERRIDE;
7390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  virtual void ShowMobileSimDialog() OVERRIDE;
743551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  virtual void ShowMobileSetupDialog(const std::string& service_path) OVERRIDE;
754e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  virtual void ShowOtherNetworkDialog(const std::string& type) OVERRIDE;
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool GetBluetoothAvailable() OVERRIDE;
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool GetBluetoothEnabled() OVERRIDE;
78e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch  virtual bool GetBluetoothDiscovering() OVERRIDE;
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ChangeProxySettings() OVERRIDE;
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual VolumeControlDelegate* GetVolumeControlDelegate() const OVERRIDE;
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void SetVolumeControlDelegate(
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      scoped_ptr<VolumeControlDelegate> delegate) OVERRIDE;
832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual bool GetSessionStartTime(
842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      base::TimeTicks* session_start_time) OVERRIDE;
852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual bool GetSessionLengthLimit(
862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      base::TimeDelta* session_length_limit) OVERRIDE;
872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual int GetSystemTrayMenuWidth() OVERRIDE;
885d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  virtual void ActiveUserWasChanged() OVERRIDE;
89a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  virtual bool IsSearchKeyMappedToCapsLock() OVERRIDE;
90a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch  virtual tray::UserAccountsDelegate* GetUserAccountsDelegate(
91a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch      const std::string& user_id) OVERRIDE;
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private:
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  bool bluetooth_enabled_;
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  scoped_ptr<VolumeControlDelegate> volume_control_delegate_;
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
97d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(DefaultSystemTrayDelegate);
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace ash
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
102d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#endif  // ASH_SYSTEM_TRAY_DEFAULT_SYSTEM_TRAY_DELEGATE_H_
103