annotate dwt/accessibility/Accessible.d @ 212:ab60f3309436

reverted the char[] to String and use the an alias.
author Frank Benoit <benoit@tionex.de>
date Mon, 05 May 2008 00:12:38 +0200
parents fa7d7d66b9ed
children 36f5cb12e1a2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1 /*******************************************************************************
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2 * Copyright (c) 2000, 2007 IBM Corporation and others.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
3 * All rights reserved. This program and the accompanying materials
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 * are made available under the terms of the Eclipse Public License v1.0
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
5 * which accompanies this distribution, and is available at
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 * http://www.eclipse.org/legal/epl-v10.html
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 * Contributors:
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 * IBM Corporation - initial API and implementation
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
10 * Port to the D programming language:
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
11 * Frank Benoit <benoit@tionex.de>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12 *******************************************************************************/
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
13 module dwt.accessibility.Accessible;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
14
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
15 import dwt.DWT;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
16 import dwt.DWTException;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
17 import dwt.internal.ole.win32.COM;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
18 import dwt.internal.ole.win32.OAIDL;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
19 import dwt.internal.ole.win32.ifs;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
20 import dwt.internal.ole.win32.extras;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
21 import dwt.internal.win32.OS;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
22 import dwt.internal.DWTEventListener;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
23 import dwt.ole.win32.OLE;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
24 import dwt.ole.win32.Variant;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25 import dwt.widgets.Control;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26 import dwt.widgets.Table;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27 import dwt.widgets.TableItem;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28 import dwt.widgets.Tree;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
29 import dwt.widgets.TreeItem;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30 import dwt.widgets.Widget;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
32 import dwt.accessibility.ACC;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
33 import dwt.accessibility.AccessibleControlListener;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
34 import dwt.accessibility.AccessibleListener;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
35 import dwt.accessibility.AccessibleTextListener;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
36 import dwt.accessibility.AccessibleControlEvent;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
37 import dwt.accessibility.AccessibleEvent;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
38
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
39 import dwt.dwthelper.utils;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
40 import tango.core.Array;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
41 import tango.core.Thread;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
42
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43 /**
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44 * Instances of this class provide a bridge between application
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45 * code and assistive technology clients. Many platforms provide
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46 * default accessible behavior for most widgets, and this class
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47 * allows that default behavior to be overridden. Applications
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48 * can get the default Accessible object for a control by sending
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49 * it <code>getAccessible</code>, and then add an accessible listener
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50 * to override simple items like the name and help string, or they
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51 * can add an accessible control listener to override complex items.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52 * As a rule of thumb, an application would only want to use the
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
53 * accessible control listener to implement accessibility for a
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54 * custom control.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
56 * @see Control#getAccessible
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
57 * @see AccessibleListener
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
58 * @see AccessibleEvent
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
59 * @see AccessibleControlListener
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60 * @see AccessibleControlEvent
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
61 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
62 * @since 2.0
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
63 */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64 public class Accessible {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65 int refCount = 0, enumIndex = 0;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
66 _IAccessibleImpl objIAccessible;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
67 _IEnumVARIANTImpl objIEnumVARIANT;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 IAccessible iaccessible;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
69 DWTEventListener[] accessibleListeners;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
70 DWTEventListener[] accessibleControlListeners;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
71 DWTEventListener[] textListeners;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 Object[] variants;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 Control control;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
75 this(Control control) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 this.control = control;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77 int /*long*/[] ppvObject = new int /*long*/[1];
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78 /* CreateStdAccessibleObject([in] hwnd, [in] idObject, [in] riidInterface, [out] ppvObject).
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79 * AddRef has already been called on ppvObject by the callee and must be released by the caller.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80 */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
81 HRESULT result = COM.CreateStdAccessibleObject(control.handle, COM.OBJID_CLIENT, &COM.IIDIAccessible, cast(void**)&iaccessible);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82 /* The object needs to be checked, because if the CreateStdAccessibleObject()
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83 * symbol is not found, the return value is S_OK.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84 */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
85 if (iaccessible is null) return;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 if (result !is COM.S_OK) OLE.error(OLE.ERROR_CANNOT_CREATE_OBJECT, result);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
88 objIAccessible = new _IAccessibleImpl(this);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
89
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
90 //PORTING_FIXME: i don't understand this...
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
91 /+
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 int /*long*/ ppVtable = objIAccessible.ppVtable;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93 int /*long*/[] pVtable = new int /*long*/[1];
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 COM.MoveMemory(pVtable, ppVtable, OS.PTR_SIZEOF);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95 int /*long*/[] funcs = new int /*long*/[28];
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96 COM.MoveMemory(funcs, pVtable[0], OS.PTR_SIZEOF * funcs.length);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97 funcs[9] = COM.get_accChild_CALLBACK(funcs[9]);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98 funcs[10] = COM.get_accName_CALLBACK(funcs[10]);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99 funcs[11] = COM.get_accValue_CALLBACK(funcs[11]);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100 funcs[12] = COM.get_accDescription_CALLBACK(funcs[12]);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 funcs[13] = COM.get_accRole_CALLBACK(funcs[13]);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102 funcs[14] = COM.get_accState_CALLBACK(funcs[14]);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103 funcs[15] = COM.get_accHelp_CALLBACK(funcs[15]);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104 funcs[16] = COM.get_accHelpTopic_CALLBACK(funcs[16]);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105 funcs[17] = COM.get_accKeyboardShortcut_CALLBACK(funcs[17]);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106 funcs[20] = COM.get_accDefaultAction_CALLBACK(funcs[20]);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107 funcs[21] = COM.accSelect_CALLBACK(funcs[21]);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108 funcs[22] = COM.accLocation_CALLBACK(funcs[22]);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109 funcs[23] = COM.accNavigate_CALLBACK(funcs[23]);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110 funcs[25] = COM.accDoDefaultAction_CALLBACK(funcs[25]);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111 funcs[26] = COM.put_accName_CALLBACK(funcs[26]);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112 funcs[27] = COM.put_accValue_CALLBACK(funcs[27]);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
113 COM.MoveMemory(pVtable[0], funcs, OS.PTR_SIZEOF * funcs.length);
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
114 +/
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
115
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
116 objIEnumVARIANT = new _IEnumVARIANTImpl(this) ;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117 AddRef();
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120 /**
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
121 * Invokes platform specific functionality to allocate a new accessible object.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122 * <p>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123 * <b>IMPORTANT:</b> This method is <em>not</em> part of the public
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
124 * API for <code>Accessible</code>. It is marked public only so that it
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125 * can be shared within the packages provided by DWT. It is not
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126 * available on all platforms, and should never be called from
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127 * application code.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128 * </p>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 * @param control the control to get the accessible object for
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 * @return the platform specific accessible object
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132 */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 public static Accessible internal_new_Accessible(Control control) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 return new Accessible(control);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
137 /**
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138 * Adds the listener to the collection of listeners who will
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
139 * be notified when an accessible client asks for certain strings,
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
140 * such as name, description, help, or keyboard shortcut. The
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
141 * listener is notified by sending it one of the messages defined
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142 * in the <code>AccessibleListener</code> interface.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
143 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
144 * @param listener the listener that should be notified when the receiver
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
145 * is asked for a name, description, help, or keyboard shortcut string
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
146 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
147 * @exception IllegalArgumentException <ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
148 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
149 * </ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150 * @exception DWTException <ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
151 * <li>ERROR_WIDGET_DISPOSED - if the receiver's control has been disposed</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver's control</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
153 * </ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
154 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
155 * @see AccessibleListener
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
156 * @see #removeAccessibleListener
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
157 */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
158 public void addAccessibleListener(AccessibleListener listener) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
159 checkWidget();
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
160 if (listener is null) DWT.error(__FILE__, __LINE__, DWT.ERROR_NULL_ARGUMENT);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
161 accessibleListeners ~= listener;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
162 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
163
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
164 /**
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
165 * Adds the listener to the collection of listeners who will
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
166 * be notified when an accessible client asks for custom control
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
167 * specific information. The listener is notified by sending it
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
168 * one of the messages defined in the <code>AccessibleControlListener</code>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
169 * interface.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
170 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
171 * @param listener the listener that should be notified when the receiver
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
172 * is asked for custom control specific information
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
173 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
174 * @exception IllegalArgumentException <ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
175 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
176 * </ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
177 * @exception DWTException <ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
178 * <li>ERROR_WIDGET_DISPOSED - if the receiver's control has been disposed</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
179 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver's control</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
180 * </ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
181 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
182 * @see AccessibleControlListener
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
183 * @see #removeAccessibleControlListener
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
184 */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
185 public void addAccessibleControlListener(AccessibleControlListener listener) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
186 checkWidget();
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
187 if (listener is null) DWT.error(__FILE__, __LINE__, DWT.ERROR_NULL_ARGUMENT);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
188 accessibleControlListeners ~= listener;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
189 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
190
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
191 /**
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
192 * Adds the listener to the collection of listeners who will
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
193 * be notified when an accessible client asks for custom text control
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
194 * specific information. The listener is notified by sending it
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
195 * one of the messages defined in the <code>AccessibleTextListener</code>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
196 * interface.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
197 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
198 * @param listener the listener that should be notified when the receiver
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
199 * is asked for custom text control specific information
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
200 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
201 * @exception IllegalArgumentException <ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
202 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
203 * </ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
204 * @exception DWTException <ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
205 * <li>ERROR_WIDGET_DISPOSED - if the receiver's control has been disposed</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
206 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver's control</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
207 * </ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
208 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
209 * @see AccessibleTextListener
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
210 * @see #removeAccessibleTextListener
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
211 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
212 * @since 3.0
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
213 */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
214 public void addAccessibleTextListener (AccessibleTextListener listener) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
215 checkWidget ();
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
216 if (listener is null) DWT.error (DWT.ERROR_NULL_ARGUMENT);
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
217 textListeners ~= listener;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
218 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
219
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
220 /**
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
221 * Returns the control for this Accessible object.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
222 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
223 * @return the receiver's control
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
224 * @since 3.0
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
225 */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
226 public Control getControl() {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
227 return control;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
228 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
229
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
230 /**
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
231 * Invokes platform specific functionality to dispose an accessible object.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
232 * <p>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
233 * <b>IMPORTANT:</b> This method is <em>not</em> part of the public
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
234 * API for <code>Accessible</code>. It is marked public only so that it
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
235 * can be shared within the packages provided by DWT. It is not
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
236 * available on all platforms, and should never be called from
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
237 * application code.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
238 * </p>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
239 */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
240 public void internal_dispose_Accessible() {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
241 if (iaccessible !is null) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
242 iaccessible.Release();
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
243 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
244 iaccessible = null;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
245 Release();
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
246 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
247
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
248 /**
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
249 * Invokes platform specific functionality to handle a window message.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
250 * <p>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
251 * <b>IMPORTANT:</b> This method is <em>not</em> part of the public
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
252 * API for <code>Accessible</code>. It is marked public only so that it
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
253 * can be shared within the packages provided by DWT. It is not
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
254 * available on all platforms, and should never be called from
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
255 * application code.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
256 * </p>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
257 */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
258 public int /*long*/ internal_WM_GETOBJECT (int /*long*/ wParam, int /*long*/ lParam) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
259 if (objIAccessible is null) return 0;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
260 if (cast(int)/*64*/lParam is COM.OBJID_CLIENT) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
261 /* LresultFromObject([in] riid, [in] wParam, [in] pAcc)
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
262 * The argument pAcc is owned by the caller so reference count does not
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
263 * need to be incremented.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
264 */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
265 return COM.LresultFromObject(&COM.IIDIAccessible, wParam, cast(IAccessible)objIAccessible);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
266 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
267 return 0;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
268 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
269
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
270 /**
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
271 * Removes the listener from the collection of listeners who will
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
272 * be notified when an accessible client asks for certain strings,
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
273 * such as name, description, help, or keyboard shortcut.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
274 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
275 * @param listener the listener that should no longer be notified when the receiver
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
276 * is asked for a name, description, help, or keyboard shortcut string
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
277 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
278 * @exception IllegalArgumentException <ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
279 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
280 * </ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
281 * @exception DWTException <ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
282 * <li>ERROR_WIDGET_DISPOSED - if the receiver's control has been disposed</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
283 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver's control</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
284 * </ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
285 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
286 * @see AccessibleListener
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
287 * @see #addAccessibleListener
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
288 */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
289 public void removeAccessibleListener(AccessibleListener listener) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
290 checkWidget();
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
291 if (listener is null) DWT.error(__FILE__, __LINE__, DWT.ERROR_NULL_ARGUMENT);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
292 accessibleListeners.remove(listener);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
293 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
294
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
295 /**
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
296 * Removes the listener from the collection of listeners who will
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
297 * be notified when an accessible client asks for custom control
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
298 * specific information.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
299 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
300 * @param listener the listener that should no longer be notified when the receiver
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
301 * is asked for custom control specific information
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
302 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
303 * @exception IllegalArgumentException <ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
304 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
305 * </ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
306 * @exception DWTException <ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
307 * <li>ERROR_WIDGET_DISPOSED - if the receiver's control has been disposed</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
308 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver's control</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
309 * </ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
310 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
311 * @see AccessibleControlListener
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
312 * @see #addAccessibleControlListener
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
313 */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
314 public void removeAccessibleControlListener(AccessibleControlListener listener) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
315 checkWidget();
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
316 if (listener is null) DWT.error(__FILE__, __LINE__, DWT.ERROR_NULL_ARGUMENT);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
317 accessibleControlListeners.remove(listener);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
318 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
319
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
320 /**
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
321 * Removes the listener from the collection of listeners who will
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
322 * be notified when an accessible client asks for custom text control
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
323 * specific information.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
324 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
325 * @param listener the listener that should no longer be notified when the receiver
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
326 * is asked for custom text control specific information
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
327 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
328 * @exception IllegalArgumentException <ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
329 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
330 * </ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
331 * @exception DWTException <ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
332 * <li>ERROR_WIDGET_DISPOSED - if the receiver's control has been disposed</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
333 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver's control</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
334 * </ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
335 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
336 * @see AccessibleTextListener
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
337 * @see #addAccessibleTextListener
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
338 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
339 * @since 3.0
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
340 */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
341 public void removeAccessibleTextListener (AccessibleTextListener listener) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
342 checkWidget ();
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
343 if (listener is null) DWT.error (DWT.ERROR_NULL_ARGUMENT);
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
344 textListeners.remove (listener);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
345 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
346
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
347 /**
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
348 * Sends a message to accessible clients that the child selection
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
349 * within a custom container control has changed.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
350 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
351 * @exception DWTException <ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
352 * <li>ERROR_WIDGET_DISPOSED - if the receiver's control has been disposed</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
353 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver's control</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
354 * </ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
355 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
356 * @since 3.0
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
357 */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
358 public void selectionChanged () {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
359 checkWidget();
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
360 COM.NotifyWinEvent (COM.EVENT_OBJECT_SELECTIONWITHIN, control.handle, COM.OBJID_CLIENT, COM.CHILDID_SELF);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
361 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
362
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
363 /**
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
364 * Sends a message to accessible clients indicating that the focus
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
365 * has changed within a custom control.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
366 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
367 * @param childID an identifier specifying a child of the control
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
368 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
369 * @exception DWTException <ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
370 * <li>ERROR_WIDGET_DISPOSED - if the receiver's control has been disposed</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
371 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver's control</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
372 * </ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
373 */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
374 public void setFocus(int childID) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
375 checkWidget();
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
376 COM.NotifyWinEvent (COM.EVENT_OBJECT_FOCUS, control.handle, COM.OBJID_CLIENT, childIDToOs(childID));
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
377 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
378
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
379 /**
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
380 * Sends a message to accessible clients that the text
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
381 * caret has moved within a custom control.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
382 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
383 * @param index the new caret index within the control
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
384 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
385 * @exception DWTException <ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
386 * <li>ERROR_WIDGET_DISPOSED - if the receiver's control has been disposed</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
387 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver's control</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
388 * </ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
389 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
390 * @since 3.0
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
391 */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
392 public void textCaretMoved (int index) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
393 checkWidget();
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
394 COM.NotifyWinEvent (COM.EVENT_OBJECT_LOCATIONCHANGE, control.handle, COM.OBJID_CARET, COM.CHILDID_SELF);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
395 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
396
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
397 /**
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
398 * Sends a message to accessible clients that the text
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
399 * within a custom control has changed.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
400 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
401 * @param type the type of change, one of <code>ACC.NOTIFY_TEXT_INSERT</code>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
402 * or <code>ACC.NOTIFY_TEXT_DELETE</code>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
403 * @param startIndex the text index within the control where the insertion or deletion begins
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
404 * @param length the non-negative length in characters of the insertion or deletion
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
405 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
406 * @exception DWTException <ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
407 * <li>ERROR_WIDGET_DISPOSED - if the receiver's control has been disposed</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
408 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver's control</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
409 * </ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
410 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
411 * @see ACC#TEXT_INSERT
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
412 * @see ACC#TEXT_DELETE
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
413 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
414 * @since 3.0
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
415 */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
416 public void textChanged (int type, int startIndex, int length) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
417 checkWidget();
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
418 COM.NotifyWinEvent (COM.EVENT_OBJECT_VALUECHANGE, control.handle, COM.OBJID_CLIENT, COM.CHILDID_SELF);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
419 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
420
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
421 /**
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
422 * Sends a message to accessible clients that the text
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
423 * selection has changed within a custom control.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
424 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
425 * @exception DWTException <ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
426 * <li>ERROR_WIDGET_DISPOSED - if the receiver's control has been disposed</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
427 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver's control</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
428 * </ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
429 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
430 * @since 3.0
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
431 */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
432 public void textSelectionChanged () {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
433 checkWidget();
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
434 // not an MSAA event
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
435 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
436
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
437 /* QueryInterface([in] iid, [out] ppvObject)
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
438 * Ownership of ppvObject transfers from callee to caller so reference count on ppvObject
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
439 * must be incremented before returning. Caller is responsible for releasing ppvObject.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
440 */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
441 HRESULT QueryInterface(REFIID riid, void** ppvObject) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
442 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
443
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
444 if (COM.IsEqualGUID(riid, &COM.IIDIUnknown)) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
445 *ppvObject = cast(void*)cast(IUnknown) objIAccessible;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
446 AddRef();
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
447 return COM.S_OK;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
448 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
449
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
450 if (COM.IsEqualGUID(riid, &COM.IIDIDispatch)) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
451 *ppvObject = cast(void*)cast(IDispatch) objIAccessible;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
452 AddRef();
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
453 return COM.S_OK;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
454 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
455
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
456 if (COM.IsEqualGUID(riid, &COM.IIDIAccessible)) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
457 *ppvObject = cast(void*)cast(IAccessible) objIAccessible;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
458 AddRef();
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
459 return COM.S_OK;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
460 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
461
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
462 if (COM.IsEqualGUID(riid, &COM.IIDIEnumVARIANT)) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
463 *ppvObject = cast(void*)cast(IEnumVARIANT) objIEnumVARIANT;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
464 AddRef();
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
465 enumIndex = 0;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
466 return COM.S_OK;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
467 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
468
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
469 HRESULT result = iaccessible.QueryInterface(riid, ppvObject);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
470 return result;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
471 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
472
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
473 ULONG AddRef() {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
474 refCount++;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
475 return refCount;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
476 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
477
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
478 ULONG Release() {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
479 refCount--;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
480
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
481 if (refCount is 0) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
482 objIAccessible = null;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
483 objIEnumVARIANT = null;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
484 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
485 return refCount;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
486 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
487
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
488 HRESULT accDoDefaultAction(VARIANT variant) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
489 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
490 // Currently, we don't let the application override this. Forward to the proxy.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
491 int code = iaccessible.accDoDefaultAction(variant);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
492 if (code is COM.E_INVALIDARG) code = COM.S_FALSE; // proxy doesn't know about app childID
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
493 return code;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
494 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
495
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
496 HRESULT accHitTest(LONG xLeft, LONG yTop, VARIANT* pvarChild) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
497 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
498 if (accessibleControlListeners.length is 0) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
499 return iaccessible.accHitTest(xLeft, yTop, pvarChild);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
500 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
501
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
502 AccessibleControlEvent event = new AccessibleControlEvent(this);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
503 event.childID = ACC.CHILDID_NONE;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
504 event.x = xLeft;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
505 event.y = yTop;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
506 for (int i = 0; i < accessibleControlListeners.length; i++) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
507 AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners[i];
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
508 listener.getChildAtPoint(event);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
509 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
510 int childID = event.childID;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
511 if (childID is ACC.CHILDID_NONE) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
512 return iaccessible.accHitTest(xLeft, yTop, pvarChild);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
513 }
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
514 pvarChild.vt = COM.VT_I4;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
515 pvarChild.lVal = childIDToOs(childID);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
516 return COM.S_OK;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
517 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
518
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
519 HRESULT accLocation(LONG* pxLeft, LONG* pyTop, LONG* pcxWidth, LONG* pcyHeight, VARIANT variant) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
520 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
521 VARIANT* v = &variant;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
522 //COM.MoveMemory(v, variant, VARIANT.sizeof);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
523 if ((v.vt & 0xFFFF) !is COM.VT_I4) return COM.E_INVALIDARG;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
524
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
525 /* Get the default location from the OS. */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
526 int osLeft = 0, osTop = 0, osWidth = 0, osHeight = 0;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
527 int code = iaccessible.accLocation(pxLeft, pyTop, pcxWidth, pcyHeight, variant);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
528 if (code is COM.E_INVALIDARG) code = COM.S_FALSE; // proxy doesn't know about app childID
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
529 if (accessibleControlListeners.length is 0) return code;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
530 if (code is COM.S_OK) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
531 int[1] pLeft, pTop, pWidth, pHeight;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
532 COM.MoveMemory(pLeft.ptr, pxLeft, 4);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
533 COM.MoveMemory(pTop.ptr, pyTop, 4);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
534 COM.MoveMemory(pWidth.ptr, pcxWidth, 4);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
535 COM.MoveMemory(pHeight.ptr, pcyHeight, 4);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
536 osLeft = pLeft[0]; osTop = pTop[0]; osWidth = pWidth[0]; osHeight = pHeight[0];
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
537 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
538
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
539 AccessibleControlEvent event = new AccessibleControlEvent(this);
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
540 event.childID = osToChildID(cast(int)/*64*/v.lVal);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
541 event.x = osLeft;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
542 event.y = osTop;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
543 event.width = osWidth;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
544 event.height = osHeight;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
545 for (int i = 0; i < accessibleControlListeners.length; i++) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
546 AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners[i];
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
547 listener.getLocation(event);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
548 }
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
549 OS.MoveMemory(pxLeft, &event.x, 4);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
550 OS.MoveMemory(pyTop, &event.y, 4);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
551 OS.MoveMemory(pcxWidth, &event.width, 4);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
552 OS.MoveMemory(pcyHeight, &event.height, 4);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
553 return COM.S_OK;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
554 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
555
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
556 HRESULT accNavigate(LONG navDir, VARIANT variant, VARIANT* pvarEndUpAt) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
557 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
558 // Currently, we don't let the application override this. Forward to the proxy.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
559 int code = iaccessible.accNavigate(navDir, variant, pvarEndUpAt);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
560 if (code is COM.E_INVALIDARG) code = COM.S_FALSE; // proxy doesn't know about app childID
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
561 return code;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
562 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
563
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
564 HRESULT accSelect(LONG flagsSelect, VARIANT variant) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
565 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
566 // Currently, we don't let the application override this. Forward to the proxy.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
567 int code = iaccessible.accSelect(flagsSelect, variant);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
568 if (code is COM.E_INVALIDARG) code = COM.S_FALSE; // proxy doesn't know about app childID
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
569 return code;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
570 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
571
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
572 /* get_accChild([in] varChild, [out] ppdispChild)
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
573 * Ownership of ppdispChild transfers from callee to caller so reference count on ppdispChild
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
574 * must be incremented before returning. The caller is responsible for releasing ppdispChild.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
575 */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
576 HRESULT get_accChild(VARIANT variant, LPDISPATCH* ppdispChild) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
577 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
578 VARIANT* v = &variant;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
579 //COM.MoveMemory(v, variant, VARIANT.sizeof);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
580 if ((v.vt & 0xFFFF) !is COM.VT_I4) return COM.E_INVALIDARG;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
581 if (accessibleControlListeners.length is 0) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
582 int code = iaccessible.get_accChild(variant, ppdispChild);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
583 if (code is COM.E_INVALIDARG) code = COM.S_FALSE; // proxy doesn't know about app childID
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
584 return code;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
585 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
586
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
587 AccessibleControlEvent event = new AccessibleControlEvent(this);
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
588 event.childID = osToChildID(cast(int)/*64*/v.lVal);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
589 for (int i = 0; i < accessibleControlListeners.length; i++) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
590 AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners[i];
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
591 listener.getChild(event);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
592 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
593 Accessible accessible = event.accessible;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
594 if (accessible !is null) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
595 accessible.AddRef();
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
596 *ppdispChild = accessible.objIAccessible;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
597 return COM.S_OK;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
598 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
599 return COM.S_FALSE;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
600 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
601
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
602 HRESULT get_accChildCount(LONG* pcountChildren) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
603 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
604
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
605 /* Get the default child count from the OS. */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
606 int osChildCount = 0;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
607 int code = iaccessible.get_accChildCount(pcountChildren);
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
608 if (accessibleControlListeners.length is 0) return code;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
609 if (code is COM.S_OK) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
610 int[1] pChildCount;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
611 COM.MoveMemory(pChildCount.ptr, pcountChildren, 4);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
612 osChildCount = pChildCount[0];
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
613 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
614
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
615 AccessibleControlEvent event = new AccessibleControlEvent(this);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
616 event.childID = ACC.CHILDID_SELF;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
617 event.detail = osChildCount;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
618 for (int i = 0; i < accessibleControlListeners.length; i++) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
619 AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners[i];
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
620 listener.getChildCount(event);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
621 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
622
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
623 *pcountChildren = event.detail;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
624 return COM.S_OK;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
625 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
626
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
627 HRESULT get_accDefaultAction(VARIANT variant, BSTR* pszDefaultAction) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
628 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
629 VARIANT* v = &variant;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
630 //COM.MoveMemory(v, variant, VARIANT.sizeof);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
631 if ((v.vt & 0xFFFF) !is COM.VT_I4) return COM.E_INVALIDARG;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
632
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
633 /* Get the default defaultAction from the OS. */
212
ab60f3309436 reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents: 134
diff changeset
634 String osDefaultAction = null;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
635 int code = iaccessible.get_accDefaultAction(variant, pszDefaultAction);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
636 if (code is COM.E_INVALIDARG) code = COM.S_FALSE; // proxy doesn't know about app childID
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
637 if (accessibleControlListeners.length is 0) return code;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
638 if (code is COM.S_OK) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
639 osDefaultAction = BSTRToStr( *pszDefaultAction, true );
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
640 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
641
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
642 AccessibleControlEvent event = new AccessibleControlEvent(this);
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
643 event.childID = osToChildID(cast(int)/*64*/v.lVal);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
644 event.result = osDefaultAction;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
645 for (int i = 0; i < accessibleControlListeners.length; i++) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
646 AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners[i];
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
647 listener.getDefaultAction(event);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
648 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
649 if (event.result is null) return code;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
650 auto ptr = COM.SysAllocString(StrToWCHARz(event.result));
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
651 *pszDefaultAction = ptr;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
652 return COM.S_OK;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
653 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
654
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
655 HRESULT get_accDescription(VARIANT variant, BSTR* pszDescription) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
656 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
657 VARIANT* v = &variant;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
658 //COM.MoveMemory(v, variant, VARIANT.sizeof);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
659 if ((v.vt & 0xFFFF) !is COM.VT_I4) return COM.E_INVALIDARG;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
660
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
661 /* Get the default description from the OS. */
212
ab60f3309436 reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents: 134
diff changeset
662 String osDescription = null;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
663 int code = iaccessible.get_accDescription(variant, pszDescription);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
664 if (code is COM.E_INVALIDARG) code = COM.S_FALSE; // proxy doesn't know about app childID
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
665 // TEMPORARY CODE - process tree even if there are no apps listening
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
666 if (accessibleListeners.length is 0 && !( null is cast(Tree)control )) return code;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
667 if (code is COM.S_OK) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
668 int size = COM.SysStringByteLen(*pszDescription);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
669 if (size > 0) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
670 size = (size + 1) /2;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
671 osDescription = WCHARzToStr(*pszDescription, size);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
672 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
673 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
674
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
675 AccessibleEvent event = new AccessibleEvent(this);
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
676 event.childID = osToChildID(cast(int)/*64*/v.lVal);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
677 event.result = osDescription;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
678
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
679 // TEMPORARY CODE
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
680 /* Currently our tree columns are emulated using custom draw,
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
681 * so we need to create the description using the tree column
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
682 * header text and tree item text. */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
683 if (v.lVal !is COM.CHILDID_SELF) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
684 if (auto tree = cast(Tree)control ) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
685 int columnCount = tree.getColumnCount ();
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
686 if (columnCount > 1) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
687 HWND hwnd = control.handle;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
688 int hItem;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
689 if (OS.COMCTL32_MAJOR >= 6) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
690 hItem = OS.SendMessage (hwnd, OS.TVM_MAPACCIDTOHTREEITEM, v.lVal, 0);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
691 } else {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
692 hItem = v.lVal;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
693 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
694 Widget widget = tree.getDisplay ().findWidget (hwnd, hItem);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
695 event.result = "";
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
696 if (widget !is null ) if( auto item = cast(TreeItem) widget ) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
697 for (int i = 1; i < columnCount; i++) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
698 event.result ~= tree.getColumn(i).getText() ~ ": " ~ item.getText(i);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
699 if (i + 1 < columnCount) event.result ~= ", ";
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
700 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
701 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
702 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
703 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
704 }
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
705 for (int i = 0; i < accessibleListeners.length; i++) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
706 AccessibleListener listener = cast(AccessibleListener) accessibleListeners[i];
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
707 listener.getDescription(event);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
708 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
709 if (event.result is null) return code;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
710 auto ptr = COM.SysAllocString(StrToWCHARz(event.result));
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
711 *pszDescription = ptr;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
712 return COM.S_OK;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
713 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
714
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
715 /* get_accFocus([out] int pvarChild)
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
716 * Ownership of pvarChild transfers from callee to caller so reference count on pvarChild
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
717 * must be incremented before returning. The caller is responsible for releasing pvarChild.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
718 */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
719 HRESULT get_accFocus(VARIANT* pvarChild) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
720 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
721
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
722 /* Get the default focus child from the OS. */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
723 int osChild = ACC.CHILDID_NONE;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
724 int code = iaccessible.get_accFocus(pvarChild);
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
725 if (accessibleControlListeners.length is 0) return code;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
726 if (code is COM.S_OK) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
727 short[1] pvt;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
728 COM.MoveMemory(pvt.ptr, pvarChild, 2);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
729 if (pvt[0] is COM.VT_I4) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
730 int[1] pChild;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
731 COM.MoveMemory(pChild.ptr, pvarChild + 8, 4);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
732 osChild = osToChildID(pChild[0]);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
733 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
734 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
735
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
736 AccessibleControlEvent event = new AccessibleControlEvent(this);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
737 event.childID = osChild;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
738 for (int i = 0; i < accessibleControlListeners.length; i++) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
739 AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners[i];
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
740 listener.getFocus(event);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
741 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
742 Accessible accessible = event.accessible;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
743 if (accessible !is null) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
744 accessible.AddRef();
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
745 pvarChild.vt = COM.VT_DISPATCH;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
746 pvarChild.byRef = cast(void*)cast(IDispatch)accessible.objIAccessible;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
747 return COM.S_OK;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
748 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
749 int childID = event.childID;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
750 if (childID is ACC.CHILDID_NONE) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
751 pvarChild.vt = COM.VT_EMPTY;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
752 return COM.S_FALSE;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
753 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
754 if (childID is ACC.CHILDID_SELF) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
755 AddRef();
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
756 pvarChild.vt = COM.VT_DISPATCH;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
757 pvarChild.byRef = cast(void*)cast(IDispatch)objIAccessible;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
758 return COM.S_OK;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
759 }
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
760 pvarChild.vt = COM.VT_I4;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
761 pvarChild.lVal = childIDToOs(childID);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
762 return COM.S_OK;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
763 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
764
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
765 HRESULT get_accHelp(VARIANT variant, BSTR* pszHelp) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
766 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
767 VARIANT* v = &variant;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
768 //COM.MoveMemory(v, variant, VARIANT.sizeof);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
769 if ((v.vt & 0xFFFF) !is COM.VT_I4) return COM.E_INVALIDARG;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
770
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
771 /* Get the default help string from the OS. */
212
ab60f3309436 reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents: 134
diff changeset
772 String osHelp = null;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
773 int code = iaccessible.get_accHelp(variant, pszHelp);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
774 if (code is COM.E_INVALIDARG) code = COM.S_FALSE; // proxy doesn't know about app childID
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
775 if (accessibleListeners.length is 0) return code;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
776 if (code is COM.S_OK) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
777 // the original SysString is clearuped and bstr set to null
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
778 osHelp = BSTRToStr(*pszHelp, true);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
779 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
780
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
781 AccessibleEvent event = new AccessibleEvent(this);
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
782 event.childID = osToChildID(cast(int)/*64*/v.lVal);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
783 event.result = osHelp;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
784 for (int i = 0; i < accessibleListeners.length; i++) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
785 AccessibleListener listener = cast(AccessibleListener) accessibleListeners[i];
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
786 listener.getHelp(event);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
787 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
788 if (event.result is null) return code;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
789 auto ptr = COM.SysAllocString(StrToWCHARz(event.result));
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
790 *pszHelp = ptr;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
791 return COM.S_OK;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
792 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
793
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
794 HRESULT get_accHelpTopic(BSTR* pszHelpFile, VARIANT variant, LONG* pidTopic) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
795 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
796 // Currently, we don't let the application override this. Forward to the proxy.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
797 int code = iaccessible.get_accHelpTopic(pszHelpFile, variant, pidTopic);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
798 if (code is COM.E_INVALIDARG) code = COM.S_FALSE; // proxy doesn't know about app childID
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
799 return code;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
800 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
801
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
802 HRESULT get_accKeyboardShortcut(VARIANT variant, BSTR* pszKeyboardShortcut) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
803 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
804 VARIANT* v = &variant;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
805 //COM.MoveMemory(v, variant, VARIANT.sizeof);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
806 if ((v.vt & 0xFFFF) !is COM.VT_I4) return COM.E_INVALIDARG;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
807
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
808 /* Get the default keyboard shortcut from the OS. */
212
ab60f3309436 reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents: 134
diff changeset
809 String osKeyboardShortcut = null;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
810 int code = iaccessible.get_accKeyboardShortcut(variant, pszKeyboardShortcut);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
811 if (code is COM.E_INVALIDARG) code = COM.S_FALSE; // proxy doesn't know about app childID
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
812 if (accessibleListeners.length is 0) return code;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
813 if (code is COM.S_OK) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
814 // the original SysString is clearuped and bstr set to null
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
815 osKeyboardShortcut = BSTRToStr(*pszKeyboardShortcut, true);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
816 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
817
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
818 AccessibleEvent event = new AccessibleEvent(this);
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
819 event.childID = osToChildID(cast(int)/*64*/v.lVal);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
820 event.result = osKeyboardShortcut;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
821 for (int i = 0; i < accessibleListeners.length; i++) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
822 AccessibleListener listener = cast(AccessibleListener) accessibleListeners[i];
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
823 listener.getKeyboardShortcut(event);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
824 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
825 if (event.result is null) return code;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
826 auto ptr = COM.SysAllocString(StrToWCHARz(event.result));
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
827 *pszKeyboardShortcut = ptr;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
828 return COM.S_OK;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
829 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
830
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
831 HRESULT get_accName(VARIANT variant, BSTR* pszName) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
832 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
833 VARIANT* v = &variant;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
834 //COM.MoveMemory(v, variant, VARIANT.sizeof);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
835 if ((v.vt & 0xFFFF) !is COM.VT_I4) return COM.E_INVALIDARG;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
836
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
837 /* Get the default name from the OS. */
212
ab60f3309436 reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents: 134
diff changeset
838 String osName = null;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
839 int code = iaccessible.get_accName(variant, pszName);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
840 if (code is COM.E_INVALIDARG) code = COM.S_FALSE; // proxy doesn't know about app childID
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
841 if (accessibleListeners.length is 0) return code;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
842 if (code is COM.S_OK) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
843 // the original SysString is clearuped and bstr set to null
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
844 osName = BSTRToStr(*pszName, true);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
845 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
846
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
847 AccessibleEvent event = new AccessibleEvent(this);
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
848 event.childID = osToChildID(cast(int)/*64*/v.lVal);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
849 event.result = osName;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
850 for (int i = 0; i < accessibleListeners.length; i++) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
851 AccessibleListener listener = cast(AccessibleListener) accessibleListeners[i];
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
852 listener.getName(event);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
853 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
854 if (event.result is null) return code;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
855 auto ptr = COM.SysAllocString(StrToWCHARz(event.result));
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
856 *pszName = ptr;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
857 return COM.S_OK;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
858 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
859
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
860 /* get_accParent([out] ppdispParent)
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
861 * Ownership of ppdispParent transfers from callee to caller so reference count on ppdispParent
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
862 * must be incremented before returning. The caller is responsible for releasing ppdispParent.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
863 */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
864 HRESULT get_accParent(LPDISPATCH* ppdispParent) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
865 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
866 // Currently, we don't let the application override this. Forward to the proxy.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
867 return iaccessible.get_accParent(ppdispParent);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
868 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
869
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
870 HRESULT get_accRole(VARIANT variant, VARIANT* pvarRole) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
871 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
872 VARIANT* v = &variant;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
873 //COM.MoveMemory(v, variant, VARIANT.sizeof);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
874 if ((v.vt & 0xFFFF) !is COM.VT_I4) return COM.E_INVALIDARG;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
875
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
876 /* Get the default role from the OS. */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
877 int osRole = COM.ROLE_SYSTEM_CLIENT;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
878 int code = iaccessible.get_accRole(variant, pvarRole);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
879 if (code is COM.E_INVALIDARG) code = COM.S_FALSE; // proxy doesn't know about app childID
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
880 // TEMPORARY CODE - process tree and table even if there are no apps listening
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
881 if (accessibleControlListeners.length is 0 && !( null !is cast(Tree)control || null !is cast(Table)control )) return code;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
882 if (code is COM.S_OK) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
883 short[1] pvt;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
884 COM.MoveMemory(pvt.ptr, pvarRole, 2);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
885 if (pvt[0] is COM.VT_I4) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
886 int[1] pRole;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
887 COM.MoveMemory(pRole.ptr, pvarRole + 8, 4);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
888 osRole = pRole[0];
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
889 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
890 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
891
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
892 AccessibleControlEvent event = new AccessibleControlEvent(this);
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
893 event.childID = osToChildID(cast(int)/*64*/v.lVal);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
894 event.detail = osToRole(osRole);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
895 // TEMPORARY CODE
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
896 /* Currently our checkbox table and tree are emulated using state mask
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
897 * images, so we need to specify 'checkbox' role for the items. */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
898 if (v.lVal !is COM.CHILDID_SELF) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
899 if ( null !is cast(Tree)control || null !is cast(Table)control ) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
900 if ((control.getStyle() & DWT.CHECK) !is 0) event.detail = ACC.ROLE_CHECKBUTTON;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
901 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
902 }
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
903 for (int i = 0; i < accessibleControlListeners.length; i++) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
904 AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners[i];
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
905 listener.getRole(event);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
906 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
907 int role = roleToOs(event.detail);
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
908 pvarRole.vt = COM.VT_I4;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
909 pvarRole.lVal = role;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
910 return COM.S_OK;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
911 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
912
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
913 /* get_accSelection([out] pvarChildren)
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
914 * Ownership of pvarChildren transfers from callee to caller so reference count on pvarChildren
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
915 * must be incremented before returning. The caller is responsible for releasing pvarChildren.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
916 */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
917 HRESULT get_accSelection(VARIANT* pvarChildren) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
918 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
919
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
920 /* Get the default selection from the OS. */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
921 int osChild = ACC.CHILDID_NONE;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
922 int code = iaccessible.get_accSelection(pvarChildren);
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
923 if (accessibleControlListeners.length is 0) return code;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
924 if (code is COM.S_OK) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
925 short[1] pvt;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
926 COM.MoveMemory(pvt.ptr, pvarChildren, 2);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
927 if (pvt[0] is COM.VT_I4) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
928 int[1] pChild;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
929 COM.MoveMemory(pChild.ptr, pvarChildren + 8, 4);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
930 osChild = osToChildID(pChild[0]);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
931 } else if (pvt[0] is COM.VT_UNKNOWN) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
932 osChild = ACC.CHILDID_MULTIPLE;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
933 /* Should get IEnumVARIANT from punkVal field, and enumerate children... */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
934 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
935 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
936
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
937 AccessibleControlEvent event = new AccessibleControlEvent(this);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
938 event.childID = osChild;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
939 for (int i = 0; i < accessibleControlListeners.length; i++) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
940 AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners[i];
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
941 listener.getSelection(event);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
942 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
943 Accessible accessible = event.accessible;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
944 if (accessible !is null) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
945 accessible.AddRef();
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
946 pvarChildren.vt = COM.VT_DISPATCH;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
947 pvarChildren.byRef = cast(void*)cast(IDispatch)accessible.objIAccessible;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
948 return COM.S_OK;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
949 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
950 int childID = event.childID;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
951 if (childID is ACC.CHILDID_NONE) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
952 pvarChildren.vt = COM.VT_EMPTY;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
953 return COM.S_FALSE;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
954 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
955 if (childID is ACC.CHILDID_MULTIPLE) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
956 AddRef();
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
957 pvarChildren.vt = COM.VT_UNKNOWN;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
958 pvarChildren.byRef = cast(void*)cast(IUnknown)objIAccessible;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
959 return COM.S_OK;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
960 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
961 if (childID is ACC.CHILDID_SELF) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
962 AddRef();
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
963 pvarChildren.vt = COM.VT_DISPATCH;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
964 pvarChildren.byRef = cast(void*)cast(IDispatch)objIAccessible;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
965 return COM.S_OK;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
966 }
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
967 pvarChildren.vt = COM.VT_I4;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
968 pvarChildren.lVal = childIDToOs(childID);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
969 return COM.S_OK;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
970 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
971
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
972 HRESULT get_accState(VARIANT variant, VARIANT* pvarState) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
973 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
974 VARIANT* v = &variant;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
975 //COM.MoveMemory(v, variant, VARIANT.sizeof);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
976 if ((v.vt & 0xFFFF) !is COM.VT_I4) return COM.E_INVALIDARG;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
977
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
978 /* Get the default state from the OS. */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
979 int osState = 0;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
980 int code = iaccessible.get_accState(variant, pvarState);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
981 if (code is COM.E_INVALIDARG) code = COM.S_FALSE; // proxy doesn't know about app childID
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
982 // TEMPORARY CODE - process tree and table even if there are no apps listening
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
983 if (accessibleControlListeners.length is 0 && !( null !is cast(Tree)control || null !is cast(Table)control )) return code;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
984 if (code is COM.S_OK) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
985 short[1] pvt;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
986 COM.MoveMemory(pvt.ptr, pvarState, 2);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
987 if (pvt[0] is COM.VT_I4) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
988 int[1] pState;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
989 COM.MoveMemory(pState.ptr, pvarState + 8, 4);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
990 osState = pState[0];
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
991 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
992 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
993
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
994 AccessibleControlEvent event = new AccessibleControlEvent(this);
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
995 event.childID = osToChildID(cast(int)/*64*/v.lVal);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
996 event.detail = osToState(osState);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
997 // TEMPORARY CODE
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
998 /* Currently our checkbox table and tree are emulated using state mask
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
999 * images, so we need to determine if the item state is 'checked'. */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1000 if (v.lVal !is COM.CHILDID_SELF) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1001 if (null !is cast(Tree)control && (control.getStyle() & DWT.CHECK) !is 0) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1002 auto hwnd = control.handle;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1003 TVITEM tvItem;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1004 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_STATE;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1005 tvItem.stateMask = OS.TVIS_STATEIMAGEMASK;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1006 if (OS.COMCTL32_MAJOR >= 6) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1007 tvItem.hItem = cast(HANDLE) OS.SendMessage (hwnd, OS.TVM_MAPACCIDTOHTREEITEM, v.lVal, 0);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1008 } else {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1009 tvItem.hItem = cast(HANDLE) v.lVal;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1010 }
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1011 auto result = OS.SendMessage (hwnd, OS.TVM_GETITEM, 0, &tvItem);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1012 bool checked = (result !is 0) && (((tvItem.state >> 12) & 1) is 0);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1013 if (checked) event.detail |= ACC.STATE_CHECKED;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1014 } else if (null !is cast(Table)control && (control.getStyle() & DWT.CHECK) !is 0) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1015 Table table = cast(Table) control;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1016 TableItem item = table.getItem(event.childID);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1017 if (item !is null) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1018 if (item.getChecked()) event.detail |= ACC.STATE_CHECKED;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1019 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1020 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1021 }
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1022 for (int i = 0; i < accessibleControlListeners.length; i++) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1023 AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners[i];
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1024 listener.getState(event);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1025 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1026 int state = stateToOs(event.detail);
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1027 pvarState.vt = COM.VT_I4;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1028 pvarState.lVal = state;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1029 return COM.S_OK;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1030 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1031
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1032 HRESULT get_accValue(VARIANT variant, BSTR* pszValue) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1033 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1034 VARIANT* v = &variant;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1035 //COM.MoveMemory(v, variant, VARIANT.sizeof);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1036 if ((v.vt & 0xFFFF) !is COM.VT_I4) return COM.E_INVALIDARG;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1037
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1038 /* Get the default value string from the OS. */
212
ab60f3309436 reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents: 134
diff changeset
1039 String osValue = null;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1040 int code = iaccessible.get_accValue(variant, pszValue);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1041 if (code is COM.E_INVALIDARG) code = COM.S_FALSE; // proxy doesn't know about app childID
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1042 if (accessibleControlListeners.length is 0) return code;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1043 if (code is COM.S_OK) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1044 int size = COM.SysStringByteLen(*pszValue);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1045 if (size > 0) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1046 osValue = WCHARsToStr((*pszValue)[ 0 .. size ]);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1047 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1048 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1049
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1050 AccessibleControlEvent event = new AccessibleControlEvent(this);
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1051 event.childID = osToChildID(cast(int)/*64*/v.lVal);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1052 event.result = osValue;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1053 for (int i = 0; i < accessibleControlListeners.length; i++) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1054 AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners[i];
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1055 listener.getValue(event);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1056 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1057 if (event.result is null) return code;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1058 auto ptr = COM.SysAllocString(StrToWCHARz(event.result));
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1059 *pszValue = ptr;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1060 return COM.S_OK;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1061 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1062
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1063 HRESULT put_accName(VARIANT variant, BSTR* szName) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1064 // MSAA: this method is no longer supported
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1065 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1066 // We don't implement this. Forward to the proxy.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1067 int code = iaccessible.put_accName(variant, szName);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1068 if (code is COM.E_INVALIDARG) code = COM.S_FALSE; // proxy doesn't know about app childID
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1069 return code;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1070 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1071
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1072 HRESULT put_accValue(VARIANT variant, BSTR* szValue) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1073 // MSAA: this method is typically only used for edit controls
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1074 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1075 // We don't implement this. Forward to the proxy.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1076 int code = iaccessible.put_accValue(variant, szValue);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1077 if (code is COM.E_INVALIDARG) code = COM.S_FALSE; // proxy doesn't know about app childID
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1078 return code;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1079 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1080
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1081 /* IEnumVARIANT methods: Next, Skip, Reset, Clone */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1082 /* Retrieve the next celt items in the enumeration sequence.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1083 * If there are fewer than the requested number of elements left
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1084 * in the sequence, retrieve the remaining elements.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1085 * The number of elements actually retrieved is returned in pceltFetched
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1086 * (unless the caller passed in NULL for that parameter).
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1087 */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1088
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1089 /* Next([in] celt, [out] rgvar, [in, out] pceltFetched)
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1090 * Ownership of rgvar transfers from callee to caller so reference count on rgvar
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1091 * must be incremented before returning. The caller is responsible for releasing rgvar.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1092 */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1093 HRESULT Next(ULONG celt, VARIANT *rgvar, ULONG *pceltFetched) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1094 /* If there are no listeners, query the proxy for
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1095 * its IEnumVariant, and get the Next items from it.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1096 */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1097 if (accessibleControlListeners.length is 0) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1098 IEnumVARIANT ienumvariant;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1099 int code = iaccessible.QueryInterface(&COM.IIDIEnumVARIANT, cast(void**)&ienumvariant);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1100 if (code !is COM.S_OK) return code;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1101 uint[1] celtFetched;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1102 code = ienumvariant.Next(celt, rgvar, celtFetched.ptr);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1103 ienumvariant.Release();
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1104 COM.MoveMemory(pceltFetched, celtFetched.ptr, 4);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1105 return code;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1106 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1107
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1108 if (rgvar is null) return COM.E_INVALIDARG;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1109 if (pceltFetched is null && celt !is 1) return COM.E_INVALIDARG;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1110 if (enumIndex is 0) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1111 AccessibleControlEvent event = new AccessibleControlEvent(this);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1112 event.childID = ACC.CHILDID_SELF;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1113 for (int i = 0; i < accessibleControlListeners.length; i++) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1114 AccessibleControlListener listener = cast(AccessibleControlListener) accessibleControlListeners[i];
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1115 listener.getChildren(event);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1116 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1117 variants = event.children;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1118 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1119 Object[] nextItems = null;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1120 if (variants !is null && celt >= 1) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1121 int endIndex = enumIndex + celt - 1;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1122 if (endIndex > (variants.length - 1)) endIndex = variants.length - 1;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1123 if (enumIndex <= endIndex) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1124 nextItems = new Object[endIndex - enumIndex + 1];
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1125 for (int i = 0; i < nextItems.length; i++) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1126 Object child = variants[enumIndex];
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1127 if (auto val = cast(ValueWrapperInt)child ) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1128 nextItems[i] = new ValueWrapperInt(childIDToOs(val.value));
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1129 } else {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1130 nextItems[i] = child;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1131 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1132 enumIndex++;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1133 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1134 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1135 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1136 if (nextItems !is null) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1137 for (int i = 0; i < nextItems.length; i++) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1138 Object nextItem = nextItems[i];
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1139 if (auto val = cast(ValueWrapperInt)nextItem ) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1140 int item = val.value;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1141 rgvar[i].vt = COM.VT_I4;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1142 rgvar[i].byRef = cast(void*)item;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1143 } else {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1144 Accessible accessible = cast(Accessible) nextItem;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1145 accessible.AddRef();
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1146 rgvar[i].vt = COM.VT_DISPATCH;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1147 rgvar[i].byRef = cast(void*)accessible.objIAccessible;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1148 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1149 }
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1150 if (pceltFetched !is null)
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1151 *pceltFetched = nextItems.length;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1152 if (nextItems.length is celt) return COM.S_OK;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1153 } else {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1154 if (pceltFetched !is null){
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1155 int zero = 0;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1156 *pceltFetched = 0;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1157 }
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1158 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1159 return COM.S_FALSE;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1160 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1161
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1162 /* Skip over the specified number of elements in the enumeration sequence. */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1163 HRESULT Skip(ULONG celt) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1164 /* If there are no listeners, query the proxy
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1165 * for its IEnumVariant, and tell it to Skip.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1166 */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1167 if (accessibleControlListeners.length is 0) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1168 IEnumVARIANT ienumvariant;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1169 int code = iaccessible.QueryInterface(&COM.IIDIEnumVARIANT, cast(void**)&ienumvariant);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1170 if (code !is COM.S_OK) return code;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1171 code = ienumvariant.Skip(celt);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1172 ienumvariant.Release();
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1173 return code;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1174 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1175
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1176 if (celt < 1 ) return COM.E_INVALIDARG;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1177 enumIndex += celt;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1178 if (enumIndex > (variants.length - 1)) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1179 enumIndex = variants.length - 1;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1180 return COM.S_FALSE;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1181 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1182 return COM.S_OK;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1183 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1184
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1185 /* Reset the enumeration sequence to the beginning. */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1186 HRESULT Reset() {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1187 /* If there are no listeners, query the proxy
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1188 * for its IEnumVariant, and tell it to Reset.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1189 */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1190 if (accessibleControlListeners.length is 0) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1191 IEnumVARIANT ienumvariant;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1192 int code = cast(int)/*64*/iaccessible.QueryInterface(&COM.IIDIEnumVARIANT, cast(void**)&ienumvariant);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1193 if (code !is COM.S_OK) return code;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1194 code = ienumvariant.Reset();
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1195 ienumvariant.Release();
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1196 return code;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1197 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1198
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1199 enumIndex = 0;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1200 return COM.S_OK;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1201 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1202
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1203 /* Clone([out] ppEnum)
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1204 * Ownership of ppEnum transfers from callee to caller so reference count on ppEnum
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1205 * must be incremented before returning. The caller is responsible for releasing ppEnum.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1206 */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1207 int Clone(IEnumVARIANT* ppEnum) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1208 /* If there are no listeners, query the proxy for
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1209 * its IEnumVariant, and get the Clone from it.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1210 */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1211 if (accessibleControlListeners.length is 0) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1212 IEnumVARIANT ienumvariant;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1213 int code = iaccessible.QueryInterface(&COM.IIDIEnumVARIANT, cast(void**)&ienumvariant);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1214 if (code !is COM.S_OK) return code;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1215 IEnumVARIANT[1] pEnum;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1216 code = ienumvariant.Clone(pEnum.ptr);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1217 ienumvariant.Release();
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1218 COM.MoveMemory(ppEnum, pEnum.ptr, 4);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1219 return code;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1220 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1221
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1222 if (ppEnum is null) return COM.E_INVALIDARG;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1223 *ppEnum = objIEnumVARIANT;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1224 AddRef();
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1225 return COM.S_OK;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1226 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1227
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1228 int childIDToOs(int childID) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1229 if (childID is ACC.CHILDID_SELF) return COM.CHILDID_SELF;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1230 /*
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1231 * Feature of Windows:
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1232 * In Windows XP, tree item ids are 1-based indices. Previous versions
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1233 * of Windows use the tree item handle for the accessible child ID.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1234 * For backward compatibility, we still take a handle childID for tree
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1235 * items on XP. All other childIDs are 1-based indices.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1236 */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1237 if (!(cast(Tree)control )) return childID + 1;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1238 if (OS.COMCTL32_MAJOR < 6) return childID;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1239 return cast(int)/*64*/OS.SendMessage (control.handle, OS.TVM_MAPHTREEITEMTOACCID, childID, 0);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1240 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1241
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1242 int osToChildID(int osChildID) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1243 if (osChildID is COM.CHILDID_SELF) return ACC.CHILDID_SELF;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1244 /*
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1245 * Feature of Windows:
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1246 * In Windows XP, tree item ids are 1-based indices. Previous versions
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1247 * of Windows use the tree item handle for the accessible child ID.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1248 * For backward compatibility, we still take a handle childID for tree
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1249 * items on XP. All other childIDs are 1-based indices.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1250 */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1251 if (!(cast(Tree)control )) return osChildID - 1;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1252 if (OS.COMCTL32_MAJOR < 6) return osChildID;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1253 return cast(int)/*64*/OS.SendMessage (control.handle, OS.TVM_MAPACCIDTOHTREEITEM, osChildID, 0);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1254 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1255
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1256 int stateToOs(int state) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1257 int osState = 0;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1258 if ((state & ACC.STATE_SELECTED) !is 0) osState |= COM.STATE_SYSTEM_SELECTED;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1259 if ((state & ACC.STATE_SELECTABLE) !is 0) osState |= COM.STATE_SYSTEM_SELECTABLE;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1260 if ((state & ACC.STATE_MULTISELECTABLE) !is 0) osState |= COM.STATE_SYSTEM_MULTISELECTABLE;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1261 if ((state & ACC.STATE_FOCUSED) !is 0) osState |= COM.STATE_SYSTEM_FOCUSED;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1262 if ((state & ACC.STATE_FOCUSABLE) !is 0) osState |= COM.STATE_SYSTEM_FOCUSABLE;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1263 if ((state & ACC.STATE_PRESSED) !is 0) osState |= COM.STATE_SYSTEM_PRESSED;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1264 if ((state & ACC.STATE_CHECKED) !is 0) osState |= COM.STATE_SYSTEM_CHECKED;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1265 if ((state & ACC.STATE_EXPANDED) !is 0) osState |= COM.STATE_SYSTEM_EXPANDED;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1266 if ((state & ACC.STATE_COLLAPSED) !is 0) osState |= COM.STATE_SYSTEM_COLLAPSED;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1267 if ((state & ACC.STATE_HOTTRACKED) !is 0) osState |= COM.STATE_SYSTEM_HOTTRACKED;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1268 if ((state & ACC.STATE_BUSY) !is 0) osState |= COM.STATE_SYSTEM_BUSY;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1269 if ((state & ACC.STATE_READONLY) !is 0) osState |= COM.STATE_SYSTEM_READONLY;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1270 if ((state & ACC.STATE_INVISIBLE) !is 0) osState |= COM.STATE_SYSTEM_INVISIBLE;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1271 if ((state & ACC.STATE_OFFSCREEN) !is 0) osState |= COM.STATE_SYSTEM_OFFSCREEN;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1272 if ((state & ACC.STATE_SIZEABLE) !is 0) osState |= COM.STATE_SYSTEM_SIZEABLE;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1273 if ((state & ACC.STATE_LINKED) !is 0) osState |= COM.STATE_SYSTEM_LINKED;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1274 return osState;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1275 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1276
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1277 int osToState(int osState) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1278 int state = ACC.STATE_NORMAL;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1279 if ((osState & COM.STATE_SYSTEM_SELECTED) !is 0) state |= ACC.STATE_SELECTED;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1280 if ((osState & COM.STATE_SYSTEM_SELECTABLE) !is 0) state |= ACC.STATE_SELECTABLE;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1281 if ((osState & COM.STATE_SYSTEM_MULTISELECTABLE) !is 0) state |= ACC.STATE_MULTISELECTABLE;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1282 if ((osState & COM.STATE_SYSTEM_FOCUSED) !is 0) state |= ACC.STATE_FOCUSED;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1283 if ((osState & COM.STATE_SYSTEM_FOCUSABLE) !is 0) state |= ACC.STATE_FOCUSABLE;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1284 if ((osState & COM.STATE_SYSTEM_PRESSED) !is 0) state |= ACC.STATE_PRESSED;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1285 if ((osState & COM.STATE_SYSTEM_CHECKED) !is 0) state |= ACC.STATE_CHECKED;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1286 if ((osState & COM.STATE_SYSTEM_EXPANDED) !is 0) state |= ACC.STATE_EXPANDED;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1287 if ((osState & COM.STATE_SYSTEM_COLLAPSED) !is 0) state |= ACC.STATE_COLLAPSED;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1288 if ((osState & COM.STATE_SYSTEM_HOTTRACKED) !is 0) state |= ACC.STATE_HOTTRACKED;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1289 if ((osState & COM.STATE_SYSTEM_BUSY) !is 0) state |= ACC.STATE_BUSY;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1290 if ((osState & COM.STATE_SYSTEM_READONLY) !is 0) state |= ACC.STATE_READONLY;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1291 if ((osState & COM.STATE_SYSTEM_INVISIBLE) !is 0) state |= ACC.STATE_INVISIBLE;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1292 if ((osState & COM.STATE_SYSTEM_OFFSCREEN) !is 0) state |= ACC.STATE_OFFSCREEN;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1293 if ((osState & COM.STATE_SYSTEM_SIZEABLE) !is 0) state |= ACC.STATE_SIZEABLE;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1294 if ((osState & COM.STATE_SYSTEM_LINKED) !is 0) state |= ACC.STATE_LINKED;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1295 return state;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1296 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1297
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1298 int roleToOs(int role) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1299 switch (role) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1300 case ACC.ROLE_CLIENT_AREA: return COM.ROLE_SYSTEM_CLIENT;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1301 case ACC.ROLE_WINDOW: return COM.ROLE_SYSTEM_WINDOW;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1302 case ACC.ROLE_MENUBAR: return COM.ROLE_SYSTEM_MENUBAR;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1303 case ACC.ROLE_MENU: return COM.ROLE_SYSTEM_MENUPOPUP;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1304 case ACC.ROLE_MENUITEM: return COM.ROLE_SYSTEM_MENUITEM;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1305 case ACC.ROLE_SEPARATOR: return COM.ROLE_SYSTEM_SEPARATOR;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1306 case ACC.ROLE_TOOLTIP: return COM.ROLE_SYSTEM_TOOLTIP;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1307 case ACC.ROLE_SCROLLBAR: return COM.ROLE_SYSTEM_SCROLLBAR;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1308 case ACC.ROLE_DIALOG: return COM.ROLE_SYSTEM_DIALOG;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1309 case ACC.ROLE_LABEL: return COM.ROLE_SYSTEM_STATICTEXT;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1310 case ACC.ROLE_PUSHBUTTON: return COM.ROLE_SYSTEM_PUSHBUTTON;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1311 case ACC.ROLE_CHECKBUTTON: return COM.ROLE_SYSTEM_CHECKBUTTON;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1312 case ACC.ROLE_RADIOBUTTON: return COM.ROLE_SYSTEM_RADIOBUTTON;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1313 case ACC.ROLE_COMBOBOX: return COM.ROLE_SYSTEM_COMBOBOX;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1314 case ACC.ROLE_TEXT: return COM.ROLE_SYSTEM_TEXT;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1315 case ACC.ROLE_TOOLBAR: return COM.ROLE_SYSTEM_TOOLBAR;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1316 case ACC.ROLE_LIST: return COM.ROLE_SYSTEM_LIST;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1317 case ACC.ROLE_LISTITEM: return COM.ROLE_SYSTEM_LISTITEM;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1318 case ACC.ROLE_TABLE: return COM.ROLE_SYSTEM_TABLE;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1319 case ACC.ROLE_TABLECELL: return COM.ROLE_SYSTEM_CELL;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1320 case ACC.ROLE_TABLECOLUMNHEADER: return COM.ROLE_SYSTEM_COLUMNHEADER;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1321 case ACC.ROLE_TABLEROWHEADER: return COM.ROLE_SYSTEM_ROWHEADER;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1322 case ACC.ROLE_TREE: return COM.ROLE_SYSTEM_OUTLINE;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1323 case ACC.ROLE_TREEITEM: return COM.ROLE_SYSTEM_OUTLINEITEM;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1324 case ACC.ROLE_TABFOLDER: return COM.ROLE_SYSTEM_PAGETABLIST;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1325 case ACC.ROLE_TABITEM: return COM.ROLE_SYSTEM_PAGETAB;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1326 case ACC.ROLE_PROGRESSBAR: return COM.ROLE_SYSTEM_PROGRESSBAR;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1327 case ACC.ROLE_SLIDER: return COM.ROLE_SYSTEM_SLIDER;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1328 case ACC.ROLE_LINK: return COM.ROLE_SYSTEM_LINK;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1329 default:
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1330 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1331 return COM.ROLE_SYSTEM_CLIENT;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1332 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1333
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1334 int osToRole(int osRole) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1335 switch (osRole) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1336 case COM.ROLE_SYSTEM_CLIENT: return ACC.ROLE_CLIENT_AREA;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1337 case COM.ROLE_SYSTEM_WINDOW: return ACC.ROLE_WINDOW;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1338 case COM.ROLE_SYSTEM_MENUBAR: return ACC.ROLE_MENUBAR;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1339 case COM.ROLE_SYSTEM_MENUPOPUP: return ACC.ROLE_MENU;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1340 case COM.ROLE_SYSTEM_MENUITEM: return ACC.ROLE_MENUITEM;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1341 case COM.ROLE_SYSTEM_SEPARATOR: return ACC.ROLE_SEPARATOR;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1342 case COM.ROLE_SYSTEM_TOOLTIP: return ACC.ROLE_TOOLTIP;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1343 case COM.ROLE_SYSTEM_SCROLLBAR: return ACC.ROLE_SCROLLBAR;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1344 case COM.ROLE_SYSTEM_DIALOG: return ACC.ROLE_DIALOG;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1345 case COM.ROLE_SYSTEM_STATICTEXT: return ACC.ROLE_LABEL;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1346 case COM.ROLE_SYSTEM_PUSHBUTTON: return ACC.ROLE_PUSHBUTTON;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1347 case COM.ROLE_SYSTEM_CHECKBUTTON: return ACC.ROLE_CHECKBUTTON;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1348 case COM.ROLE_SYSTEM_RADIOBUTTON: return ACC.ROLE_RADIOBUTTON;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1349 case COM.ROLE_SYSTEM_COMBOBOX: return ACC.ROLE_COMBOBOX;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1350 case COM.ROLE_SYSTEM_TEXT: return ACC.ROLE_TEXT;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1351 case COM.ROLE_SYSTEM_TOOLBAR: return ACC.ROLE_TOOLBAR;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1352 case COM.ROLE_SYSTEM_LIST: return ACC.ROLE_LIST;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1353 case COM.ROLE_SYSTEM_LISTITEM: return ACC.ROLE_LISTITEM;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1354 case COM.ROLE_SYSTEM_TABLE: return ACC.ROLE_TABLE;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1355 case COM.ROLE_SYSTEM_CELL: return ACC.ROLE_TABLECELL;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1356 case COM.ROLE_SYSTEM_COLUMNHEADER: return ACC.ROLE_TABLECOLUMNHEADER;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1357 case COM.ROLE_SYSTEM_ROWHEADER: return ACC.ROLE_TABLEROWHEADER;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1358 case COM.ROLE_SYSTEM_OUTLINE: return ACC.ROLE_TREE;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1359 case COM.ROLE_SYSTEM_OUTLINEITEM: return ACC.ROLE_TREEITEM;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1360 case COM.ROLE_SYSTEM_PAGETABLIST: return ACC.ROLE_TABFOLDER;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1361 case COM.ROLE_SYSTEM_PAGETAB: return ACC.ROLE_TABITEM;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1362 case COM.ROLE_SYSTEM_PROGRESSBAR: return ACC.ROLE_PROGRESSBAR;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1363 case COM.ROLE_SYSTEM_SLIDER: return ACC.ROLE_SLIDER;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1364 case COM.ROLE_SYSTEM_LINK: return ACC.ROLE_LINK;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1365 default:
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1366 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1367 return ACC.ROLE_CLIENT_AREA;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1368 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1369
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1370 /* checkWidget was copied from Widget, and rewritten to work in this package */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1371 void checkWidget () {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1372 if (!isValidThread ()) DWT.error (DWT.ERROR_THREAD_INVALID_ACCESS);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1373 if (control.isDisposed ()) DWT.error (DWT.ERROR_WIDGET_DISPOSED);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1374 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1375
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1376 /* isValidThread was copied from Widget, and rewritten to work in this package */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1377 WINBOOL isValidThread () {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1378 return control.getDisplay ().getThread () is Thread.getThis ();
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1379 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1380 }
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1381
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1382 class _IAccessibleImpl : IAccessible {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1383
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1384 Accessible parent;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1385 this(Accessible p) { parent = p; }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1386 extern (Windows):
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1387 // interface of IUnknown
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1388 HRESULT QueryInterface(REFIID riid, void ** ppvObject) { return parent.QueryInterface(riid, ppvObject); }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1389 ULONG AddRef() { return parent.AddRef(); }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1390 ULONG Release() { return parent.Release(); }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1391
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1392 // interface of IDispatch
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1393 HRESULT GetTypeInfoCount(UINT * pctinfo) { return COM.E_NOTIMPL; }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1394 HRESULT GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo * ppTInfo) { return COM.E_NOTIMPL; }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1395 HRESULT GetIDsOfNames(REFIID riid, LPOLESTR * rgszNames, UINT cNames, LCID lcid, DISPID * rgDispId) { return COM.E_NOTIMPL; }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1396 HRESULT Invoke(DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS* pDispParams,VARIANT* pVarResult,EXCEPINFO* pExcepInfo,UINT* puArgErr) { return COM.E_NOTIMPL; }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1397
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1398 // interface of IAccessible
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1399 HRESULT get_accParent(LPDISPATCH * ppdispParent) { return parent.get_accParent(ppdispParent); }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1400 HRESULT get_accChildCount(LONG* pcountChildren) { return parent.get_accChildCount(pcountChildren); }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1401 HRESULT get_accChild(VARIANT varChildID, LPDISPATCH* ppdispChild) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1402 return parent.get_accChild(varChildID, ppdispChild);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1403 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1404 HRESULT get_accName(VARIANT varID, BSTR* pszName) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1405 return parent.get_accName(varID, pszName);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1406 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1407 HRESULT get_accValue(VARIANT varID, BSTR* pszValue) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1408 return parent.get_accValue(varID, pszValue);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1409 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1410 HRESULT get_accDescription(VARIANT varID,BSTR* pszDescription) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1411 return parent.get_accDescription(varID, pszDescription);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1412 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1413 HRESULT get_accRole(VARIANT varID, VARIANT* pvarRole) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1414 return parent.get_accRole(varID, pvarRole);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1415 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1416 HRESULT get_accState(VARIANT varID, VARIANT* pvarState) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1417 return parent.get_accState(varID, pvarState);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1418 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1419 HRESULT get_accHelp(VARIANT varID, BSTR* pszHelp) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1420 return parent.get_accHelp(varID, pszHelp);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1421 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1422 HRESULT get_accHelpTopic(BSTR* pszHelpFile, VARIANT varChild, LONG* pidTopic) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1423 return parent.get_accHelpTopic(pszHelpFile, varChild, pidTopic);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1424 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1425 HRESULT get_accKeyboardShortcut(VARIANT varID, BSTR* pszKeyboardShortcut) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1426 return parent.get_accKeyboardShortcut(varID, pszKeyboardShortcut);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1427 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1428 HRESULT get_accFocus(VARIANT* pvarID) { return parent.get_accFocus(pvarID); }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1429 HRESULT get_accSelection(VARIANT* pvarChildren) { return parent.get_accSelection(pvarChildren); }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1430 HRESULT get_accDefaultAction(VARIANT varID,BSTR* pszDefaultAction) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1431 return parent.get_accDefaultAction(varID, pszDefaultAction);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1432 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1433 HRESULT accSelect(LONG flagsSelect, VARIANT varID) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1434 return parent.accSelect(flagsSelect, varID);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1435 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1436 HRESULT accLocation(LONG* pxLeft, LONG* pyTop, LONG* pcxWidth, LONG* pcyHeight, VARIANT varID) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1437 return parent.accLocation(pxLeft, pyTop, pcxWidth, pcyHeight, varID);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1438 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1439 HRESULT accNavigate(LONG navDir, VARIANT varStart, VARIANT* pvarEnd) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1440 return parent.accNavigate(navDir, varStart, pvarEnd);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1441 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1442 HRESULT accHitTest(LONG xLeft, LONG yTop, VARIANT* pvarID) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1443 return parent.accHitTest(xLeft, yTop, pvarID);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1444 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1445 HRESULT accDoDefaultAction(VARIANT varID) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1446 return parent.accDoDefaultAction(varID);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1447 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1448 HRESULT put_accName(VARIANT varID, BSTR* szName) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1449 return parent.put_accName(varID, szName);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1450 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1451 HRESULT put_accValue(VARIANT varID, BSTR* szValue) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1452 return parent.put_accValue(varID, szValue);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1453 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1454 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1455
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1456 class _IEnumVARIANTImpl : IEnumVARIANT {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1457
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1458 Accessible parent;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1459 this(Accessible a) { parent = a; }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1460 extern (Windows):
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1461 // interface of IUnknown
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1462 HRESULT QueryInterface(REFIID riid, void ** ppvObject) { return parent.QueryInterface(riid, ppvObject); }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1463 ULONG AddRef() { return parent.AddRef(); }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1464 ULONG Release() { return parent.Release(); }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1465
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1466 // interface of IEnumVARIANT
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1467 HRESULT Next(ULONG celt, VARIANT *rgvar, ULONG *pceltFetched) { return parent.Next(celt, rgvar, pceltFetched); }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1468 HRESULT Skip(ULONG celt) { return parent.Skip(celt); }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1469 HRESULT Reset() { return parent.Reset(); }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1470 HRESULT Clone(LPENUMVARIANT * ppenum) { return COM.E_NOTIMPL;}
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1471 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1472