Mercurial > projects > dwt2
diff org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/accessibility/Accessible.d @ 11:43904fec5dca
Readded the use of Vector to omit tango.core.Array dependency.
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Fri, 13 Mar 2009 17:44:24 +0100 |
parents | 950d84783eac |
children | 52184e4b815c |
line wrap: on
line diff
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/accessibility/Accessible.d Fri Mar 13 16:57:07 2009 +0100 +++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/accessibility/Accessible.d Fri Mar 13 17:44:24 2009 +0100 @@ -37,6 +37,7 @@ import org.eclipse.swt.accessibility.AccessibleEvent; import java.lang.all; +import java.util.Vector; import tango.core.Thread; /** @@ -67,13 +68,16 @@ _IAccessibleImpl objIAccessible; _IEnumVARIANTImpl objIEnumVARIANT; IAccessible iaccessible; - SWTEventListener[] accessibleListeners; - SWTEventListener[] accessibleControlListeners; - SWTEventListener[] textListeners; + Vector accessibleListeners; + Vector accessibleControlListeners; + Vector textListeners; Object[] variants; Control control; this(Control control) { + accessibleListeners = new Vector(); + accessibleControlListeners = new Vector(); + textListeners = new Vector (); this.control = control; int /*long*/[] ppvObject = new int /*long*/[1]; /* CreateStdAccessibleObject([in] hwnd, [in] idObject, [in] riidInterface, [out] ppvObject). @@ -159,7 +163,7 @@ public void addAccessibleListener(AccessibleListener listener) { checkWidget(); if (listener is null) SWT.error(__FILE__, __LINE__, SWT.ERROR_NULL_ARGUMENT); - accessibleListeners ~= listener; + accessibleListeners.addElement(cast(Object)listener); } /** @@ -186,7 +190,7 @@ public void addAccessibleControlListener(AccessibleControlListener listener) { checkWidget(); if (listener is null) SWT.error(__FILE__, __LINE__, SWT.ERROR_NULL_ARGUMENT); - accessibleControlListeners ~= listener; + accessibleControlListeners.addElement(cast(Object)listener); } /** @@ -215,7 +219,7 @@ public void addAccessibleTextListener (AccessibleTextListener listener) { checkWidget (); if (listener is null) SWT.error (SWT.ERROR_NULL_ARGUMENT); - textListeners ~= listener; + textListeners.addElement(cast(Object)listener); } /** @@ -290,7 +294,7 @@ public void removeAccessibleListener(AccessibleListener listener) { checkWidget(); if (listener is null) SWT.error(__FILE__, __LINE__, SWT.ERROR_NULL_ARGUMENT); - accessibleListeners.length = accessibleListeners.remove(listener); + accessibleListeners.removeElement(cast(Object)listener); } /** @@ -315,7 +319,7 @@ public void removeAccessibleControlListener(AccessibleControlListener listener) { checkWidget(); if (listener is null) SWT.error(__FILE__, __LINE__, SWT.ERROR_NULL_ARGUMENT); - accessibleControlListeners.length = accessibleControlListeners.remove(listener); + accessibleControlListeners.removeElement(cast(Object)listener); } /** @@ -342,7 +346,7 @@ public void removeAccessibleTextListener (AccessibleTextListener listener) { checkWidget (); if (listener is null) SWT.error (SWT.ERROR_NULL_ARGUMENT); - textListeners.length = textListeners.remove (listener); + textListeners.removeElement (cast(Object)listener); } /** @@ -496,7 +500,7 @@ HRESULT accHitTest(LONG xLeft, LONG yTop, VARIANT* pvarChild) { if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED; - if (accessibleControlListeners.length is 0) { + if (accessibleControlListeners.size() is 0) { return iaccessible.accHitTest(xLeft, yTop, pvarChild); } @@ -504,8 +508,8 @@ event.childID = ACC.CHILDID_NONE; event.x = xLeft; event.y = yTop; - for (int i = 0; i < accessibleControlListeners.length; i++) { - AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners[i]; + for (int i = 0; i < accessibleControlListeners.size(); i++) { + AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners.elementAt(i); listener.getChildAtPoint(event); } int childID = event.childID; @@ -528,7 +532,7 @@ int osLeft = 0, osTop = 0, osWidth = 0, osHeight = 0; int code = iaccessible.accLocation(pxLeft, pyTop, pcxWidth, pcyHeight, variant); if (code is COM.E_INVALIDARG) code = COM.S_FALSE; // proxy doesn't know about app childID - if (accessibleControlListeners.length is 0) return code; + if (accessibleControlListeners.size() is 0) return code; if (code is COM.S_OK) { int[1] pLeft, pTop, pWidth, pHeight; COM.MoveMemory(pLeft.ptr, pxLeft, 4); @@ -544,8 +548,8 @@ event.y = osTop; event.width = osWidth; event.height = osHeight; - for (int i = 0; i < accessibleControlListeners.length; i++) { - AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners[i]; + for (int i = 0; i < accessibleControlListeners.size(); i++) { + AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners.elementAt(i); listener.getLocation(event); } OS.MoveMemory(pxLeft, &event.x, 4); @@ -580,7 +584,7 @@ VARIANT* v = &variant; //COM.MoveMemory(v, variant, VARIANT.sizeof); if ((v.vt & 0xFFFF) !is COM.VT_I4) return COM.E_INVALIDARG; - if (accessibleControlListeners.length is 0) { + if (accessibleControlListeners.size() is 0) { int code = iaccessible.get_accChild(variant, ppdispChild); if (code is COM.E_INVALIDARG) code = COM.S_FALSE; // proxy doesn't know about app childID return code; @@ -588,8 +592,8 @@ AccessibleControlEvent event = new AccessibleControlEvent(this); event.childID = osToChildID(v.lVal); - for (int i = 0; i < accessibleControlListeners.length; i++) { - AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners[i]; + for (int i = 0; i < accessibleControlListeners.size(); i++) { + AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners.elementAt(i); listener.getChild(event); } Accessible accessible = event.accessible; @@ -607,7 +611,7 @@ /* Get the default child count from the OS. */ int osChildCount = 0; int code = iaccessible.get_accChildCount(pcountChildren); - if (accessibleControlListeners.length is 0) return code; + if (accessibleControlListeners.size() is 0) return code; if (code is COM.S_OK) { int[1] pChildCount; COM.MoveMemory(pChildCount.ptr, pcountChildren, 4); @@ -617,8 +621,8 @@ AccessibleControlEvent event = new AccessibleControlEvent(this); event.childID = ACC.CHILDID_SELF; event.detail = osChildCount; - for (int i = 0; i < accessibleControlListeners.length; i++) { - AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners[i]; + for (int i = 0; i < accessibleControlListeners.size(); i++) { + AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners.elementAt(i); listener.getChildCount(event); } @@ -636,7 +640,7 @@ String osDefaultAction = null; int code = iaccessible.get_accDefaultAction(variant, pszDefaultAction); if (code is COM.E_INVALIDARG) code = COM.S_FALSE; // proxy doesn't know about app childID - if (accessibleControlListeners.length is 0) return code; + if (accessibleControlListeners.size() is 0) return code; if (code is COM.S_OK) { osDefaultAction = BSTRToStr( *pszDefaultAction, true ); } @@ -644,8 +648,8 @@ AccessibleControlEvent event = new AccessibleControlEvent(this); event.childID = osToChildID(v.lVal); event.result = osDefaultAction; - for (int i = 0; i < accessibleControlListeners.length; i++) { - AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners[i]; + for (int i = 0; i < accessibleControlListeners.size(); i++) { + AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners.elementAt(i); listener.getDefaultAction(event); } if (event.result is null) return code; @@ -665,7 +669,7 @@ int code = iaccessible.get_accDescription(variant, pszDescription); if (code is COM.E_INVALIDARG) code = COM.S_FALSE; // proxy doesn't know about app childID // TEMPORARY CODE - process tree even if there are no apps listening - if (accessibleListeners.length is 0 && !( null is cast(Tree)control )) return code; + if (accessibleListeners.size() is 0 && !( null is cast(Tree)control )) return code; if (code is COM.S_OK) { int size = COM.SysStringByteLen(*pszDescription); if (size > 0) { @@ -704,8 +708,8 @@ } } } - for (int i = 0; i < accessibleListeners.length; i++) { - AccessibleListener listener = cast(AccessibleListener) accessibleListeners[i]; + for (int i = 0; i < accessibleListeners.size(); i++) { + AccessibleListener listener = cast(AccessibleListener) accessibleListeners.elementAt(i); listener.getDescription(event); } if (event.result is null) return code; @@ -724,7 +728,7 @@ /* Get the default focus child from the OS. */ int osChild = ACC.CHILDID_NONE; int code = iaccessible.get_accFocus(pvarChild); - if (accessibleControlListeners.length is 0) return code; + if (accessibleControlListeners.size() is 0) return code; if (code is COM.S_OK) { //TODO - use VARIANT structure short[1] pvt; @@ -738,8 +742,8 @@ AccessibleControlEvent event = new AccessibleControlEvent(this); event.childID = osChild; - for (int i = 0; i < accessibleControlListeners.length; i++) { - AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners[i]; + for (int i = 0; i < accessibleControlListeners.size(); i++) { + AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners.elementAt(i); listener.getFocus(event); } Accessible accessible = event.accessible; @@ -775,7 +779,7 @@ String osHelp = null; int code = iaccessible.get_accHelp(variant, pszHelp); if (code is COM.E_INVALIDARG) code = COM.S_FALSE; // proxy doesn't know about app childID - if (accessibleListeners.length is 0) return code; + if (accessibleListeners.size() is 0) return code; if (code is COM.S_OK) { // the original SysString is clearuped and bstr set to null osHelp = BSTRToStr(*pszHelp, true); @@ -784,8 +788,8 @@ AccessibleEvent event = new AccessibleEvent(this); event.childID = osToChildID(v.lVal); event.result = osHelp; - for (int i = 0; i < accessibleListeners.length; i++) { - AccessibleListener listener = cast(AccessibleListener) accessibleListeners[i]; + for (int i = 0; i < accessibleListeners.size(); i++) { + AccessibleListener listener = cast(AccessibleListener) accessibleListeners.elementAt(i); listener.getHelp(event); } if (event.result is null) return code; @@ -812,7 +816,7 @@ String osKeyboardShortcut = null; int code = iaccessible.get_accKeyboardShortcut(variant, pszKeyboardShortcut); if (code is COM.E_INVALIDARG) code = COM.S_FALSE; // proxy doesn't know about app childID - if (accessibleListeners.length is 0) return code; + if (accessibleListeners.size() is 0) return code; if (code is COM.S_OK) { // the original SysString is clearuped and bstr set to null osKeyboardShortcut = BSTRToStr(*pszKeyboardShortcut, true); @@ -821,8 +825,8 @@ AccessibleEvent event = new AccessibleEvent(this); event.childID = osToChildID(v.lVal); event.result = osKeyboardShortcut; - for (int i = 0; i < accessibleListeners.length; i++) { - AccessibleListener listener = cast(AccessibleListener) accessibleListeners[i]; + for (int i = 0; i < accessibleListeners.size(); i++) { + AccessibleListener listener = cast(AccessibleListener) accessibleListeners.elementAt(i); listener.getKeyboardShortcut(event); } if (event.result is null) return code; @@ -841,7 +845,7 @@ String osName = null; int code = iaccessible.get_accName(variant, pszName); if (code is COM.E_INVALIDARG) code = COM.S_FALSE; // proxy doesn't know about app childID - if (accessibleListeners.length is 0) return code; + if (accessibleListeners.size() is 0) return code; if (code is COM.S_OK) { // the original SysString is clearuped and bstr set to null osName = BSTRToStr(*pszName, true); @@ -850,8 +854,8 @@ AccessibleEvent event = new AccessibleEvent(this); event.childID = osToChildID(v.lVal); event.result = osName; - for (int i = 0; i < accessibleListeners.length; i++) { - AccessibleListener listener = cast(AccessibleListener) accessibleListeners[i]; + for (int i = 0; i < accessibleListeners.size(); i++) { + AccessibleListener listener = cast(AccessibleListener) accessibleListeners.elementAt(i); listener.getName(event); } if (event.result is null) return code; @@ -881,7 +885,7 @@ int code = iaccessible.get_accRole(variant, pvarRole); if (code is COM.E_INVALIDARG) code = COM.S_FALSE; // proxy doesn't know about app childID // TEMPORARY CODE - process tree and table even if there are no apps listening - if (accessibleControlListeners.length is 0 && !( null !is cast(Tree)control || null !is cast(Table)control )) return code; + if (accessibleControlListeners.size() is 0 && !( null !is cast(Tree)control || null !is cast(Table)control )) return code; if (code is COM.S_OK) { //TODO - use VARIANT structure short[1] pvt; @@ -904,8 +908,8 @@ if ((control.getStyle() & SWT.CHECK) !is 0) event.detail = ACC.ROLE_CHECKBUTTON; } } - for (int i = 0; i < accessibleControlListeners.length; i++) { - AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners[i]; + for (int i = 0; i < accessibleControlListeners.size(); i++) { + AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners.elementAt(i); listener.getRole(event); } int role = roleToOs(event.detail); @@ -924,7 +928,7 @@ /* Get the default selection from the OS. */ int osChild = ACC.CHILDID_NONE; int code = iaccessible.get_accSelection(pvarChildren); - if (accessibleControlListeners.length is 0) return code; + if (accessibleControlListeners.size() is 0) return code; if (code is COM.S_OK) { //TODO - use VARIANT structure short[1] pvt; @@ -941,8 +945,8 @@ AccessibleControlEvent event = new AccessibleControlEvent(this); event.childID = osChild; - for (int i = 0; i < accessibleControlListeners.length; i++) { - AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners[i]; + for (int i = 0; i < accessibleControlListeners.size(); i++) { + AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners.elementAt(i); listener.getSelection(event); } Accessible accessible = event.accessible; @@ -985,7 +989,7 @@ int code = iaccessible.get_accState(variant, pvarState); if (code is COM.E_INVALIDARG) code = COM.S_FALSE; // proxy doesn't know about app childID // TEMPORARY CODE - process tree and table even if there are no apps listening - if (accessibleControlListeners.length is 0 && !( null !is cast(Tree)control || null !is cast(Table)control )) return code; + if (accessibleControlListeners.size() is 0 && !( null !is cast(Tree)control || null !is cast(Table)control )) return code; if (code is COM.S_OK) { //TODO - use VARIANT structure short[1] pvt; @@ -1028,8 +1032,8 @@ } } } - for (int i = 0; i < accessibleControlListeners.length; i++) { - AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners[i]; + for (int i = 0; i < accessibleControlListeners.size(); i++) { + AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners.elementAt(i); listener.getState(event); } int state = stateToOs(event.detail); @@ -1052,7 +1056,7 @@ String osValue = null; int code = iaccessible.get_accValue(variant, pszValue); if (code is COM.E_INVALIDARG) code = COM.S_FALSE; // proxy doesn't know about app childID - if (accessibleControlListeners.length is 0) return code; + if (accessibleControlListeners.size() is 0) return code; if (code is COM.S_OK) { int size = COM.SysStringByteLen(*pszValue); if (size > 0) { @@ -1063,8 +1067,8 @@ AccessibleControlEvent event = new AccessibleControlEvent(this); event.childID = osToChildID(v.lVal); event.result = osValue; - for (int i = 0; i < accessibleControlListeners.length; i++) { - AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners[i]; + for (int i = 0; i < accessibleControlListeners.size(); i++) { + AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners.elementAt(i); listener.getValue(event); } if (event.result is null) return code; @@ -1107,7 +1111,7 @@ /* If there are no listeners, query the proxy for * its IEnumVariant, and get the Next items from it. */ - if (accessibleControlListeners.length is 0) { + if (accessibleControlListeners.size() is 0) { IEnumVARIANT ienumvariant; int code = iaccessible.QueryInterface(&COM.IIDIEnumVARIANT, cast(void**)&ienumvariant); if (code !is COM.S_OK) return code; @@ -1123,8 +1127,8 @@ if (enumIndex is 0) { AccessibleControlEvent event = new AccessibleControlEvent(this); event.childID = ACC.CHILDID_SELF; - for (int i = 0; i < accessibleControlListeners.length; i++) { - AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners[i]; + for (int i = 0; i < accessibleControlListeners.size(); i++) { + AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners.elementAt(i); listener.getChildren(event); } variants = event.children; @@ -1178,7 +1182,7 @@ /* If there are no listeners, query the proxy * for its IEnumVariant, and tell it to Skip. */ - if (accessibleControlListeners.length is 0) { + if (accessibleControlListeners.size() is 0) { IEnumVARIANT ienumvariant; int code = iaccessible.QueryInterface(&COM.IIDIEnumVARIANT, cast(void**)&ienumvariant); if (code !is COM.S_OK) return code; @@ -1201,7 +1205,7 @@ /* If there are no listeners, query the proxy * for its IEnumVariant, and tell it to Reset. */ - if (accessibleControlListeners.length is 0) { + if (accessibleControlListeners.size() is 0) { IEnumVARIANT ienumvariant; int code = iaccessible.QueryInterface(&COM.IIDIEnumVARIANT, cast(void**)&ienumvariant); if (code !is COM.S_OK) return code; @@ -1222,7 +1226,7 @@ /* If there are no listeners, query the proxy for * its IEnumVariant, and get the Clone from it. */ - if (accessibleControlListeners.length is 0) { + if (accessibleControlListeners.size() is 0) { IEnumVARIANT ienumvariant; int code = iaccessible.QueryInterface(&COM.IIDIEnumVARIANT, cast(void**)&ienumvariant); if (code !is COM.S_OK) return code;