1 /* 2 * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 #include "jni.h" 27 28 #import <AppKit/AppKit.h> 29 30 //#define JAVA_AX_DEBUG 1 31 //#define JAVA_AX_NO_IGNORES 1 32 //#define JAVA_AX_DEBUG_PARMS 1 33 34 35 @interface JavaComponentAccessibility : NSObject { 36 NSView *fView; 37 NSObject *fParent; 38 39 NSString *fNSRole; 40 NSString *fJavaRole; 41 42 jint fIndex; 43 jobject fAccessible; 44 jobject fComponent; 45 46 NSMutableDictionary *fActions; 47 NSObject *fActionsLOCK; 48 } 49 50 - (id)initWithParent:(NSObject*)parent withEnv:(JNIEnv *)env withAccessible:(jobject)accessible withIndex:(jint)index withView:(NSView *)view withJavaRole:(NSString *)javaRole; 51 - (void)unregisterFromCocoaAXSystem; 52 - (void)postValueChanged; 53 - (void)postSelectionChanged; 54 - (BOOL)isEqual:(id)anObject; 55 - (BOOL)isAccessibleWithEnv:(JNIEnv *)env forAccessible:(jobject)accessible; 56 57 + (void)postFocusChanged:(id)message; 58 59 + (NSArray*)childrenOfParent:(JavaComponentAccessibility*)parent withEnv:(JNIEnv *)env withChildrenCode:(NSInteger)whichChildren allowIgnored:(BOOL)allowIgnored; 60 + (JavaComponentAccessibility *) createWithParent:(JavaComponentAccessibility *)parent accessible:(jobject)jaccessible role:(NSString *)javaRole index:(jint)index withEnv:(JNIEnv *)env withView:(NSView *)view; 61 + (JavaComponentAccessibility *) createWithAccessible:(jobject)jaccessible role:(NSString *)role index:(jint)index withEnv:(JNIEnv *)env withView:(NSView *)view; 62 + (JavaComponentAccessibility *) createWithAccessible:(jobject)jaccessible withEnv:(JNIEnv *)env withView:(NSView *)view; 63 64 - (NSDictionary*)getActions:(JNIEnv *)env; 65 - (void)getActionsWithEnv:(JNIEnv *)env; 66 67 - (jobject)axContextWithEnv:(JNIEnv *)env; 68 - (NSView*)view; 69 - (NSWindow*)window; 70 - (id)parent; 71 - (NSString *)javaRole; 72 - (BOOL)isMenu; 73 - (BOOL)isSelected:(JNIEnv *)env; 74 - (BOOL)isVisible:(JNIEnv *)env; 75 76 // attribute names 77 - (NSArray *)initializeAttributeNamesWithEnv:(JNIEnv *)env; 78 - (NSArray *)accessibilityAttributeNames; 79 80 // attributes 81 - (id)accessibilityAttributeValue:(NSString *)attribute; 82 - (BOOL)accessibilityIsAttributeSettable:(NSString *)attribute; 83 - (void)accessibilitySetValue:(id)value forAttribute:(NSString *)attribute; 84 85 - (NSArray *)accessibilityChildrenAttribute; 86 - (BOOL)accessibilityIsChildrenAttributeSettable; 87 - (NSUInteger)accessibilityIndexOfChild:(id)child; 88 - (NSNumber *)accessibilityEnabledAttribute; 89 - (BOOL)accessibilityIsEnabledAttributeSettable; 90 - (NSNumber *)accessibilityFocusedAttribute; 91 - (BOOL)accessibilityIsFocusedAttributeSettable; 92 - (void)accessibilitySetFocusedAttribute:(id)value; 93 - (NSString *)accessibilityHelpAttribute; 94 - (BOOL)accessibilityIsHelpAttributeSettable; 95 - (id)accessibilityMaxValueAttribute; 96 - (BOOL)accessibilityIsMaxValueAttributeSettable; 97 - (id)accessibilityMinValueAttribute; 98 - (BOOL)accessibilityIsMinValueAttributeSettable; 99 - (id)accessibilityOrientationAttribute; 100 - (BOOL)accessibilityIsOrientationAttributeSettable; 101 - (id)accessibilityParentAttribute; 102 - (BOOL)accessibilityIsParentAttributeSettable; 103 - (NSValue *)accessibilityPositionAttribute; 104 - (BOOL)accessibilityIsPositionAttributeSettable; 105 - (NSString *)accessibilityRoleAttribute; 106 - (BOOL)accessibilityIsRoleAttributeSettable; 107 - (NSString *)accessibilityRoleDescriptionAttribute; 108 - (BOOL)accessibilityIsRoleDescriptionAttributeSettable; 109 - (NSArray *)accessibilitySelectedChildrenAttribute; 110 - (BOOL)accessibilityIsSelectedChildrenAttributeSettable; 111 - (NSValue *)accessibilitySizeAttribute; 112 - (BOOL)accessibilityIsSizeAttributeSettable; 113 - (NSString *)accessibilitySubroleAttribute; 114 - (BOOL)accessibilityIsSubroleAttributeSettable; 115 - (NSString *)accessibilityTitleAttribute; 116 - (BOOL)accessibilityIsTitleAttributeSettable; 117 - (NSWindow *)accessibilityTopLevelUIElementAttribute; 118 - (BOOL)accessibilityIsTopLevelUIElementAttributeSettable; 119 - (id)accessibilityValueAttribute; 120 - (BOOL)accessibilityIsValueAttributeSettable; 121 - (void)accessibilitySetValueAttribute:(id)value; 122 - (NSArray *)accessibilityVisibleChildrenAttribute; 123 - (BOOL)accessibilityIsVisibleChildrenAttributeSettable; 124 - (id)accessibilityWindowAttribute; 125 - (BOOL)accessibilityIsWindowAttributeSettable; 126 127 // actions 128 - (NSArray *)accessibilityActionNames; 129 - (NSString *)accessibilityActionDescription:(NSString *)action; 130 - (void)accessibilityPerformAction:(NSString *)action; 131 132 - (BOOL)accessibilityIsIgnored; 133 - (id)accessibilityHitTest:(NSPoint)point withEnv:(JNIEnv *)env; 134 - (id)accessibilityFocusedUIElement; 135 136 @end