Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSilenio Quarti2010-01-21 07:03:02 +0000
committerSilenio Quarti2010-01-21 07:03:02 +0000
commit83db1e49599507e2f84db844cdae1d27b7fa8c4b (patch)
treee959952847e7ab39bfffefa69c9321e9ffef0ece
parentd4cdd748114192e532991017600e7fa3d0a159d6 (diff)
downloadeclipse.platform.swt-83db1e49599507e2f84db844cdae1d27b7fa8c4b.tar.gz
eclipse.platform.swt-83db1e49599507e2f84db844cdae1d27b7fa8c4b.tar.xz
eclipse.platform.swt-83db1e49599507e2f84db844cdae1d27b7fa8c4b.zip
*** empty log message ***
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Accessibility/gtk/org/eclipse/swt/accessibility/AccessibleObject.java84
1 files changed, 67 insertions, 17 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Accessibility/gtk/org/eclipse/swt/accessibility/AccessibleObject.java b/bundles/org.eclipse.swt/Eclipse SWT Accessibility/gtk/org/eclipse/swt/accessibility/AccessibleObject.java
index c207e440a7..23268a930e 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Accessibility/gtk/org/eclipse/swt/accessibility/AccessibleObject.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Accessibility/gtk/org/eclipse/swt/accessibility/AccessibleObject.java
@@ -971,7 +971,7 @@ class AccessibleObject {
}
Accessible result = event.accessible;
if (result != null) {
- listeners = result.accessibleTableListeners;
+ listeners = result.accessibleTableCellListeners;
AccessibleTableCellEvent cellEvent = new AccessibleTableCellEvent(result);
cellEvent.count = (int)/*64*/parentResult;
for (int i = 0, length = listeners.size(); i < length; i++) {
@@ -1004,7 +1004,7 @@ class AccessibleObject {
}
Accessible result = event.accessible;
if (result != null) {
- listeners = result.accessibleTableListeners;
+ listeners = result.accessibleTableCellListeners;
AccessibleTableCellEvent cellEvent = new AccessibleTableCellEvent(result);
cellEvent.count = (int)/*64*/parentResult;
for (int i = 0, length = listeners.size(); i < length; i++) {
@@ -1101,8 +1101,22 @@ class AccessibleObject {
parentResult = ATK.call (iface.get_column_header, atkObject, column);
}
if (object != null) {
- //TODO
- return 0;
+ Accessible accessible = object.accessible;
+ Vector listeners = accessible.accessibleTableListeners;
+ int length = listeners.size();
+ if (length > 0) {
+ AccessibleTableEvent event = new AccessibleTableEvent(accessible);
+ for (int i = 0; i < length; i++) {
+ AccessibleTableListener listener = (AccessibleTableListener) listeners.elementAt(i);
+ listener.getRowHeaders(event);
+ }
+ Accessible[] accessibles = event.accessibles;
+ if (accessibles != null) {
+ if (0 <= column && column < accessibles.length) {
+ return accessibles[(int)/*64*/column].accessibleObject.handle;
+ }
+ }
+ }
}
return parentResult;
}
@@ -1141,8 +1155,22 @@ class AccessibleObject {
parentResult = ATK.call (iface.get_row_header, atkObject, row);
}
if (object != null) {
- //TODO
- return 0;
+ Accessible accessible = object.accessible;
+ Vector listeners = accessible.accessibleTableListeners;
+ int length = listeners.size();
+ if (length > 0) {
+ AccessibleTableEvent event = new AccessibleTableEvent(accessible);
+ for (int i = 0; i < length; i++) {
+ AccessibleTableListener listener = (AccessibleTableListener) listeners.elementAt(i);
+ listener.getRowHeaders(event);
+ }
+ Accessible[] accessibles = event.accessibles;
+ if (accessibles != null) {
+ if (0 <= row && row < accessibles.length) {
+ return accessibles[(int)/*64*/row].accessibleObject.handle;
+ }
+ }
+ }
}
return parentResult;
}
@@ -1160,7 +1188,7 @@ class AccessibleObject {
AccessibleTableListener listener = (AccessibleTableListener) listeners.elementAt(i);
listener.getSelectedColumns(event);
}
- int count = Math.min(event.count, event.selected != null ? event.selected.length : 0);
+ int count = event.selected != null ? event.selected.length : 0;
int /*long*/ result = OS.g_malloc(count * 4);
if (event.selected != null) OS.memmove(result, event.selected, count * 4);
if (selected != 0) OS.memmove(selected, new int /*long*/[]{result}, C.PTR_SIZEOF);
@@ -1188,7 +1216,7 @@ class AccessibleObject {
AccessibleTableListener listener = (AccessibleTableListener) listeners.elementAt(i);
listener.getSelectedRows(event);
}
- int count = Math.min(event.count, event.selected != null ? event.selected.length : 0);
+ int count = event.selected != null ? event.selected.length : 0;
int /*long*/ result = OS.g_malloc(count * 4);
if (event.selected != null) OS.memmove(result, event.selected, count * 4);
if (selected != 0) OS.memmove(selected, new int /*long*/[]{result}, C.PTR_SIZEOF);
@@ -1275,7 +1303,7 @@ class AccessibleObject {
}
Accessible result = event.accessible;
if (result != null) {
- listeners = result.accessibleTableListeners;
+ listeners = result.accessibleTableCellListeners;
AccessibleTableCellEvent cellEvent = new AccessibleTableCellEvent(result);
cellEvent.isSelected = parentResult != 0;
for (int i = 0, length = listeners.size(); i < length; i++) {
@@ -1291,15 +1319,26 @@ class AccessibleObject {
static int /*long*/ atkTable_add_row_selection (int /*long*/ atkObject, int /*long*/ row) {
if (DEBUG) System.out.println ("-->atkTable_add_row_selection");
AccessibleObject object = getAccessibleObject (atkObject);
+ if (object != null) {
+ Accessible accessible = object.accessible;
+ Vector listeners = accessible.accessibleTableListeners;
+ int length = listeners.size();
+ if (length > 0) {
+ AccessibleTableEvent event = new AccessibleTableEvent(accessible);
+ event.column = (int)/*64*/row;
+ for (int i = 0; i < length; i++) {
+ AccessibleTableListener listener = (AccessibleTableListener) listeners.elementAt(i);
+ listener.selectRow(event);
+ }
+ //TODO should listener return if it did it or not
+ return 1;
+ }
+ }
int /*long*/ parentResult = 0;
AtkTableIface iface = getTableIface (atkObject);
if (iface != null && iface.add_row_selection != 0) {
parentResult = ATK.call (iface.add_row_selection, atkObject, row);
}
- if (object != null) {
- //TODO
- return 0;
- }
return parentResult;
}
@@ -1332,15 +1371,26 @@ class AccessibleObject {
static int /*long*/ atkTable_add_column_selection (int /*long*/ atkObject, int /*long*/ column) {
if (DEBUG) System.out.println ("-->atkTable_add_column_selection");
AccessibleObject object = getAccessibleObject (atkObject);
+ if (object != null) {
+ Accessible accessible = object.accessible;
+ Vector listeners = accessible.accessibleTableListeners;
+ int length = listeners.size();
+ if (length > 0) {
+ AccessibleTableEvent event = new AccessibleTableEvent(accessible);
+ event.column = (int)/*64*/column;
+ for (int i = 0; i < length; i++) {
+ AccessibleTableListener listener = (AccessibleTableListener) listeners.elementAt(i);
+ listener.selectColumn(event);
+ }
+ //TODO should listener return if it did it or not
+ return 1;
+ }
+ }
int /*long*/ parentResult = 0;
AtkTableIface iface = getTableIface (atkObject);
if (iface != null && iface.add_column_selection != 0) {
parentResult = ATK.call (iface.add_column_selection, atkObject, column);
}
- if (object != null) {
- //TODO
- return 0;
- }
return parentResult;
}

Back to the top