| 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 417 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 428 } | 428 } |
| 429 | 429 |
| 430 STDMETHODIMP BrowserAccessibilityWin::get_accFocus(VARIANT* focus_child) { | 430 STDMETHODIMP BrowserAccessibilityWin::get_accFocus(VARIANT* focus_child) { |
| 431 if (!instance_active()) | 431 if (!instance_active()) |
| 432 return E_FAIL; | 432 return E_FAIL; |
| 433 | 433 |
| 434 if (!focus_child) | 434 if (!focus_child) |
| 435 return E_INVALIDARG; | 435 return E_INVALIDARG; |
| 436 | 436 |
| 437 BrowserAccessibilityWin* focus = static_cast<BrowserAccessibilityWin*>( | 437 BrowserAccessibilityWin* focus = static_cast<BrowserAccessibilityWin*>( |
| 438 manager()->GetFocus(this)); | 438 manager()->GetFocus()); |
| 439 if (focus == this) { | 439 if (focus == this) { |
| 440 focus_child->vt = VT_I4; | 440 focus_child->vt = VT_I4; |
| 441 focus_child->lVal = CHILDID_SELF; | 441 focus_child->lVal = CHILDID_SELF; |
| 442 } else if (focus == NULL) { | 442 } else if (focus == NULL) { |
| 443 focus_child->vt = VT_EMPTY; | 443 focus_child->vt = VT_EMPTY; |
| 444 } else { | 444 } else { |
| 445 focus_child->vt = VT_DISPATCH; | 445 focus_child->vt = VT_DISPATCH; |
| 446 focus_child->pdispVal = focus->NewReference(); | 446 focus_child->pdispVal = focus->NewReference(); |
| 447 } | 447 } |
| 448 | 448 |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 555 | 555 |
| 556 if (!state) | 556 if (!state) |
| 557 return E_INVALIDARG; | 557 return E_INVALIDARG; |
| 558 | 558 |
| 559 BrowserAccessibilityWin* target = GetTargetFromChildID(var_id); | 559 BrowserAccessibilityWin* target = GetTargetFromChildID(var_id); |
| 560 if (!target) | 560 if (!target) |
| 561 return E_INVALIDARG; | 561 return E_INVALIDARG; |
| 562 | 562 |
| 563 state->vt = VT_I4; | 563 state->vt = VT_I4; |
| 564 state->lVal = target->ia_state(); | 564 state->lVal = target->ia_state(); |
| 565 if (manager()->GetFocus(NULL) == this) | 565 if (manager()->GetFocus() == this) |
| 566 state->lVal |= STATE_SYSTEM_FOCUSED; | 566 state->lVal |= STATE_SYSTEM_FOCUSED; |
| 567 | 567 |
| 568 return S_OK; | 568 return S_OK; |
| 569 } | 569 } |
| 570 | 570 |
| 571 STDMETHODIMP BrowserAccessibilityWin::get_accValue(VARIANT var_id, | 571 STDMETHODIMP BrowserAccessibilityWin::get_accValue(VARIANT var_id, |
| 572 BSTR* value) { | 572 BSTR* value) { |
| 573 if (!instance_active()) | 573 if (!instance_active()) |
| 574 return E_FAIL; | 574 return E_FAIL; |
| 575 | 575 |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 662 static_cast<base::win::IUnknownImpl*>(enum_variant)); | 662 static_cast<base::win::IUnknownImpl*>(enum_variant)); |
| 663 return S_OK; | 663 return S_OK; |
| 664 } | 664 } |
| 665 | 665 |
| 666 STDMETHODIMP BrowserAccessibilityWin::accSelect( | 666 STDMETHODIMP BrowserAccessibilityWin::accSelect( |
| 667 LONG flags_sel, VARIANT var_id) { | 667 LONG flags_sel, VARIANT var_id) { |
| 668 if (!instance_active()) | 668 if (!instance_active()) |
| 669 return E_FAIL; | 669 return E_FAIL; |
| 670 | 670 |
| 671 if (flags_sel & SELFLAG_TAKEFOCUS) { | 671 if (flags_sel & SELFLAG_TAKEFOCUS) { |
| 672 manager()->SetFocus(this, true); | 672 manager()->SetFocus(*this); |
| 673 return S_OK; | 673 return S_OK; |
| 674 } | 674 } |
| 675 | 675 |
| 676 return S_FALSE; | 676 return S_FALSE; |
| 677 } | 677 } |
| 678 | 678 |
| 679 STDMETHODIMP | 679 STDMETHODIMP |
| 680 BrowserAccessibilityWin::put_accName(VARIANT var_id, BSTR put_name) { | 680 BrowserAccessibilityWin::put_accName(VARIANT var_id, BSTR put_name) { |
| 681 return E_NOTIMPL; | 681 return E_NOTIMPL; |
| 682 } | 682 } |
| (...skipping 4003 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4686 ia2_role = ia_role; | 4686 ia2_role = ia_role; |
| 4687 | 4687 |
| 4688 win_attributes_->ia_role = ia_role; | 4688 win_attributes_->ia_role = ia_role; |
| 4689 win_attributes_->ia_state = ia_state; | 4689 win_attributes_->ia_state = ia_state; |
| 4690 win_attributes_->role_name = role_name; | 4690 win_attributes_->role_name = role_name; |
| 4691 win_attributes_->ia2_role = ia2_role; | 4691 win_attributes_->ia2_role = ia2_role; |
| 4692 win_attributes_->ia2_state = ia2_state; | 4692 win_attributes_->ia2_state = ia2_state; |
| 4693 } | 4693 } |
| 4694 | 4694 |
| 4695 } // namespace content | 4695 } // namespace content |
| OLD | NEW |