summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Kovatch <skovatch>2010-04-27 19:37:27 +0000
committerScott Kovatch <skovatch>2010-04-27 19:37:27 +0000
commitbfc24124b9a37337134bc489e618940b95fe4ed5 (patch)
treef057e41904168e116221f7efd0dd1c667842d184
parent6c23fe12fa52a868bd662bb2210990749c396125 (diff)
downloadeclipse.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.
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT Accessibility/cocoa/org/eclipse/swt/accessibility/Accessible.java10
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Accessibility/cocoa/org/eclipse/swt/accessibility/TableAccessibleDelegate.java6
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/library/os.c12
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/library/os_stats.c5
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/library/os_stats.h1
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/org/eclipse/swt/internal/cocoa/AppKitFull.bridgesupport.extras1
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/org/eclipse/swt/internal/cocoa/OS.java3
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 */