diff options
author | Scott Kovatch <skovatch> | 2010-04-27 19:37:27 +0000 |
---|---|---|
committer | Scott Kovatch <skovatch> | 2010-04-27 19:37:27 +0000 |
commit | bfc24124b9a37337134bc489e618940b95fe4ed5 (patch) | |
tree | f057e41904168e116221f7efd0dd1c667842d184 | |
parent | 6c23fe12fa52a868bd662bb2210990749c396125 (diff) | |
download | eclipse.platform.swt-bfc24124b9a37337134bc489e618940b95fe4ed5.tar.gz eclipse.platform.swt-bfc24124b9a37337134bc489e618940b95fe4ed5.tar.xz eclipse.platform.swt-bfc24124b9a37337134bc489e618940b95fe4ed5.zip |
Add support for EVENT_TABLE_CHANGED. Fire correct Cocoa notifications and reset row/column caches.
7 files changed, 34 insertions, 4 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Accessibility/cocoa/org/eclipse/swt/accessibility/Accessible.java b/bundles/org.eclipse.swt/Eclipse SWT Accessibility/cocoa/org/eclipse/swt/accessibility/Accessible.java index 03addbc7b7..ff3072d438 100755 --- a/bundles/org.eclipse.swt/Eclipse SWT Accessibility/cocoa/org/eclipse/swt/accessibility/Accessible.java +++ b/bundles/org.eclipse.swt/Eclipse SWT Accessibility/cocoa/org/eclipse/swt/accessibility/Accessible.java @@ -2991,7 +2991,6 @@ public class Accessible { id eventSource = accessibleHandle(this); switch (event) { - case ACC.EVENT_TABLE_CHANGED: case ACC.EVENT_TEXT_CHANGED: case ACC.EVENT_VALUE_CHANGED: case ACC.EVENT_STATE_CHANGED: @@ -3026,7 +3025,14 @@ public class Accessible { OS.NSAccessibilityPostNotification(eventSource.id, OS.NSAccessibilityTitleChangedNotification.id); break; case ACC.EVENT_TEXT_CARET_MOVED: OS.NSAccessibilityPostNotification(eventSource.id, OS.NSAccessibilitySelectedTextChangedNotification.id); break; - + case ACC.EVENT_TABLE_CHANGED: + if (tableDelegate != null) { + tableDelegate.reset(); + getRowsAttribute(ACC.CHILDID_SELF); + getColumnsAttribute(ACC.CHILDID_SELF); + } + OS.NSAccessibilityPostNotification(eventSource.id, OS.NSAccessibilityRowCountChangedNotification.id); break; + // None of these correspond to anything in Cocoa. case ACC.EVENT_HYPERTEXT_LINK_SELECTED: case ACC.EVENT_DOCUMENT_LOAD_COMPLETE: diff --git a/bundles/org.eclipse.swt/Eclipse SWT Accessibility/cocoa/org/eclipse/swt/accessibility/TableAccessibleDelegate.java b/bundles/org.eclipse.swt/Eclipse SWT Accessibility/cocoa/org/eclipse/swt/accessibility/TableAccessibleDelegate.java index ae11abc0af..c8b246a27a 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT Accessibility/cocoa/org/eclipse/swt/accessibility/TableAccessibleDelegate.java +++ b/bundles/org.eclipse.swt/Eclipse SWT Accessibility/cocoa/org/eclipse/swt/accessibility/TableAccessibleDelegate.java @@ -279,4 +279,10 @@ class TableAccessibleDelegate { childColumnToIdMap = null; } } + + void reset() { + release(); + childColumnToIdMap = new HashMap(); + childRowToIdMap = new HashMap(); + } } diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/library/os.c b/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/library/os.c index d8f92f6b76..b63a315417 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/library/os.c +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/library/os.c @@ -3392,6 +3392,18 @@ JNIEXPORT jintLong JNICALL OS_NATIVE(NSAccessibilityRoleDescriptionForUIElement) } #endif +#ifndef NO_NSAccessibilityRowCountChangedNotification +JNIEXPORT jintLong JNICALL OS_NATIVE(NSAccessibilityRowCountChangedNotification) + (JNIEnv *env, jclass that) +{ + jintLong rc = 0; + OS_NATIVE_ENTER(env, that, NSAccessibilityRowCountChangedNotification_FUNC); + rc = (jintLong)NSAccessibilityRowCountChangedNotification; + OS_NATIVE_EXIT(env, that, NSAccessibilityRowCountChangedNotification_FUNC); + return rc; +} +#endif + #ifndef NO_NSAccessibilityRowRole JNIEXPORT jintLong JNICALL OS_NATIVE(NSAccessibilityRowRole) (JNIEnv *env, jclass that) diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/library/os_stats.c b/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/library/os_stats.c index 9aac3ac911..9c5e1c3d54 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/library/os_stats.c +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/library/os_stats.c @@ -14,8 +14,8 @@ #ifdef NATIVE_STATS -int OS_nativeFunctionCount = 584; -int OS_nativeFunctionCallCount[584]; +int OS_nativeFunctionCount = 585; +int OS_nativeFunctionCallCount[585]; char * OS_nativeFunctionNames[] = { "ATSFontActivateFromFileReference", "AcquireRootMenu", @@ -256,6 +256,7 @@ char * OS_nativeFunctionNames[] = { "NSAccessibilityRoleDescription", "NSAccessibilityRoleDescriptionAttribute", "NSAccessibilityRoleDescriptionForUIElement", + "NSAccessibilityRowCountChangedNotification", "NSAccessibilityRowIndexRangeAttribute", "NSAccessibilityRowRole", "NSAccessibilityRowsAttribute", diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/library/os_stats.h b/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/library/os_stats.h index a1c8676236..907fa39744 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/library/os_stats.h +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/library/os_stats.h @@ -264,6 +264,7 @@ typedef enum { NSAccessibilityRoleDescription_FUNC, NSAccessibilityRoleDescriptionAttribute_FUNC, NSAccessibilityRoleDescriptionForUIElement_FUNC, + NSAccessibilityRowCountChangedNotification_FUNC, NSAccessibilityRowIndexRangeAttribute_FUNC, NSAccessibilityRowRole_FUNC, NSAccessibilityRowsAttribute_FUNC, diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/org/eclipse/swt/internal/cocoa/AppKitFull.bridgesupport.extras b/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/org/eclipse/swt/internal/cocoa/AppKitFull.bridgesupport.extras index 460b0292c6..bf4d5902fe 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/org/eclipse/swt/internal/cocoa/AppKitFull.bridgesupport.extras +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/org/eclipse/swt/internal/cocoa/AppKitFull.bridgesupport.extras @@ -4266,6 +4266,7 @@ <constant name="NSAccessibilityResizedNotification" swt_gen="true"></constant> <constant name="NSAccessibilityRoleAttribute" swt_gen="true"></constant> <constant name="NSAccessibilityRoleDescriptionAttribute" swt_gen="true"></constant> + <constant name="NSAccessibilityRowCountChangedNotification" swt_gen="true"></constant> <constant name="NSAccessibilityRowRole" swt_gen="true"></constant> <constant name="NSAccessibilityRowsAttribute" swt_gen="true"></constant> <constant name="NSAccessibilityScrollAreaRole" swt_gen="true"></constant> diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/org/eclipse/swt/internal/cocoa/OS.java b/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/org/eclipse/swt/internal/cocoa/OS.java index ee676fe355..1d13958a6f 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/org/eclipse/swt/internal/cocoa/OS.java +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/org/eclipse/swt/internal/cocoa/OS.java @@ -2428,6 +2428,9 @@ public static final NSString NSAccessibilityRoleAttribute = new NSString(NSAcces public static final native int /*long*/ NSAccessibilityRoleDescriptionAttribute(); public static final NSString NSAccessibilityRoleDescriptionAttribute = new NSString(NSAccessibilityRoleDescriptionAttribute()); /** @method flags=const */ +public static final native int /*long*/ NSAccessibilityRowCountChangedNotification(); +public static final NSString NSAccessibilityRowCountChangedNotification = new NSString(NSAccessibilityRowCountChangedNotification()); +/** @method flags=const */ public static final native int /*long*/ NSAccessibilityRowRole(); public static final NSString NSAccessibilityRowRole = new NSString(NSAccessibilityRowRole()); /** @method flags=const */ |