Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(53)

Side by Side Diff: content/browser/accessibility/accessibility_mode_helper.cc

Issue 145283003: Switch AccessibilityMode to be a bitmap (Closed) Base URL: https://chromium.googlesource.com/chromium/src@enable
Patch Set: Switch back to AccessibilityMode enums in accessibility_ui.cc Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 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 "content/browser/accessibility/accessibility_mode_helper.h"
6
7 #if defined(OS_WIN)
8 #include "base/command_line.h"
9 #include "base/win/windows_version.h"
10 #include "content/public/common/content_switches.h"
11 #endif
12
13 namespace content {
14
15 namespace {
16
17 AccessibilityMode CastToAccessibilityMode(unsigned int int_mode) {
18 AccessibilityMode mode = static_cast<AccessibilityMode>(int_mode);
19 switch (mode) {
20 case AccessibilityModeOff:
21 case AccessibilityModeComplete:
22 case AccessibilityModeEditableTextOnly:
23 return mode;
24 }
25 DCHECK(false) << "Could not convert to AccessibilityMode: " << int_mode;
26 return AccessibilityModeOff;
27 }
28
29 } // namespace
30
31 AccessibilityMode AddAccessibilityModeTo(AccessibilityMode to,
32 AccessibilityMode mode_to_add) {
33 return CastToAccessibilityMode(to | mode_to_add);
34 }
35
36 AccessibilityMode RemoveAccessibilityModeFrom(
37 AccessibilityMode from,
38 AccessibilityMode mode_to_remove) {
39 unsigned int new_mode = from ^ (mode_to_remove & from);
40 #if defined(OS_WIN)
41 // On Windows 8, always enable accessibility for editable text controls
42 // so we can show the virtual keyboard when one is enabled.
43 if (base::win::GetVersion() >= base::win::VERSION_WIN8 &&
44 !CommandLine::ForCurrentProcess()->HasSwitch(
45 switches::kDisableRendererAccessibility)) {
46 if ((from & AccessibilityModeEditableTextOnly) ==
47 AccessibilityModeEditableTextOnly)
48 new_mode |= AccessibilityModeEditableTextOnly;
49 }
50 #endif // defined(OS_WIN)
51
52 return CastToAccessibilityMode(new_mode);
53 }
54
55 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698