annotate dwt/accessibility/Accessible.d @ 213:36f5cb12e1a2

Update to SWT 3.4M7
author Frank Benoit <benoit@tionex.de>
date Sat, 17 May 2008 17:34:28 +0200
parents ab60f3309436
children e2affbeb686d
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;
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
260 if (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 }
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
514 //TODO - use VARIANT structure
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
515 pvarChild.vt = COM.VT_I4;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
516 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
517 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
518 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
519
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
520 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
521 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
522 VARIANT* v = &variant;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
523 //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
524 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
525
92c102dd64a3 Added all 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 /* 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
527 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
528 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
529 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
530 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
531 if (code is COM.S_OK) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
532 int[1] pLeft, pTop, pWidth, pHeight;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
533 COM.MoveMemory(pLeft.ptr, pxLeft, 4);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
534 COM.MoveMemory(pTop.ptr, pyTop, 4);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
535 COM.MoveMemory(pWidth.ptr, pcxWidth, 4);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
536 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
537 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
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
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
540 AccessibleControlEvent event = new AccessibleControlEvent(this);
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
541 event.childID = osToChildID(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
542 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
543 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
544 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
545 event.height = osHeight;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
546 for (int i = 0; i < accessibleControlListeners.length; i++) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
547 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
548 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
549 }
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
550 OS.MoveMemory(pxLeft, &event.x, 4);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
551 OS.MoveMemory(pyTop, &event.y, 4);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
552 OS.MoveMemory(pcxWidth, &event.width, 4);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
553 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
554 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
555 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
556
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
557 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
558 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
559 // 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
560 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
561 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
562 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
563 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
564
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
565 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
566 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
567 // 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
568 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
569 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
570 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
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
92c102dd64a3 Added all 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 /* 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
574 * 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
575 * 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
576 */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
577 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
578 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
579 VARIANT* v = &variant;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
580 //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
581 if ((v.vt & 0xFFFF) !is COM.VT_I4) return COM.E_INVALIDARG;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
582 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
583 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
584 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
585 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
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
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
588 AccessibleControlEvent event = new AccessibleControlEvent(this);
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
589 event.childID = osToChildID(v.lVal);
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
590 for (int i = 0; i < accessibleControlListeners.length; i++) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
591 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
592 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
593 }
92c102dd64a3 Added all 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 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
595 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
596 accessible.AddRef();
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
597 *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
598 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
599 }
92c102dd64a3 Added all 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 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
601 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
602
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
603 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
604 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
605
92c102dd64a3 Added all 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 /* 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
607 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
608 int code = iaccessible.get_accChildCount(pcountChildren);
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
609 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
610 if (code is COM.S_OK) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
611 int[1] pChildCount;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
612 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
613 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
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
92c102dd64a3 Added all 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 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
617 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
618 event.detail = osChildCount;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
619 for (int i = 0; i < accessibleControlListeners.length; i++) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
620 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
621 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
622 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
623
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
624 *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
625 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
626 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
627
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
628 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
629 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
630 VARIANT* v = &variant;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
631 //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
632 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
633
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
634 /* 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
635 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
636 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
637 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
638 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
639 if (code is COM.S_OK) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
640 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
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
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
643 AccessibleControlEvent event = new AccessibleControlEvent(this);
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
644 event.childID = osToChildID(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
645 event.result = osDefaultAction;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
646 for (int i = 0; i < accessibleControlListeners.length; i++) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
647 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
648 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
649 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
650 if (event.result is null) return code;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
651 auto ptr = COM.SysAllocString(StrToWCHARz(event.result));
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
652 *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
653 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
654 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
655
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
656 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
657 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
658 VARIANT* v = &variant;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
659 //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
660 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
661
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
662 /* 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
663 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
664 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
665 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
666 // TEMPORARY CODE - process tree even if there are no apps listening
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
667 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
668 if (code is COM.S_OK) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
669 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
670 if (size > 0) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
671 size = (size + 1) /2;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
672 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
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
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
676 AccessibleEvent event = new AccessibleEvent(this);
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
677 event.childID = osToChildID(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
678 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
679
92c102dd64a3 Added all 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 // 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
681 /* 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
682 * 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
683 * 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
684 if (v.lVal !is COM.CHILDID_SELF) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
685 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
686 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
687 if (columnCount > 1) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
688 HWND hwnd = control.handle;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
689 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
690 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
691 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
692 } 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
693 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
694 }
92c102dd64a3 Added all 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 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
696 event.result = "";
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
697 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
698 for (int i = 1; i < columnCount; i++) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
699 event.result ~= tree.getColumn(i).getText() ~ ": " ~ item.getText(i);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
700 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
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 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
705 }
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
706 for (int i = 0; i < accessibleListeners.length; i++) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
707 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
708 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
709 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
710 if (event.result is null) return code;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
711 auto ptr = COM.SysAllocString(StrToWCHARz(event.result));
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
712 *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
713 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
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
92c102dd64a3 Added all 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 /* 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
717 * 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
718 * 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
719 */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
720 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
721 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
722
92c102dd64a3 Added all 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 /* 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
724 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
725 int code = iaccessible.get_accFocus(pvarChild);
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
726 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
727 if (code is COM.S_OK) {
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
728 //TODO - use VARIANT structure
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
729 short[1] pvt;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
730 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
731 if (pvt[0] is COM.VT_I4) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
732 int[1] pChild;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
733 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
734 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
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 }
92c102dd64a3 Added all 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
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
738 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
739 event.childID = osChild;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
740 for (int i = 0; i < accessibleControlListeners.length; i++) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
741 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
742 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
743 }
92c102dd64a3 Added all 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 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
745 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
746 accessible.AddRef();
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
747 pvarChild.vt = COM.VT_DISPATCH;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
748 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
749 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
750 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
751 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
752 if (childID is ACC.CHILDID_NONE) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
753 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
754 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
755 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
756 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
757 AddRef();
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
758 pvarChild.vt = COM.VT_DISPATCH;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
759 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
760 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
761 }
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
762 pvarChild.vt = COM.VT_I4;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
763 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
764 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
765 }
92c102dd64a3 Added all 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
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
767 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
768 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
769 VARIANT* v = &variant;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
770 //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
771 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
772
92c102dd64a3 Added all 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 /* 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
774 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
775 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
776 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
777 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
778 if (code is COM.S_OK) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
779 // the original SysString is clearuped and bstr set to null
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
780 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
781 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
782
92c102dd64a3 Added all 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 AccessibleEvent event = new AccessibleEvent(this);
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
784 event.childID = osToChildID(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
785 event.result = osHelp;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
786 for (int i = 0; i < accessibleListeners.length; i++) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
787 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
788 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
789 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
790 if (event.result is null) return code;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
791 auto ptr = COM.SysAllocString(StrToWCHARz(event.result));
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
792 *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
793 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
794 }
92c102dd64a3 Added all 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
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
796 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
797 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
798 // 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
799 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
800 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
801 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
802 }
92c102dd64a3 Added all 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
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
804 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
805 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
806 VARIANT* v = &variant;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
807 //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
808 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
809
92c102dd64a3 Added all 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 /* 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
811 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
812 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
813 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
814 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
815 if (code is COM.S_OK) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
816 // the original SysString is clearuped and bstr set to null
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
817 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
818 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
819
92c102dd64a3 Added all 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 AccessibleEvent event = new AccessibleEvent(this);
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
821 event.childID = osToChildID(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
822 event.result = osKeyboardShortcut;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
823 for (int i = 0; i < accessibleListeners.length; i++) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
824 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
825 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
826 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
827 if (event.result is null) return code;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
828 auto ptr = COM.SysAllocString(StrToWCHARz(event.result));
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
829 *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
830 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
831 }
92c102dd64a3 Added all 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
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
833 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
834 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
835 VARIANT* v = &variant;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
836 //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
837 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
838
92c102dd64a3 Added all 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 /* 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
840 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
841 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
842 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
843 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
844 if (code is COM.S_OK) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
845 // the original SysString is clearuped and bstr set to null
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
846 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
847 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
848
92c102dd64a3 Added all 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 AccessibleEvent event = new AccessibleEvent(this);
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
850 event.childID = osToChildID(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
851 event.result = osName;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
852 for (int i = 0; i < accessibleListeners.length; i++) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
853 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
854 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
855 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
856 if (event.result is null) return code;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
857 auto ptr = COM.SysAllocString(StrToWCHARz(event.result));
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
858 *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
859 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
860 }
92c102dd64a3 Added all 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
92c102dd64a3 Added all 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 /* 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
863 * 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
864 * 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
865 */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
866 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
867 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
868 // 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
869 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
870 }
92c102dd64a3 Added all 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
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
872 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
873 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
874 VARIANT* v = &variant;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
875 //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
876 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
877
92c102dd64a3 Added all 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 /* 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
879 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
880 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
881 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
882 // 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
883 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
884 if (code is COM.S_OK) {
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
885 //TODO - use VARIANT structure
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
886 short[1] pvt;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
887 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
888 if (pvt[0] is COM.VT_I4) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
889 int[1] pRole;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
890 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
891 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
892 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
893 }
92c102dd64a3 Added all 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
92c102dd64a3 Added all 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 AccessibleControlEvent event = new AccessibleControlEvent(this);
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
896 event.childID = osToChildID(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
897 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
898 // 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
899 /* 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
900 * 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
901 if (v.lVal !is COM.CHILDID_SELF) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
902 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
903 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
904 }
92c102dd64a3 Added all 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 }
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
906 for (int i = 0; i < accessibleControlListeners.length; i++) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
907 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
908 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
909 }
92c102dd64a3 Added all 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 int role = roleToOs(event.detail);
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
911 pvarRole.vt = COM.VT_I4;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
912 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
913 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
914 }
92c102dd64a3 Added all 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
92c102dd64a3 Added all 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 /* 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
917 * 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
918 * 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
919 */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
920 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
921 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
922
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
923 /* 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
924 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
925 int code = iaccessible.get_accSelection(pvarChildren);
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
926 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
927 if (code is COM.S_OK) {
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
928 //TODO - use VARIANT structure
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
929 short[1] pvt;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
930 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
931 if (pvt[0] is COM.VT_I4) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
932 int[1] pChild;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
933 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
934 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
935 } 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
936 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
937 /* 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
938 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
939 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
940
92c102dd64a3 Added all 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 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
942 event.childID = osChild;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
943 for (int i = 0; i < accessibleControlListeners.length; i++) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
944 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
945 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
946 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
947 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
948 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
949 accessible.AddRef();
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
950 pvarChildren.vt = COM.VT_DISPATCH;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
951 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
952 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
953 }
92c102dd64a3 Added all 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 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
955 if (childID is ACC.CHILDID_NONE) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
956 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
957 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
958 }
92c102dd64a3 Added all 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 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
960 AddRef();
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
961 pvarChildren.vt = COM.VT_UNKNOWN;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
962 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
963 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
964 }
92c102dd64a3 Added all 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 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
966 AddRef();
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
967 pvarChildren.vt = COM.VT_DISPATCH;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
968 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
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 }
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
971 pvarChildren.vt = COM.VT_I4;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
972 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
973 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
974 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
975
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
976 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
977 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
978 VARIANT* v = &variant;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
979 //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
980 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
981
92c102dd64a3 Added all 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 /* 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
983 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
984 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
985 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
986 // 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
987 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
988 if (code is COM.S_OK) {
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
989 //TODO - use VARIANT structure
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
990 short[1] pvt;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
991 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
992 if (pvt[0] is COM.VT_I4) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
993 int[1] pState;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
994 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
995 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
996 }
92c102dd64a3 Added all 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 }
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
998 bool grayed = false;
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
999 AccessibleControlEvent event = new AccessibleControlEvent(this);
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
1000 event.childID = osToChildID(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
1001 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
1002 // 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
1003 /* 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
1004 * 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
1005 if (v.lVal !is COM.CHILDID_SELF) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1006 if (null !is cast(Tree)control && (control.getStyle() & DWT.CHECK) !is 0) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1007 auto hwnd = control.handle;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1008 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
1009 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
1010 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
1011 if (OS.COMCTL32_MAJOR >= 6) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1012 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
1013 } else {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1014 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
1015 }
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1016 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
1017 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
1018 if (checked) event.detail |= ACC.STATE_CHECKED;
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
1019 grayed = tvItem.state >> 12 > 2;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1020 } else if (null !is cast(Table)control && (control.getStyle() & DWT.CHECK) !is 0) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1021 Table table = cast(Table) control;
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
1022 int index = event.childID;
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
1023 if (0 <= index && index < table.getItemCount()) {
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
1024 TableItem item = table.getItem(index);
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
1025 if (item.getChecked()) event.detail |= ACC.STATE_CHECKED;
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
1026 if (item.getGrayed()) grayed = 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
1027 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1028 }
92c102dd64a3 Added all 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 }
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1030 for (int i = 0; i < accessibleControlListeners.length; i++) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1031 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
1032 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
1033 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1034 int state = stateToOs(event.detail);
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
1035 if ((state & ACC.STATE_CHECKED) !is 0 && grayed) {
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
1036 state &= ~ COM.STATE_SYSTEM_CHECKED;
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
1037 state |= COM.STATE_SYSTEM_MIXED;
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
1038 }
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1039 pvarState.vt = COM.VT_I4;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1040 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
1041 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
1042 }
92c102dd64a3 Added all 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
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1044 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
1045 if (iaccessible is null) return COM.CO_E_OBJNOTCONNECTED;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1046 VARIANT* v = &variant;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1047 //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
1048 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
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 /* 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
1051 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
1052 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
1053 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
1054 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
1055 if (code is COM.S_OK) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1056 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
1057 if (size > 0) {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1058 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
1059 }
92c102dd64a3 Added all 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 }
92c102dd64a3 Added all 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 AccessibleControlEvent event = new AccessibleControlEvent(this);
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
1063 event.childID = osToChildID(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
1064 event.result = osValue;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1065 for (int i = 0; i < accessibleControlListeners.length; i++) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1066 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
1067 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
1068 }
92c102dd64a3 Added all 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 if (event.result is null) return code;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1070 auto ptr = COM.SysAllocString(StrToWCHARz(event.result));
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1071 *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
1072 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
1073 }
92c102dd64a3 Added all 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
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1075 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
1076 // 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
1077 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
1078 // 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
1079 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
1080 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
1081 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
1082 }
92c102dd64a3 Added all 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
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1084 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
1085 // 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
1086 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
1087 // 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
1088 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
1089 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
1090 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
1091 }
92c102dd64a3 Added all 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
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1093 /* 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
1094 /* 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
1095 * 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
1096 * 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
1097 * 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
1098 * (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
1099 */
92c102dd64a3 Added all 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
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1101 /* 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
1102 * 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
1103 * 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
1104 */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1105 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
1106 /* 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
1107 * 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
1108 */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1109 if (accessibleControlListeners.length is 0) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1110 IEnumVARIANT ienumvariant;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1111 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
1112 if (code !is COM.S_OK) return code;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1113 uint[1] celtFetched;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1114 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
1115 ienumvariant.Release();
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1116 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
1117 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
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
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1120 if (rgvar is null) return COM.E_INVALIDARG;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1121 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
1122 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
1123 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
1124 event.childID = ACC.CHILDID_SELF;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1125 for (int i = 0; i < accessibleControlListeners.length; i++) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1126 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
1127 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
1128 }
92c102dd64a3 Added all 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 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
1130 }
92c102dd64a3 Added all 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 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
1132 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
1133 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
1134 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
1135 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
1136 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
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 child = variants[enumIndex];
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1139 if (auto val = cast(ValueWrapperInt)child ) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1140 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
1141 } 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
1142 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
1143 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1144 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
1145 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1146 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1147 }
92c102dd64a3 Added all 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 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
1149 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
1150 Object nextItem = nextItems[i];
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1151 if (auto val = cast(ValueWrapperInt)nextItem ) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1152 int item = val.value;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1153 rgvar[i].vt = COM.VT_I4;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1154 rgvar[i].byRef = cast(void*)item;
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
1155 COM.MoveMemory(rgvar + i * VARIANT.sizeof + 8, &item, 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
1156 } else {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1157 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
1158 accessible.AddRef();
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1159 rgvar[i].vt = COM.VT_DISPATCH;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1160 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
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 }
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1163 if (pceltFetched !is null)
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1164 *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
1165 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
1166 } else {
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1167 if (pceltFetched !is null){
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1168 int zero = 0;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1169 *pceltFetched = 0;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1170 }
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
1171 }
92c102dd64a3 Added all 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 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
1173 }
92c102dd64a3 Added all 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 /* Skip over the specified number of elements in the enumeration sequence. */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1176 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
1177 /* 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
1178 * 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
1179 */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1180 if (accessibleControlListeners.length is 0) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1181 IEnumVARIANT ienumvariant;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1182 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
1183 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
1184 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
1185 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
1186 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
1187 }
92c102dd64a3 Added all 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
92c102dd64a3 Added all 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 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
1190 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
1191 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
1192 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
1193 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
1194 }
92c102dd64a3 Added all 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 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
1196 }
92c102dd64a3 Added all 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 /* Reset the enumeration sequence to the beginning. */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1199 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
1200 /* 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
1201 * 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
1202 */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1203 if (accessibleControlListeners.length is 0) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1204 IEnumVARIANT ienumvariant;
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
1205 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
1206 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
1207 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
1208 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
1209 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
1210 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1211
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1212 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
1213 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
1214 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1215
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1216 /* 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
1217 * 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
1218 * 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
1219 */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1220 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
1221 /* 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
1222 * 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
1223 */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1224 if (accessibleControlListeners.length is 0) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1225 IEnumVARIANT ienumvariant;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1226 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
1227 if (code !is COM.S_OK) return code;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1228 IEnumVARIANT[1] pEnum;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1229 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
1230 ienumvariant.Release();
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
1231 COM.MoveMemory(ppEnum, pEnum.ptr, (void*).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
1232 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
1233 }
92c102dd64a3 Added all 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
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1235 if (ppEnum is null) return COM.E_INVALIDARG;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1236 *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
1237 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
1238 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
1239 }
92c102dd64a3 Added all 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 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
1242 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
1243 /*
92c102dd64a3 Added all 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 * 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
1245 * 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
1246 * 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
1247 * 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
1248 * 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
1249 */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1250 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
1251 if (OS.COMCTL32_MAJOR < 6) return childID;
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
1252 return 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
1253 }
92c102dd64a3 Added all 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 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
1256 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
1257 /*
92c102dd64a3 Added all 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 * 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
1259 * 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
1260 * 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
1261 * 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
1262 * 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
1263 */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1264 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
1265 if (OS.COMCTL32_MAJOR < 6) return osChildID;
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
1266 return 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
1267 }
92c102dd64a3 Added all 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
92c102dd64a3 Added all 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 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
1270 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
1271 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
1272 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
1273 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
1274 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
1275 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
1276 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
1277 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
1278 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
1279 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
1280 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
1281 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
1282 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
1283 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
1284 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
1285 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
1286 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
1287 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
1288 }
92c102dd64a3 Added all 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
92c102dd64a3 Added all 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 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
1291 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
1292 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
1293 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
1294 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
1295 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
1296 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
1297 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
1298 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
1299 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
1300 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
1301 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
1302 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
1303 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
1304 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
1305 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
1306 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
1307 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
1308 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
1309 }
92c102dd64a3 Added all 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
92c102dd64a3 Added all 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 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
1312 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
1313 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
1314 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
1315 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
1316 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
1317 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
1318 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
1319 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
1320 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
1321 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
1322 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
1323 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
1324 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
1325 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
1326 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
1327 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
1328 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
1329 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
1330 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
1331 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
1332 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
1333 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
1334 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
1335 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
1336 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
1337 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
1338 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
1339 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
1340 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
1341 case ACC.ROLE_LINK: return COM.ROLE_SYSTEM_LINK;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1342 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
1343 }
92c102dd64a3 Added all 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 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
1345 }
92c102dd64a3 Added all 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
92c102dd64a3 Added all 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 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
1348 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
1349 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
1350 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
1351 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
1352 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
1353 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
1354 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
1355 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
1356 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
1357 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
1358 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
1359 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
1360 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
1361 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
1362 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
1363 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
1364 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
1365 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
1366 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
1367 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
1368 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
1369 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
1370 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
1371 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
1372 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
1373 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
1374 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
1375 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
1376 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
1377 case COM.ROLE_SYSTEM_LINK: return ACC.ROLE_LINK;
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1378 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
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 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
1381 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1382
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1383 /* 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
1384 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
1385 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
1386 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
1387 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1388
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1389 /* isValidThread was copied from Widget, and rewritten to work in this package */
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1390 WINBOOL isValidThread () {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1391 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
1392 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1393 }
134
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1394
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1395 class _IAccessibleImpl : IAccessible {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1396
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1397 Accessible parent;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1398 this(Accessible p) { parent = p; }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1399 extern (Windows):
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1400 // interface of IUnknown
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1401 HRESULT QueryInterface(REFIID riid, void ** ppvObject) { return parent.QueryInterface(riid, ppvObject); }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1402 ULONG AddRef() { return parent.AddRef(); }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1403 ULONG Release() { return parent.Release(); }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1404
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1405 // interface of IDispatch
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1406 HRESULT GetTypeInfoCount(UINT * pctinfo) { return COM.E_NOTIMPL; }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1407 HRESULT GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo * ppTInfo) { return COM.E_NOTIMPL; }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1408 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
1409 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
1410
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1411 // interface of IAccessible
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1412 HRESULT get_accParent(LPDISPATCH * ppdispParent) { return parent.get_accParent(ppdispParent); }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1413 HRESULT get_accChildCount(LONG* pcountChildren) { return parent.get_accChildCount(pcountChildren); }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1414 HRESULT get_accChild(VARIANT varChildID, LPDISPATCH* ppdispChild) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1415 return parent.get_accChild(varChildID, ppdispChild);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1416 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1417 HRESULT get_accName(VARIANT varID, BSTR* pszName) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1418 return parent.get_accName(varID, pszName);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1419 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1420 HRESULT get_accValue(VARIANT varID, BSTR* pszValue) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1421 return parent.get_accValue(varID, pszValue);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1422 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1423 HRESULT get_accDescription(VARIANT varID,BSTR* pszDescription) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1424 return parent.get_accDescription(varID, pszDescription);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1425 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1426 HRESULT get_accRole(VARIANT varID, VARIANT* pvarRole) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1427 return parent.get_accRole(varID, pvarRole);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1428 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1429 HRESULT get_accState(VARIANT varID, VARIANT* pvarState) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1430 return parent.get_accState(varID, pvarState);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1431 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1432 HRESULT get_accHelp(VARIANT varID, BSTR* pszHelp) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1433 return parent.get_accHelp(varID, pszHelp);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1434 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1435 HRESULT get_accHelpTopic(BSTR* pszHelpFile, VARIANT varChild, LONG* pidTopic) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1436 return parent.get_accHelpTopic(pszHelpFile, varChild, pidTopic);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1437 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1438 HRESULT get_accKeyboardShortcut(VARIANT varID, BSTR* pszKeyboardShortcut) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1439 return parent.get_accKeyboardShortcut(varID, pszKeyboardShortcut);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1440 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1441 HRESULT get_accFocus(VARIANT* pvarID) { return parent.get_accFocus(pvarID); }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1442 HRESULT get_accSelection(VARIANT* pvarChildren) { return parent.get_accSelection(pvarChildren); }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1443 HRESULT get_accDefaultAction(VARIANT varID,BSTR* pszDefaultAction) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1444 return parent.get_accDefaultAction(varID, pszDefaultAction);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1445 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1446 HRESULT accSelect(LONG flagsSelect, VARIANT varID) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1447 return parent.accSelect(flagsSelect, varID);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1448 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1449 HRESULT accLocation(LONG* pxLeft, LONG* pyTop, LONG* pcxWidth, LONG* pcyHeight, VARIANT varID) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1450 return parent.accLocation(pxLeft, pyTop, pcxWidth, pcyHeight, varID);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1451 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1452 HRESULT accNavigate(LONG navDir, VARIANT varStart, VARIANT* pvarEnd) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1453 return parent.accNavigate(navDir, varStart, pvarEnd);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1454 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1455 HRESULT accHitTest(LONG xLeft, LONG yTop, VARIANT* pvarID) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1456 return parent.accHitTest(xLeft, yTop, pvarID);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1457 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1458 HRESULT accDoDefaultAction(VARIANT varID) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1459 return parent.accDoDefaultAction(varID);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1460 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1461 HRESULT put_accName(VARIANT varID, BSTR* szName) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1462 return parent.put_accName(varID, szName);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1463 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1464 HRESULT put_accValue(VARIANT varID, BSTR* szValue) {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1465 return parent.put_accValue(varID, szValue);
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1466 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1467 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1468
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1469 class _IEnumVARIANTImpl : IEnumVARIANT {
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1470
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1471 Accessible parent;
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1472 this(Accessible a) { parent = a; }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1473 extern (Windows):
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1474 // interface of IUnknown
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1475 HRESULT QueryInterface(REFIID riid, void ** ppvObject) { return parent.QueryInterface(riid, ppvObject); }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1476 ULONG AddRef() { return parent.AddRef(); }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1477 ULONG Release() { return parent.Release(); }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1478
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1479 // interface of IEnumVARIANT
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1480 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
1481 HRESULT Skip(ULONG celt) { return parent.Skip(celt); }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1482 HRESULT Reset() { return parent.Reset(); }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1483 HRESULT Clone(LPENUMVARIANT * ppenum) { return COM.E_NOTIMPL;}
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1484 }
fa7d7d66b9ed Accessible
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
1485