| OLD | NEW |
| 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 "content/browser/accessibility/browser_accessibility_win.h" | 5 #include "content/browser/accessibility/browser_accessibility_win.h" |
| 6 | 6 |
| 7 #include <UIAutomationClient.h> | 7 #include <UIAutomationClient.h> |
| 8 #include <UIAutomationCoreApi.h> | 8 #include <UIAutomationCoreApi.h> |
| 9 | 9 |
| 10 #include <algorithm> | 10 #include <algorithm> |
| (...skipping 3501 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3512 // Fire an event if the name, description, help, or value changes. | 3512 // Fire an event if the name, description, help, or value changes. |
| 3513 if (name() != old_win_attributes_->name) | 3513 if (name() != old_win_attributes_->name) |
| 3514 manager->MaybeCallNotifyWinEvent(EVENT_OBJECT_NAMECHANGE, this); | 3514 manager->MaybeCallNotifyWinEvent(EVENT_OBJECT_NAMECHANGE, this); |
| 3515 if (description() != old_win_attributes_->description) | 3515 if (description() != old_win_attributes_->description) |
| 3516 manager->MaybeCallNotifyWinEvent(EVENT_OBJECT_DESCRIPTIONCHANGE, this); | 3516 manager->MaybeCallNotifyWinEvent(EVENT_OBJECT_DESCRIPTIONCHANGE, this); |
| 3517 if (value() != old_win_attributes_->value) | 3517 if (value() != old_win_attributes_->value) |
| 3518 manager->MaybeCallNotifyWinEvent(EVENT_OBJECT_VALUECHANGE, this); | 3518 manager->MaybeCallNotifyWinEvent(EVENT_OBJECT_VALUECHANGE, this); |
| 3519 if (ia_state() != old_win_attributes_->ia_state) | 3519 if (ia_state() != old_win_attributes_->ia_state) |
| 3520 manager->MaybeCallNotifyWinEvent(EVENT_OBJECT_STATECHANGE, this); | 3520 manager->MaybeCallNotifyWinEvent(EVENT_OBJECT_STATECHANGE, this); |
| 3521 | 3521 |
| 3522 // Normally focus events are handled elsewhere, however | |
| 3523 // focus for managed descendants is platform-specific. | |
| 3524 // Fire a focus event if the focused descendant in a multi-select | |
| 3525 // list box changes. | |
| 3526 if (GetRole() == ui::AX_ROLE_LIST_BOX_OPTION && | |
| 3527 (ia_state() & STATE_SYSTEM_FOCUSABLE) && | |
| 3528 (ia_state() & STATE_SYSTEM_SELECTABLE) && | |
| 3529 (ia_state() & STATE_SYSTEM_FOCUSED) && | |
| 3530 !(old_win_attributes_->ia_state & STATE_SYSTEM_FOCUSED)) { | |
| 3531 manager->MaybeCallNotifyWinEvent(EVENT_OBJECT_FOCUS, this); | |
| 3532 } | |
| 3533 | |
| 3534 // Handle selection being added or removed. | 3522 // Handle selection being added or removed. |
| 3535 bool is_selected_now = (ia_state() & STATE_SYSTEM_SELECTED) != 0; | 3523 bool is_selected_now = (ia_state() & STATE_SYSTEM_SELECTED) != 0; |
| 3536 bool was_selected_before = | 3524 bool was_selected_before = |
| 3537 (old_win_attributes_->ia_state & STATE_SYSTEM_SELECTED) != 0; | 3525 (old_win_attributes_->ia_state & STATE_SYSTEM_SELECTED) != 0; |
| 3538 if (is_selected_now || was_selected_before) { | 3526 if (is_selected_now || was_selected_before) { |
| 3539 bool multiselect = false; | 3527 bool multiselect = false; |
| 3540 if (GetParent() && GetParent()->HasState(ui::AX_STATE_MULTISELECTABLE)) | 3528 if (GetParent() && GetParent()->HasState(ui::AX_STATE_MULTISELECTABLE)) |
| 3541 multiselect = true; | 3529 multiselect = true; |
| 3542 | 3530 |
| 3543 if (multiselect) { | 3531 if (multiselect) { |
| (...skipping 1412 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4956 return static_cast<BrowserAccessibilityWin*>(obj); | 4944 return static_cast<BrowserAccessibilityWin*>(obj); |
| 4957 } | 4945 } |
| 4958 | 4946 |
| 4959 const BrowserAccessibilityWin* | 4947 const BrowserAccessibilityWin* |
| 4960 ToBrowserAccessibilityWin(const BrowserAccessibility* obj) { | 4948 ToBrowserAccessibilityWin(const BrowserAccessibility* obj) { |
| 4961 DCHECK(!obj || obj->IsNative()); | 4949 DCHECK(!obj || obj->IsNative()); |
| 4962 return static_cast<const BrowserAccessibilityWin*>(obj); | 4950 return static_cast<const BrowserAccessibilityWin*>(obj); |
| 4963 } | 4951 } |
| 4964 | 4952 |
| 4965 } // namespace content | 4953 } // namespace content |
| OLD | NEW |