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
8namespace content {
9
10namespace {
11
12AccessibilityMode 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
27AccessibilityMode GetBaseAccessibilityMode() {
28  AccessibilityMode accessibility_mode = AccessibilityModeOff;
29  return accessibility_mode;
30}
31
32AccessibilityMode AddAccessibilityModeTo(AccessibilityMode to,
33                                         AccessibilityMode mode_to_add) {
34  return CastToAccessibilityMode(to | mode_to_add);
35}
36
37AccessibilityMode 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