| 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 573 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 584 } | 584 } |
| 585 | 585 |
| 586 return true; | 586 return true; |
| 587 } | 587 } |
| 588 | 588 |
| 589 void BrowserAccessibilityManagerAndroid::Click(JNIEnv* env, | 589 void BrowserAccessibilityManagerAndroid::Click(JNIEnv* env, |
| 590 const JavaParamRef<jobject>& obj, | 590 const JavaParamRef<jobject>& obj, |
| 591 jint id) { | 591 jint id) { |
| 592 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); | 592 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); |
| 593 if (node) | 593 if (node) |
| 594 DoDefaultAction(*node); | 594 node->manager()->DoDefaultAction(*node); |
| 595 } | 595 } |
| 596 | 596 |
| 597 void BrowserAccessibilityManagerAndroid::Focus(JNIEnv* env, | 597 void BrowserAccessibilityManagerAndroid::Focus(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 SetFocus(*node); | 602 node->manager()->SetFocus(*node); |
| 603 } | 603 } |
| 604 | 604 |
| 605 void BrowserAccessibilityManagerAndroid::Blur( | 605 void BrowserAccessibilityManagerAndroid::Blur( |
| 606 JNIEnv* env, | 606 JNIEnv* env, |
| 607 const JavaParamRef<jobject>& obj) { | 607 const JavaParamRef<jobject>& obj) { |
| 608 SetFocus(*GetRoot()); | 608 SetFocus(*GetRoot()); |
| 609 } | 609 } |
| 610 | 610 |
| 611 void BrowserAccessibilityManagerAndroid::ScrollToMakeNodeVisible( | 611 void BrowserAccessibilityManagerAndroid::ScrollToMakeNodeVisible( |
| 612 JNIEnv* env, | 612 JNIEnv* env, |
| 613 const JavaParamRef<jobject>& obj, | 613 const JavaParamRef<jobject>& obj, |
| 614 jint id) { | 614 jint id) { |
| 615 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); | 615 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); |
| 616 if (node) | 616 if (node) |
| 617 ScrollToMakeVisible(*node, gfx::Rect(node->GetFrameBoundsRect().size())); | 617 node->manager()->ScrollToMakeVisible( |
| 618 *node, gfx::Rect(node->GetFrameBoundsRect().size())); |
| 618 } | 619 } |
| 619 | 620 |
| 620 void BrowserAccessibilityManagerAndroid::SetTextFieldValue( | 621 void BrowserAccessibilityManagerAndroid::SetTextFieldValue( |
| 621 JNIEnv* env, | 622 JNIEnv* env, |
| 622 const JavaParamRef<jobject>& obj, | 623 const JavaParamRef<jobject>& obj, |
| 623 jint id, | 624 jint id, |
| 624 const JavaParamRef<jstring>& value) { | 625 const JavaParamRef<jstring>& value) { |
| 625 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); | 626 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); |
| 626 if (node) { | 627 if (node) { |
| 627 BrowserAccessibilityManager::SetValue( | 628 node->manager()->SetValue( |
| 628 *node, base::android::ConvertJavaStringToUTF16(env, value)); | 629 *node, base::android::ConvertJavaStringToUTF16(env, value)); |
| 629 } | 630 } |
| 630 } | 631 } |
| 631 | 632 |
| 632 void BrowserAccessibilityManagerAndroid::SetSelection( | 633 void BrowserAccessibilityManagerAndroid::SetSelection( |
| 633 JNIEnv* env, | 634 JNIEnv* env, |
| 634 const JavaParamRef<jobject>& obj, | 635 const JavaParamRef<jobject>& obj, |
| 635 jint id, | 636 jint id, |
| 636 jint start, | 637 jint start, |
| 637 jint end) { | 638 jint end) { |
| 638 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); | 639 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); |
| 639 if (node) | 640 if (node) |
| 640 SetTextSelection(*node, start, end); | 641 node->manager()->SetTextSelection(*node, start, end); |
| 641 } | 642 } |
| 642 | 643 |
| 643 jboolean BrowserAccessibilityManagerAndroid::AdjustSlider( | 644 jboolean BrowserAccessibilityManagerAndroid::AdjustSlider( |
| 644 JNIEnv* env, | 645 JNIEnv* env, |
| 645 const JavaParamRef<jobject>& obj, | 646 const JavaParamRef<jobject>& obj, |
| 646 jint id, | 647 jint id, |
| 647 jboolean increment) { | 648 jboolean increment) { |
| 648 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); | 649 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); |
| 649 if (!node) | 650 if (!node) |
| 650 return false; | 651 return false; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 661 if (max <= min) | 662 if (max <= min) |
| 662 return false; | 663 return false; |
| 663 | 664 |
| 664 // To behave similarly to an Android SeekBar, move by an increment of | 665 // To behave similarly to an Android SeekBar, move by an increment of |
| 665 // approximately 20%. | 666 // approximately 20%. |
| 666 float original_value = value; | 667 float original_value = value; |
| 667 float delta = (max - min) / 5.0f; | 668 float delta = (max - min) / 5.0f; |
| 668 value += (increment ? delta : -delta); | 669 value += (increment ? delta : -delta); |
| 669 value = std::max(std::min(value, max), min); | 670 value = std::max(std::min(value, max), min); |
| 670 if (value != original_value) { | 671 if (value != original_value) { |
| 671 BrowserAccessibilityManager::SetValue( | 672 node->manager()->SetValue( |
| 672 *node, base::UTF8ToUTF16(base::DoubleToString(value))); | 673 *node, base::UTF8ToUTF16(base::DoubleToString(value))); |
| 673 return true; | 674 return true; |
| 674 } | 675 } |
| 675 return false; | 676 return false; |
| 676 } | 677 } |
| 677 | 678 |
| 678 void BrowserAccessibilityManagerAndroid::HandleHoverEvent( | 679 void BrowserAccessibilityManagerAndroid::HandleHoverEvent( |
| 679 BrowserAccessibility* node) { | 680 BrowserAccessibility* node) { |
| 680 JNIEnv* env = AttachCurrentThread(); | 681 JNIEnv* env = AttachCurrentThread(); |
| 681 ScopedJavaLocalRef<jobject> obj = GetJavaRefFromRootManager(); | 682 ScopedJavaLocalRef<jobject> obj = GetJavaRefFromRootManager(); |
| (...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 870 NOTREACHED(); | 871 NOTREACHED(); |
| 871 } | 872 } |
| 872 | 873 |
| 873 return true; | 874 return true; |
| 874 } | 875 } |
| 875 | 876 |
| 876 void BrowserAccessibilityManagerAndroid::SetAccessibilityFocus( | 877 void BrowserAccessibilityManagerAndroid::SetAccessibilityFocus( |
| 877 JNIEnv* env, | 878 JNIEnv* env, |
| 878 const JavaParamRef<jobject>& obj, | 879 const JavaParamRef<jobject>& obj, |
| 879 jint id) { | 880 jint id) { |
| 880 if (delegate_) | 881 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); |
| 881 delegate_->AccessibilitySetAccessibilityFocus(id); | 882 if (!node) |
| 883 return; |
| 884 |
| 885 if (node->manager()->delegate()) { |
| 886 node->manager()->delegate()->AccessibilitySetAccessibilityFocus( |
| 887 node->GetId()); |
| 888 } |
| 882 } | 889 } |
| 883 | 890 |
| 884 bool BrowserAccessibilityManagerAndroid::IsSlider( | 891 bool BrowserAccessibilityManagerAndroid::IsSlider( |
| 885 JNIEnv* env, | 892 JNIEnv* env, |
| 886 const JavaParamRef<jobject>& obj, | 893 const JavaParamRef<jobject>& obj, |
| 887 jint id) { | 894 jint id) { |
| 888 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); | 895 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); |
| 889 if (!node) | 896 if (!node) |
| 890 return false; | 897 return false; |
| 891 | 898 |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 943 | 950 |
| 944 JNIEnv* env = AttachCurrentThread(); | 951 JNIEnv* env = AttachCurrentThread(); |
| 945 return root_manager->java_ref().get(env); | 952 return root_manager->java_ref().get(env); |
| 946 } | 953 } |
| 947 | 954 |
| 948 bool RegisterBrowserAccessibilityManager(JNIEnv* env) { | 955 bool RegisterBrowserAccessibilityManager(JNIEnv* env) { |
| 949 return RegisterNativesImpl(env); | 956 return RegisterNativesImpl(env); |
| 950 } | 957 } |
| 951 | 958 |
| 952 } // namespace content | 959 } // namespace content |
| OLD | NEW |