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

Side by Side Diff: ui/views/accessibility/native_view_accessibility_win.cc

Issue 196133012: Fix incorrect use of AXState caused when refactoring two enums into one. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add dependency Created 6 years, 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/views/accessibility/native_view_accessibility_win.h" 5 #include "ui/views/accessibility/native_view_accessibility_win.h"
6 6
7 #include <oleacc.h> 7 #include <oleacc.h>
8 #include <UIAutomationClient.h> 8 #include <UIAutomationClient.h>
9 9
10 #include <set> 10 #include <set>
(...skipping 819 matching lines...) Expand 10 before | Expand all | Expand 10 after
830 if (!states) 830 if (!states)
831 return E_INVALIDARG; 831 return E_INVALIDARG;
832 832
833 ui::AXViewState state; 833 ui::AXViewState state;
834 view_->GetAccessibleState(&state); 834 view_->GetAccessibleState(&state);
835 835
836 // There are only a couple of states we need to support 836 // There are only a couple of states we need to support
837 // in IAccessible2. If any more are added, we may want to 837 // in IAccessible2. If any more are added, we may want to
838 // add a helper function like MSAAState. 838 // add a helper function like MSAAState.
839 *states = IA2_STATE_OPAQUE; 839 *states = IA2_STATE_OPAQUE;
840 if (state.state & ui::AX_STATE_EDITABLE) 840 if (state.HasStateFlag(ui::AX_STATE_EDITABLE))
841 *states |= IA2_STATE_EDITABLE; 841 *states |= IA2_STATE_EDITABLE;
842 842
843 return S_OK; 843 return S_OK;
844 } 844 }
845 845
846 STDMETHODIMP NativeViewAccessibilityWin::get_uniqueID(LONG* unique_id) { 846 STDMETHODIMP NativeViewAccessibilityWin::get_uniqueID(LONG* unique_id) {
847 if (!view_) 847 if (!view_)
848 return E_FAIL; 848 return E_FAIL;
849 849
850 if (!unique_id) 850 if (!unique_id)
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after
1238 return ROLE_SYSTEM_TOOLBAR; 1238 return ROLE_SYSTEM_TOOLBAR;
1239 case ui::AX_ROLE_WINDOW: 1239 case ui::AX_ROLE_WINDOW:
1240 return ROLE_SYSTEM_WINDOW; 1240 return ROLE_SYSTEM_WINDOW;
1241 case ui::AX_ROLE_CLIENT: 1241 case ui::AX_ROLE_CLIENT:
1242 default: 1242 default:
1243 // This is the default role for MSAA. 1243 // This is the default role for MSAA.
1244 return ROLE_SYSTEM_CLIENT; 1244 return ROLE_SYSTEM_CLIENT;
1245 } 1245 }
1246 } 1246 }
1247 1247
1248 int32 NativeViewAccessibilityWin::MSAAState(uint32 state) { 1248 int32 NativeViewAccessibilityWin::MSAAState(const ui::AXViewState& state) {
1249 // This maps MSAA states for get_accState(). See also the IAccessible2 1249 // This maps MSAA states for get_accState(). See also the IAccessible2
1250 // interface get_states(). 1250 // interface get_states().
1251 1251
1252 int32 msaa_state = 0; 1252 int32 msaa_state = 0;
1253 if (state & ui::AX_STATE_CHECKED) 1253 if (state.HasStateFlag(ui::AX_STATE_CHECKED))
1254 msaa_state |= STATE_SYSTEM_CHECKED; 1254 msaa_state |= STATE_SYSTEM_CHECKED;
1255 if (state & ui::AX_STATE_COLLAPSED) 1255 if (state.HasStateFlag(ui::AX_STATE_COLLAPSED))
1256 msaa_state |= STATE_SYSTEM_COLLAPSED; 1256 msaa_state |= STATE_SYSTEM_COLLAPSED;
1257 if (state & ui::AX_STATE_DEFAULT) 1257 if (state.HasStateFlag(ui::AX_STATE_DEFAULT))
1258 msaa_state |= STATE_SYSTEM_DEFAULT; 1258 msaa_state |= STATE_SYSTEM_DEFAULT;
1259 if (state & ui::AX_STATE_EXPANDED) 1259 if (state.HasStateFlag(ui::AX_STATE_EXPANDED))
1260 msaa_state |= STATE_SYSTEM_EXPANDED; 1260 msaa_state |= STATE_SYSTEM_EXPANDED;
1261 if (state & ui::AX_STATE_HASPOPUP) 1261 if (state.HasStateFlag(ui::AX_STATE_HASPOPUP))
1262 msaa_state |= STATE_SYSTEM_HASPOPUP; 1262 msaa_state |= STATE_SYSTEM_HASPOPUP;
1263 if (state & ui::AX_STATE_HOVERED) 1263 if (state.HasStateFlag(ui::AX_STATE_HOVERED))
1264 msaa_state |= STATE_SYSTEM_HOTTRACKED; 1264 msaa_state |= STATE_SYSTEM_HOTTRACKED;
1265 if (state & ui::AX_STATE_INVISIBLE) 1265 if (state.HasStateFlag(ui::AX_STATE_INVISIBLE))
1266 msaa_state |= STATE_SYSTEM_INVISIBLE; 1266 msaa_state |= STATE_SYSTEM_INVISIBLE;
1267 if (state & ui::AX_STATE_LINKED) 1267 if (state.HasStateFlag(ui::AX_STATE_LINKED))
1268 msaa_state |= STATE_SYSTEM_LINKED; 1268 msaa_state |= STATE_SYSTEM_LINKED;
1269 if (state & ui::AX_STATE_OFFSCREEN) 1269 if (state.HasStateFlag(ui::AX_STATE_OFFSCREEN))
1270 msaa_state |= STATE_SYSTEM_OFFSCREEN; 1270 msaa_state |= STATE_SYSTEM_OFFSCREEN;
1271 if (state & ui::AX_STATE_PRESSED) 1271 if (state.HasStateFlag(ui::AX_STATE_PRESSED))
1272 msaa_state |= STATE_SYSTEM_PRESSED; 1272 msaa_state |= STATE_SYSTEM_PRESSED;
1273 if (state & ui::AX_STATE_PROTECTED) 1273 if (state.HasStateFlag(ui::AX_STATE_PROTECTED))
1274 msaa_state |= STATE_SYSTEM_PROTECTED; 1274 msaa_state |= STATE_SYSTEM_PROTECTED;
1275 if (state & ui::AX_STATE_READ_ONLY) 1275 if (state.HasStateFlag(ui::AX_STATE_READ_ONLY))
1276 msaa_state |= STATE_SYSTEM_READONLY; 1276 msaa_state |= STATE_SYSTEM_READONLY;
1277 if (state & ui::AX_STATE_SELECTED) 1277 if (state.HasStateFlag(ui::AX_STATE_SELECTED))
1278 msaa_state |= STATE_SYSTEM_SELECTED; 1278 msaa_state |= STATE_SYSTEM_SELECTED;
1279 if (state & ui::AX_STATE_FOCUSED) 1279 if (state.HasStateFlag(ui::AX_STATE_FOCUSED))
1280 msaa_state |= STATE_SYSTEM_FOCUSED; 1280 msaa_state |= STATE_SYSTEM_FOCUSED;
1281 if (state & ui::AX_STATE_DISABLED) 1281 if (state.HasStateFlag(ui::AX_STATE_DISABLED))
1282 msaa_state |= STATE_SYSTEM_UNAVAILABLE; 1282 msaa_state |= STATE_SYSTEM_UNAVAILABLE;
1283 return msaa_state; 1283 return msaa_state;
1284 } 1284 }
1285 1285
1286 // 1286 //
1287 // Private methods. 1287 // Private methods.
1288 // 1288 //
1289 1289
1290 bool NativeViewAccessibilityWin::IsNavDirNext(int nav_dir) const { 1290 bool NativeViewAccessibilityWin::IsNavDirNext(int nav_dir) const {
1291 return (nav_dir == NAVDIR_RIGHT || 1291 return (nav_dir == NAVDIR_RIGHT ||
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1332 CustomButton* button = static_cast<CustomButton*>(view); 1332 CustomButton* button = static_cast<CustomButton*>(view);
1333 if (button->IsHotTracked()) 1333 if (button->IsHotTracked())
1334 msaa_state->lVal |= STATE_SYSTEM_HOTTRACKED; 1334 msaa_state->lVal |= STATE_SYSTEM_HOTTRACKED;
1335 } 1335 }
1336 if (view->HasFocus()) 1336 if (view->HasFocus())
1337 msaa_state->lVal |= STATE_SYSTEM_FOCUSED; 1337 msaa_state->lVal |= STATE_SYSTEM_FOCUSED;
1338 1338
1339 // Add on any view-specific states. 1339 // Add on any view-specific states.
1340 ui::AXViewState view_state; 1340 ui::AXViewState view_state;
1341 view->GetAccessibleState(&view_state); 1341 view->GetAccessibleState(&view_state);
1342 msaa_state->lVal |= MSAAState(view_state.state); 1342 msaa_state->lVal |= MSAAState(view_state);
1343 } 1343 }
1344 1344
1345 base::string16 NativeViewAccessibilityWin::TextForIAccessibleText() { 1345 base::string16 NativeViewAccessibilityWin::TextForIAccessibleText() {
1346 ui::AXViewState state; 1346 ui::AXViewState state;
1347 view_->GetAccessibleState(&state); 1347 view_->GetAccessibleState(&state);
1348 if (state.role == ui::AX_ROLE_TEXT_FIELD) 1348 if (state.role == ui::AX_ROLE_TEXT_FIELD)
1349 return state.value; 1349 return state.value;
1350 else 1350 else
1351 return state.name; 1351 return state.name;
1352 } 1352 }
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
1406 continue; 1406 continue;
1407 1407
1408 if (widget->GetNativeWindowProperty(kWidgetNativeViewHostKey)) 1408 if (widget->GetNativeWindowProperty(kWidgetNativeViewHostKey))
1409 continue; 1409 continue;
1410 1410
1411 result_child_widgets->push_back(child_widget); 1411 result_child_widgets->push_back(child_widget);
1412 } 1412 }
1413 } 1413 }
1414 1414
1415 } // namespace views 1415 } // namespace views
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698