1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef ASH_ACCESSIBILITY_DELEGATE_H_
6#define ASH_ACCESSIBILITY_DELEGATE_H_
7
8#include "ash/ash_export.h"
9#include "ash/magnifier/magnifier_constants.h"
10#include "base/time/time.h"
11
12namespace ash {
13
14enum AccessibilityNotificationVisibility {
15  A11Y_NOTIFICATION_NONE,
16  A11Y_NOTIFICATION_SHOW,
17};
18
19enum AccessibilityAlert {
20  A11Y_ALERT_NONE,
21  A11Y_ALERT_WINDOW_NEEDED
22};
23
24// A deletate class to control accessibility features.
25class ASH_EXPORT AccessibilityDelegate {
26 public:
27  virtual ~AccessibilityDelegate() {}
28
29  // Invoked to toggle spoken feedback for accessibility
30  virtual void ToggleSpokenFeedback(
31      AccessibilityNotificationVisibility notify) = 0;
32
33  // Returns true if spoken feedback is enabled.
34  virtual bool IsSpokenFeedbackEnabled() const = 0;
35
36  // Invoked to toggle high contrast mode for accessibility.
37  virtual void ToggleHighContrast() = 0;
38
39  // Returns true if high contrast mode is enabled.
40  virtual bool IsHighContrastEnabled() const = 0;
41
42  // Invoked to enable the screen magnifier.
43  virtual void SetMagnifierEnabled(bool enabled) = 0;
44
45  // Invoked to change the type of the screen magnifier.
46  virtual void SetMagnifierType(MagnifierType type) = 0;
47
48  // Returns true if the screen magnifier is enabled or not.
49  virtual bool IsMagnifierEnabled() const = 0;
50
51  // Returns the current screen magnifier mode.
52  virtual MagnifierType GetMagnifierType() const = 0;
53
54  // Invoked to enable Large Cursor.
55  virtual void SetLargeCursorEnabled(bool enabled) = 0;
56
57  // Returns ture if Large Cursor is enabled or not.
58  virtual bool IsLargeCursorEnabled() const = 0;
59
60  // Invoked to enable autoclick.
61  virtual void SetAutoclickEnabled(bool enabled) = 0;
62
63  // Returns if autoclick is enabled or not.
64  virtual bool IsAutoclickEnabled() const = 0;
65
66  // Returns true when the accessibility menu should be shown.
67  virtual bool ShouldShowAccessibilityMenu() const = 0;
68
69  // Cancel all current and queued speech immediately.
70  virtual void SilenceSpokenFeedback() const = 0;
71
72  // Saves the zoom scale of the full screen magnifier.
73  virtual void SaveScreenMagnifierScale(double scale) = 0;
74
75  // Gets a saved value of the zoom scale of full screen magnifier. If a value
76  // is not saved, return a negative value.
77  virtual double GetSavedScreenMagnifierScale() = 0;
78
79  // Triggers an accessibility alert to give the user feedback.
80  virtual void TriggerAccessibilityAlert(AccessibilityAlert alert) = 0;
81
82  // Gets the last accessibility alert that was triggered.
83  virtual AccessibilityAlert GetLastAccessibilityAlert() = 0;
84
85  // Initiates play of shutdown sound and returns it's duration.
86  virtual base::TimeDelta PlayShutdownSound() const = 0;
87};
88
89}  // namespace ash
90
91#endif  // ASH_ACCESSIBILITYDELEGATE_H_
92