• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 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 #include "base/logging.h"
6 #include "content/browser/accessibility/accessibility_mode_helper.h"
7 
8 namespace content {
9 
10 namespace {
11 
CastToAccessibilityMode(unsigned int int_mode)12 AccessibilityMode CastToAccessibilityMode(unsigned int int_mode) {
13   AccessibilityMode mode = static_cast<AccessibilityMode>(int_mode);
14   switch (mode) {
15   case AccessibilityModeOff:
16   case AccessibilityModeComplete:
17   case AccessibilityModeEditableTextOnly:
18   case AccessibilityModeTreeOnly:
19     return mode;
20   }
21   DCHECK(false) << "Could not convert to AccessibilityMode: " << int_mode;
22   return AccessibilityModeOff;
23 }
24 
25 }  // namespace
26 
GetBaseAccessibilityMode()27 AccessibilityMode GetBaseAccessibilityMode() {
28   AccessibilityMode accessibility_mode = AccessibilityModeOff;
29   return accessibility_mode;
30 }
31 
AddAccessibilityModeTo(AccessibilityMode to,AccessibilityMode mode_to_add)32 AccessibilityMode AddAccessibilityModeTo(AccessibilityMode to,
33                                          AccessibilityMode mode_to_add) {
34   return CastToAccessibilityMode(to | mode_to_add);
35 }
36 
RemoveAccessibilityModeFrom(AccessibilityMode from,AccessibilityMode mode_to_remove)37 AccessibilityMode RemoveAccessibilityModeFrom(
38     AccessibilityMode from,
39     AccessibilityMode mode_to_remove) {
40   unsigned int new_mode = from ^ (mode_to_remove & from);
41   return CastToAccessibilityMode(new_mode);
42 }
43 
44 }  // namespace content
45