blob: 81692e1ae0670aebf4f657ae7c337ea2b8e925b4 [file] [log] [blame]
// Copyright 2019 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 ASH_PUBLIC_CPP_SYSTEM_TRAY_CLIENT_H_
#define ASH_PUBLIC_CPP_SYSTEM_TRAY_CLIENT_H_
#include <string>
#include "ash/public/cpp/ash_public_export.h"
#include "base/strings/string16.h"
namespace ash {
// Handles method calls delegated back to chrome from ash.
class ASH_PUBLIC_EXPORT SystemTrayClient {
public:
virtual ~SystemTrayClient() {}
// Shows general settings UI.
virtual void ShowSettings() = 0;
// Shows settings related to Bluetooth devices (e.g. to add a device).
virtual void ShowBluetoothSettings() = 0;
// Shows the web UI dialog to pair a Bluetooth device.
// |address| is the unique device address in the form "XX:XX:XX:XX:XX:XX"
// with hex digits X. |name_for_display| is a human-readable name, not
// necessarily the device name.
virtual void ShowBluetoothPairingDialog(
const std::string& address,
const base::string16& name_for_display,
bool paired,
bool connected) = 0;
// Shows the settings related to date, timezone etc.
virtual void ShowDateSettings() = 0;
// Shows the dialog to set system time, date, and timezone.
virtual void ShowSetTimeDialog() = 0;
// Shows settings related to multiple displays.
virtual void ShowDisplaySettings() = 0;
// Shows settings related to power.
virtual void ShowPowerSettings() = 0;
// Shows the page that lets you disable performance tracing.
virtual void ShowChromeSlow() = 0;
// Shows settings related to input methods.
virtual void ShowIMESettings() = 0;
// Shows settings related to MultiDevice features.
virtual void ShowConnectedDevicesSettings() = 0;
// Shows the about chrome OS page and checks for updates after the page is
// loaded.
virtual void ShowAboutChromeOS() = 0;
// Shows the Chromebook help app.
virtual void ShowHelp() = 0;
// Shows accessibility help.
virtual void ShowAccessibilityHelp() = 0;
// Shows the settings related to accessibility.
virtual void ShowAccessibilitySettings() = 0;
// Shows the help center article for the stylus tool palette.
virtual void ShowPaletteHelp() = 0;
// Shows the settings related to the stylus tool palette.
virtual void ShowPaletteSettings() = 0;
// Shows information about public account mode.
virtual void ShowPublicAccountInfo() = 0;
// Shows information about enterprise enrolled devices.
virtual void ShowEnterpriseInfo() = 0;
// Shows UI to configure or activate the network specified by |network_id|,
// which may include showing payment or captive portal UI when appropriate.
virtual void ShowNetworkConfigure(const std::string& network_id) = 0;
// Shows UI to create a new network connection. |type| is the ONC network type
// (see onc_spec.md). TODO(stevenjb): Use NetworkType from onc.mojo (TBD).
virtual void ShowNetworkCreate(const std::string& type) = 0;
// Shows the "add network" UI to create a third-party extension-backed VPN
// connection (e.g. Cisco AnyConnect).
virtual void ShowThirdPartyVpnCreate(const std::string& extension_id) = 0;
// Launches Arc VPN provider.
virtual void ShowArcVpnCreate(const std::string& app_id) = 0;
// Shows settings related to networking. If |network_id| is empty, shows
// general settings. Otherwise shows settings for the individual network.
// On devices |network_id| is a GUID, but on Linux desktop and in tests it can
// be any string.
virtual void ShowNetworkSettings(const std::string& network_id) = 0;
// Shows the MultiDevice setup flow dialog.
virtual void ShowMultiDeviceSetup() = 0;
// Attempts to restart the system for update.
virtual void RequestRestartForUpdate() = 0;
// Sets the UI locale to |locale_iso_code| and exit the session to take
// effect.
virtual void SetLocaleAndExit(const std::string& locale_iso_code) = 0;
protected:
SystemTrayClient() {}
};
} // namespace ash
#endif // ASH_PUBLIC_CPP_SYSTEM_TRAY_CLIENT_H_