| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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_manager_android.h" | 5 #include "content/browser/accessibility/browser_accessibility_manager_android.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <cmath> | 9 #include <cmath> |
| 10 | 10 |
| (...skipping 581 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 592 } | 592 } |
| 593 | 593 |
| 594 return true; | 594 return true; |
| 595 } | 595 } |
| 596 | 596 |
| 597 void BrowserAccessibilityManagerAndroid::Click(JNIEnv* env, | 597 void BrowserAccessibilityManagerAndroid::Click(JNIEnv* env, |
| 598 const JavaParamRef<jobject>& obj, | 598 const JavaParamRef<jobject>& obj, |
| 599 jint id) { | 599 jint id) { |
| 600 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); | 600 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); |
| 601 if (node) | 601 if (node) |
| 602 DoDefaultAction(*node); | 602 node->manager()->DoDefaultAction(*node); |
| 603 } | 603 } |
| 604 | 604 |
| 605 void BrowserAccessibilityManagerAndroid::Focus(JNIEnv* env, | 605 void BrowserAccessibilityManagerAndroid::Focus(JNIEnv* env, |
| 606 const JavaParamRef<jobject>& obj, | 606 const JavaParamRef<jobject>& obj, |
| 607 jint id) { | 607 jint id) { |
| 608 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); | 608 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); |
| 609 if (node) | 609 if (node) |
| 610 SetFocus(*node); | 610 node->manager()->SetFocus(*node); |
| 611 } | 611 } |
| 612 | 612 |
| 613 void BrowserAccessibilityManagerAndroid::Blur( | 613 void BrowserAccessibilityManagerAndroid::Blur( |
| 614 JNIEnv* env, | 614 JNIEnv* env, |
| 615 const JavaParamRef<jobject>& obj) { | 615 const JavaParamRef<jobject>& obj) { |
| 616 SetFocus(*GetRoot()); | 616 SetFocus(*GetRoot()); |
| 617 } | 617 } |
| 618 | 618 |
| 619 void BrowserAccessibilityManagerAndroid::ScrollToMakeNodeVisible( | 619 void BrowserAccessibilityManagerAndroid::ScrollToMakeNodeVisible( |
| 620 JNIEnv* env, | 620 JNIEnv* env, |
| 621 const JavaParamRef<jobject>& obj, | 621 const JavaParamRef<jobject>& obj, |
| 622 jint id) { | 622 jint id) { |
| 623 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); | 623 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); |
| 624 if (node) | 624 if (node) { |
| 625 ScrollToMakeVisible(*node, gfx::Rect(node->GetLocation().size())); | 625 node->manager()->ScrollToMakeVisible( |
| 626 *node, gfx::Rect(node->GetLocation().size())); |
| 627 } |
| 626 } | 628 } |
| 627 | 629 |
| 628 void BrowserAccessibilityManagerAndroid::SetTextFieldValue( | 630 void BrowserAccessibilityManagerAndroid::SetTextFieldValue( |
| 629 JNIEnv* env, | 631 JNIEnv* env, |
| 630 const JavaParamRef<jobject>& obj, | 632 const JavaParamRef<jobject>& obj, |
| 631 jint id, | 633 jint id, |
| 632 const JavaParamRef<jstring>& value) { | 634 const JavaParamRef<jstring>& value) { |
| 633 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); | 635 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); |
| 634 if (node) { | 636 if (node) { |
| 635 BrowserAccessibilityManager::SetValue( | 637 node->manager()->SetValue( |
| 636 *node, base::android::ConvertJavaStringToUTF16(env, value)); | 638 *node, base::android::ConvertJavaStringToUTF16(env, value)); |
| 637 } | 639 } |
| 638 } | 640 } |
| 639 | 641 |
| 640 void BrowserAccessibilityManagerAndroid::SetSelection( | 642 void BrowserAccessibilityManagerAndroid::SetSelection( |
| 641 JNIEnv* env, | 643 JNIEnv* env, |
| 642 const JavaParamRef<jobject>& obj, | 644 const JavaParamRef<jobject>& obj, |
| 643 jint id, | 645 jint id, |
| 644 jint start, | 646 jint start, |
| 645 jint end) { | 647 jint end) { |
| 646 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); | 648 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); |
| 647 if (node) | 649 if (node) |
| 648 SetTextSelection(*node, start, end); | 650 node->manager()->SetTextSelection(*node, start, end); |
| 649 } | 651 } |
| 650 | 652 |
| 651 jboolean BrowserAccessibilityManagerAndroid::AdjustSlider( | 653 jboolean BrowserAccessibilityManagerAndroid::AdjustSlider( |
| 652 JNIEnv* env, | 654 JNIEnv* env, |
| 653 const JavaParamRef<jobject>& obj, | 655 const JavaParamRef<jobject>& obj, |
| 654 jint id, | 656 jint id, |
| 655 jboolean increment) { | 657 jboolean increment) { |
| 656 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); | 658 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); |
| 657 if (!node) | 659 if (!node) |
| 658 return false; | 660 return false; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 669 if (max <= min) | 671 if (max <= min) |
| 670 return false; | 672 return false; |
| 671 | 673 |
| 672 // To behave similarly to an Android SeekBar, move by an increment of | 674 // To behave similarly to an Android SeekBar, move by an increment of |
| 673 // approximately 20%. | 675 // approximately 20%. |
| 674 float original_value = value; | 676 float original_value = value; |
| 675 float delta = (max - min) / 5.0f; | 677 float delta = (max - min) / 5.0f; |
| 676 value += (increment ? delta : -delta); | 678 value += (increment ? delta : -delta); |
| 677 value = std::max(std::min(value, max), min); | 679 value = std::max(std::min(value, max), min); |
| 678 if (value != original_value) { | 680 if (value != original_value) { |
| 679 BrowserAccessibilityManager::SetValue( | 681 node->manager()->SetValue( |
| 680 *node, base::UTF8ToUTF16(base::DoubleToString(value))); | 682 *node, base::UTF8ToUTF16(base::DoubleToString(value))); |
| 681 return true; | 683 return true; |
| 682 } | 684 } |
| 683 return false; | 685 return false; |
| 684 } | 686 } |
| 685 | 687 |
| 686 void BrowserAccessibilityManagerAndroid::HandleHoverEvent( | 688 void BrowserAccessibilityManagerAndroid::HandleHoverEvent( |
| 687 BrowserAccessibility* node) { | 689 BrowserAccessibility* node) { |
| 688 JNIEnv* env = AttachCurrentThread(); | 690 JNIEnv* env = AttachCurrentThread(); |
| 689 ScopedJavaLocalRef<jobject> obj = GetJavaRefFromRootManager(); | 691 ScopedJavaLocalRef<jobject> obj = GetJavaRefFromRootManager(); |
| (...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 881 NOTREACHED(); | 883 NOTREACHED(); |
| 882 } | 884 } |
| 883 | 885 |
| 884 return true; | 886 return true; |
| 885 } | 887 } |
| 886 | 888 |
| 887 void BrowserAccessibilityManagerAndroid::SetAccessibilityFocus( | 889 void BrowserAccessibilityManagerAndroid::SetAccessibilityFocus( |
| 888 JNIEnv* env, | 890 JNIEnv* env, |
| 889 const JavaParamRef<jobject>& obj, | 891 const JavaParamRef<jobject>& obj, |
| 890 jint id) { | 892 jint id) { |
| 891 if (delegate_) | 893 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); |
| 892 delegate_->AccessibilitySetAccessibilityFocus(id); | 894 if (!node) |
| 895 return; |
| 896 |
| 897 if (node->manager()->delegate()) { |
| 898 node->manager()->delegate()->AccessibilitySetAccessibilityFocus( |
| 899 node->GetId()); |
| 900 } |
| 893 } | 901 } |
| 894 | 902 |
| 895 bool BrowserAccessibilityManagerAndroid::IsSlider( | 903 bool BrowserAccessibilityManagerAndroid::IsSlider( |
| 896 JNIEnv* env, | 904 JNIEnv* env, |
| 897 const JavaParamRef<jobject>& obj, | 905 const JavaParamRef<jobject>& obj, |
| 898 jint id) { | 906 jint id) { |
| 899 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); | 907 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); |
| 900 if (!node) | 908 if (!node) |
| 901 return false; | 909 return false; |
| 902 | 910 |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 954 | 962 |
| 955 JNIEnv* env = AttachCurrentThread(); | 963 JNIEnv* env = AttachCurrentThread(); |
| 956 return root_manager->java_ref().get(env); | 964 return root_manager->java_ref().get(env); |
| 957 } | 965 } |
| 958 | 966 |
| 959 bool RegisterBrowserAccessibilityManager(JNIEnv* env) { | 967 bool RegisterBrowserAccessibilityManager(JNIEnv* env) { |
| 960 return RegisterNativesImpl(env); | 968 return RegisterNativesImpl(env); |
| 961 } | 969 } |
| 962 | 970 |
| 963 } // namespace content | 971 } // namespace content |
| OLD | NEW |