Home | History | Annotate | Download | only in accessibility
      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 
     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 
     27 AccessibilityMode GetBaseAccessibilityMode() {
     28   AccessibilityMode accessibility_mode = AccessibilityModeOff;
     29   return accessibility_mode;
     30 }
     31 
     32 AccessibilityMode AddAccessibilityModeTo(AccessibilityMode to,
     33                                          AccessibilityMode mode_to_add) {
     34   return CastToAccessibilityMode(to | mode_to_add);
     35 }
     36 
     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