/******************************************************************************* * Copyright (c) 2000, 2010, 2012 IBM Corporation, Gerhardt Informatics Kft. and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation * Gerhardt Informatics Kft. - GEFGWT port *******************************************************************************/ package org.eclipse.swt.accessibility; class AccessibleObject { // long /* int */handle; // int index = -1, id = ACC.CHILDID_SELF; // Accessible accessible; AccessibleObject parent; // AccessibleObject[] children; // /* // * a lightweight object does not correspond to a concrete gtk widget, but // to // * a logical child of a widget (eg.- a CTabItem, which is simply drawn) // */ // boolean isLightweight = false; // // static long /* int */actionNamePtr = -1; // static long /* int */descriptionPtr = -1; // static long /* int */keybindingPtr = -1; // static long /* int */namePtr = -1; // static final Hashtable AccessibleObjects = new Hashtable(9); // static final boolean DEBUG = Device.DEBUG; // // static final int ROW_ROLE, COLUMN_ROLE; // static { // ROW_ROLE = ATK // .atk_role_register(Converter.wcsToMbcs(null, "row", true)); //$NON-NLS-1$ // COLUMN_ROLE = ATK.atk_role_register(Converter.wcsToMbcs(null, // "column", true)); //$NON-NLS-1$ // } // // AccessibleObject(long /* int */type, long /* int */widget, // Accessible accessible, boolean isLightweight) { // super(); // handle = ATK.g_object_new(type, 0); // ATK.atk_object_initialize(handle, widget); // this.accessible = accessible; // this.isLightweight = isLightweight; // AccessibleObjects.put(new LONG(handle), this); // if (DEBUG) // print("new AccessibleObject: " + handle + " control=" // + accessible.control + " lw=" + isLightweight); // } // // static void print(String str) { // System.out.println(str); // } // // static AtkActionIface getActionIface(long /* int */atkObject) { // if (ATK.g_type_is_a(OS.g_type_parent(OS.G_OBJECT_TYPE(atkObject)), // ATK.ATK_TYPE_ACTION())) { // AtkActionIface iface = new AtkActionIface(); // ATK.memmove(iface, ATK.g_type_interface_peek_parent(ATK // .ATK_ACTION_GET_IFACE(atkObject))); // return iface; // } // return null; // } // // static long /* int */atkAction_do_action(long /* int */atkObject, // long /* int */index) { // if (DEBUG) // print("-->atkAction_do_action"); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleActionListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleActionEvent event = new AccessibleActionEvent( // accessible); // event.index = (int) /* 64 */index; // for (int i = 0; i < length; i++) { // AccessibleActionListener listener = (AccessibleActionListener) listeners // .elementAt(i); // listener.doAction(event); // } // return ACC.OK.equals(event.result) ? 1 : 0; // } // } // long /* int */parentResult = 0; // AtkActionIface iface = getActionIface(atkObject); // if (iface != null && iface.do_action != 0) { // parentResult = ATK.call(iface.do_action, atkObject, index); // } // return parentResult; // } // // static long /* int */atkAction_get_n_actions(long /* int */atkObject) { // if (DEBUG) // print("-->atkAction_get_n_actions"); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleActionListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleActionEvent event = new AccessibleActionEvent( // accessible); // for (int i = 0; i < length; i++) { // AccessibleActionListener listener = (AccessibleActionListener) listeners // .elementAt(i); // listener.getActionCount(event); // } // return event.count; // } // } // long /* int */parentResult = 0; // AtkActionIface iface = getActionIface(atkObject); // if (iface != null && iface.get_n_actions != 0) { // parentResult = ATK.call(iface.get_n_actions, atkObject); // } // return parentResult; // } // // static long /* int */atkAction_get_description(long /* int */atkObject, // long /* int */index) { // if (DEBUG) // print("-->atkAction_get_description"); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleActionListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleActionEvent event = new AccessibleActionEvent( // accessible); // event.index = (int) /* 64 */index; // for (int i = 0; i < length; i++) { // AccessibleActionListener listener = (AccessibleActionListener) listeners // .elementAt(i); // listener.getDescription(event); // } // if (event.result == null) // return 0; // if (descriptionPtr != -1) // OS.g_free(descriptionPtr); // return descriptionPtr = getStringPtr(event.result); // } // } // long /* int */parentResult = 0; // AtkActionIface iface = getActionIface(atkObject); // if (iface != null && iface.get_description != 0) { // parentResult = ATK.call(iface.get_description, atkObject, index); // } // return parentResult; // } // // static long /* int */atkAction_get_keybinding(long /* int */atkObject, // long /* int */index) { // if (DEBUG) // print("-->atkAction_get_keybinding"); // AccessibleObject object = getAccessibleObject(atkObject); // long /* int */parentResult = 0; // AtkActionIface iface = getActionIface(atkObject); // if (iface != null && iface.get_keybinding != 0) { // parentResult = ATK.call(iface.get_keybinding, atkObject, index); // } // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleActionListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleActionEvent event = new AccessibleActionEvent( // accessible); // event.index = (int) /* 64 */index; // for (int i = 0; i < length; i++) { // AccessibleActionListener listener = (AccessibleActionListener) listeners // .elementAt(i); // listener.getKeyBinding(event); // } // if (event.result != null) { // if (keybindingPtr != -1) // OS.g_free(keybindingPtr); // return keybindingPtr = getStringPtr(event.result); // } // } // listeners = accessible.accessibleListeners; // length = listeners.size(); // if (length > 0) { // AccessibleEvent event = new AccessibleEvent(accessible); // event.childID = object.id; // if (parentResult != 0) // event.result = getString(parentResult); // for (int i = 0; i < length; i++) { // AccessibleListener listener = (AccessibleListener) listeners // .elementAt(i); // listener.getKeyboardShortcut(event); // } // if (event.result != null) { // if (keybindingPtr != -1) // OS.g_free(keybindingPtr); // return keybindingPtr = getStringPtr(event.result); // } // } // } // return parentResult; // } // // static long /* int */atkAction_get_name(long /* int */atkObject, // long /* int */index) { // if (DEBUG) // print("-->atkAction_get_name"); // AccessibleObject object = getAccessibleObject(atkObject); // long /* int */parentResult = 0; // AtkActionIface iface = getActionIface(atkObject); // if (iface != null && iface.get_name != 0) { // parentResult = ATK.call(iface.get_name, atkObject, index); // } // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleActionListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleActionEvent event = new AccessibleActionEvent( // accessible); // event.index = (int) /* 64 */index; // for (int i = 0; i < length; i++) { // AccessibleActionListener listener = (AccessibleActionListener) listeners // .elementAt(i); // listener.getName(event); // } // if (event.result != null) { // if (actionNamePtr != -1) // OS.g_free(actionNamePtr); // return actionNamePtr = getStringPtr(event.result); // } // } // if (index == 0) { // listeners = accessible.accessibleControlListeners; // length = listeners.size(); // if (length > 0) { // AccessibleControlEvent event = new AccessibleControlEvent( // accessible); // event.childID = object.id; // if (parentResult != 0) // event.result = getString(parentResult); // for (int i = 0; i < length; i++) { // AccessibleControlListener listener = (AccessibleControlListener) // listeners // .elementAt(i); // listener.getDefaultAction(event); // } // if (event.result != null) { // if (actionNamePtr != -1) // OS.g_free(actionNamePtr); // return actionNamePtr = getStringPtr(event.result); // } // } // } // } // return parentResult; // } // // static AtkComponentIface getComponentIface(long /* int */atkObject) { // if (ATK.g_type_is_a(OS.g_type_parent(OS.G_OBJECT_TYPE(atkObject)), // ATK.ATK_TYPE_COMPONENT())) { // AtkComponentIface iface = new AtkComponentIface(); // ATK.memmove(iface, ATK.g_type_interface_peek_parent(ATK // .ATK_COMPONENT_GET_IFACE(atkObject))); // return iface; // } // return null; // } // // static long /* int */atkComponent_get_extents(long /* int */atkObject, // long /* int */x, long /* int */y, long /* int */width, // long /* int */height, long /* int */coord_type) { // if (DEBUG) // print("-->atkComponent_get_extents: " + atkObject); // AccessibleObject object = getAccessibleObject(atkObject); // OS.memmove(x, new int[] { 0 }, 4); // OS.memmove(y, new int[] { 0 }, 4); // OS.memmove(width, new int[] { 0 }, 4); // OS.memmove(height, new int[] { 0 }, 4); // AtkComponentIface iface = getComponentIface(atkObject); // if (iface != null && iface.get_extents != 0) { // ATK.call(iface.get_extents, atkObject, x, y, width, height, // coord_type); // } // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleControlListeners; // int length = listeners.size(); // if (length > 0) { // int[] parentX = new int[1], parentY = new int[1]; // int[] parentWidth = new int[1], parentHeight = new int[1]; // OS.memmove(parentX, x, 4); // OS.memmove(parentY, y, 4); // OS.memmove(parentWidth, width, 4); // OS.memmove(parentHeight, height, 4); // AccessibleControlEvent event = new AccessibleControlEvent( // accessible); // event.childID = object.id; // event.x = parentX[0]; // event.y = parentY[0]; // event.width = parentWidth[0]; // event.height = parentHeight[0]; // int[] topWindowX = new int[1], topWindowY = new int[1]; // if (coord_type == ATK.ATK_XY_WINDOW) { // windowPoint(object, topWindowX, topWindowY); // event.x += topWindowX[0]; // event.y += topWindowY[0]; // } // for (int i = 0; i < length; i++) { // AccessibleControlListener listener = (AccessibleControlListener) // listeners // .elementAt(i); // listener.getLocation(event); // } // if (coord_type == ATK.ATK_XY_WINDOW) { // event.x -= topWindowX[0]; // event.y -= topWindowY[0]; // } // OS.memmove(x, new int[] { event.x }, 4); // OS.memmove(y, new int[] { event.y }, 4); // OS.memmove(width, new int[] { event.width }, 4); // OS.memmove(height, new int[] { event.height }, 4); // if (DEBUG) // print("--->" + event.x + "," + event.y + "," + event.width // + "x" + event.height); // } // } // return 0; // } // // static long /* int */atkComponent_get_position(long /* int */atkObject, // long /* int */x, long /* int */y, long /* int */coord_type) { // if (DEBUG) // print("-->atkComponent_get_position, object: " + atkObject + " x: " // + x + " y: " + y + " coord: " + coord_type); // AccessibleObject object = getAccessibleObject(atkObject); // OS.memmove(x, new int[] { 0 }, 4); // OS.memmove(y, new int[] { 0 }, 4); // AtkComponentIface iface = getComponentIface(atkObject); // if (iface != null && iface.get_position != 0) { // ATK.call(iface.get_position, atkObject, x, y, coord_type); // } // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleControlListeners; // int length = listeners.size(); // if (length > 0) { // int[] parentX = new int[1], parentY = new int[1]; // OS.memmove(parentX, x, 4); // OS.memmove(parentY, y, 4); // AccessibleControlEvent event = new AccessibleControlEvent( // accessible); // event.childID = object.id; // event.x = parentX[0]; // event.y = parentY[0]; // int[] topWindowX = new int[1], topWindowY = new int[1]; // if (coord_type == ATK.ATK_XY_WINDOW) { // windowPoint(object, topWindowX, topWindowY); // event.x += topWindowX[0]; // event.y += topWindowY[0]; // } // for (int i = 0; i < length; i++) { // AccessibleControlListener listener = (AccessibleControlListener) // listeners // .elementAt(i); // listener.getLocation(event); // } // if (coord_type == ATK.ATK_XY_WINDOW) { // event.x -= topWindowX[0]; // event.y -= topWindowY[0]; // } // OS.memmove(x, new int[] { event.x }, 4); // OS.memmove(y, new int[] { event.y }, 4); // } // } // return 0; // } // // static long /* int */atkComponent_get_size(long /* int */atkObject, // long /* int */width, long /* int */height, long /* int */coord_type) { // if (DEBUG) // print("-->atkComponent_get_size"); // AccessibleObject object = getAccessibleObject(atkObject); // OS.memmove(width, new int[] { 0 }, 4); // OS.memmove(height, new int[] { 0 }, 4); // AtkComponentIface iface = getComponentIface(atkObject); // if (iface != null && iface.get_size != 0) { // ATK.call(iface.get_size, atkObject, width, height, coord_type); // } // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleControlListeners; // int length = listeners.size(); // if (length > 0) { // int[] parentWidth = new int[1], parentHeight = new int[1]; // OS.memmove(parentWidth, width, 4); // OS.memmove(parentHeight, height, 4); // AccessibleControlEvent event = new AccessibleControlEvent( // accessible); // event.childID = object.id; // event.width = parentWidth[0]; // event.height = parentHeight[0]; // for (int i = 0; i < length; i++) { // AccessibleControlListener listener = (AccessibleControlListener) // listeners // .elementAt(i); // listener.getLocation(event); // } // OS.memmove(width, new int[] { event.width }, 4); // OS.memmove(height, new int[] { event.height }, 4); // } // } // return 0; // } // // static long /* int */atkComponent_ref_accessible_at_point( // long /* int */atkObject, long /* int */x, long /* int */y, // long /* int */coord_type) { // if (DEBUG) // print("-->atkComponent_ref_accessible_at_point: " + atkObject + " " // + x + "," + y); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleControlListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleControlEvent event = new AccessibleControlEvent( // accessible); // event.childID = object.id; // event.x = (int) /* 64 */x; // event.y = (int) /* 64 */y; // int[] topWindowX = new int[1], topWindowY = new int[1]; // if (coord_type == ATK.ATK_XY_WINDOW) { // windowPoint(object, topWindowX, topWindowY); // event.x += topWindowX[0]; // event.y += topWindowY[0]; // } // for (int i = 0; i < length; i++) { // AccessibleControlListener listener = (AccessibleControlListener) // listeners // .elementAt(i); // listener.getChildAtPoint(event); // } // if (event.childID == object.id) // event.childID = ACC.CHILDID_SELF; // Accessible result = event.accessible; // AccessibleObject accObj = result != null ? result // .getAccessibleObject() : object // .getChildByID(event.childID); // if (accObj != null) { // return OS.g_object_ref(accObj.handle); // } // } // } // long /* int */parentResult = 0; // AtkComponentIface iface = getComponentIface(atkObject); // if (iface != null && iface.ref_accessible_at_point != 0) { // parentResult = ATK.call(iface.ref_accessible_at_point, atkObject, // x, y, coord_type); // } // return parentResult; // } // // static AtkEditableTextIface getEditableTextIface(long /* int */atkObject) // { // if (ATK.g_type_is_a(OS.g_type_parent(OS.G_OBJECT_TYPE(atkObject)), // ATK.ATK_TYPE_EDITABLE_TEXT())) { // AtkEditableTextIface iface = new AtkEditableTextIface(); // ATK.memmove(iface, ATK.g_type_interface_peek_parent(ATK // .ATK_EDITABLE_TEXT_GET_IFACE(atkObject))); // return iface; // } // return null; // } // // // gboolean atk_editable_text_set_run_attributes(AtkEditableText *text, // // AtkAttributeSet *attrib_set, gint start_offset, gint end_offset); // static long /* int */atkEditableText_set_run_attributes( // long /* int */atkObject, long /* int */attrib_set, // long /* int */start_offset, long /* int */end_offset) { // if (DEBUG) // print("-->atkEditableText_set_run_attributes"); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleEditableTextListeners; // int length = listeners.size(); // if (length > 0) { // Display display = accessible.control.getDisplay(); // long /* int */fontDesc = OS.pango_font_description_new(); // boolean createFont = false; // TextStyle style = new TextStyle(); // String[] attributes = new String[0]; // long /* int */current = attrib_set; // int listLength = OS.g_slist_length(attrib_set); // for (int i = 0; i < listLength; i++) { // long /* int */attrPtr = OS.g_slist_data(current); // if (attrPtr != 0) { // AtkAttribute attr = new AtkAttribute(); // ATK.memmove(attr, attrPtr, AtkAttribute.sizeof); // String name = getString(attr.name); // String value = getString(attr.value); // OS.g_free(attrPtr); // if (DEBUG) // print("name=" + name + ", value=" + value); // String[] newAttributes = new String[attributes.length + 2]; // System.arraycopy(attributes, 0, newAttributes, 0, // attributes.length); // newAttributes[attributes.length] = name; // newAttributes[attributes.length + 1] = value; // attributes = newAttributes; // try { // if (name.equals(getString(ATK // .atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_RISE)))) { // // number of pixels above baseline // style.rise = Integer.parseInt(value); // } else if (name // .equals(getString(ATK // .atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_UNDERLINE)))) { // // "none", "single", "double", "low", or "error" // // (also allow "squiggle") // if (value.equals("single") // || value.equals("low")) { // style.underline = true; // style.underlineStyle = SWT.UNDERLINE_SINGLE; // } else if (value.equals("double")) { // style.underline = true; // style.underlineStyle = SWT.UNDERLINE_DOUBLE; // } else if (value.equals("error")) { // style.underline = true; // style.underlineStyle = SWT.UNDERLINE_ERROR; // } else if (value.equals("squiggle")) { // style.underline = true; // style.underlineStyle = SWT.UNDERLINE_SQUIGGLE; // } // } else if (name // .equals(getString(ATK // .atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_STRIKETHROUGH)))) { // // "true" or "false" (also allow "1" and // // "single") // if (value.equals("true") || value.equals("1") // || value.equals("single")) // style.strikeout = true; // } else if (name // .equals(getString(ATK // .atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_FAMILY_NAME)))) { // // font family name // byte[] buffer = Converter.wcsToMbcs(null, // value, true); // OS.pango_font_description_set_family(fontDesc, // buffer); // createFont = true; // } else if (name // .equals(getString(ATK // .atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_SIZE)))) { // // size of characters in points (allow // // fractional points) // float size = Float.parseFloat(value); // OS.pango_font_description_set_size(fontDesc, // (int) (size * OS.PANGO_SCALE)); // createFont = true; // } else if (name // .equals(getString(ATK // .atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_STYLE)))) { // // "normal", "italic" or "oblique" // int fontStyle = -1; // if (value.equals("normal")) // fontStyle = OS.PANGO_STYLE_NORMAL; // else if (value.equals("italic")) // fontStyle = OS.PANGO_STYLE_ITALIC; // else if (value.equals("oblique")) // fontStyle = OS.PANGO_STYLE_OBLIQUE; // if (fontStyle != -1) { // OS.pango_font_description_set_style( // fontDesc, fontStyle); // createFont = true; // } // } else if (name // .equals(getString(ATK // .atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_VARIANT)))) { // // "normal" or "small_caps" // int variant = -1; // if (value.equals("normal")) // variant = OS.PANGO_VARIANT_NORMAL; // else if (value.equals("small_caps")) // variant = OS.PANGO_VARIANT_SMALL_CAPS; // if (variant != -1) { // OS.pango_font_description_set_variant( // fontDesc, variant); // createFont = true; // } // } else if (name // .equals(getString(ATK // .atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_STRETCH)))) { // // "ultra_condensed", "extra_condensed", // // "condensed", "semi_condensed", "normal", // // "semi_expanded", "expanded", "extra_expanded" // // or "ultra_expanded" // int stretch = -1; // if (value.equals("ultra_condensed")) // stretch = OS.PANGO_STRETCH_ULTRA_CONDENSED; // else if (value.equals("extra_condensed")) // stretch = OS.PANGO_STRETCH_EXTRA_CONDENSED; // else if (value.equals("condensed")) // stretch = OS.PANGO_STRETCH_CONDENSED; // else if (value.equals("semi_condensed")) // stretch = OS.PANGO_STRETCH_SEMI_CONDENSED; // else if (value.equals("normal")) // stretch = OS.PANGO_STRETCH_NORMAL; // else if (value.equals("semi_expanded")) // stretch = OS.PANGO_STRETCH_SEMI_EXPANDED; // else if (value.equals("expanded")) // stretch = OS.PANGO_STRETCH_EXPANDED; // else if (value.equals("extra_expanded")) // stretch = OS.PANGO_STRETCH_EXTRA_EXPANDED; // else if (value.equals("ultra_expanded")) // stretch = OS.PANGO_STRETCH_ULTRA_EXPANDED; // if (stretch != -1) { // OS.pango_font_description_set_stretch( // fontDesc, stretch); // createFont = true; // } // } else if (name // .equals(getString(ATK // .atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_WEIGHT)))) { // // weight of the characters // int weight = Integer.parseInt(value); // OS.pango_font_description_set_weight(fontDesc, // weight); // createFont = true; // } else if (name // .equals(getString(ATK // .atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_FG_COLOR)))) { // // RGB value of the format "u,u,u" // style.foreground = colorFromString(display, // value); // } else if (name // .equals(getString(ATK // .atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_BG_COLOR)))) { // // RGB value of the format "u,u,u" // style.background = colorFromString(display, // value); // } else { // // TODO language and direction // } // } catch (NumberFormatException ex) { // } // } // current = OS.g_slist_next(current); // } // if (createFont) { // style.font = Font.gtk_new(display, fontDesc); // } // // AccessibleTextAttributeEvent event = new AccessibleTextAttributeEvent( // accessible); // event.start = (int) /* 64 */start_offset; // event.end = (int) /* 64 */end_offset; // event.textStyle = style; // event.attributes = attributes; // for (int i = 0; i < length; i++) { // AccessibleEditableTextListener listener = // (AccessibleEditableTextListener) listeners // .elementAt(i); // listener.setTextAttributes(event); // } // if (style.font != null) { // style.font.dispose(); // } // if (style.foreground != null) { // style.foreground.dispose(); // } // if (style.background != null) { // style.background.dispose(); // } // return ACC.OK.equals(event.result) ? 1 : 0; // } // } // long /* int */parentResult = 0; // AtkEditableTextIface iface = getEditableTextIface(atkObject); // if (iface != null && iface.set_run_attributes != 0) { // parentResult = ATK.call(iface.set_run_attributes, atkObject, // attrib_set, start_offset, end_offset); // } // return parentResult; // } // // /* // * Return a Color given a string of the form "n,n,n". // * // * @param display must be the display for the accessible's control // * // * @param rgbString must not be null // */ // static Color colorFromString(Display display, String rgbString) { // try { // int comma1 = rgbString.indexOf(','); // int comma2 = rgbString.indexOf(',', comma1 + 1); // int r = Integer.parseInt(rgbString.substring(0, comma1)); // int g = Integer.parseInt(rgbString.substring(comma1 + 1, comma2)); // int b = Integer.parseInt(rgbString.substring(comma2 + 1, // rgbString.length())); // return new Color(display, r, g, b); // } catch (NumberFormatException ex) { // } // return null; // } // // // void atk_editable_text_set_text_contents (AtkEditableText *text, const // // gchar *string); // static long /* int */atkEditableText_set_text_contents( // long /* int */atkObject, long /* int */string) { // if (DEBUG) // print("-->atkEditableText_set_text_contents"); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleEditableTextListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleEditableTextEvent event = new AccessibleEditableTextEvent( // accessible); // event.start = 0; // String text = object.getText(); // event.end = text == null ? 0 : text.length(); // event.string = getString(string); // for (int i = 0; i < length; i++) { // AccessibleEditableTextListener listener = // (AccessibleEditableTextListener) listeners // .elementAt(i); // listener.replaceText(event); // } // return ACC.OK.equals(event.result) ? 1 : 0; // } // } // long /* int */parentResult = 0; // AtkEditableTextIface iface = getEditableTextIface(atkObject); // if (iface != null && iface.set_text_contents != 0) { // parentResult = ATK.call(iface.set_text_contents, atkObject, string); // } // return parentResult; // } // // // void atk_editable_text_insert_text (AtkEditableText *text, const gchar // // *string, gint length, gint *position); // static long /* int */atkEditableText_insert_text(long /* int */atkObject, // long /* int */string, long /* int */string_length, // long /* int */position) { // if (DEBUG) // print("-->atkEditableText_insert_text"); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleEditableTextListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleEditableTextEvent event = new AccessibleEditableTextEvent( // accessible); // int[] pos = new int[1]; // OS.memmove(pos, position, OS.PTR_SIZEOF); // event.start = event.end = pos[0]; // event.string = getString(string); // for (int i = 0; i < length; i++) { // AccessibleEditableTextListener listener = // (AccessibleEditableTextListener) listeners // .elementAt(i); // listener.replaceText(event); // } // return ACC.OK.equals(event.result) ? 1 : 0; // } // } // long /* int */parentResult = 0; // AtkEditableTextIface iface = getEditableTextIface(atkObject); // if (iface != null && iface.insert_text != 0) { // parentResult = ATK.call(iface.insert_text, atkObject, string, // string_length, position); // } // return parentResult; // } // // // void atk_editable_text_copy_text (AtkEditableText *text, gint // start_pos, // // gint end_pos); // static long /* int */atkEditableText_copy_text(long /* int */atkObject, // long /* int */start_pos, long /* int */end_pos) { // if (DEBUG) // print("-->atkEditableText_copy_text"); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleEditableTextListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleEditableTextEvent event = new AccessibleEditableTextEvent( // accessible); // event.start = (int) /* 64 */start_pos; // event.end = (int) /* 64 */end_pos; // for (int i = 0; i < length; i++) { // AccessibleEditableTextListener listener = // (AccessibleEditableTextListener) listeners // .elementAt(i); // listener.copyText(event); // } // return ACC.OK.equals(event.result) ? 1 : 0; // } // } // long /* int */parentResult = 0; // AtkEditableTextIface iface = getEditableTextIface(atkObject); // if (iface != null && iface.copy_text != 0) { // parentResult = ATK.call(iface.copy_text, atkObject, start_pos, // end_pos); // } // return parentResult; // } // // // void atk_editable_text_cut_text (AtkEditableText *text, gint // start_pos, // // gint end_pos); // static long /* int */atkEditableText_cut_text(long /* int */atkObject, // long /* int */start_pos, long /* int */end_pos) { // if (DEBUG) // print("-->atkEditableText_cut_text"); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleEditableTextListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleEditableTextEvent event = new AccessibleEditableTextEvent( // accessible); // event.start = (int) /* 64 */start_pos; // event.end = (int) /* 64 */end_pos; // for (int i = 0; i < length; i++) { // AccessibleEditableTextListener listener = // (AccessibleEditableTextListener) listeners // .elementAt(i); // listener.cutText(event); // } // return ACC.OK.equals(event.result) ? 1 : 0; // } // } // long /* int */parentResult = 0; // AtkEditableTextIface iface = getEditableTextIface(atkObject); // if (iface != null && iface.cut_text != 0) { // parentResult = ATK.call(iface.cut_text, atkObject, start_pos, // end_pos); // } // return parentResult; // } // // // void atk_editable_text_delete_text (AtkEditableText *text, gint // // start_pos, gint end_pos); // static long /* int */atkEditableText_delete_text(long /* int */atkObject, // long /* int */start_pos, long /* int */end_pos) { // if (DEBUG) // print("-->atkEditableText_delete_text"); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleEditableTextListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleEditableTextEvent event = new AccessibleEditableTextEvent( // accessible); // event.start = (int) /* 64 */start_pos; // event.end = (int) /* 64 */end_pos; // event.string = ""; // for (int i = 0; i < length; i++) { // AccessibleEditableTextListener listener = // (AccessibleEditableTextListener) listeners // .elementAt(i); // listener.replaceText(event); // } // return ACC.OK.equals(event.result) ? 1 : 0; // } // } // long /* int */parentResult = 0; // AtkEditableTextIface iface = getEditableTextIface(atkObject); // if (iface != null && iface.delete_text != 0) { // parentResult = ATK.call(iface.delete_text, atkObject, start_pos, // end_pos); // } // return parentResult; // } // // // void atk_editable_text_paste_text (AtkEditableText *text, gint // position); // static long /* int */atkEditableText_paste_text(long /* int */atkObject, // long /* int */position) { // if (DEBUG) // print("-->atkEditableText_paste_text"); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleEditableTextListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleEditableTextEvent event = new AccessibleEditableTextEvent( // accessible); // event.start = (int) /* 64 */position; // for (int i = 0; i < length; i++) { // AccessibleEditableTextListener listener = // (AccessibleEditableTextListener) listeners // .elementAt(i); // listener.pasteText(event); // } // return ACC.OK.equals(event.result) ? 1 : 0; // } // } // long /* int */parentResult = 0; // AtkEditableTextIface iface = getEditableTextIface(atkObject); // if (iface != null && iface.paste_text != 0) { // parentResult = ATK.call(iface.paste_text, atkObject, position); // } // return parentResult; // } // // static AtkHypertextIface getHypertextIface(long /* int */atkObject) { // if (ATK.g_type_is_a(OS.g_type_parent(OS.G_OBJECT_TYPE(atkObject)), // ATK.ATK_TYPE_HYPERTEXT())) { // AtkHypertextIface iface = new AtkHypertextIface(); // ATK.memmove(iface, ATK.g_type_interface_peek_parent(ATK // .ATK_HYPERTEXT_GET_IFACE(atkObject))); // return iface; // } // return null; // } // // static long /* int */atkHypertext_get_link(long /* int */atkObject, // long /* int */link_index) { // if (DEBUG) // print("-->atkHypertext_get_link"); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleTextExtendedListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleTextEvent event = new AccessibleTextEvent(accessible); // event.index = (int) /* int */link_index; // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getHyperlink(event); // } // Accessible result = event.accessible; // return result != null ? result.getAccessibleObject().handle : 0; // } // } // long /* int */parentResult = 0; // AtkHypertextIface iface = getHypertextIface(atkObject); // if (iface != null && iface.get_link != 0) { // parentResult = ATK.call(iface.get_link, atkObject, link_index); // } // return parentResult; // } // // static long /* int */atkHypertext_get_n_links(long /* int */atkObject) { // if (DEBUG) // print("-->atkHypertext_get_n_links"); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleTextExtendedListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleTextEvent event = new AccessibleTextEvent(accessible); // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getHyperlinkCount(event); // } // return event.count; // } // } // long /* int */parentResult = 0; // AtkHypertextIface iface = getHypertextIface(atkObject); // if (iface != null && iface.get_n_links != 0) { // parentResult = ATK.call(iface.get_n_links, atkObject); // } // return parentResult; // } // // static long /* int */atkHypertext_get_link_index(long /* int */atkObject, // long /* int */char_index) { // if (DEBUG) // print("-->atkHypertext_get_link_index"); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleTextExtendedListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleTextEvent event = new AccessibleTextEvent(accessible); // event.offset = (int) /* int */char_index; // event.index = -1; // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getHyperlinkIndex(event); // } // return event.index; // } // } // long /* int */parentResult = 0; // AtkHypertextIface iface = getHypertextIface(atkObject); // if (iface != null && iface.get_link_index != 0) { // parentResult = ATK // .call(iface.get_link_index, atkObject, char_index); // } // return parentResult; // } // // static AtkObjectClass getObjectClass(long /* int */atkObject) { // AtkObjectClass objectClass = new AtkObjectClass(); // ATK.memmove(objectClass, ATK.g_type_class_peek(OS.g_type_parent(OS // .G_OBJECT_TYPE(atkObject)))); // return objectClass; // } // // static long /* int */atkObject_get_description(long /* int */atkObject) { // if (DEBUG) // print("-->atkObject_get_description: " + atkObject); // AccessibleObject object = getAccessibleObject(atkObject); // long /* int */parentResult = 0; // AtkObjectClass objectClass = getObjectClass(atkObject); // if (objectClass.get_description != 0) { // parentResult = ATK.call(objectClass.get_description, atkObject); // } // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleEvent event = new AccessibleEvent(accessible); // event.childID = object.id; // if (parentResult != 0) // event.result = getString(parentResult); // for (int i = 0; i < length; i++) { // AccessibleListener listener = (AccessibleListener) listeners // .elementAt(i); // listener.getDescription(event); // } // if (DEBUG) // print("---> " + event.result); // if (event.result == null) // return parentResult; // if (descriptionPtr != -1) // OS.g_free(descriptionPtr); // return descriptionPtr = getStringPtr(event.result); // } // } // return parentResult; // } // // static long /* int */atkObject_get_attributes(long /* int */atkObject) { // if (DEBUG) // print("-->atkObject_get_attributes: " + atkObject); // AccessibleObject object = getAccessibleObject(atkObject); // long /* int */parentResult = 0; // AtkObjectClass objectClass = getObjectClass(atkObject); // if (objectClass.get_attributes != 0) { // parentResult = ATK.call(objectClass.get_attributes, atkObject); // } // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleAttributeListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleAttributeEvent event = new AccessibleAttributeEvent( // accessible); // event.topMargin = event.bottomMargin = event.leftMargin = // event.rightMargin = event.alignment = event.indent = -1; // for (int i = 0; i < length; i++) { // AccessibleAttributeListener listener = (AccessibleAttributeListener) // listeners // .elementAt(i); // listener.getAttributes(event); // } // AtkAttribute attr = new AtkAttribute(); // if (event.leftMargin != -1) { // long /* int */attrPtr = OS.g_malloc(AtkAttribute.sizeof); // attr.name = ATK // .g_strdup(ATK // .atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_LEFT_MARGIN)); // attr.value = getStringPtr(String.valueOf(event.leftMargin)); // ATK.memmove(attrPtr, attr, AtkAttribute.sizeof); // parentResult = OS.g_slist_append(parentResult, attrPtr); // } // if (event.rightMargin != -1) { // long /* int */attrPtr = OS.g_malloc(AtkAttribute.sizeof); // attr.name = ATK // .g_strdup(ATK // .atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_RIGHT_MARGIN)); // attr.value = getStringPtr(String.valueOf(event.rightMargin)); // ATK.memmove(attrPtr, attr, AtkAttribute.sizeof); // parentResult = OS.g_slist_append(parentResult, attrPtr); // } // if (event.topMargin != -1) { // long /* int */attrPtr = OS.g_malloc(AtkAttribute.sizeof); // attr.name = getStringPtr("top-margin"); //$NON-NLS-1$ // attr.value = getStringPtr(String.valueOf(event.topMargin)); // ATK.memmove(attrPtr, attr, AtkAttribute.sizeof); // parentResult = OS.g_slist_append(parentResult, attrPtr); // } // if (event.bottomMargin != -1) { // long /* int */attrPtr = OS.g_malloc(AtkAttribute.sizeof); // attr.name = getStringPtr("bottom-margin"); //$NON-NLS-1$ // attr.value = getStringPtr(String // .valueOf(event.bottomMargin)); // ATK.memmove(attrPtr, attr, AtkAttribute.sizeof); // parentResult = OS.g_slist_append(parentResult, attrPtr); // } // if (event.indent != -1) { // long /* int */attrPtr = OS.g_malloc(AtkAttribute.sizeof); // attr.name = ATK // .g_strdup(ATK // .atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_INDENT)); // attr.value = getStringPtr(String.valueOf(event.indent)); // ATK.memmove(attrPtr, attr, AtkAttribute.sizeof); // parentResult = OS.g_slist_append(parentResult, attrPtr); // } // if (event.justify) { // long /* int */attrPtr = OS.g_malloc(AtkAttribute.sizeof); // attr.name = ATK // .g_strdup(ATK // .atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_JUSTIFICATION)); // attr.value = getStringPtr("fill"); //$NON-NLS-1$ // ATK.memmove(attrPtr, attr, AtkAttribute.sizeof); // parentResult = OS.g_slist_append(parentResult, attrPtr); // } else if (event.alignment != -1) { // long /* int */attrPtr = OS.g_malloc(AtkAttribute.sizeof); // attr.name = ATK // .g_strdup(ATK // .atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_JUSTIFICATION)); // String str = "left"; //$NON-NLS-1$ // switch (event.alignment) { // case SWT.LEFT: // str = "left";break; //$NON-NLS-1$ // case SWT.RIGHT: // str = "right";break; //$NON-NLS-1$ // case SWT.CENTER: // str = "center";break; //$NON-NLS-1$ // } // attr.value = getStringPtr(str); // ATK.memmove(attrPtr, attr, AtkAttribute.sizeof); // parentResult = OS.g_slist_append(parentResult, attrPtr); // } // // TODO - tabStops // if (event.attributes != null) { // int end = event.attributes.length / 2 * 2; // for (int i = 0; i < end; i += 2) { // long /* int */attrPtr = OS.g_malloc(AtkAttribute.sizeof); // attr.name = getStringPtr(event.attributes[i]); // attr.value = getStringPtr(event.attributes[i + 1]); // ATK.memmove(attrPtr, attr, AtkAttribute.sizeof); // parentResult = OS.g_slist_append(parentResult, attrPtr); // } // } // } // } // return parentResult; // } // // static long /* int */atkObject_get_name(long /* int */atkObject) { // if (DEBUG) // print("-->atkObject_get_name: " + atkObject); // AccessibleObject object = getAccessibleObject(atkObject); // long /* int */parentResult = 0; // AtkObjectClass objectClass = getObjectClass(atkObject); // if (objectClass.get_name != 0) { // parentResult = ATK.call(objectClass.get_name, atkObject); // } // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleEvent event = new AccessibleEvent(accessible); // event.childID = object.id; // if (parentResult != 0) // event.result = getString(parentResult); // for (int i = 0; i < length; i++) { // AccessibleListener listener = (AccessibleListener) listeners // .elementAt(i); // listener.getName(event); // } // if (DEBUG) // print("---> " + event.result); // if (event.result == null) // return parentResult; // if (namePtr != -1) // OS.g_free(namePtr); // return namePtr = getStringPtr(event.result); // } // } // return parentResult; // } // // static long /* int */atkObject_get_n_children(long /* int */atkObject) { // if (DEBUG) // print("-->atkObject_get_n_children: " + atkObject); // AccessibleObject object = getAccessibleObject(atkObject); // long /* int */parentResult = 0; // AtkObjectClass objectClass = getObjectClass(atkObject); // if (objectClass.get_n_children != 0) { // parentResult = ATK.call(objectClass.get_n_children, atkObject); // } // if (object != null && object.id == ACC.CHILDID_SELF) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleControlListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleControlEvent event = new AccessibleControlEvent( // accessible); // event.childID = object.id; // event.detail = (int) /* 64 */parentResult; // for (int i = 0; i < length; i++) { // AccessibleControlListener listener = (AccessibleControlListener) // listeners // .elementAt(i); // listener.getChildCount(event); // } // if (DEBUG) // print("--->" + event.detail); // return event.detail; // } // } // return parentResult; // } // // static long /* int */atkObject_get_index_in_parent(long /* int // */atkObject) { // if (DEBUG) // print("-->atkObject_get_index_in_parent: " + atkObject); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleControlListeners; // AccessibleControlEvent event = new AccessibleControlEvent( // accessible); // event.childID = ACC.CHILDID_CHILD_INDEX; // event.detail = -1; // for (int i = 0; i < listeners.size(); i++) { // AccessibleControlListener listener = (AccessibleControlListener) // listeners // .elementAt(i); // listener.getChild(event); // } // if (event.detail != -1) { // if (DEBUG) // print("---> " + object.index); // return event.detail; // } // if (object.index != -1) { // if (DEBUG) // print("---> " + object.index); // return object.index; // } // } // AtkObjectClass objectClass = getObjectClass(atkObject); // if (objectClass.get_index_in_parent == 0) // return 0; // long /* int */result = ATK.call(objectClass.get_index_in_parent, // atkObject); // if (DEBUG) // print("---*> " + result); // return result; // } // // static long /* int */atkObject_get_parent(long /* int */atkObject) { // if (DEBUG) // print("-->atkObject_get_parent: " + atkObject); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // if (object.parent != null) { // if (DEBUG) // print("---> " // + object.parent.accessible.accessibleObject.handle); // return object.parent.handle; // } // } // AtkObjectClass objectClass = getObjectClass(atkObject); // if (objectClass.get_parent == 0) // return 0; // long /* int */parentResult = ATK.call(objectClass.get_parent, atkObject); // if (DEBUG) // print("---> " + parentResult); // return parentResult; // } // // static long /* int */atkObject_get_role(long /* int */atkObject) { // if (DEBUG) // print("-->atkObject_get_role: " + atkObject); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleControlListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleControlEvent event = new AccessibleControlEvent( // accessible); // event.childID = object.id; // event.detail = -1; // for (int i = 0; i < length; i++) { // AccessibleControlListener listener = (AccessibleControlListener) // listeners // .elementAt(i); // listener.getRole(event); // } // if (DEBUG) // print("---> " + event.detail); // if (event.detail != -1) { // switch (event.detail) { // /* Convert from win32 role values to atk role values */ // case ACC.ROLE_CHECKBUTTON: // return ATK.ATK_ROLE_CHECK_BOX; // case ACC.ROLE_CLIENT_AREA: // return ATK.ATK_ROLE_DRAWING_AREA; // case ACC.ROLE_COMBOBOX: // return ATK.ATK_ROLE_COMBO_BOX; // case ACC.ROLE_DIALOG: // return ATK.ATK_ROLE_DIALOG; // case ACC.ROLE_LABEL: // return ATK.ATK_ROLE_LABEL; // case ACC.ROLE_LINK: // return ATK.ATK_ROLE_TEXT; // case ACC.ROLE_LIST: // return ATK.ATK_ROLE_LIST; // case ACC.ROLE_LISTITEM: // return ATK.ATK_ROLE_LIST_ITEM; // case ACC.ROLE_MENU: // return ATK.ATK_ROLE_MENU; // case ACC.ROLE_MENUBAR: // return ATK.ATK_ROLE_MENU_BAR; // case ACC.ROLE_MENUITEM: // return ATK.ATK_ROLE_MENU_ITEM; // case ACC.ROLE_PROGRESSBAR: // return ATK.ATK_ROLE_PROGRESS_BAR; // case ACC.ROLE_PUSHBUTTON: // return ATK.ATK_ROLE_PUSH_BUTTON; // case ACC.ROLE_SCROLLBAR: // return ATK.ATK_ROLE_SCROLL_BAR; // case ACC.ROLE_SEPARATOR: // return ATK.ATK_ROLE_SEPARATOR; // case ACC.ROLE_SLIDER: // return ATK.ATK_ROLE_SLIDER; // case ACC.ROLE_TABLE: // return ATK.ATK_ROLE_TABLE; // case ACC.ROLE_TABLECELL: // return ATK.ATK_ROLE_TABLE_CELL; // case ACC.ROLE_TABLECOLUMNHEADER: // return ATK.ATK_ROLE_TABLE_COLUMN_HEADER; // case ACC.ROLE_TABLEROWHEADER: // return ATK.ATK_ROLE_TABLE_ROW_HEADER; // case ACC.ROLE_TABFOLDER: // return ATK.ATK_ROLE_PAGE_TAB_LIST; // case ACC.ROLE_TABITEM: // return ATK.ATK_ROLE_PAGE_TAB; // case ACC.ROLE_TEXT: // return ATK.ATK_ROLE_TEXT; // case ACC.ROLE_TOOLBAR: // return ATK.ATK_ROLE_TOOL_BAR; // case ACC.ROLE_TOOLTIP: // return ATK.ATK_ROLE_TOOL_TIP; // case ACC.ROLE_TREE: // return ATK.ATK_ROLE_TREE; // case ACC.ROLE_TREEITEM: // return ATK.ATK_ROLE_LIST_ITEM; // case ACC.ROLE_RADIOBUTTON: // return ATK.ATK_ROLE_RADIO_BUTTON; // case ACC.ROLE_SPLITBUTTON: // return ATK.ATK_ROLE_PUSH_BUTTON; // case ACC.ROLE_WINDOW: // return ATK.ATK_ROLE_WINDOW; // case ACC.ROLE_ROW: // return ROW_ROLE; // case ACC.ROLE_COLUMN: // return COLUMN_ROLE; // case ACC.ROLE_ALERT: // return ATK.ATK_ROLE_ALERT; // case ACC.ROLE_ANIMATION: // return ATK.ATK_ROLE_ANIMATION; // case ACC.ROLE_CANVAS: // return ATK.ATK_ROLE_CANVAS; // case ACC.ROLE_GROUP: // return ATK.ATK_ROLE_PANEL; // case ACC.ROLE_SPINBUTTON: // return ATK.ATK_ROLE_SPIN_BUTTON; // case ACC.ROLE_STATUSBAR: // return ATK.ATK_ROLE_STATUSBAR; // case ACC.ROLE_CHECKMENUITEM: // return ATK.ATK_ROLE_CHECK_MENU_ITEM; // case ACC.ROLE_RADIOMENUITEM: // return ATK.ATK_ROLE_RADIO_MENU_ITEM; // case ACC.ROLE_CLOCK: // return ATK.ATK_ROLE_UNKNOWN; // case ACC.ROLE_CALENDAR: // return ATK.ATK_ROLE_CALENDAR; // case ACC.ROLE_DATETIME: // return ATK.ATK_ROLE_DATE_EDITOR; // case ACC.ROLE_FOOTER: // return ATK.ATK_ROLE_FOOTER; // case ACC.ROLE_FORM: // return ATK.ATK_ROLE_FORM; // case ACC.ROLE_HEADER: // return ATK.ATK_ROLE_HEADER; // case ACC.ROLE_HEADING: // return ATK.ATK_ROLE_HEADING; // case ACC.ROLE_PAGE: // return ATK.ATK_ROLE_PAGE; // case ACC.ROLE_PARAGRAPH: // return ATK.ATK_ROLE_PARAGRAPH; // case ACC.ROLE_SECTION: // return ATK.ATK_ROLE_SECTION; // case ACC.ROLE_DOCUMENT: // return ATK.ATK_ROLE_DOCUMENT_FRAME; // case ACC.ROLE_GRAPHIC: // return ATK.ATK_ROLE_IMAGE; // } // } // } // } // AtkObjectClass objectClass = getObjectClass(atkObject); // if (objectClass.get_role == 0) // return 0; // return ATK.call(objectClass.get_role, atkObject); // } // // static long /* int */atkObject_ref_child(long /* int */atkObject, // long /* int */index) { // if (DEBUG) // print("-->atkObject_ref_child: " + index + " of: " + atkObject); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null && object.id == ACC.CHILDID_SELF) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleControlListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleControlEvent event = new AccessibleControlEvent( // accessible); // event.childID = ACC.CHILDID_CHILD_AT_INDEX; // event.detail = (int) /* 64 */index; // for (int i = 0; i < length; i++) { // AccessibleControlListener listener = (AccessibleControlListener) // listeners // .elementAt(i); // listener.getChild(event); // } // if (event.accessible != null) { // AccessibleObject accObject = event.accessible // .getAccessibleObject(); // if (accObject != null) { // return OS.g_object_ref(accObject.handle); // } // } // } // object.updateChildren(); // AccessibleObject accObject = object // .getChildByIndex((int) /* 64 */index); // if (accObject != null) { // return OS.g_object_ref(accObject.handle); // } // } // AtkObjectClass objectClass = getObjectClass(atkObject); // if (objectClass.ref_child == 0) // return 0; // return ATK.call(objectClass.ref_child, atkObject, index); // } // // static long /* int */atkObject_ref_state_set(long /* int */atkObject) { // if (DEBUG) // print("-->atkObject_ref_state_set: " + atkObject); // AccessibleObject object = getAccessibleObject(atkObject); // long /* int */parentResult = 0; // AtkObjectClass objectClass = getObjectClass(atkObject); // if (objectClass.ref_state_set != 0) { // parentResult = ATK.call(objectClass.ref_state_set, atkObject); // } // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleControlListeners; // int length = listeners.size(); // if (length > 0) { // long /* int */set = parentResult; // AccessibleControlEvent event = new AccessibleControlEvent( // accessible); // event.childID = object.id; // event.detail = -1; // for (int i = 0; i < length; i++) { // AccessibleControlListener listener = (AccessibleControlListener) // listeners // .elementAt(i); // listener.getState(event); // } // if (event.detail != -1) { // /* Convert from win32 state values to atk state values */ // int state = event.detail; // if ((state & ACC.STATE_BUSY) != 0) // ATK.atk_state_set_add_state(set, ATK.ATK_STATE_BUSY); // if ((state & ACC.STATE_CHECKED) != 0) // ATK.atk_state_set_add_state(set, ATK.ATK_STATE_CHECKED); // if ((state & ACC.STATE_EXPANDED) != 0) // ATK.atk_state_set_add_state(set, ATK.ATK_STATE_EXPANDED); // if ((state & ACC.STATE_FOCUSABLE) != 0) // ATK.atk_state_set_add_state(set, // ATK.ATK_STATE_FOCUSABLE); // if ((state & ACC.STATE_FOCUSED) != 0) // ATK.atk_state_set_add_state(set, ATK.ATK_STATE_FOCUSED); // if ((state & ACC.STATE_HOTTRACKED) != 0) // ATK.atk_state_set_add_state(set, ATK.ATK_STATE_ARMED); // if ((state & ACC.STATE_INVISIBLE) == 0) // ATK.atk_state_set_add_state(set, ATK.ATK_STATE_VISIBLE); // if ((state & ACC.STATE_MULTISELECTABLE) != 0) // ATK.atk_state_set_add_state(set, // ATK.ATK_STATE_MULTISELECTABLE); // if ((state & ACC.STATE_OFFSCREEN) == 0) // ATK.atk_state_set_add_state(set, ATK.ATK_STATE_SHOWING); // if ((state & ACC.STATE_PRESSED) != 0) // ATK.atk_state_set_add_state(set, ATK.ATK_STATE_PRESSED); // if ((state & ACC.STATE_READONLY) == 0) // ATK.atk_state_set_add_state(set, ATK.ATK_STATE_EDITABLE); // if ((state & ACC.STATE_SELECTABLE) != 0) // ATK.atk_state_set_add_state(set, // ATK.ATK_STATE_SELECTABLE); // if ((state & ACC.STATE_SELECTED) != 0) // ATK.atk_state_set_add_state(set, ATK.ATK_STATE_SELECTED); // if ((state & ACC.STATE_SIZEABLE) != 0) // ATK.atk_state_set_add_state(set, // ATK.ATK_STATE_RESIZABLE); // if ((state & ACC.STATE_DISABLED) == 0) // ATK.atk_state_set_add_state(set, ATK.ATK_STATE_ENABLED); // if ((state & ACC.STATE_ACTIVE) != 0) // ATK.atk_state_set_add_state(set, ATK.ATK_STATE_ACTIVE); // if ((state & ACC.STATE_SINGLELINE) != 0) // ATK.atk_state_set_add_state(set, // ATK.ATK_STATE_SINGLE_LINE); // if ((state & ACC.STATE_MULTILINE) != 0) // ATK.atk_state_set_add_state(set, // ATK.ATK_STATE_MULTI_LINE); // if ((state & ACC.STATE_REQUIRED) != 0) // ATK.atk_state_set_add_state(set, ATK.ATK_STATE_REQUIRED); // if ((state & ACC.STATE_INVALID_ENTRY) != 0) // ATK.atk_state_set_add_state(set, // ATK.ATK_STATE_INVALID_ENTRY); // if ((state & ACC.STATE_SUPPORTS_AUTOCOMPLETION) != 0) // ATK.atk_state_set_add_state(set, // ATK.ATK_STATE_SUPPORTS_AUTOCOMPLETION); // /* // * Note: STATE_COLLAPSED, STATE_LINKED and STATE_NORMAL have // * no ATK equivalents // */ // } // return set; // } // } // return parentResult; // } // // static AtkSelectionIface getSelectionIface(long /* int */atkObject) { // if (ATK.g_type_is_a(OS.g_type_parent(OS.G_OBJECT_TYPE(atkObject)), // ATK.ATK_TYPE_SELECTION())) { // AtkSelectionIface iface = new AtkSelectionIface(); // ATK.memmove(iface, ATK.g_type_interface_peek_parent(ATK // .ATK_SELECTION_GET_IFACE(atkObject))); // return iface; // } // return null; // } // // static long /* int */atkSelection_is_child_selected(long /* int // */atkObject, // long /* int */index) { // if (DEBUG) // print("-->atkSelection_is_child_selected"); // AccessibleObject object = getAccessibleObject(atkObject); // long /* int */parentResult = 0; // AtkSelectionIface iface = getSelectionIface(atkObject); // if (iface != null && iface.is_child_selected != 0) { // parentResult = ATK.call(iface.is_child_selected, atkObject, index); // } // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleControlListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleControlEvent event = new AccessibleControlEvent( // accessible); // event.childID = object.id; // for (int i = 0; i < length; i++) { // AccessibleControlListener listener = (AccessibleControlListener) // listeners // .elementAt(i); // listener.getSelection(event); // } // Accessible result = event.accessible; // AccessibleObject accessibleObject = result != null ? result // .getAccessibleObject() : object // .getChildByID(event.childID); // if (accessibleObject != null) { // return accessibleObject.index == index ? 1 : 0; // } // } // } // return parentResult; // } // // static long /* int */atkSelection_ref_selection(long /* int */atkObject, // long /* int */index) { // if (DEBUG) // print("-->atkSelection_ref_selection"); // AccessibleObject object = getAccessibleObject(atkObject); // long /* int */parentResult = 0; // AtkSelectionIface iface = getSelectionIface(atkObject); // if (iface != null && iface.ref_selection != 0) { // parentResult = ATK.call(iface.ref_selection, atkObject, index); // } // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleControlListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleControlEvent event = new AccessibleControlEvent( // accessible); // event.childID = object.id; // for (int i = 0; i < length; i++) { // AccessibleControlListener listener = (AccessibleControlListener) // listeners // .elementAt(i); // listener.getSelection(event); // } // AccessibleObject accObj = object.getChildByID(event.childID); // if (accObj != null) { // if (parentResult != 0) // OS.g_object_unref(parentResult); // OS.g_object_ref(accObj.handle); // return accObj.handle; // } // } // } // return parentResult; // } // // static AtkTableIface getTableIface(long /* int */atkObject) { // if (ATK.g_type_is_a(OS.g_type_parent(OS.G_OBJECT_TYPE(atkObject)), // ATK.ATK_TYPE_TABLE())) { // AtkTableIface iface = new AtkTableIface(); // ATK.memmove(iface, ATK.g_type_interface_peek_parent(ATK // .ATK_TABLE_GET_IFACE(atkObject))); // return iface; // } // return null; // } // // static long /* int */atkTable_ref_at(long /* int */atkObject, // long /* int */row, long /* int */column) { // if (DEBUG) // print("-->atkTable_ref_at"); // 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.row = (int) /* 64 */row; // event.column = (int) /* 64 */column; // for (int i = 0; i < length; i++) { // AccessibleTableListener listener = (AccessibleTableListener) listeners // .elementAt(i); // listener.getCell(event); // } // Accessible result = event.accessible; // if (result != null) { // AccessibleObject accessibleObject = result // .getAccessibleObject(); // OS.g_object_ref(accessibleObject.handle); // return accessibleObject.handle; // } // } // } // long /* int */parentResult = 0; // AtkTableIface iface = getTableIface(atkObject); // if (iface != null && iface.ref_at != 0) { // parentResult = ATK.call(iface.ref_at, atkObject, row, column); // } // return parentResult; // } // // static long /* int */atkTable_get_index_at(long /* int */atkObject, // long /* int */row, long /* int */column) { // if (DEBUG) // print("-->atkTable_get_index_at"); // 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.row = (int) /* 64 */row; // event.column = (int) /* 64 */column; // for (int i = 0; i < length; i++) { // AccessibleTableListener listener = (AccessibleTableListener) listeners // .elementAt(i); // listener.getCell(event); // } // Accessible result = event.accessible; // if (result == null) // return -1; // event = new AccessibleTableEvent(accessible); // for (int i = 0; i < length; i++) { // AccessibleTableListener listener = (AccessibleTableListener) listeners // .elementAt(i); // listener.getColumnCount(event); // } // return row * event.count + column; // } // } // long /* int */parentResult = 0; // AtkTableIface iface = getTableIface(atkObject); // if (iface != null && iface.get_index_at != 0) { // parentResult = ATK.call(iface.get_index_at, atkObject, row, column); // } // return parentResult; // } // // static long /* int */atkTable_get_column_at_index(long /* int // */atkObject, // long /* int */index) { // if (DEBUG) // print("-->atkTable_get_column_at_index: " + atkObject + " " + index); // 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); // for (int i = 0; i < length; i++) { // AccessibleTableListener listener = (AccessibleTableListener) listeners // .elementAt(i); // listener.getColumnCount(event); // } // long /* int */result = event.count == 0 ? -1 : index // % event.count; // if (DEBUG) // print("---> " + result); // return result; // } // } // long /* int */parentResult = 0; // AtkTableIface iface = getTableIface(atkObject); // if (iface != null && iface.get_column_at_index != 0) { // parentResult = ATK // .call(iface.get_column_at_index, atkObject, index); // } // return parentResult; // } // // static long /* int */atkTable_get_row_at_index(long /* int */atkObject, // long /* int */index) { // if (DEBUG) // print("-->atkTable_get_row_at_index: " + atkObject + " " + index); // 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); // for (int i = 0; i < length; i++) { // AccessibleTableListener listener = (AccessibleTableListener) listeners // .elementAt(i); // listener.getColumnCount(event); // } // long /* int */result = event.count == 0 ? -1 : index // / event.count; // if (DEBUG) // print("---> " + result); // return result; // } // } // long /* int */parentResult = 0; // AtkTableIface iface = getTableIface(atkObject); // if (iface != null && iface.get_row_at_index != 0) { // parentResult = ATK.call(iface.get_row_at_index, atkObject, index); // } // return parentResult; // } // // static long /* int */atkTable_get_n_columns(long /* int */atkObject) { // if (DEBUG) // print("-->atkTable_get_n_columns"); // AccessibleObject object = getAccessibleObject(atkObject); // long /* int */parentResult = 0; // AtkTableIface iface = getTableIface(atkObject); // if (iface != null && iface.get_n_columns != 0) { // parentResult = ATK.call(iface.get_n_columns, 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.count = (int) /* 64 */parentResult; // for (int i = 0; i < length; i++) { // AccessibleTableListener listener = (AccessibleTableListener) listeners // .elementAt(i); // listener.getColumnCount(event); // parentResult = event.count; // } // } // } // return parentResult; // } // // static long /* int */atkTable_get_n_rows(long /* int */atkObject) { // if (DEBUG) // print("-->atkTable_get_n_rows"); // AccessibleObject object = getAccessibleObject(atkObject); // long /* int */parentResult = 0; // AtkTableIface iface = getTableIface(atkObject); // if (iface != null && iface.get_n_rows != 0) { // parentResult = ATK.call(iface.get_n_rows, 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.count = (int) /* 64 */parentResult; // for (int i = 0; i < length; i++) { // AccessibleTableListener listener = (AccessibleTableListener) listeners // .elementAt(i); // listener.getRowCount(event); // parentResult = event.count; // } // } // } // return parentResult; // } // // static long /* int */atkTable_get_column_extent_at(long /* int // */atkObject, // long /* int */row, long /* int */column) { // if (DEBUG) // print("-->atkTable_get_column_extent_at"); // AccessibleObject object = getAccessibleObject(atkObject); // long /* int */parentResult = 0; // AtkTableIface iface = getTableIface(atkObject); // if (iface != null && iface.get_column_extent_at != 0) { // parentResult = ATK.call(iface.get_column_extent_at, atkObject, row, // column); // } // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleTableListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleTableEvent event = new AccessibleTableEvent( // accessible); // event.row = (int) /* 64 */row; // event.column = (int) /* 64 */column; // for (int i = 0; i < length; i++) { // AccessibleTableListener listener = (AccessibleTableListener) listeners // .elementAt(i); // listener.getCell(event); // } // Accessible result = event.accessible; // if (result != null) { // listeners = result.accessibleTableCellListeners; // length = listeners.size(); // if (length > 0) { // AccessibleTableCellEvent cellEvent = new AccessibleTableCellEvent( // result); // cellEvent.count = (int) /* 64 */parentResult; // for (int i = 0; i < length; i++) { // AccessibleTableCellListener listener = (AccessibleTableCellListener) // listeners // .elementAt(i); // listener.getColumnSpan(cellEvent); // } // return cellEvent.count; // } // } // } // } // return parentResult; // } // // static long /* int */atkTable_get_row_extent_at(long /* int */atkObject, // long /* int */row, long /* int */column) { // if (DEBUG) // print("-->atkTable_get_row_extent_at"); // AccessibleObject object = getAccessibleObject(atkObject); // long /* int */parentResult = 0; // AtkTableIface iface = getTableIface(atkObject); // if (iface != null && iface.get_row_extent_at != 0) { // parentResult = ATK.call(iface.get_row_extent_at, atkObject, row, // column); // } // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleTableListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleTableEvent event = new AccessibleTableEvent( // accessible); // event.row = (int) /* 64 */row; // event.column = (int) /* 64 */column; // for (int i = 0; i < length; i++) { // AccessibleTableListener listener = (AccessibleTableListener) listeners // .elementAt(i); // listener.getCell(event); // } // Accessible result = event.accessible; // if (result != null) { // listeners = result.accessibleTableCellListeners; // length = listeners.size(); // if (length > 0) { // AccessibleTableCellEvent cellEvent = new AccessibleTableCellEvent( // result); // cellEvent.count = (int) /* 64 */parentResult; // for (int i = 0; i < length; i++) { // AccessibleTableCellListener listener = (AccessibleTableCellListener) // listeners // .elementAt(i); // listener.getRowSpan(cellEvent); // } // return cellEvent.count; // } // } // } // } // return parentResult; // } // // static long /* int */atkTable_get_caption(long /* int */atkObject) { // if (DEBUG) // print("-->atkTable_get_caption"); // 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); // for (int i = 0; i < length; i++) { // AccessibleTableListener listener = (AccessibleTableListener) listeners // .elementAt(i); // listener.getCaption(event); // } // Accessible result = event.accessible; // if (result != null) // return result.getAccessibleObject().handle; // } // } // long /* int */parentResult = 0; // AtkTableIface iface = getTableIface(atkObject); // if (iface != null && iface.get_caption != 0) { // parentResult = ATK.call(iface.get_caption, atkObject); // } // return parentResult; // } // // static long /* int */atkTable_get_summary(long /* int */atkObject) { // if (DEBUG) // print("-->atkTable_get_summary"); // 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); // for (int i = 0; i < length; i++) { // AccessibleTableListener listener = (AccessibleTableListener) listeners // .elementAt(i); // listener.getSummary(event); // } // Accessible result = event.accessible; // if (result != null) // return result.getAccessibleObject().handle; // } // } // long /* int */parentResult = 0; // AtkTableIface iface = getTableIface(atkObject); // if (iface != null && iface.get_summary != 0) { // parentResult = ATK.call(iface.get_summary, atkObject); // } // return parentResult; // } // // static long /* int */atkTable_get_column_description(long /* int // */atkObject, // long /* int */column) { // if (DEBUG) // print("-->atkTable_get_column_description"); // AccessibleObject object = getAccessibleObject(atkObject); // long /* int */parentResult = 0; // AtkTableIface iface = getTableIface(atkObject); // if (iface != null && iface.get_column_description != 0) { // parentResult = ATK.call(iface.get_column_description, atkObject, // column); // } // 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; // if (parentResult != 0) // event.result = getString(parentResult); // for (int i = 0; i < length; i++) { // AccessibleTableListener listener = (AccessibleTableListener) listeners // .elementAt(i); // listener.getColumnDescription(event); // } // if (event.result == null) // return parentResult; // if (descriptionPtr != -1) // OS.g_free(descriptionPtr); // return descriptionPtr = getStringPtr(event.result); // } // } // return parentResult; // } // // static long /* int */atkTable_get_column_header(long /* int */atkObject, // long /* int */column) { // if (DEBUG) // print("-->atkTable_get_column_header"); // 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); // for (int i = 0; i < length; i++) { // AccessibleTableListener listener = (AccessibleTableListener) listeners // .elementAt(i); // listener.getRowHeaderCells(event); // } // Accessible[] accessibles = event.accessibles; // if (accessibles != null) { // if (0 <= column && column < accessibles.length) { // return accessibles[(int) /* 64 */column] // .getAccessibleObject().handle; // } // } // } // } // long /* int */parentResult = 0; // AtkTableIface iface = getTableIface(atkObject); // if (iface != null && iface.get_column_header != 0) { // parentResult = ATK.call(iface.get_column_header, atkObject, column); // } // return parentResult; // } // // static long /* int */atkTable_get_row_description(long /* int // */atkObject, // long /* int */row) { // if (DEBUG) // print("-->atkTable_get_row_description"); // AccessibleObject object = getAccessibleObject(atkObject); // long /* int */parentResult = 0; // AtkTableIface iface = getTableIface(atkObject); // if (iface != null && iface.get_row_description != 0) { // parentResult = ATK.call(iface.get_row_description, atkObject, row); // } // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleTableListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleTableEvent event = new AccessibleTableEvent( // accessible); // event.row = (int) /* 64 */row; // if (parentResult != 0) // event.result = getString(parentResult); // for (int i = 0; i < length; i++) { // AccessibleTableListener listener = (AccessibleTableListener) listeners // .elementAt(i); // listener.getRowDescription(event); // } // if (event.result == null) // return parentResult; // if (descriptionPtr != -1) // OS.g_free(descriptionPtr); // return descriptionPtr = getStringPtr(event.result); // } // } // return parentResult; // } // // static long /* int */atkTable_get_row_header(long /* int */atkObject, // long /* int */row) { // if (DEBUG) // print("-->atkTable_get_row_header"); // 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); // for (int i = 0; i < length; i++) { // AccessibleTableListener listener = (AccessibleTableListener) listeners // .elementAt(i); // listener.getRowHeaderCells(event); // } // Accessible[] accessibles = event.accessibles; // if (accessibles != null) { // if (0 <= row && row < accessibles.length) { // return accessibles[(int) /* 64 */row] // .getAccessibleObject().handle; // } // } // } // } // long /* int */parentResult = 0; // AtkTableIface iface = getTableIface(atkObject); // if (iface != null && iface.get_row_header != 0) { // parentResult = ATK.call(iface.get_row_header, atkObject, row); // } // return parentResult; // } // // static long /* int */atkTable_get_selected_columns(long /* int // */atkObject, // long /* int */selected) { // if (DEBUG) // print("-->atkTable_get_selected_columns"); // 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); // for (int i = 0; i < length; i++) { // AccessibleTableListener listener = (AccessibleTableListener) listeners // .elementAt(i); // listener.getSelectedColumns(event); // } // int count = event.selected != null ? event.selected.length : 0; // long /* int */result = OS.g_malloc(count * 4); // if (event.selected != null) // OS.memmove(result, event.selected, count * 4); // if (selected != 0) // OS.memmove(selected, new long /* int */[] { result }, // C.PTR_SIZEOF); // return count; // } // } // long /* int */parentResult = 0; // AtkTableIface iface = getTableIface(atkObject); // if (iface != null && iface.get_selected_columns != 0) { // parentResult = ATK.call(iface.get_selected_columns, atkObject, // selected); // } // return parentResult; // } // // static long /* int */atkTable_get_selected_rows(long /* int */atkObject, // long /* int */selected) { // if (DEBUG) // print("-->atkTable_get_selected_rows"); // 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); // for (int i = 0; i < length; i++) { // AccessibleTableListener listener = (AccessibleTableListener) listeners // .elementAt(i); // listener.getSelectedRows(event); // } // int count = event.selected != null ? event.selected.length : 0; // long /* int */result = OS.g_malloc(count * 4); // if (event.selected != null) // OS.memmove(result, event.selected, count * 4); // if (selected != 0) // OS.memmove(selected, new long /* int */[] { result }, // C.PTR_SIZEOF); // return count; // } // } // long /* int */parentResult = 0; // AtkTableIface iface = getTableIface(atkObject); // if (iface != null && iface.get_selected_rows != 0) { // parentResult = ATK.call(iface.get_selected_rows, atkObject, // selected); // } // return parentResult; // } // // static long /* int */atkTable_is_column_selected(long /* int */atkObject, // long /* int */column) { // if (DEBUG) // print("-->atkTable_is_column_selected"); // AccessibleObject object = getAccessibleObject(atkObject); // long /* int */parentResult = 0; // AtkTableIface iface = getTableIface(atkObject); // if (iface != null && iface.is_column_selected != 0) { // parentResult = ATK // .call(iface.is_column_selected, atkObject, column); // } // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleTableListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleTableEvent event = new AccessibleTableEvent( // accessible); // event.isSelected = parentResult != 0; // event.column = (int) /* 64 */column; // for (int i = 0; i < length; i++) { // AccessibleTableListener listener = (AccessibleTableListener) listeners // .elementAt(i); // listener.isColumnSelected(event); // } // return event.isSelected ? 1 : 0; // } // } // return parentResult; // } // // static long /* int */atkTable_is_row_selected(long /* int */atkObject, // long /* int */row) { // if (DEBUG) // print("-->atkTable_is_row_selected"); // AccessibleObject object = getAccessibleObject(atkObject); // long /* int */parentResult = 0; // AtkTableIface iface = getTableIface(atkObject); // if (iface != null && iface.is_row_selected != 0) { // parentResult = ATK.call(iface.is_row_selected, atkObject, row); // } // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleTableListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleTableEvent event = new AccessibleTableEvent( // accessible); // event.isSelected = parentResult != 0; // event.row = (int) /* 64 */row; // for (int i = 0; i < length; i++) { // AccessibleTableListener listener = (AccessibleTableListener) listeners // .elementAt(i); // listener.isRowSelected(event); // } // return event.isSelected ? 1 : 0; // } // } // return parentResult; // } // // static long /* int */atkTable_is_selected(long /* int */atkObject, // long /* int */row, long /* int */column) { // if (DEBUG) // print("-->atkTable_is_selected"); // AccessibleObject object = getAccessibleObject(atkObject); // long /* int */parentResult = 0; // AtkTableIface iface = getTableIface(atkObject); // if (iface != null && iface.is_selected != 0) { // parentResult = ATK.call(iface.is_selected, atkObject, row, column); // } // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleTableListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleTableEvent event = new AccessibleTableEvent( // accessible); // event.row = (int) /* 64 */row; // event.column = (int) /* 64 */column; // for (int i = 0; i < length; i++) { // AccessibleTableListener listener = (AccessibleTableListener) listeners // .elementAt(i); // listener.getCell(event); // } // Accessible result = event.accessible; // if (result != null) { // listeners = result.accessibleTableCellListeners; // length = listeners.size(); // if (length > 0) { // AccessibleTableCellEvent cellEvent = new AccessibleTableCellEvent( // result); // cellEvent.isSelected = parentResult != 0; // for (int i = 0; i < length; i++) { // AccessibleTableCellListener listener = (AccessibleTableCellListener) // listeners // .elementAt(i); // listener.isSelected(cellEvent); // } // return cellEvent.isSelected ? 1 : 0; // } // } // } // } // return parentResult; // } // // static long /* int */atkTable_add_row_selection(long /* int */atkObject, // long /* int */row) { // if (DEBUG) // print("-->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.row = (int) /* 64 */row; // for (int i = 0; i < length; i++) { // AccessibleTableListener listener = (AccessibleTableListener) listeners // .elementAt(i); // listener.selectRow(event); // } // return ACC.OK.equals(event.result) ? 1 : 0; // } // } // long /* int */parentResult = 0; // AtkTableIface iface = getTableIface(atkObject); // if (iface != null && iface.add_row_selection != 0) { // parentResult = ATK.call(iface.add_row_selection, atkObject, row); // } // return parentResult; // } // // static long /* int */atkTable_remove_row_selection(long /* int // */atkObject, // long /* int */row) { // if (DEBUG) // print("-->atkTable_remove_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.row = (int) /* 64 */row; // for (int i = 0; i < length; i++) { // AccessibleTableListener listener = (AccessibleTableListener) listeners // .elementAt(i); // listener.deselectRow(event); // } // return ACC.OK.equals(event.result) ? 1 : 0; // } // } // long /* int */parentResult = 0; // AtkTableIface iface = getTableIface(atkObject); // if (iface != null && iface.remove_row_selection != 0) { // parentResult = ATK.call(iface.remove_row_selection, atkObject, row); // } // return parentResult; // } // // static long /* int */atkTable_add_column_selection(long /* int // */atkObject, // long /* int */column) { // if (DEBUG) // print("-->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); // } // return ACC.OK.equals(event.result) ? 1 : 0; // } // } // long /* int */parentResult = 0; // AtkTableIface iface = getTableIface(atkObject); // if (iface != null && iface.add_column_selection != 0) { // parentResult = ATK.call(iface.add_column_selection, atkObject, // column); // } // return parentResult; // } // // static long /* int */atkTable_remove_column_selection( // long /* int */atkObject, long /* int */column) { // if (DEBUG) // print("-->atkTable_remove_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.deselectColumn(event); // } // return ACC.OK.equals(event.result) ? 1 : 0; // } // } // long /* int */parentResult = 0; // AtkTableIface iface = getTableIface(atkObject); // if (iface != null && iface.remove_column_selection != 0) { // parentResult = ATK.call(iface.remove_column_selection, atkObject, // column); // } // return parentResult; // } // // static AtkTextIface getTextIface(long /* int */atkObject) { // if (ATK.g_type_is_a(OS.g_type_parent(OS.G_OBJECT_TYPE(atkObject)), // ATK.ATK_TYPE_TEXT())) { // AtkTextIface iface = new AtkTextIface(); // ATK.memmove(iface, ATK.g_type_interface_peek_parent(ATK // .ATK_TEXT_GET_IFACE(atkObject))); // return iface; // } // return null; // } // // static long /* int */atkText_get_character_extents(long /* int // */atkObject, // long /* int */offset, long /* int */x, long /* int */y, // long /* int */width, long /* int */height, long /* int */coords) { // if (DEBUG) // print("-->atkText_get_character_extents"); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleTextExtendedListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleTextEvent event = new AccessibleTextEvent(accessible); // event.start = (int) /* 64 */offset; // event.end = (int) /* 64 */(offset + 1); // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getTextBounds(event); // } // int[] topWindowX = new int[1], topWindowY = new int[1]; // if (coords == ATK.ATK_XY_WINDOW) { // windowPoint(object, topWindowX, topWindowY); // event.x -= topWindowX[0]; // event.y -= topWindowY[0]; // } // OS.memmove(x, new int[] { event.x }, 4); // OS.memmove(y, new int[] { event.y }, 4); // OS.memmove(width, new int[] { event.width }, 4); // OS.memmove(height, new int[] { event.height }, 4); // return 0; // } // } // AtkTextIface iface = getTextIface(atkObject); // if (iface != null && iface.get_character_extents != 0) { // ATK.call(iface.get_character_extents, atkObject, offset, x, y, // width, height, coords); // } // return 0; // } // // static String getString(long /* int */strPtr) { // int length = OS.strlen(strPtr); // byte[] buffer = new byte[length]; // OS.memmove(buffer, strPtr, length); // return new String(Converter.mbcsToWcs(null, buffer)); // } // // static long /* int */getStringPtr(String str) { // byte[] buffer = Converter.wcsToMbcs(null, str != null ? str : "", true); // long /* int */ptr = OS.g_malloc(buffer.length); // OS.memmove(ptr, buffer, buffer.length); // return ptr; // } // // static long /* int */atkText_get_range_extents(long /* int */atkObject, // long /* int */start_offset, long /* int */end_offset, // long /* int */coord_type, long /* int */rect) { // if (DEBUG) // print("-->atkText_get_range_extents"); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleTextExtendedListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleTextEvent event = new AccessibleTextEvent(accessible); // event.start = (int) /* 64 */start_offset; // event.end = (int) /* 64 */end_offset; // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getTextBounds(event); // } // int[] topWindowX = new int[1], topWindowY = new int[1]; // if (coord_type == ATK.ATK_XY_WINDOW) { // windowPoint(object, topWindowX, topWindowY); // event.x -= topWindowX[0]; // event.y -= topWindowY[0]; // } // AtkTextRectangle atkRect = new AtkTextRectangle(); // atkRect.x = event.x; // atkRect.y = event.y; // atkRect.width = event.width; // atkRect.height = event.height; // ATK.memmove(rect, atkRect, AtkTextRectangle.sizeof); // return 0; // } // } // AtkTextIface iface = getTextIface(atkObject); // if (iface != null && iface.get_range_extents != 0) { // ATK.call(iface.get_range_extents, atkObject, start_offset, // end_offset, coord_type, rect); // } // return 0; // } // // static long /* int */atkText_get_run_attributes(long /* int */atkObject, // long /* int */offset, long /* int */start_offset, // long /* int */end_offset) { // if (DEBUG) // print("-->atkText_get_run_attributes"); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleAttributeListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleTextAttributeEvent event = new AccessibleTextAttributeEvent( // accessible); // event.offset = (int) /* 64 */offset; // for (int i = 0; i < length; i++) { // AccessibleAttributeListener listener = (AccessibleAttributeListener) // listeners // .elementAt(i); // listener.getTextAttributes(event); // } // OS.memmove(start_offset, new int[] { event.start }, 4); // OS.memmove(end_offset, new int[] { event.end }, 4); // TextStyle style = event.textStyle; // long /* int */result = 0; // AtkAttribute attr = new AtkAttribute(); // if (style != null) { // if (style.rise != 0) { // long /* int */attrPtr = OS.g_malloc(AtkAttribute.sizeof); // attr.name = ATK // .g_strdup(ATK // .atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_RISE)); // attr.value = getStringPtr(String.valueOf(style.rise)); // ATK.memmove(attrPtr, attr, AtkAttribute.sizeof); // result = OS.g_slist_append(result, attrPtr); // } // if (style.underline) { // long /* int */attrPtr = OS.g_malloc(AtkAttribute.sizeof); // attr.name = ATK // .g_strdup(ATK // .atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_UNDERLINE)); // String str = "none"; //$NON-NLS-1$ // switch (style.underlineStyle) { // case SWT.UNDERLINE_DOUBLE: // str = "double";break; //$NON-NLS-1$ // case SWT.UNDERLINE_SINGLE: // str = "single";break; //$NON-NLS-1$ // case SWT.UNDERLINE_ERROR: // str = "error";break; //$NON-NLS-1$ // case SWT.UNDERLINE_SQUIGGLE: // str = "squiggle";break; //$NON-NLS-1$ // } // attr.value = getStringPtr(str); // ATK.memmove(attrPtr, attr, AtkAttribute.sizeof); // result = OS.g_slist_append(result, attrPtr); // } // if (style.strikeout) { // long /* int */attrPtr = OS.g_malloc(AtkAttribute.sizeof); // attr.name = ATK // .g_strdup(ATK // .atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_STRIKETHROUGH)); // attr.value = getStringPtr("1"); // ATK.memmove(attrPtr, attr, AtkAttribute.sizeof); // result = OS.g_slist_append(result, attrPtr); // } // Font font = style.font; // if (font != null && !font.isDisposed()) { // // TODO language and direction // long /* int */attrPtr; // attrPtr = OS.g_malloc(AtkAttribute.sizeof); // attr.name = ATK // .g_strdup(ATK // .atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_FAMILY_NAME)); // attr.value = ATK // .g_strdup(OS // .pango_font_description_get_family(font.handle)); // ATK.memmove(attrPtr, attr, AtkAttribute.sizeof); // result = OS.g_slist_append(result, attrPtr); // // attrPtr = OS.g_malloc(AtkAttribute.sizeof); // attr.name = ATK // .g_strdup(ATK // .atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_SIZE)); // attr.value = getStringPtr(String.valueOf(OS // .pango_font_description_get_size(font.handle) // / OS.PANGO_SCALE)); // ATK.memmove(attrPtr, attr, AtkAttribute.sizeof); // result = OS.g_slist_append(result, attrPtr); // // attrPtr = OS.g_malloc(AtkAttribute.sizeof); // attr.name = ATK // .g_strdup(ATK // .atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_STYLE)); // attr.value = ATK // .g_strdup(ATK.atk_text_attribute_get_value( // ATK.ATK_TEXT_ATTR_STYLE, // OS.pango_font_description_get_style(font.handle))); // ATK.memmove(attrPtr, attr, AtkAttribute.sizeof); // result = OS.g_slist_append(result, attrPtr); // // attrPtr = OS.g_malloc(AtkAttribute.sizeof); // attr.name = ATK // .g_strdup(ATK // .atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_VARIANT)); // attr.value = ATK // .g_strdup(ATK.atk_text_attribute_get_value( // ATK.ATK_TEXT_ATTR_VARIANT, // OS.pango_font_description_get_variant(font.handle))); // ATK.memmove(attrPtr, attr, AtkAttribute.sizeof); // result = OS.g_slist_append(result, attrPtr); // // attrPtr = OS.g_malloc(AtkAttribute.sizeof); // attr.name = ATK // .g_strdup(ATK // .atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_STRETCH)); // attr.value = ATK // .g_strdup(ATK.atk_text_attribute_get_value( // ATK.ATK_TEXT_ATTR_STRETCH, // OS.pango_font_description_get_stretch(font.handle))); // ATK.memmove(attrPtr, attr, AtkAttribute.sizeof); // result = OS.g_slist_append(result, attrPtr); // // attrPtr = OS.g_malloc(AtkAttribute.sizeof); // attr.name = ATK // .g_strdup(ATK // .atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_WEIGHT)); // attr.value = getStringPtr(String // .valueOf(OS // .pango_font_description_get_weight(font.handle))); // ATK.memmove(attrPtr, attr, AtkAttribute.sizeof); // result = OS.g_slist_append(result, attrPtr); // } // Color color = style.foreground; // if (color != null && !color.isDisposed()) { // long /* int */attrPtr = OS.g_malloc(AtkAttribute.sizeof); // attr.name = ATK // .g_strdup(ATK // .atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_FG_COLOR)); // attr.value = getStringPtr((color.handle.red & 0xFFFF) // + "," + (color.handle.blue & 0xFFFF) + "," + (color.handle.blue & 0xFFFF)); //$NON-NLS-1$ //$NON-NLS-2$ // ATK.memmove(attrPtr, attr, AtkAttribute.sizeof); // result = OS.g_slist_append(result, attrPtr); // } // color = style.background; // if (color != null && !color.isDisposed()) { // long /* int */attrPtr = OS.g_malloc(AtkAttribute.sizeof); // attr.name = ATK // .g_strdup(ATK // .atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_BG_COLOR)); // attr.value = getStringPtr((color.handle.red & 0xFFFF) // + "," + (color.handle.blue & 0xFFFF) + "," + (color.handle.blue & 0xFFFF)); //$NON-NLS-1$ //$NON-NLS-2$ // ATK.memmove(attrPtr, attr, AtkAttribute.sizeof); // result = OS.g_slist_append(result, attrPtr); // } // } // if (event.attributes != null) { // int end = event.attributes.length / 2 * 2; // for (int i = 0; i < end; i += 2) { // long /* int */attrPtr = OS.g_malloc(AtkAttribute.sizeof); // attr.name = getStringPtr(event.attributes[i]); // attr.value = getStringPtr(event.attributes[i + 1]); // ATK.memmove(attrPtr, attr, AtkAttribute.sizeof); // result = OS.g_slist_append(result, attrPtr); // } // } // return result; // } // } // long /* int */parentResult = 0; // AtkTextIface iface = getTextIface(atkObject); // if (iface != null && iface.get_run_attributes != 0) { // parentResult = ATK.call(iface.get_run_attributes, atkObject, // offset, start_offset, end_offset); // } // return parentResult; // } // // static long /* int */atkText_get_offset_at_point(long /* int */atkObject, // long /* int */x, long /* int */y, long /* int */coords) { // if (DEBUG) // print("-->atkText_get_offset_at_point"); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleTextExtendedListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleTextEvent event = new AccessibleTextEvent(accessible); // event.x = (int) /* 64 */x; // event.y = (int) /* 64 */y; // int[] topWindowX = new int[1], topWindowY = new int[1]; // if (coords == ATK.ATK_XY_WINDOW) { // windowPoint(object, topWindowX, topWindowY); // event.x += topWindowX[0]; // event.y += topWindowY[0]; // } // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getOffsetAtPoint(event); // } // return event.offset; // } // } // long /* int */parentResult = 0; // AtkTextIface iface = getTextIface(atkObject); // if (iface != null && iface.get_offset_at_point != 0) { // parentResult = ATK.call(iface.get_offset_at_point, atkObject, x, y, // coords); // } // return parentResult; // } // // static long /* int */atkText_add_selection(long /* int */atkObject, // long /* int */start_offset, long /* int */end_offset) { // if (DEBUG) // print("-->atkText_add_selection"); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleTextExtendedListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleTextEvent event = new AccessibleTextEvent(accessible); // event.start = (int) /* 64 */start_offset; // event.end = (int) /* 64 */end_offset; // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.addSelection(event); // } // return ACC.OK.equals(event.result) ? 1 : 0; // } // } // long /* int */parentResult = 0; // AtkTextIface iface = getTextIface(atkObject); // if (iface != null && iface.add_selection != 0) { // parentResult = ATK.call(iface.add_selection, atkObject, // start_offset, end_offset); // } // return parentResult; // } // // static long /* int */atkText_remove_selection(long /* int */atkObject, // long /* int */selection_num) { // if (DEBUG) // print("-->atkText_remove_selection"); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleTextExtendedListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleTextEvent event = new AccessibleTextEvent(accessible); // event.index = (int) /* 64 */selection_num; // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.removeSelection(event); // } // return ACC.OK.equals(event.result) ? 1 : 0; // } // } // long /* int */parentResult = 0; // AtkTextIface iface = getTextIface(atkObject); // if (iface != null && iface.remove_selection != 0) { // parentResult = ATK.call(iface.remove_selection, atkObject, // selection_num); // } // return parentResult; // } // // static long /* int */atkText_set_caret_offset(long /* int */atkObject, // long /* int */offset) { // if (DEBUG) // print("-->atkText_set_caret_offset"); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleTextExtendedListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleTextEvent event = new AccessibleTextEvent(accessible); // event.offset = (int) /* 64 */offset; // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.setCaretOffset(event); // } // return ACC.OK.equals(event.result) ? 1 : 0; // } // } // AtkTextIface iface = getTextIface(atkObject); // if (iface != null && iface.set_caret_offset != 0) { // return ATK.call(iface.set_caret_offset, atkObject, offset); // } // return 0; // } // // static long /* int */atkText_set_selection(long /* int */atkObject, // long /* int */selection_num, long /* int */start_offset, // long /* int */end_offset) { // if (DEBUG) // print("-->atkText_set_selection"); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleTextExtendedListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleTextEvent event = new AccessibleTextEvent(accessible); // event.index = (int) /* 64 */selection_num; // event.start = (int) /* 64 */start_offset; // event.end = (int) /* 64 */end_offset; // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.setSelection(event); // } // return ACC.OK.equals(event.result) ? 1 : 0; // } // } // long /* int */parentResult = 0; // AtkTextIface iface = getTextIface(atkObject); // if (iface != null && iface.set_selection != 0) { // parentResult = ATK.call(iface.set_selection, atkObject, // selection_num, start_offset, end_offset); // } // return parentResult; // } // // static long /* int */atkText_get_caret_offset(long /* int */atkObject) { // if (DEBUG) // print("-->atkText_get_caret_offset"); // AccessibleObject object = getAccessibleObject(atkObject); // long /* int */parentResult = 0; // AtkTextIface iface = getTextIface(atkObject); // if (iface != null && iface.get_caret_offset != 0) { // parentResult = ATK.call(iface.get_caret_offset, atkObject); // } // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleTextExtendedListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleTextEvent event = new AccessibleTextEvent(accessible); // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getCaretOffset(event); // } // return event.offset; // } // listeners = accessible.accessibleTextListeners; // length = listeners.size(); // if (length > 0) { // AccessibleTextEvent event = new AccessibleTextEvent( // object.accessible); // event.childID = object.id; // event.offset = (int) /* 64 */parentResult; // for (int i = 0; i < length; i++) { // AccessibleTextListener listener = (AccessibleTextListener) listeners // .elementAt(i); // listener.getCaretOffset(event); // } // return event.offset; // } // } // return parentResult; // } // // static long /* int */atkText_get_bounded_ranges(long /* int */atkObject, // long /* int */rect, long /* int */coord_type, // long /* int */x_clip_type, long /* int */y_clip_type) { // if (DEBUG) // print("-->atkText_get_bounded_ranges"); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleTextExtendedListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleTextEvent event = new AccessibleTextEvent(accessible); // AtkTextRectangle atkRect = new AtkTextRectangle(); // ATK.memmove(atkRect, rect, AtkTextRectangle.sizeof); // event.x = atkRect.x; // event.y = atkRect.y; // event.width = atkRect.width; // event.height = atkRect.height; // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getRanges(event); // } // int[] ranges = event.ranges; // int size = ranges == null ? 1 : ranges.length / 2; // long /* int */result = OS.malloc(size * AtkTextRange.sizeof); // AtkTextRange range = new AtkTextRange(); // for (int j = 0, end = (ranges != null ? ranges.length / 2 : 1); j < end; // j++) { // if (ranges != null) { // int index = j * 2; // event.start = ranges[index]; // event.end = ranges[index + 1]; // } // event.count = 0; // event.type = ACC.TEXT_BOUNDARY_ALL; // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getText(event); // } // range.start_offset = event.start; // range.end_offset = event.end; // range.content = getStringPtr(event.result); // event.result = null; // event.count = event.type = event.x = event.y = event.width = event.height // = 0; // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getTextBounds(event); // } // range.bounds.x = event.x; // range.bounds.y = event.y; // range.bounds.width = event.width; // range.bounds.height = event.height; // ATK.memmove(result + j * AtkTextRange.sizeof, range, // AtkTextRange.sizeof); // } // return result; // } // } // long /* int */parentResult = 0; // AtkTextIface iface = getTextIface(atkObject); // if (iface != null && iface.get_bounded_ranges != 0) { // parentResult = ATK.call(iface.get_bounded_ranges, atkObject); // } // return parentResult; // } // // static long /* int */atkText_get_character_at_offset(long /* int // */atkObject, // long /* int */offset) { // if (DEBUG) // print("-->atkText_get_character_at_offset"); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleTextExtendedListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleTextEvent event = new AccessibleTextEvent(accessible); // event.start = (int) /* 64 */offset; // event.end = (int) /* 64 */(offset + 1); // event.type = ACC.TEXT_BOUNDARY_CHAR; // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getText(event); // } // String text = event.result; // return text != null && text.length() > 0 ? text.charAt(0) : 0; // } // String text = object.getText(); // if (text != null && text.length() > offset) // return text.charAt((int) /* 64 */offset); // } // AtkTextIface iface = getTextIface(atkObject); // if (iface != null && iface.get_character_at_offset != 0) { // return ATK.call(iface.get_character_at_offset, atkObject, offset); // } // return 0; // } // // static long /* int */atkText_get_character_count(long /* int */atkObject) // { // if (DEBUG) // print("-->atkText_get_character_count"); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleTextExtendedListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleTextEvent event = new AccessibleTextEvent(accessible); // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getCharacterCount(event); // } // return event.count; // } // String text = object.getText(); // if (text != null) // return text.length(); // } // AtkTextIface iface = getTextIface(atkObject); // if (iface != null && iface.get_character_count != 0) { // return ATK.call(iface.get_character_count, atkObject); // } // return 0; // } // // static long /* int */atkText_get_n_selections(long /* int */atkObject) { // if (DEBUG) // print("-->atkText_get_n_selections"); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleTextExtendedListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleTextEvent event = new AccessibleTextEvent(accessible); // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getSelectionCount(event); // } // return event.count; // } // listeners = accessible.accessibleTextListeners; // length = listeners.size(); // if (length > 0) { // AccessibleTextEvent event = new AccessibleTextEvent( // object.accessible); // event.childID = object.id; // for (int i = 0; i < length; i++) { // AccessibleTextListener listener = (AccessibleTextListener) listeners // .elementAt(i); // listener.getSelectionRange(event); // } // if (event.length > 0) // return 1; // } // } // long /* int */parentResult = 0; // AtkTextIface iface = getTextIface(atkObject); // if (iface != null && iface.get_n_selections != 0) { // parentResult = ATK.call(iface.get_n_selections, atkObject); // } // return parentResult; // } // // static long /* int */atkText_get_selection(long /* int */atkObject, // long /* int */selection_num, long /* int */start_offset, // long /* int */end_offset) { // if (DEBUG) // print("-->atkText_get_selection"); // AccessibleObject object = getAccessibleObject(atkObject); // long /* int */parentResult = 0; // OS.memmove(start_offset, new int[] { 0 }, 4); // OS.memmove(end_offset, new int[] { 0 }, 4); // AtkTextIface iface = getTextIface(atkObject); // if (iface != null && iface.get_selection != 0) { // parentResult = ATK.call(iface.get_selection, atkObject, // selection_num, start_offset, end_offset); // } // if (object != null) { // int[] parentStart = new int[1]; // int[] parentEnd = new int[1]; // OS.memmove(parentStart, start_offset, 4); // OS.memmove(parentEnd, end_offset, 4); // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleTextExtendedListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleTextEvent event = new AccessibleTextEvent(accessible); // event.index = (int) /* 64 */selection_num; // event.start = parentStart[0]; // event.end = parentEnd[0]; // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getSelection(event); // } // parentStart[0] = event.start; // parentEnd[0] = event.end; // OS.memmove(start_offset, parentStart, 4); // OS.memmove(end_offset, parentEnd, 4); // event.count = event.index = 0; // event.type = ACC.TEXT_BOUNDARY_ALL; // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getText(event); // } // if (parentResult != 0) // OS.g_free(parentResult); // return getStringPtr(event.result); // } // if (selection_num == 0) { // listeners = accessible.accessibleTextListeners; // length = listeners.size(); // if (length > 0) { // AccessibleTextEvent event = new AccessibleTextEvent( // accessible); // event.childID = object.id; // event.offset = parentStart[0]; // event.length = parentEnd[0] - parentStart[0]; // for (int i = 0; i < length; i++) { // AccessibleTextListener listener = (AccessibleTextListener) listeners // .elementAt(i); // listener.getSelectionRange(event); // } // OS.memmove(start_offset, new int[] { event.offset }, 4); // OS.memmove(end_offset, new int[] { event.offset // + event.length }, 4); // if (parentResult != 0) // OS.g_free(parentResult); // String text = object.getText(); // if (text != null && text.length() > event.offset // && text.length() >= event.offset + event.length) { // return getStringPtr(text.substring(event.offset, // event.offset + event.length)); // } // if (iface != null && iface.get_text != 0) { // return ATK.call(iface.get_text, atkObject, // event.offset, event.offset + event.length); // } // return 0; // } // } // } // return parentResult; // } // // static long /* int */atkText_get_text(long /* int */atkObject, // long /* int */start_offset, long /* int */end_offset) { // if (DEBUG) // print("-->atkText_get_text: " + atkObject + " " + start_offset // + "," + end_offset); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleTextExtendedListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleTextEvent event = new AccessibleTextEvent(accessible); // event.start = (int) /* 64 */start_offset; // event.end = (int) /* 64 */end_offset; // event.type = ACC.TEXT_BOUNDARY_ALL; // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getText(event); // } // return getStringPtr(event.result); // } // String text = object.getText(); // if (text != null && text.length() > 0) { // if (end_offset == -1) { // end_offset = text.length(); // } else { // end_offset = Math.min(end_offset, text.length()); // } // start_offset = Math.min(start_offset, end_offset); // text = text.substring((int) /* 64 */start_offset, // (int) /* 64 */end_offset); // return getStringPtr(text); // } // } // AtkTextIface iface = getTextIface(atkObject); // if (iface != null && iface.get_text != 0) { // return ATK // .call(iface.get_text, atkObject, start_offset, end_offset); // } // return 0; // } // // static long /* int */atkText_get_text_after_offset(long /* int // */atkObject, // long /* int */offset_value, long /* int */boundary_type, // long /* int */start_offset, long /* int */end_offset) { // if (DEBUG) // print("-->atkText_get_text_after_offset"); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleTextExtendedListeners; // int length = listeners.size(); // if (length > 0) { // long /* int */charCount = atkText_get_character_count(atkObject); // AccessibleTextEvent event = new AccessibleTextEvent(accessible); // event.start = event.end = (int) /* 64 */offset_value; // event.count = 1; // switch ((int) /* 64 */boundary_type) { // case ATK.ATK_TEXT_BOUNDARY_CHAR: // event.type = ACC.TEXT_BOUNDARY_CHAR; // break; // case ATK.ATK_TEXT_BOUNDARY_WORD_START: // event.type = ACC.TEXT_BOUNDARY_WORD; // break; // case ATK.ATK_TEXT_BOUNDARY_WORD_END: // event.type = ACC.TEXT_BOUNDARY_WORD; // break; // case ATK.ATK_TEXT_BOUNDARY_SENTENCE_START: // event.type = ACC.TEXT_BOUNDARY_SENTENCE; // break; // case ATK.ATK_TEXT_BOUNDARY_SENTENCE_END: // event.type = ACC.TEXT_BOUNDARY_SENTENCE; // break; // case ATK.ATK_TEXT_BOUNDARY_LINE_START: // event.type = ACC.TEXT_BOUNDARY_LINE; // break; // case ATK.ATK_TEXT_BOUNDARY_LINE_END: // event.type = ACC.TEXT_BOUNDARY_LINE; // break; // } // int eventStart = event.start; // int eventEnd = event.end; // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getText(event); // } // switch ((int) /* 64 */boundary_type) { // case ATK.ATK_TEXT_BOUNDARY_WORD_START: // case ATK.ATK_TEXT_BOUNDARY_SENTENCE_START: // case ATK.ATK_TEXT_BOUNDARY_LINE_START: // if (event.end < charCount) { // int start = event.start; // event.start = eventStart; // event.end = eventEnd; // event.count = 2; // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getText(event); // } // event.end = event.start; // event.start = start; // event.type = ACC.TEXT_BOUNDARY_ALL; // event.count = 0; // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getText(event); // } // } // break; // case ATK.ATK_TEXT_BOUNDARY_WORD_END: // case ATK.ATK_TEXT_BOUNDARY_SENTENCE_END: // case ATK.ATK_TEXT_BOUNDARY_LINE_END: // if (0 < event.start) { // int end = event.end; // event.start = eventStart; // event.end = eventEnd; // event.count = 0; // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getText(event); // } // event.start = event.end; // event.end = end; // event.type = ACC.TEXT_BOUNDARY_ALL; // event.count = 0; // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getText(event); // } // } // break; // } // OS.memmove(start_offset, new int[] { event.start }, 4); // OS.memmove(end_offset, new int[] { event.end }, 4); // return getStringPtr(event.result); // } // int offset = (int) /* 64 */offset_value; // String text = object.getText(); // if (text != null && text.length() > 0) { // length = text.length(); // offset = Math.min(offset, length - 1); // int startBounds = offset; // int endBounds = offset; // switch ((int) /* 64 */boundary_type) { // case ATK.ATK_TEXT_BOUNDARY_CHAR: { // if (length > offset) // endBounds++; // break; // } // case ATK.ATK_TEXT_BOUNDARY_WORD_START: { // int wordStart1 = nextIndexOfChar(text, " !?.\n", offset - 1); // if (wordStart1 == -1) { // startBounds = endBounds = length; // break; // } // wordStart1 = nextIndexOfNotChar(text, " !?.\n", wordStart1); // if (wordStart1 == length) { // startBounds = endBounds = length; // break; // } // startBounds = wordStart1; // int wordStart2 = nextIndexOfChar(text, " !?.\n", wordStart1); // if (wordStart2 == -1) { // endBounds = length; // break; // } // endBounds = nextIndexOfNotChar(text, " !?.\n", wordStart2); // break; // } // case ATK.ATK_TEXT_BOUNDARY_WORD_END: { // int previousWordEnd = previousIndexOfNotChar(text, " \n", // offset); // if (previousWordEnd == -1 || previousWordEnd != offset - 1) { // offset = nextIndexOfNotChar(text, " \n", offset); // } // if (offset == -1) { // startBounds = endBounds = length; // break; // } // int wordEnd1 = nextIndexOfChar(text, " !?.\n", // (int) /* 64 */offset); // if (wordEnd1 == -1) { // startBounds = endBounds = length; // break; // } // wordEnd1 = nextIndexOfNotChar(text, "!?.", wordEnd1); // if (wordEnd1 == length) { // startBounds = endBounds = length; // break; // } // startBounds = wordEnd1; // int wordEnd2 = nextIndexOfNotChar(text, " \n", wordEnd1); // if (wordEnd2 == length) { // startBounds = endBounds = length; // break; // } // wordEnd2 = nextIndexOfChar(text, " !?.\n", wordEnd2); // if (wordEnd2 == -1) { // endBounds = length; // break; // } // endBounds = nextIndexOfNotChar(text, "!?.", wordEnd2); // break; // } // case ATK.ATK_TEXT_BOUNDARY_SENTENCE_START: { // int previousSentenceEnd = previousIndexOfChar(text, "!?.", // offset); // int previousText = previousIndexOfNotChar(text, " !?.\n", // offset); // int sentenceStart1 = 0; // if (previousSentenceEnd >= previousText) { // sentenceStart1 = nextIndexOfNotChar(text, " !?.\n", // offset); // } else { // sentenceStart1 = nextIndexOfChar(text, "!?.", offset); // if (sentenceStart1 == -1) { // startBounds = endBounds = length; // break; // } // sentenceStart1 = nextIndexOfNotChar(text, " !?.\n", // sentenceStart1); // } // if (sentenceStart1 == length) { // startBounds = endBounds = length; // break; // } // startBounds = sentenceStart1; // int sentenceStart2 = nextIndexOfChar(text, "!?.", // sentenceStart1); // if (sentenceStart2 == -1) { // endBounds = length; // break; // } // endBounds = nextIndexOfNotChar(text, " !?.\n", // sentenceStart2); // break; // } // case ATK.ATK_TEXT_BOUNDARY_SENTENCE_END: { // int sentenceEnd1 = nextIndexOfChar(text, "!?.", offset); // if (sentenceEnd1 == -1) { // startBounds = endBounds = length; // break; // } // sentenceEnd1 = nextIndexOfNotChar(text, "!?.", sentenceEnd1); // if (sentenceEnd1 == length) { // startBounds = endBounds = length; // break; // } // startBounds = sentenceEnd1; // int sentenceEnd2 = nextIndexOfNotChar(text, " \n", // sentenceEnd1); // if (sentenceEnd2 == length) { // startBounds = endBounds = length; // break; // } // sentenceEnd2 = nextIndexOfChar(text, "!?.", sentenceEnd2); // if (sentenceEnd2 == -1) { // endBounds = length; // break; // } // endBounds = nextIndexOfNotChar(text, "!?.", sentenceEnd2); // break; // } // case ATK.ATK_TEXT_BOUNDARY_LINE_START: { // int lineStart1 = text.indexOf('\n', offset - 1); // if (lineStart1 == -1) { // startBounds = endBounds = length; // break; // } // lineStart1 = nextIndexOfNotChar(text, "\n", lineStart1); // if (lineStart1 == length) { // startBounds = endBounds = length; // break; // } // startBounds = lineStart1; // int lineStart2 = text.indexOf('\n', lineStart1); // if (lineStart2 == -1) { // endBounds = length; // break; // } // lineStart2 = nextIndexOfNotChar(text, "\n", lineStart2); // endBounds = lineStart2; // break; // } // case ATK.ATK_TEXT_BOUNDARY_LINE_END: { // int lineEnd1 = nextIndexOfChar(text, "\n", offset); // if (lineEnd1 == -1) { // startBounds = endBounds = length; // break; // } // startBounds = lineEnd1; // if (startBounds == length) { // endBounds = length; // break; // } // int lineEnd2 = nextIndexOfChar(text, "\n", lineEnd1 + 1); // if (lineEnd2 == -1) { // endBounds = length; // break; // } // endBounds = lineEnd2; // break; // } // } // OS.memmove(start_offset, new int[] { startBounds }, 4); // OS.memmove(end_offset, new int[] { endBounds }, 4); // text = text.substring(startBounds, endBounds); // return getStringPtr(text); // } // } // AtkTextIface iface = getTextIface(atkObject); // if (iface != null && iface.get_text_after_offset != 0) { // return ATK.call(iface.get_text_after_offset, atkObject, // offset_value, boundary_type, start_offset, end_offset); // } // return 0; // } // // static long /* int */atkText_get_text_at_offset(long /* int */atkObject, // long /* int */offset_value, long /* int */boundary_type, // long /* int */start_offset, long /* int */end_offset) { // if (DEBUG) // print("-->atkText_get_text_at_offset: " + offset_value + " start: " // + start_offset + " end: " + end_offset); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleTextExtendedListeners; // int length = listeners.size(); // if (length > 0) { // long /* int */charCount = atkText_get_character_count(atkObject); // AccessibleTextEvent event = new AccessibleTextEvent(accessible); // event.start = event.end = (int) /* 64 */offset_value; // event.count = 0; // switch ((int) /* 64 */boundary_type) { // case ATK.ATK_TEXT_BOUNDARY_CHAR: // event.type = ACC.TEXT_BOUNDARY_CHAR; // break; // case ATK.ATK_TEXT_BOUNDARY_WORD_START: // event.type = ACC.TEXT_BOUNDARY_WORD; // break; // case ATK.ATK_TEXT_BOUNDARY_WORD_END: // event.type = ACC.TEXT_BOUNDARY_WORD; // break; // case ATK.ATK_TEXT_BOUNDARY_SENTENCE_START: // event.type = ACC.TEXT_BOUNDARY_SENTENCE; // break; // case ATK.ATK_TEXT_BOUNDARY_SENTENCE_END: // event.type = ACC.TEXT_BOUNDARY_SENTENCE; // break; // case ATK.ATK_TEXT_BOUNDARY_LINE_START: // event.type = ACC.TEXT_BOUNDARY_LINE; // break; // case ATK.ATK_TEXT_BOUNDARY_LINE_END: // event.type = ACC.TEXT_BOUNDARY_LINE; // break; // } // int eventStart = event.start; // int eventEnd = event.end; // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getText(event); // } // switch ((int) /* 64 */boundary_type) { // case ATK.ATK_TEXT_BOUNDARY_WORD_START: // case ATK.ATK_TEXT_BOUNDARY_SENTENCE_START: // case ATK.ATK_TEXT_BOUNDARY_LINE_START: // if (event.end < charCount) { // int start = event.start; // event.start = eventStart; // event.end = eventEnd; // event.count = 1; // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getText(event); // } // event.end = event.start; // event.start = start; // event.type = ACC.TEXT_BOUNDARY_ALL; // event.count = 0; // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getText(event); // } // } // break; // case ATK.ATK_TEXT_BOUNDARY_WORD_END: // case ATK.ATK_TEXT_BOUNDARY_SENTENCE_END: // case ATK.ATK_TEXT_BOUNDARY_LINE_END: // if (0 < event.start) { // int end = event.end; // event.start = eventStart; // event.end = eventEnd; // event.count = -1; // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getText(event); // } // event.start = event.end; // event.end = end; // event.type = ACC.TEXT_BOUNDARY_ALL; // event.count = 0; // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getText(event); // } // } // break; // } // OS.memmove(start_offset, new int[] { event.start }, 4); // OS.memmove(end_offset, new int[] { event.end }, 4); // return getStringPtr(event.result); // } // int offset = (int) /* 64 */offset_value; // String text = object.getText(); // if (text != null && text.length() > 0) { // length = text.length(); // offset = Math.min(offset, length - 1); // int startBounds = offset; // int endBounds = offset; // switch ((int) /* 64 */boundary_type) { // case ATK.ATK_TEXT_BOUNDARY_CHAR: { // if (length > offset) // endBounds++; // break; // } // case ATK.ATK_TEXT_BOUNDARY_WORD_START: { // int wordStart1 = previousIndexOfNotChar(text, " !?.\n", // offset); // if (wordStart1 == -1) { // startBounds = endBounds = 0; // break; // } // wordStart1 = previousIndexOfChar(text, " !?.\n", wordStart1) + 1; // if (wordStart1 == -1) { // startBounds = 0; // break; // } // startBounds = wordStart1; // int wordStart2 = nextIndexOfChar(text, " !?.\n", wordStart1); // endBounds = nextIndexOfNotChar(text, " !?.\n", wordStart2); // break; // } // case ATK.ATK_TEXT_BOUNDARY_WORD_END: { // int wordEnd1 = previousIndexOfNotChar(text, "!?.", // offset + 1); // wordEnd1 = previousIndexOfChar(text, " !?.\n", wordEnd1); // wordEnd1 = previousIndexOfNotChar(text, " \n", wordEnd1 + 1); // if (wordEnd1 == -1) { // startBounds = endBounds = 0; // break; // } // startBounds = wordEnd1 + 1; // int wordEnd2 = nextIndexOfNotChar(text, " \n", startBounds); // if (wordEnd2 == length) { // endBounds = startBounds; // break; // } // wordEnd2 = nextIndexOfChar(text, " !?.\n", wordEnd2); // if (wordEnd2 == -1) { // endBounds = startBounds; // break; // } // endBounds = nextIndexOfNotChar(text, "!?.", wordEnd2); // break; // } // case ATK.ATK_TEXT_BOUNDARY_SENTENCE_START: { // int sentenceStart1 = previousIndexOfNotChar(text, " !?.\n", // offset + 1); // if (sentenceStart1 == -1) { // startBounds = endBounds = 0; // break; // } // sentenceStart1 = previousIndexOfChar(text, "!?.", // sentenceStart1) + 1; // startBounds = nextIndexOfNotChar(text, " \n", // sentenceStart1); // int sentenceStart2 = nextIndexOfChar(text, "!?.", // startBounds); // endBounds = nextIndexOfNotChar(text, " !?.\n", // sentenceStart2); // break; // } // case ATK.ATK_TEXT_BOUNDARY_SENTENCE_END: { // int sentenceEnd1 = previousIndexOfNotChar(text, "!?.", // offset + 1); // sentenceEnd1 = previousIndexOfChar(text, "!?.", // sentenceEnd1); // sentenceEnd1 = previousIndexOfNotChar(text, " \n", // sentenceEnd1 + 1); // if (sentenceEnd1 == -1) { // startBounds = endBounds = 0; // break; // } // startBounds = sentenceEnd1 + 1; // int sentenceEnd2 = nextIndexOfNotChar(text, " \n", // startBounds); // if (sentenceEnd2 == length) { // endBounds = startBounds; // break; // } // sentenceEnd2 = nextIndexOfChar(text, "!?.", sentenceEnd2); // if (sentenceEnd2 == -1) { // endBounds = startBounds; // break; // } // endBounds = nextIndexOfNotChar(text, "!?.", sentenceEnd2); // break; // } // case ATK.ATK_TEXT_BOUNDARY_LINE_START: { // startBounds = previousIndexOfChar(text, "\n", offset) + 1; // int lineEnd2 = nextIndexOfChar(text, "\n", startBounds); // if (lineEnd2 < length) // lineEnd2++; // endBounds = lineEnd2; // break; // } // case ATK.ATK_TEXT_BOUNDARY_LINE_END: { // int lineEnd1 = previousIndexOfChar(text, "\n", offset); // if (lineEnd1 == -1) { // startBounds = endBounds = 0; // break; // } // startBounds = lineEnd1; // endBounds = nextIndexOfChar(text, "\n", lineEnd1 + 1); // } // } // OS.memmove(start_offset, new int[] { startBounds }, 4); // OS.memmove(end_offset, new int[] { endBounds }, 4); // text = text.substring(startBounds, endBounds); // return getStringPtr(text); // } // } // AtkTextIface iface = getTextIface(atkObject); // if (iface != null && iface.get_text_at_offset != 0) { // return ATK.call(iface.get_text_at_offset, atkObject, offset_value, // boundary_type, start_offset, end_offset); // } // return 0; // } // // static long /* int */atkText_get_text_before_offset(long /* int // */atkObject, // long /* int */offset_value, long /* int */boundary_type, // long /* int */start_offset, long /* int */end_offset) { // if (DEBUG) // print("-->atkText_get_text_before_offset"); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleTextExtendedListeners; // int length = listeners.size(); // if (length > 0) { // long /* int */charCount = atkText_get_character_count(atkObject); // AccessibleTextEvent event = new AccessibleTextEvent(accessible); // event.start = event.end = (int) /* 64 */offset_value; // event.count = -1; // switch ((int) /* 64 */boundary_type) { // case ATK.ATK_TEXT_BOUNDARY_CHAR: // event.type = ACC.TEXT_BOUNDARY_CHAR; // break; // case ATK.ATK_TEXT_BOUNDARY_WORD_START: // event.type = ACC.TEXT_BOUNDARY_WORD; // break; // case ATK.ATK_TEXT_BOUNDARY_WORD_END: // event.type = ACC.TEXT_BOUNDARY_WORD; // break; // case ATK.ATK_TEXT_BOUNDARY_SENTENCE_START: // event.type = ACC.TEXT_BOUNDARY_SENTENCE; // break; // case ATK.ATK_TEXT_BOUNDARY_SENTENCE_END: // event.type = ACC.TEXT_BOUNDARY_SENTENCE; // break; // case ATK.ATK_TEXT_BOUNDARY_LINE_START: // event.type = ACC.TEXT_BOUNDARY_LINE; // break; // case ATK.ATK_TEXT_BOUNDARY_LINE_END: // event.type = ACC.TEXT_BOUNDARY_LINE; // break; // } // int eventStart = event.start; // int eventEnd = event.end; // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getText(event); // } // OS.memmove(start_offset, new int[] { event.start }, 4); // OS.memmove(end_offset, new int[] { event.end }, 4); // switch ((int) /* 64 */boundary_type) { // case ATK.ATK_TEXT_BOUNDARY_WORD_START: // case ATK.ATK_TEXT_BOUNDARY_SENTENCE_START: // case ATK.ATK_TEXT_BOUNDARY_LINE_START: // if (event.end < charCount) { // int start = event.start; // event.start = eventStart; // event.end = eventEnd; // event.count = 0; // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getText(event); // } // event.end = event.start; // event.start = start; // event.type = ACC.TEXT_BOUNDARY_ALL; // event.count = 0; // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getText(event); // } // } // break; // case ATK.ATK_TEXT_BOUNDARY_WORD_END: // case ATK.ATK_TEXT_BOUNDARY_SENTENCE_END: // case ATK.ATK_TEXT_BOUNDARY_LINE_END: // if (0 < event.start) { // int end = event.end; // event.start = eventStart; // event.end = eventEnd; // event.count = -2; // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getText(event); // } // event.start = event.end; // event.end = end; // event.type = ACC.TEXT_BOUNDARY_ALL; // event.count = 0; // for (int i = 0; i < length; i++) { // AccessibleTextExtendedListener listener = // (AccessibleTextExtendedListener) listeners // .elementAt(i); // listener.getText(event); // } // } // break; // } // return getStringPtr(event.result); // } // int offset = (int) /* 64 */offset_value; // String text = object.getText(); // if (text != null && text.length() > 0) { // length = text.length(); // offset = Math.min(offset, length - 1); // int startBounds = offset; // int endBounds = offset; // switch ((int) /* 64 */boundary_type) { // case ATK.ATK_TEXT_BOUNDARY_CHAR: { // if (length >= offset && offset > 0) // startBounds--; // break; // } // case ATK.ATK_TEXT_BOUNDARY_WORD_START: { // int wordStart1 = previousIndexOfChar(text, " !?.\n", // offset - 1); // if (wordStart1 == -1) { // startBounds = endBounds = 0; // break; // } // int wordStart2 = previousIndexOfNotChar(text, " !?.\n", // wordStart1); // if (wordStart2 == -1) { // startBounds = endBounds = 0; // break; // } // endBounds = wordStart1 + 1; // startBounds = previousIndexOfChar(text, " !?.\n", // wordStart2) + 1; // break; // } // case ATK.ATK_TEXT_BOUNDARY_WORD_END: { // int wordEnd1 = previousIndexOfChar(text, " !?.\n", offset); // if (wordEnd1 == -1) { // startBounds = endBounds = 0; // break; // } // wordEnd1 = previousIndexOfNotChar(text, " \n", wordEnd1 + 1); // if (wordEnd1 == -1) { // startBounds = endBounds = 0; // break; // } // endBounds = wordEnd1 + 1; // int wordEnd2 = previousIndexOfNotChar(text, " !?.\n", // endBounds); // wordEnd2 = previousIndexOfChar(text, " !?.\n", wordEnd2); // if (wordEnd2 == -1) { // startBounds = 0; // break; // } // startBounds = previousIndexOfNotChar(text, " \n", // wordEnd2 + 1) + 1; // break; // } // case ATK.ATK_TEXT_BOUNDARY_SENTENCE_START: { // int sentenceStart1 = previousIndexOfChar(text, "!?.", // offset); // if (sentenceStart1 == -1) { // startBounds = endBounds = 0; // break; // } // int sentenceStart2 = previousIndexOfNotChar(text, "!?.", // sentenceStart1); // if (sentenceStart2 == -1) { // startBounds = endBounds = 0; // break; // } // endBounds = sentenceStart1 + 1; // startBounds = previousIndexOfChar(text, "!?.", // sentenceStart2) + 1; // break; // } // case ATK.ATK_TEXT_BOUNDARY_SENTENCE_END: { // int sentenceEnd1 = previousIndexOfChar(text, "!?.", offset); // if (sentenceEnd1 == -1) { // startBounds = endBounds = 0; // break; // } // sentenceEnd1 = previousIndexOfNotChar(text, " \n", // sentenceEnd1 + 1); // if (sentenceEnd1 == -1) { // startBounds = endBounds = 0; // break; // } // endBounds = sentenceEnd1 + 1; // int sentenceEnd2 = previousIndexOfNotChar(text, "!?.", // endBounds); // sentenceEnd2 = previousIndexOfChar(text, "!?.", // sentenceEnd2); // if (sentenceEnd2 == -1) { // startBounds = 0; // break; // } // startBounds = previousIndexOfNotChar(text, " \n", // sentenceEnd2 + 1) + 1; // break; // } // case ATK.ATK_TEXT_BOUNDARY_LINE_START: { // int lineStart1 = previousIndexOfChar(text, "\n", offset); // if (lineStart1 == -1) { // startBounds = endBounds = 0; // break; // } // endBounds = lineStart1 + 1; // startBounds = previousIndexOfChar(text, "\n", lineStart1) + 1; // break; // } // case ATK.ATK_TEXT_BOUNDARY_LINE_END: { // int lineEnd1 = previousIndexOfChar(text, "\n", offset); // if (lineEnd1 == -1) { // startBounds = endBounds = 0; // break; // } // endBounds = lineEnd1; // startBounds = previousIndexOfChar(text, "\n", lineEnd1); // if (startBounds == -1) // startBounds = 0; // break; // } // } // OS.memmove(start_offset, new int[] { startBounds }, 4); // OS.memmove(end_offset, new int[] { endBounds }, 4); // text = text.substring(startBounds, endBounds); // return getStringPtr(text); // } // } // AtkTextIface iface = getTextIface(atkObject); // if (iface != null && iface.get_text_before_offset != 0) { // return ATK.call(iface.get_text_before_offset, atkObject, // offset_value, boundary_type, start_offset, end_offset); // } // return 0; // } // // static void setGValue(long /* int */value, Number number) { // if (number == null) // return; // if (OS.G_VALUE_TYPE(value) != 0) // OS.g_value_unset(value); // if (number instanceof Double) { // OS.g_value_init(value, OS.G_TYPE_DOUBLE()); // OS.g_value_set_double(value, number.doubleValue()); // } else if (number instanceof Float) { // OS.g_value_init(value, OS.G_TYPE_FLOAT()); // OS.g_value_set_float(value, number.floatValue()); // } else if (number instanceof Long) { // OS.g_value_init(value, OS.G_TYPE_INT64()); // OS.g_value_set_int64(value, number.longValue()); // } else { // OS.g_value_init(value, OS.G_TYPE_INT()); // OS.g_value_set_int(value, number.intValue()); // } // } // // static Number getGValue(long /* int */value) { // long /* int */type = OS.G_VALUE_TYPE(value); // if (type == 0) // return null; // if (type == OS.G_TYPE_DOUBLE()) // return new Double(OS.g_value_get_double(value)); // if (type == OS.G_TYPE_FLOAT()) // return new Float(OS.g_value_get_float(value)); // if (type == OS.G_TYPE_INT64()) // return new Long(OS.g_value_get_int64(value)); // return new Integer(OS.g_value_get_int(value)); // } // // static AtkValueIface getValueIface(long /* int */atkObject) { // if (ATK.g_type_is_a(OS.g_type_parent(OS.G_OBJECT_TYPE(atkObject)), // ATK.ATK_TYPE_VALUE())) { // AtkValueIface iface = new AtkValueIface(); // ATK.memmove(iface, ATK.g_type_interface_peek_parent(ATK // .ATK_VALUE_GET_IFACE(atkObject))); // return iface; // } // return null; // } // // static long /* int */atkValue_get_current_value(long /* int */atkObject, // long /* int */value) { // if (DEBUG) // print("-->atkValue_get_current_value"); // AccessibleObject object = getAccessibleObject(atkObject); // AtkValueIface iface = getValueIface(atkObject); // if (iface != null && iface.get_current_value != 0) { // ATK.call(iface.get_current_value, atkObject, value); // } // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleValueListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleValueEvent event = new AccessibleValueEvent( // accessible); // event.value = getGValue(value); // for (int i = 0; i < length; i++) { // AccessibleValueListener listener = (AccessibleValueListener) listeners // .elementAt(i); // listener.getCurrentValue(event); // } // setGValue(value, event.value); // } // } // return 0; // } // // static long /* int */atkValue_get_maximum_value(long /* int */atkObject, // long /* int */value) { // if (DEBUG) // print("-->atkValue_get_maximum_value"); // AccessibleObject object = getAccessibleObject(atkObject); // AtkValueIface iface = getValueIface(atkObject); // if (iface != null && iface.get_maximum_value != 0) { // ATK.call(iface.get_maximum_value, atkObject, value); // } // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleValueListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleValueEvent event = new AccessibleValueEvent( // accessible); // event.value = getGValue(value); // for (int i = 0; i < length; i++) { // AccessibleValueListener listener = (AccessibleValueListener) listeners // .elementAt(i); // listener.getMaximumValue(event); // } // setGValue(value, event.value); // } // } // return 0; // } // // static long /* int */atkValue_get_minimum_value(long /* int */atkObject, // long /* int */value) { // if (DEBUG) // print("-->atkValue_get_minimum_value"); // AccessibleObject object = getAccessibleObject(atkObject); // AtkValueIface iface = getValueIface(atkObject); // if (iface != null && iface.get_minimum_value != 0) { // ATK.call(iface.get_minimum_value, atkObject, value); // } // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleValueListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleValueEvent event = new AccessibleValueEvent( // accessible); // event.value = getGValue(value); // for (int i = 0; i < length; i++) { // AccessibleValueListener listener = (AccessibleValueListener) listeners // .elementAt(i); // listener.getMinimumValue(event); // } // setGValue(value, event.value); // } // } // return 0; // } // // static long /* int */atkValue_set_current_value(long /* int */atkObject, // long /* int */value) { // if (DEBUG) // print("-->atkValue_set_current_value"); // AccessibleObject object = getAccessibleObject(atkObject); // if (object != null) { // Accessible accessible = object.accessible; // Vector listeners = accessible.accessibleValueListeners; // int length = listeners.size(); // if (length > 0) { // AccessibleValueEvent event = new AccessibleValueEvent( // accessible); // event.value = getGValue(value); // for (int i = 0; i < length; i++) { // AccessibleValueListener listener = (AccessibleValueListener) listeners // .elementAt(i); // listener.setCurrentValue(event); // } // return event.value != null ? 1 : 0; // } // } // long /* int */parentResult = 0; // AtkValueIface iface = getValueIface(atkObject); // if (iface != null && iface.set_current_value != 0) { // parentResult = ATK.call(iface.set_current_value, atkObject, value); // } // return parentResult; // } // // static AccessibleObject getAccessibleObject(long /* int */atkObject) { // AccessibleObject object = (AccessibleObject) AccessibleObjects // .get(new LONG(atkObject)); // if (object == null) // return null; // if (object.accessible == null) // return null; // Control control = object.accessible.control; // if (control == null || control.isDisposed()) // return null; // return object; // } // // AccessibleObject getChildByID(int childId) { // if (childId == ACC.CHILDID_SELF) // return this; // if (childId == ACC.CHILDID_NONE || childId == ACC.CHILDID_MULTIPLE) // return null; // if (children != null) { // for (int i = 0; i < children.length; i++) { // AccessibleObject child = children[i]; // if (child != null && child.id == childId) // return child; // } // } // return null; // } // // AccessibleObject getChildByIndex(int childIndex) { // if (children != null && childIndex < children.length) // return children[childIndex]; // return null; // } // // String getText() { // Vector listeners = accessible.accessibleControlListeners; // int length = listeners.size(); // if (length > 0) { // String parentText = ""; //$NON-NLS-1$ // AtkTextIface iface = getTextIface(handle); // if (iface != null && iface.get_character_count != 0) { // long /* int */characterCount = ATK.call( // iface.get_character_count, handle); // if (characterCount > 0 && iface.get_text != 0) { // long /* int */parentResult = ATK.call(iface.get_text, // handle, 0, characterCount); // if (parentResult != 0) { // parentText = getString(parentResult); // OS.g_free(parentResult); // } // } // } // AccessibleControlEvent event = new AccessibleControlEvent( // accessible); // event.childID = id; // event.result = parentText; // for (int i = 0; i < length; i++) { // AccessibleControlListener listener = (AccessibleControlListener) // listeners // .elementAt(i); // listener.getValue(event); // } // return event.result; // } // return null; // } // // static long /* int */gObjectClass_finalize(long /* int */atkObject) { // if (DEBUG) // print("-->gObjectClass_finalize: " + atkObject); // long /* int */superType = ATK.g_type_class_peek_parent(ATK // .G_OBJECT_GET_CLASS(atkObject)); // long /* int */gObjectClass = ATK.G_OBJECT_CLASS(superType); // GObjectClass objectClassStruct = new GObjectClass(); // ATK.memmove(objectClassStruct, gObjectClass); // ATK.call(objectClassStruct.finalize, atkObject); // AccessibleObject object = (AccessibleObject) AccessibleObjects // .get(new LONG(atkObject)); // if (object != null) { // AccessibleObjects.remove(new LONG(atkObject)); // } // return 0; // } // // static int toATKRelation(int relation) { // switch (relation) { // case ACC.RELATION_CONTROLLED_BY: // return ATK.ATK_RELATION_CONTROLLED_BY; // case ACC.RELATION_CONTROLLER_FOR: // return ATK.ATK_RELATION_CONTROLLER_FOR; // case ACC.RELATION_DESCRIBED_BY: // return ATK.ATK_RELATION_DESCRIBED_BY; // case ACC.RELATION_DESCRIPTION_FOR: // return ATK.ATK_RELATION_DESCRIPTION_FOR; // case ACC.RELATION_EMBEDDED_BY: // return ATK.ATK_RELATION_EMBEDDED_BY; // case ACC.RELATION_EMBEDS: // return ATK.ATK_RELATION_EMBEDS; // case ACC.RELATION_FLOWS_FROM: // return ATK.ATK_RELATION_FLOWS_FROM; // case ACC.RELATION_FLOWS_TO: // return ATK.ATK_RELATION_FLOWS_TO; // case ACC.RELATION_LABEL_FOR: // return ATK.ATK_RELATION_LABEL_FOR; // case ACC.RELATION_LABELLED_BY: // return ATK.ATK_RELATION_LABELLED_BY; // case ACC.RELATION_MEMBER_OF: // return ATK.ATK_RELATION_MEMBER_OF; // case ACC.RELATION_NODE_CHILD_OF: // return ATK.ATK_RELATION_NODE_CHILD_OF; // case ACC.RELATION_PARENT_WINDOW_OF: // return ATK.ATK_RELATION_PARENT_WINDOW_OF; // case ACC.RELATION_POPUP_FOR: // return ATK.ATK_RELATION_POPUP_FOR; // case ACC.RELATION_SUBWINDOW_OF: // return ATK.ATK_RELATION_SUBWINDOW_OF; // } // return 0; // } // // static void windowPoint(AccessibleObject object, int[] x, int[] y) { // GtkAccessible gtkAccessible = new GtkAccessible(); // ATK.memmove(gtkAccessible, object.handle); // while (gtkAccessible.widget == 0 && object.parent != null) { // object = object.parent; // ATK.memmove(gtkAccessible, object.handle); // } // if (gtkAccessible.widget == 0) // return; // long /* int */topLevel = ATK // .gtk_widget_get_toplevel(gtkAccessible.widget); // long /* int */window = OS.GTK_WIDGET_WINDOW(topLevel); // OS.gdk_window_get_origin(window, x, y); // } // // static int nextIndexOfChar(String string, String searchChars, int // startIndex) { // int result = string.length(); // for (int i = 0; i < searchChars.length(); i++) { // char current = searchChars.charAt(i); // int index = string.indexOf(current, startIndex); // if (index != -1) // result = Math.min(result, index); // } // return result; // } // // static int nextIndexOfNotChar(String string, String searchChars, // int startIndex) { // int length = string.length(); // int index = startIndex; // while (index < length) { // char current = string.charAt(index); // if (searchChars.indexOf(current) == -1) // break; // index++; // } // return index; // } // // static int previousIndexOfChar(String string, String searchChars, // int startIndex) { // int result = -1; // if (startIndex < 0) // return result; // string = string.substring(0, startIndex); // for (int i = 0; i < searchChars.length(); i++) { // char current = searchChars.charAt(i); // int index = string.lastIndexOf(current); // if (index != -1) // result = Math.max(result, index); // } // return result; // } // // static int previousIndexOfNotChar(String string, String searchChars, // int startIndex) { // if (startIndex < 0) // return -1; // int index = startIndex - 1; // while (index >= 0) { // char current = string.charAt(index); // if (searchChars.indexOf(current) == -1) // break; // index--; // } // return index; // } // // void addRelation(int type, Accessible target) { // OS.atk_object_add_relationship(handle, toATKRelation(type), // target.getAccessibleObject().handle); // } // // void release() { // if (DEBUG) // print("AccessibleObject.release: " + handle); // accessible = null; // if (children != null) { // for (int i = 0; i < children.length; i++) { // AccessibleObject child = children[i]; // if (child != null) // OS.g_object_unref(child.handle); // } // children = null; // } // // TODO remove from children from parent? // if (isLightweight) { // OS.g_object_unref(handle); // } // } // // void removeRelation(int type, Accessible target) { // OS.atk_object_remove_relationship(handle, toATKRelation(type), // target.getAccessibleObject().handle); // } // // void selectionChanged() { // OS.g_signal_emit_by_name(handle, ATK.selection_changed); // } // // void sendEvent(int event, Object eventData) { // switch (event) { // case ACC.EVENT_SELECTION_CHANGED: // OS.g_signal_emit_by_name(handle, ATK.selection_changed); // break; // case ACC.EVENT_TEXT_SELECTION_CHANGED: // OS.g_signal_emit_by_name(handle, ATK.text_selection_changed); // break; // case ACC.EVENT_STATE_CHANGED: { // if (!(eventData instanceof int[])) // break; // int[] array = (int[]) eventData; // int state = array[0]; // int value = array[1]; // int atkState = -1; // switch (state) { // case ACC.STATE_SELECTED: // atkState = ATK.ATK_STATE_SELECTED; // break; // case ACC.STATE_SELECTABLE: // atkState = ATK.ATK_STATE_SELECTABLE; // break; // case ACC.STATE_MULTISELECTABLE: // atkState = ATK.ATK_STATE_MULTISELECTABLE; // break; // case ACC.STATE_FOCUSED: // atkState = ATK.ATK_STATE_FOCUSED; // break; // case ACC.STATE_FOCUSABLE: // atkState = ATK.ATK_STATE_FOCUSABLE; // break; // case ACC.STATE_PRESSED: // atkState = ATK.ATK_STATE_PRESSED; // break; // case ACC.STATE_CHECKED: // atkState = ATK.ATK_STATE_CHECKED; // break; // case ACC.STATE_EXPANDED: // atkState = ATK.ATK_STATE_EXPANDED; // break; // case ACC.STATE_COLLAPSED: // atkState = ATK.ATK_STATE_EXPANDED; // break; // case ACC.STATE_HOTTRACKED: // atkState = ATK.ATK_STATE_ARMED; // break; // case ACC.STATE_BUSY: // atkState = ATK.ATK_STATE_BUSY; // break; // case ACC.STATE_READONLY: // atkState = ATK.ATK_STATE_EDITABLE; // break; // case ACC.STATE_INVISIBLE: // atkState = ATK.ATK_STATE_VISIBLE; // break; // case ACC.STATE_OFFSCREEN: // atkState = ATK.ATK_STATE_SHOWING; // break; // case ACC.STATE_SIZEABLE: // atkState = ATK.ATK_STATE_RESIZABLE; // break; // case ACC.STATE_LINKED: // break; // case ACC.STATE_DISABLED: // atkState = ATK.ATK_STATE_ENABLED; // break; // case ACC.STATE_ACTIVE: // atkState = ATK.ATK_STATE_ACTIVE; // break; // case ACC.STATE_SINGLELINE: // atkState = ATK.ATK_STATE_SINGLE_LINE; // break; // case ACC.STATE_MULTILINE: // atkState = ATK.ATK_STATE_MULTI_LINE; // break; // case ACC.STATE_REQUIRED: // atkState = ATK.ATK_STATE_REQUIRED; // break; // case ACC.STATE_INVALID_ENTRY: // atkState = ATK.ATK_STATE_INVALID_ENTRY; // break; // case ACC.STATE_SUPPORTS_AUTOCOMPLETION: // atkState = ATK.ATK_STATE_SUPPORTS_AUTOCOMPLETION; // break; // } // if (atkState == -1) // break; // ATK.atk_object_notify_state_change(handle, atkState, value != 0); // break; // } // case ACC.EVENT_LOCATION_CHANGED: { // Vector listeners = accessible.accessibleControlListeners; // int length = listeners.size(); // GdkRectangle rect = new GdkRectangle(); // if (length > 0) { // AccessibleControlEvent e = new AccessibleControlEvent( // accessible); // e.childID = id; // for (int i = 0; i < length; i++) { // AccessibleControlListener listener = (AccessibleControlListener) // listeners // .elementAt(i); // listener.getLocation(e); // } // rect.x = e.x; // rect.y = e.y; // rect.width = e.width; // rect.height = e.height; // } // OS.g_signal_emit_by_name(handle, ATK.bounds_changed, rect); // break; // } // case ACC.EVENT_NAME_CHANGED: // OS.g_object_notify(handle, ATK.accessible_name); // break; // case ACC.EVENT_DESCRIPTION_CHANGED: // OS.g_object_notify(handle, ATK.accessible_description); // break; // case ACC.EVENT_VALUE_CHANGED: // OS.g_object_notify(handle, ATK.accessible_value); // break; // case ACC.EVENT_DOCUMENT_LOAD_COMPLETE: // OS.g_signal_emit_by_name(handle, ATK.load_complete); // break; // case ACC.EVENT_DOCUMENT_LOAD_STOPPED: // OS.g_signal_emit_by_name(handle, ATK.load_stopped); // break; // case ACC.EVENT_DOCUMENT_RELOAD: // OS.g_signal_emit_by_name(handle, ATK.reload); // break; // case ACC.EVENT_PAGE_CHANGED: // break; // case ACC.EVENT_SECTION_CHANGED: // break; // case ACC.EVENT_ACTION_CHANGED: // break; // case ACC.EVENT_HYPERLINK_END_INDEX_CHANGED: // OS.g_object_notify(handle, ATK.end_index); // break; // case ACC.EVENT_HYPERLINK_ANCHOR_COUNT_CHANGED: // OS.g_object_notify(handle, ATK.number_of_anchors); // break; // case ACC.EVENT_HYPERLINK_SELECTED_LINK_CHANGED: // OS.g_object_notify(handle, ATK.selected_link); // break; // case ACC.EVENT_HYPERLINK_START_INDEX_CHANGED: // OS.g_object_notify(handle, ATK.start_index); // break; // case ACC.EVENT_HYPERLINK_ACTIVATED: // OS.g_signal_emit_by_name(handle, ATK.link_activated); // break; // case ACC.EVENT_HYPERTEXT_LINK_SELECTED: // if (!(eventData instanceof Integer)) // break; // int index = ((Integer) eventData).intValue(); // OS.g_signal_emit_by_name(handle, ATK.link_selected, index); // break; // case ACC.EVENT_HYPERTEXT_LINK_COUNT_CHANGED: // OS.g_object_notify(handle, ATK.accessible_hypertext_nlinks); // break; // case ACC.EVENT_ATTRIBUTE_CHANGED: // OS.g_signal_emit_by_name(handle, ATK.attributes_changed); // break; // case ACC.EVENT_TABLE_CAPTION_CHANGED: // OS.g_object_notify(handle, ATK.accessible_table_caption_object); // break; // case ACC.EVENT_TABLE_COLUMN_DESCRIPTION_CHANGED: // OS.g_object_notify(handle, ATK.accessible_table_column_description); // break; // case ACC.EVENT_TABLE_COLUMN_HEADER_CHANGED: // OS.g_object_notify(handle, ATK.accessible_table_column_header); // break; // case ACC.EVENT_TABLE_CHANGED: { // if (!(eventData instanceof int[])) // break; // int[] array = (int[]) eventData; // int type = array[0]; // int rowStart = array[1]; // int rowCount = array[2]; // int columnStart = array[3]; // int columnCount = array[4]; // switch (type) { // case ACC.DELETE: // if (rowCount > 0) // OS.g_signal_emit_by_name(handle, ATK.row_deleted, rowStart, // rowCount); // if (columnCount > 0) // OS.g_signal_emit_by_name(handle, ATK.column_deleted, // columnStart, columnCount); // break; // case ACC.INSERT: // if (rowCount > 0) // OS.g_signal_emit_by_name(handle, ATK.row_inserted, // rowStart, rowCount); // if (columnCount > 0) // OS.g_signal_emit_by_name(handle, ATK.column_inserted, // columnStart, columnCount); // break; // } // break; // } // case ACC.EVENT_TABLE_ROW_DESCRIPTION_CHANGED: // OS.g_object_notify(handle, ATK.accessible_table_row_description); // break; // case ACC.EVENT_TABLE_ROW_HEADER_CHANGED: // OS.g_object_notify(handle, ATK.accessible_table_row_header); // break; // case ACC.EVENT_TABLE_SUMMARY_CHANGED: // OS.g_object_notify(handle, ATK.accessible_table_summary); // break; // case ACC.EVENT_TEXT_ATTRIBUTE_CHANGED: // OS.g_signal_emit_by_name(handle, ATK.text_attributes_changed); // break; // case ACC.EVENT_TEXT_CARET_MOVED: // case ACC.EVENT_TEXT_COLUMN_CHANGED: { // int offset = 0; // Vector listeners = accessible.accessibleTextExtendedListeners; // int length = listeners.size(); // AccessibleTextEvent e = new AccessibleTextEvent(accessible); // if (length > 0) { // for (int i = 0; i < length; i++) { // AccessibleTextListener listener = (AccessibleTextListener) listeners // .elementAt(i); // listener.getCaretOffset(e); // } // } else { // listeners = accessible.accessibleTextListeners; // length = listeners.size(); // if (length > 0) { // e.childID = id; // for (int i = 0; i < length; i++) { // AccessibleTextListener listener = (AccessibleTextListener) listeners // .elementAt(i); // listener.getCaretOffset(e); // } // } // } // offset = e.offset; // OS.g_signal_emit_by_name(handle, ATK.text_caret_moved, offset); // break; // } // case ACC.EVENT_TEXT_CHANGED: { // if (!(eventData instanceof Object[])) // break; // Object[] data = (Object[]) eventData; // int type = ((Integer) data[0]).intValue(); // int start = ((Integer) data[1]).intValue(); // int end = ((Integer) data[2]).intValue(); // switch (type) { // case ACC.DELETE: // OS.g_signal_emit_by_name(handle, ATK.text_changed_delete, // start, end - start); // break; // case ACC.INSERT: // OS.g_signal_emit_by_name(handle, ATK.text_changed_insert, // start, end - start); // break; // } // break; // } // } // } // // void setFocus(int childID) { // updateChildren(); // AccessibleObject accObject = getChildByID(childID); // if (accObject != null) { // OS.g_signal_emit_by_name(accObject.handle, ATK.focus_event, 1, 0); // ATK.atk_object_notify_state_change(accObject.handle, // ATK.ATK_STATE_FOCUSED, true); // } // } // // void textCaretMoved(int index) { // OS.g_signal_emit_by_name(handle, ATK.text_caret_moved, index); // } // // void textChanged(int type, int startIndex, int length) { // if (type == ACC.TEXT_DELETE) { // OS.g_signal_emit_by_name(handle, ATK.text_changed_delete, // startIndex, length); // } else { // OS.g_signal_emit_by_name(handle, ATK.text_changed_insert, // startIndex, length); // } // } // // void textSelectionChanged() { // OS.g_signal_emit_by_name(handle, ATK.text_selection_changed); // } // // void updateChildren() { // Vector listeners = accessible.accessibleControlListeners; // int length = listeners.size(); // AccessibleControlEvent event = new AccessibleControlEvent(accessible); // event.childID = id; // for (int i = 0; i < length; i++) { // AccessibleControlListener listener = (AccessibleControlListener) // listeners // .elementAt(i); // listener.getChildren(event); // } // Object[] children = event.children; // AccessibleObject[] oldChildren = this.children; // int count = children != null ? children.length : 0; // AccessibleObject[] newChildren = new AccessibleObject[count]; // for (int i = 0; i < count; i++) { // Object child = children[i]; // AccessibleObject object = null; // if (child instanceof Integer) { // int id = ((Integer) child).intValue(); // object = oldChildren != null && i < oldChildren.length ? oldChildren[i] // : null; // if (object == null || object.id != id) { // event = new AccessibleControlEvent(accessible); // event.childID = id; // for (int j = 0; j < length; j++) { // AccessibleControlListener listener = (AccessibleControlListener) // listeners // .elementAt(j); // listener.getChild(event); // } // if (event.accessible != null) { // object = event.accessible.getAccessibleObject(); // if (object != null) // OS.g_object_ref(object.handle); // } else { // object = AccessibleFactory.createChildAccessible( // accessible, id); // } // object.id = id; // } else { // OS.g_object_ref(object.handle); // } // } else if (child instanceof Accessible) { // object = ((Accessible) child).getAccessibleObject(); // if (object != null) // OS.g_object_ref(object.handle); // } // if (object != null) { // object.index = i; // object.parent = this; // newChildren[i] = object; // } // } // if (oldChildren != null) { // for (int i = 0; i < oldChildren.length; i++) { // AccessibleObject object = oldChildren[i]; // if (object != null) // OS.g_object_unref(object.handle); // } // } // this.children = newChildren; // } }