blob: 42a79acd201edcb1512c7bec13dca6991b337b50 [file] [log] [blame]
// Copyright 2014 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 CHROME_BROWSER_UI_ASH_SYSTEM_TRAY_DELEGATE_COMMON_H_
#define CHROME_BROWSER_UI_ASH_SYSTEM_TRAY_DELEGATE_COMMON_H_
#include <string>
#include "ash/system/tray/system_tray_delegate.h"
#include "base/compiler_specific.h"
#include "base/i18n/time_formatting.h"
#include "base/macros.h"
#include "base/memory/scoped_ptr.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
namespace ash {
class SystemTrayNotifier;
}
// Common base class for platform-specific implementations.
class SystemTrayDelegateCommon : public ash::SystemTrayDelegate,
public content::NotificationObserver {
public:
SystemTrayDelegateCommon();
virtual ~SystemTrayDelegateCommon();
// Overridden from ash::SystemTrayDelegate:
virtual void Initialize() override;
virtual void Shutdown() override;
virtual bool GetTrayVisibilityOnStartup() override;
virtual ash::user::LoginStatus GetUserLoginStatus() const override;
virtual void ChangeProfilePicture() override;
virtual const std::string GetEnterpriseDomain() const override;
virtual const base::string16 GetEnterpriseMessage() const override;
virtual const std::string GetSupervisedUserManager() const override;
virtual const base::string16 GetSupervisedUserManagerName() const override;
virtual const base::string16 GetSupervisedUserMessage() const override;
virtual bool IsUserSupervised() const override;
virtual void GetSystemUpdateInfo(ash::UpdateInfo* info) const override;
virtual base::HourClockType GetHourClockType() const override;
virtual void ShowSettings() override;
virtual bool ShouldShowSettings() override;
virtual void ShowDateSettings() override;
virtual void ShowSetTimeDialog() override;
virtual void ShowNetworkSettings(const std::string& service_path) override;
virtual void ShowBluetoothSettings() override;
virtual void ShowDisplaySettings() override;
virtual void ShowChromeSlow() override;
virtual bool ShouldShowDisplayNotification() override;
virtual void ShowIMESettings() override;
virtual void ShowHelp() override;
virtual void ShowAccessibilityHelp() override;
virtual void ShowAccessibilitySettings() override;
virtual void ShowPublicAccountInfo() override;
virtual void ShowSupervisedUserInfo() override;
virtual void ShowEnterpriseInfo() override;
virtual void ShowUserLogin() override;
virtual bool ShowSpringChargerReplacementDialog() override;
virtual bool IsSpringChargerReplacementDialogVisible() override;
virtual bool HasUserConfirmedSafeSpringCharger() override;
virtual void ShutDown() override;
virtual void SignOut() override;
virtual void RequestLockScreen() override;
virtual void RequestRestartForUpdate() override;
virtual void GetAvailableBluetoothDevices(
ash::BluetoothDeviceList* list) override;
virtual void BluetoothStartDiscovering() override;
virtual void BluetoothStopDiscovering() override;
virtual void ConnectToBluetoothDevice(const std::string& address) override;
virtual bool IsBluetoothDiscovering() override;
virtual void GetCurrentIME(ash::IMEInfo* info) override;
virtual void GetAvailableIMEList(ash::IMEInfoList* list) override;
virtual void GetCurrentIMEProperties(ash::IMEPropertyInfoList* list) override;
virtual void SwitchIME(const std::string& ime_id) override;
virtual void ActivateIMEProperty(const std::string& key) override;
virtual void ShowNetworkConfigure(const std::string& network_id) override;
virtual bool EnrollNetwork(const std::string& network_id) override;
virtual void ManageBluetoothDevices() override;
virtual void ToggleBluetooth() override;
virtual void ShowMobileSimDialog() override;
virtual void ShowMobileSetupDialog(const std::string& service_path) override;
virtual void ShowOtherNetworkDialog(const std::string& type) override;
virtual bool GetBluetoothAvailable() override;
virtual bool GetBluetoothEnabled() override;
virtual bool GetBluetoothDiscovering() override;
virtual void ChangeProxySettings() override;
virtual ash::VolumeControlDelegate* GetVolumeControlDelegate() const override;
virtual void SetVolumeControlDelegate(
scoped_ptr<ash::VolumeControlDelegate> delegate) override;
virtual bool GetSessionStartTime(
base::TimeTicks* session_start_time) override;
virtual bool GetSessionLengthLimit(
base::TimeDelta* session_length_limit) override;
virtual int GetSystemTrayMenuWidth() override;
virtual void ActiveUserWasChanged() override;
virtual bool IsSearchKeyMappedToCapsLock() override;
virtual ash::tray::UserAccountsDelegate* GetUserAccountsDelegate(
const std::string& user_id) override;
virtual void AddCustodianInfoTrayObserver(
ash::CustodianInfoTrayObserver* observer) override;
virtual void RemoveCustodianInfoTrayObserver(
ash::CustodianInfoTrayObserver* observer) override;
private:
ash::SystemTrayNotifier* GetSystemTrayNotifier();
void UpdateClockType();
// content::NotificationObserver implementation.
virtual void Observe(int type,
const content::NotificationSource& source,
const content::NotificationDetails& details) override;
scoped_ptr<content::NotificationRegistrar> registrar_;
base::HourClockType clock_type_;
DISALLOW_COPY_AND_ASSIGN(SystemTrayDelegateCommon);
};
#endif // CHROME_BROWSER_UI_ASH_SYSTEM_TRAY_DELEGATE_COMMON_H_