annotate dwt/accessibility/Accessible.d @ 129:ad4e1fe71a5a

Fixed runtime errors
author Jacob Carlborg <doob@me.com>
date Sun, 18 Jan 2009 18:39:46 +0100
parents 07399639c0c8
children 0ba75290f8ce
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1 /*******************************************************************************
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
2 * Copyright (c) 2000, 2008 IBM Corporation and others.
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
3 * All rights reserved. This program and the accompanying materials
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
4 * are made available under the terms of the Eclipse Public License v1.0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
5 * which accompanies this distribution, and is available at
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
6 * http://www.eclipse.org/legal/epl-v10.html
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
7 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
8 * Contributors:
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
9 * IBM Corporation - initial API and implementation
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
10 *
13
f565d3a95c0a Ported dwt.internal
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 0
diff changeset
11 * Port to the D programming language:
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
12 * Jacob Carlborg <doob@me.com>
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
13 *******************************************************************************/
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
14 module dwt.accessibility.Accessible;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
15
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
16 import dwt.dwthelper.utils;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
17
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
18 import dwt.DWT;
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
19 import dwt.DWTException;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
20 import dwt.graphics.Point;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
21 import dwt.graphics.Rectangle;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
22 import dwt.internal.cocoa.NSArray;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
23 import dwt.internal.cocoa.NSMutableArray;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
24 import dwt.internal.cocoa.NSNumber;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
25 import dwt.internal.cocoa.NSObject;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
26 import dwt.internal.cocoa.NSPoint;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
27 import dwt.internal.cocoa.NSRange;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
28 import dwt.internal.cocoa.NSSize;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
29 import dwt.internal.cocoa.NSString;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
30 import dwt.internal.cocoa.NSValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
31 import dwt.internal.cocoa.OS;
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
32 import cocoa = dwt.internal.cocoa.id;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
33 import dwt.widgets.Composite;
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
34 import dwt.widgets.Control;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
35 import dwt.widgets.Display;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
36 import dwt.widgets.Monitor;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
37 import dwt.widgets.Shell;
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
38
60
62202ce0039f Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents: 59
diff changeset
39 import tango.core.Thread;
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
40 import tango.util.container.HashMap;
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
41
60
62202ce0039f Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents: 59
diff changeset
42 import dwt.accessibility.ACC;
62202ce0039f Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents: 59
diff changeset
43 import dwt.accessibility.AccessibleControlEvent;
62202ce0039f Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents: 59
diff changeset
44 import dwt.accessibility.AccessibleEvent;
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
45 import dwt.accessibility.AccessibleListener;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
46 import dwt.accessibility.AccessibleControlListener;
60
62202ce0039f Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents: 59
diff changeset
47 import dwt.accessibility.AccessibleTextEvent;
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
48 import dwt.accessibility.AccessibleTextListener;
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
49 import dwt.accessibility.SWTAccessibleDelegate;
129
ad4e1fe71a5a Fixed runtime errors
Jacob Carlborg <doob@me.com>
parents: 128
diff changeset
50 import dwt.dwthelper.associativearray;
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
51
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
52 /**
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
53 * Instances of this class provide a bridge between application
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
54 * code and assistive technology clients. Many platforms provide
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
55 * default accessible behavior for most widgets, and this class
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
56 * allows that default behavior to be overridden. Applications
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
57 * can get the default Accessible object for a control by sending
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
58 * it <code>getAccessible</code>, and then add an accessible listener
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
59 * to override simple items like the name and help string, or they
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
60 * can add an accessible control listener to override complex items.
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
61 * As a rule of thumb, an application would only want to use the
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
62 * accessible control listener to implement accessibility for a
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
63 * custom control.
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
64 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
65 * @see Control#getAccessible
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
66 * @see AccessibleListener
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
67 * @see AccessibleEvent
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
68 * @see AccessibleControlListener
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
69 * @see AccessibleControlEvent
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
70 * @see <a href="http://www.eclipse.org/swt/snippets/#accessibility">Accessibility snippets</a>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
71 * @see <a href="http://www.eclipse.org/swt/">Sample code and further information</a>
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
72 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
73 * @since 2.0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
74 */
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
75 public class Accessible {
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
76
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
77 static NSString[] baseAttributes;
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
78
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
79 static NSString[] baseTextAttributes;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
80
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
81 static NSString[] baseParameterizedAttributes;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
82
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
83
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
84 NSMutableArray attributeNames = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
85 NSMutableArray parameterizedAttributeNames = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
86 NSMutableArray actionNames = null;
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
87
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
88 AccessibleListener[] accessibleListeners;
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
89 AccessibleControlListener[] accessibleControlListeners;
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
90 AccessibleTextListener[] accessibleTextListeners;
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
91 Control control;
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
92
129
ad4e1fe71a5a Fixed runtime errors
Jacob Carlborg <doob@me.com>
parents: 128
diff changeset
93 SWTAccessibleDelegate[int] children;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
94
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
95 this (Control control) {
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
96
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
97 this.control = control;
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
98
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
99 baseAttributes = [
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
100 OS.NSAccessibilityRoleAttribute,
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
101 OS.NSAccessibilityRoleDescriptionAttribute,
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
102 OS.NSAccessibilityHelpAttribute,
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
103 OS.NSAccessibilityFocusedAttribute,
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
104 OS.NSAccessibilityParentAttribute,
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
105 OS.NSAccessibilityChildrenAttribute,
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
106 OS.NSAccessibilityPositionAttribute,
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
107 OS.NSAccessibilitySizeAttribute,
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
108 OS.NSAccessibilityWindowAttribute,
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
109 OS.NSAccessibilityTopLevelUIElementAttribute
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
110 ];
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
111
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
112 baseTextAttributes = [
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
113 OS.NSAccessibilityNumberOfCharactersAttribute,
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
114 OS.NSAccessibilitySelectedTextAttribute,
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
115 OS.NSAccessibilitySelectedTextRangeAttribute,
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
116 OS.NSAccessibilityInsertionPointLineNumberAttribute,
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
117 OS.NSAccessibilitySelectedTextRangesAttribute,
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
118 OS.NSAccessibilityVisibleCharacterRangeAttribute,
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
119 OS.NSAccessibilityValueAttribute
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
120 ];
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
121
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
122 baseParameterizedAttributes = [
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
123 OS.NSAccessibilityStringForRangeParameterizedAttribute,
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
124 OS.NSAccessibilityRangeForLineParameterizedAttribute
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
125 ];
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
126 }
37
642f460a0908 Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 13
diff changeset
127
642f460a0908 Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 13
diff changeset
128 /**
642f460a0908 Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 13
diff changeset
129 * Invokes platform specific functionality to allocate a new accessible object.
642f460a0908 Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 13
diff changeset
130 * <p>
642f460a0908 Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 13
diff changeset
131 * <b>IMPORTANT:</b> This method is <em>not</em> part of the public
642f460a0908 Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 13
diff changeset
132 * API for <code>Accessible</code>. It is marked public only so that it
642f460a0908 Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 13
diff changeset
133 * can be shared within the packages provided by SWT. It is not
642f460a0908 Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 13
diff changeset
134 * available on all platforms, and should never be called from
642f460a0908 Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 13
diff changeset
135 * application code.
642f460a0908 Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 13
diff changeset
136 * </p>
642f460a0908 Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 13
diff changeset
137 *
642f460a0908 Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 13
diff changeset
138 * @param control the control to get the accessible object for
642f460a0908 Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 13
diff changeset
139 * @return the platform specific accessible object
642f460a0908 Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 13
diff changeset
140 */
642f460a0908 Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 13
diff changeset
141 public static Accessible internal_new_Accessible(Control control) {
642f460a0908 Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 13
diff changeset
142 return new Accessible(control);
642f460a0908 Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 13
diff changeset
143 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
144
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
145 /**
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
146 * Adds the listener to the collection of listeners who will
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
147 * be notified when an accessible client asks for certain strings,
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
148 * such as name, description, help, or keyboard shortcut. The
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
149 * listener is notified by sending it one of the messages defined
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
150 * in the <code>AccessibleListener</code> interface.
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
151 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
152 * @param listener the listener that should be notified when the receiver
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
153 * is asked for a name, description, help, or keyboard shortcut string
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
154 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
155 * @exception IllegalArgumentException <ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
156 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
157 * </ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
158 * @exception DWTException <ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
159 * <li>ERROR_WIDGET_DISPOSED - if the receiver's control has been disposed</li>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
160 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver's control</li>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
161 * </ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
162 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
163 * @see AccessibleListener
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
164 * @see #removeAccessibleListener
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
165 */
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
166 public void addAccessibleListener (AccessibleListener listener) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
167 checkWidget();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
168 if (listener is null) DWT.error(DWT.ERROR_NULL_ARGUMENT);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
169 accessibleListeners.addElement(listener);
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
170 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
171
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
172 /**
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
173 * Adds the listener to the collection of listeners who will
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
174 * be notified when an accessible client asks for custom control
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
175 * specific information. The listener is notified by sending it
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
176 * one of the messages defined in the <code>AccessibleControlListener</code>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
177 * interface.
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
178 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
179 * @param listener the listener that should be notified when the receiver
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
180 * is asked for custom control specific information
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
181 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
182 * @exception IllegalArgumentException <ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
183 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
184 * </ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
185 * @exception DWTException <ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
186 * <li>ERROR_WIDGET_DISPOSED - if the receiver's control has been disposed</li>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
187 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver's control</li>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
188 * </ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
189 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
190 * @see AccessibleControlListener
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
191 * @see #removeAccessibleControlListener
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
192 */
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
193 public void addAccessibleControlListener(AccessibleControlListener listener) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
194 checkWidget();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
195 if (listener is null) DWT.error(DWT.ERROR_NULL_ARGUMENT);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
196 accessibleControlListeners.addElement(listener);
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
197 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
198
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
199 /**
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
200 * Adds the listener to the collection of listeners who will
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
201 * be notified when an accessible client asks for custom text control
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
202 * specific information. The listener is notified by sending it
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
203 * one of the messages defined in the <code>AccessibleTextListener</code>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
204 * interface.
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
205 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
206 * @param listener the listener that should be notified when the receiver
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
207 * is asked for custom text control specific information
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
208 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
209 * @exception IllegalArgumentException <ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
210 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
211 * </ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
212 * @exception DWTException <ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
213 * <li>ERROR_WIDGET_DISPOSED - if the receiver's control has been disposed</li>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
214 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver's control</li>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
215 * </ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
216 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
217 * @see AccessibleTextListener
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
218 * @see #removeAccessibleTextListener
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
219 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
220 * @since 3.0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
221 */
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
222 public void addAccessibleTextListener (AccessibleTextListener listener) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
223 checkWidget ();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
224 if (listener is null) DWT.error (DWT.ERROR_NULL_ARGUMENT);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
225 accessibleTextListeners.addElement (listener);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
226 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
227
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
228 public cocoa.id internal_accessibilityActionDescription(NSString action, int childID) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
229 // TODO No action support for now.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
230 return NSString.stringWith("");
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
231 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
232
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
233 public NSArray internal_accessibilityActionNames(int childID) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
234 // The supported action list depends on the role played by the control.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
235 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
236 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
237 event.detail = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
238 for (int i = 0; i < accessibleControlListeners.size(); i++) {
60
62202ce0039f Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents: 59
diff changeset
239 AccessibleControlListener listener = elementAt(accessibleControlListeners, i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
240 listener.getRole(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
241 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
242
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
243 // No accessible listener is overriding the role of the control, so let Cocoa return the default set for the control.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
244 if (event.detail is -1) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
245 return null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
246 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
247
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
248 if ((childID is ACC.CHILDID_SELF) && (actionNames !is null)) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
249 return retainedAutoreleased(actionNames);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
250 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
251
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
252 NSMutableArray returnValue = NSMutableArray.arrayWithCapacity(5);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
253
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
254 switch (event.detail) {
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
255 case ACC.ROLE_PUSHBUTTON:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
256 case ACC.ROLE_RADIOBUTTON:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
257 case ACC.ROLE_CHECKBUTTON:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
258 case ACC.ROLE_TABITEM:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
259 returnValue.addObject(OS.NSAccessibilityPressAction);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
260 break;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
261 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
262
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
263 switch (event.detail) {
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
264 case ACC.ROLE_COMBOBOX:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
265 returnValue.addObject(OS.NSAccessibilityConfirmAction);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
266 break;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
267 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
268
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
269
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
270 if (childID is ACC.CHILDID_SELF) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
271 actionNames = returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
272 actionNames.retain();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
273 return retainedAutoreleased(actionNames);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
274 } else {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
275 // Caller must retain if they want to hold on to it.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
276 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
277 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
278 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
279
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
280 public NSArray internal_accessibilityAttributeNames(int childID) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
281 // The supported attribute set depends on the role played by the control.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
282 // We may need to add or remove from the base set as needed.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
283 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
284 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
285 event.detail = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
286 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
287 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
288 listener.getRole(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
289 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
290
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
291 // No accessible listener is overriding the role of the control, so let Cocoa
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
292 // return the default set for the control.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
293 if (event.detail is -1)
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
294 return null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
295
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
296 if ((childID is ACC.CHILDID_SELF) && (attributeNames !is null)) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
297 return retainedAutoreleased(attributeNames);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
298 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
299
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
300 NSMutableArray returnValue = NSMutableArray.arrayWithCapacity(baseAttributes.length);
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
301
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
302 /* Add our list of supported attributes to the array.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
303 * Make sure each attribute name is not already in the array before appending.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
304 */
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
305 for (int i = 0; i < baseAttributes.length; i++) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
306 if (!returnValue.containsObject(baseAttributes[i])) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
307 returnValue.addObject(baseAttributes[i]);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
308 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
309 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
310
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
311 if (accessibleTextListeners.size() > 0) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
312 for (int i = 0; i < baseTextAttributes.length; i++) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
313 if (!returnValue.containsObject(baseTextAttributes[i])) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
314 returnValue.addObject(baseTextAttributes[i]);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
315 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
316 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
317 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
318
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
319 // The following are expected to have a value (AXValue)
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
320 switch (event.detail) {
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
321 case ACC.ROLE_CHECKBUTTON:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
322 case ACC.ROLE_RADIOBUTTON:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
323 case ACC.ROLE_LABEL:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
324 case ACC.ROLE_TABITEM:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
325 case ACC.ROLE_TABFOLDER:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
326 returnValue.addObject(OS.NSAccessibilityValueAttribute);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
327 break;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
328 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
329
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
330 // The following are expected to report their enabled status (AXEnabled)
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
331 switch (event.detail) {
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
332 case ACC.ROLE_CHECKBUTTON:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
333 case ACC.ROLE_RADIOBUTTON:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
334 case ACC.ROLE_LABEL:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
335 case ACC.ROLE_TABITEM:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
336 case ACC.ROLE_PUSHBUTTON:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
337 case ACC.ROLE_COMBOBOX:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
338 returnValue.addObject(OS.NSAccessibilityEnabledAttribute);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
339 break;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
340 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
341
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
342 // The following are expected to report a title (AXTitle)
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
343 switch (event.detail) {
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
344 case ACC.ROLE_CHECKBUTTON:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
345 case ACC.ROLE_RADIOBUTTON:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
346 case ACC.ROLE_PUSHBUTTON:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
347 case ACC.ROLE_TABITEM:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
348 returnValue.addObject(OS.NSAccessibilityTitleAttribute);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
349 break;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
350 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
351
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
352 // Accessibility verifier says these attributes must be reported for combo boxes.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
353 if (event.detail is ACC.ROLE_COMBOBOX) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
354 returnValue.addObject(OS.NSAccessibilityExpandedAttribute);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
355 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
356
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
357 // Accessibility verifier says these attributes must be reported for tab folders.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
358 if (event.detail is ACC.ROLE_TABFOLDER) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
359 returnValue.addObject(OS.NSAccessibilityContentsAttribute);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
360 returnValue.addObject(OS.NSAccessibilityTabsAttribute);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
361 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
362
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
363 /*
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
364 * Only report back sub-roles when the DWT role maps to a sub-role.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
365 */
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
366 if (event.detail !is -1) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
367 String osRole = roleToOs(event.detail);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
368
60
62202ce0039f Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents: 59
diff changeset
369 if (dwt.dwthelper.utils.indexOf(osRole, ':') is -1)
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
370 returnValue.removeObject(OS.NSAccessibilitySubroleAttribute);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
371 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
372
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
373 /*
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
374 * Children never return their own children, so remove that attribute.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
375 */
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
376 if (childID !is ACC.CHILDID_SELF) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
377 returnValue.removeObject(OS.NSAccessibilityChildrenAttribute);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
378 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
379
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
380 if (childID is ACC.CHILDID_SELF) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
381 attributeNames = returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
382 attributeNames.retain();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
383 return retainedAutoreleased(attributeNames);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
384 } else {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
385 // Caller must retain if necessary.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
386 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
387 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
388 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
389
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
390 public cocoa.id internal_accessibilityAttributeValue(NSString attribute, int childID) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
391 if (attribute.isEqualToString(OS.NSAccessibilityRoleAttribute)) return getRoleAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
392 if (attribute.isEqualToString(OS.NSAccessibilitySubroleAttribute)) return getSubroleAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
393 if (attribute.isEqualToString(OS.NSAccessibilityRoleDescriptionAttribute)) return getRoleDescriptionAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
394 if (attribute.isEqualToString(OS.NSAccessibilityExpandedAttribute)) return getExpandedAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
395 if (attribute.isEqualToString(OS.NSAccessibilityHelpAttribute)) return getHelpAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
396 if (attribute.isEqualToString(OS.NSAccessibilityTitleAttribute)) return getTitleAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
397 if (attribute.isEqualToString(OS.NSAccessibilityValueAttribute)) return getValueAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
398 if (attribute.isEqualToString(OS.NSAccessibilityEnabledAttribute)) return getEnabledAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
399 if (attribute.isEqualToString(OS.NSAccessibilityFocusedAttribute)) return getFocusedAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
400 if (attribute.isEqualToString(OS.NSAccessibilityParentAttribute)) return getParentAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
401 if (attribute.isEqualToString(OS.NSAccessibilityChildrenAttribute)) return getChildrenAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
402 if (attribute.isEqualToString(OS.NSAccessibilityContentsAttribute)) return getChildrenAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
403 // FIXME: There's no specific API just for tabs, which won't include the buttons (if any.)
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
404 if (attribute.isEqualToString(OS.NSAccessibilityTabsAttribute)) return getTabsAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
405 if (attribute.isEqualToString(OS.NSAccessibilityWindowAttribute)) return getWindowAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
406 if (attribute.isEqualToString(OS.NSAccessibilityTopLevelUIElementAttribute)) return getTopLevelUIElementAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
407 if (attribute.isEqualToString(OS.NSAccessibilityPositionAttribute)) return getPositionAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
408 if (attribute.isEqualToString(OS.NSAccessibilitySizeAttribute)) return getSizeAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
409 if (attribute.isEqualToString(OS.NSAccessibilityDescriptionAttribute)) return getDescriptionAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
410 if (attribute.isEqualToString(OS.NSAccessibilityNumberOfCharactersAttribute)) return getNumberOfCharactersAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
411 if (attribute.isEqualToString(OS.NSAccessibilitySelectedTextAttribute)) return getSelectedTextAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
412 if (attribute.isEqualToString(OS.NSAccessibilitySelectedTextRangeAttribute)) return getSelectedTextRangeAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
413 if (attribute.isEqualToString(OS.NSAccessibilityInsertionPointLineNumberAttribute)) return getInsertionPointLineNumberAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
414 if (attribute.isEqualToString(OS.NSAccessibilitySelectedTextRangesAttribute)) return getSelectedTextRangesAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
415 if (attribute.isEqualToString(OS.NSAccessibilityVisibleCharacterRangeAttribute)) return getVisibleCharacterRangeAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
416
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
417 // If this object don't know how to get the value it's up to the control itself to return an attribute value.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
418 return null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
419 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
420
59
83b0ad9d9238 Ported SWTAccessibleDelegate
Jacob Carlborg <doob@me.com>
parents: 58
diff changeset
421 public cocoa.id internal_accessibilityAttributeValue_forParameter(NSString attribute, cocoa.id parameter, int childID) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
422 if (attribute.isEqualToString(OS.NSAccessibilityStringForRangeParameterizedAttribute)) return getStringForRangeAttribute(parameter, childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
423 if (attribute.isEqualToString(OS.NSAccessibilityRangeForLineParameterizedAttribute)) return getRangeForLineParameterizedAttribute(parameter, childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
424 return null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
425 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
426
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
427 // Returns the UI Element that has the focus. You can assume that the search for the focus has already been narrowed down to the receiver.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
428 // Override this method to do a deeper search with a UIElement - e.g. a NSMatrix would determine if one of its cells has the focus.
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
429 public cocoa.id internal_accessibilityFocusedUIElement(int childID) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
430 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
431 event.childID = ACC.CHILDID_MULTIPLE; // set to invalid value, to test if the application sets it in getFocus()
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
432 event.accessible = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
433 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
434 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
435 listener.getFocus(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
436 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
437
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
438 // The listener did not respond, so let Cocoa figure it out.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
439 if (event.childID is ACC.CHILDID_MULTIPLE)
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
440 return null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
441
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
442 /* The application can optionally answer an accessible. */
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
443 if (event.accessible !is null) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
444 return new cocoa.id(OS.NSAccessibilityUnignoredAncestor(event.accessible.control.view.id));
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
445 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
446
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
447 /* Or the application can answer a valid child ID, including CHILDID_SELF and CHILDID_NONE. */
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
448 if (event.childID is ACC.CHILDID_SELF || event.childID is ACC.CHILDID_NONE) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
449 return new cocoa.id(OS.NSAccessibilityUnignoredAncestor(control.view.id));
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
450 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
451
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
452 return new cocoa.id(OS.NSAccessibilityUnignoredAncestor(childIDToOs(event.childID).id));
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
453 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
454
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
455 // Returns the deepest descendant of the UIElement hierarchy that contains the point.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
456 // You can assume the point has already been determined to lie within the receiver.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
457 // Override this method to do deeper hit testing within a UIElement - e.g. a NSMatrix would test its cells. The point is bottom-left relative screen coordinates.
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
458 public cocoa.id internal_accessibilityHitTest(NSPoint point, int childID) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
459 AccessibleControlEvent event = new AccessibleControlEvent(this);
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
460 event.x = cast(int) point.x;
60
62202ce0039f Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents: 59
diff changeset
461 dwt.widgets.Monitor.Monitor primaryMonitor = Display.getCurrent().getPrimaryMonitor();
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
462 event.y = cast(int) (primaryMonitor.getBounds().height - point.y);
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
463
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
464 // Set an impossible value to determine if anything responded to the event.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
465 event.childID = ACC.CHILDID_MULTIPLE;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
466 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
467 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
468 listener.getChildAtPoint(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
469 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
470
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
471 // The listener did not respond, so let Cocoa figure it out.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
472 if (event.childID is ACC.CHILDID_MULTIPLE)
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
473 return null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
474
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
475 if (event.accessible !is null) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
476 return new cocoa.id(OS.NSAccessibilityUnignoredAncestor(event.accessible.control.view.id));
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
477 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
478
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
479 if (event.childID is ACC.CHILDID_SELF || event.childID is ACC.CHILDID_NONE) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
480 return new cocoa.id(OS.NSAccessibilityUnignoredAncestor(control.view.id));
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
481 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
482
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
483 return new cocoa.id(OS.NSAccessibilityUnignoredAncestor(childIDToOs(event.childID).id));
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
484 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
485
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
486 public bool internal_accessibilityIsAttributeSettable(NSString attribute, int childID) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
487 return false;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
488 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
489
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
490 // Return YES if the UIElement doesn't show up to the outside world - i.e. its parent should return the UIElement's children as its own - cutting the UIElement out. E.g. NSControls are ignored when they are single-celled.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
491 public bool internal_accessibilityIsIgnored(int childID) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
492 return false;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
493 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
494
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
495 // parameterized attribute methods
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
496 public NSArray internal_accessibilityParameterizedAttributeNames(int childID) {
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
497
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
498 if ((childID is ACC.CHILDID_SELF) && (parameterizedAttributeNames !is null)) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
499 return retainedAutoreleased(parameterizedAttributeNames);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
500 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
501
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
502 NSMutableArray returnValue = NSMutableArray.arrayWithCapacity(4);
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
503
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
504 if (accessibleTextListeners.size() > 0) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
505 for (int i = 0; i < baseParameterizedAttributes.length; i++) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
506 if (!returnValue.containsObject(baseParameterizedAttributes[i])) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
507 returnValue.addObject(baseParameterizedAttributes[i]);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
508 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
509 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
510
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
511 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
512
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
513 if (childID is ACC.CHILDID_SELF) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
514 parameterizedAttributeNames = returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
515 parameterizedAttributeNames.retain();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
516 return retainedAutoreleased(parameterizedAttributeNames);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
517 } else {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
518 // Caller must retain if they want to keep it.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
519 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
520 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
521 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
522
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
523 public void internal_accessibilityPerformAction(NSString action, int childID) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
524 // TODO Auto-generated method stub
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
525 // No action support for now.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
526 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
527
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
528 /**
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
529 * Returns the control for this Accessible object.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
530 *
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
531 * @return the receiver's control
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
532 * @since 3.0
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
533 */
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
534 public Control getControl() {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
535 return control;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
536 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
537
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
538 /**
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
539 * Invokes platform specific functionality to dispose an accessible object.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
540 * <p>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
541 * <b>IMPORTANT:</b> This method is <em>not</em> part of the public
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
542 * API for <code>Accessible</code>. It is marked public only so that it
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
543 * can be shared within the packages provided by DWT. It is not
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
544 * available on all platforms, and should never be called from
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
545 * application code.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
546 * </p>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
547 */
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
548 public void internal_dispose_Accessible() {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
549 if (actionNames !is null) actionNames.release();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
550 actionNames = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
551 if (attributeNames !is null) attributeNames.release();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
552 attributeNames = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
553 if (parameterizedAttributeNames !is null) parameterizedAttributeNames.release();
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
554 parameterizedAttributeNames = null;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
555
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
556 foreach (childDelegate ; children)
129
ad4e1fe71a5a Fixed runtime errors
Jacob Carlborg <doob@me.com>
parents: 128
diff changeset
557 childDelegate.internal_dispose_SWTAccessibleDelegate();
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
558
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
559 children.clear();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
560 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
561
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
562 cocoa.id getExpandedAttribute(int childID) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
563 // TODO: May need to expand the API so the combo box state can be reported.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
564 return NSNumber.numberWithBool(false);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
565 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
566
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
567 cocoa.id getHelpAttribute (int childID) {
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
568 cocoa.id returnValue = null;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
569 AccessibleEvent event = new AccessibleEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
570 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
571 for (int i = 0; i < accessibleListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
572 AccessibleListener listener = accessibleListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
573 listener.getHelp(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
574 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
575
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
576 if (event.result !is null) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
577 returnValue = NSString.stringWith(event.result);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
578 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
579
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
580 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
581 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
582
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
583 NSString getRoleAttribute(int childID) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
584 NSString returnValue = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
585 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
586 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
587 event.detail = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
588 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
589 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
590 listener.getRole(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
591 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
592 if (event.detail !is -1) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
593 String appRole = roleToOs (event.detail);
60
62202ce0039f Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents: 59
diff changeset
594 int index = dwt.dwthelper.utils.indexOf(appRole, ':');
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
595 if (index !is -1) appRole = appRole.substring(0, index);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
596 returnValue = NSString.stringWith(appRole);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
597 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
598
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
599 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
600 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
601
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
602 cocoa.id getSubroleAttribute (int childID) {
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
603 cocoa.id returnValue = null;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
604 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
605 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
606 event.detail = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
607 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
608 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
609 listener.getRole(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
610 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
611 if (event.detail !is -1) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
612 String appRole = roleToOs (event.detail);
60
62202ce0039f Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents: 59
diff changeset
613 int index = dwt.dwthelper.utils.indexOf(appRole, ':');
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
614 if (index !is -1) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
615 appRole = appRole.substring(index + 1);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
616 returnValue = NSString.stringWith(appRole);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
617 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
618 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
619 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
620 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
621
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
622 cocoa.id getRoleDescriptionAttribute (int childID) {
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
623 cocoa.id returnValue = null;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
624 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
625 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
626 event.detail = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
627 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
628 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
629 listener.getRole(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
630 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
631 if (event.detail !is -1) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
632 String appRole = roleToOs (event.detail);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
633 String appSubrole = null;
60
62202ce0039f Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents: 59
diff changeset
634 int index = dwt.dwthelper.utils.indexOf(appRole, ':');
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
635 if (index !is -1) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
636 appSubrole = appRole.substring(index + 1);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
637 appRole = appRole.substring(0, index);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
638 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
639 NSString nsAppRole = NSString.stringWith(appRole);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
640 NSString nsAppSubrole = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
641
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
642 if (appSubrole !is null) nsAppSubrole = NSString.stringWith(appSubrole);
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
643 returnValue = new NSString(OS.NSAccessibilityRoleDescription (((nsAppRole !is null) ? nsAppRole.id : null), (nsAppSubrole !is null) ? nsAppSubrole.id : null));
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
644 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
645 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
646 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
647
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
648 cocoa.id getTitleAttribute (int childID) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
649
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
650 cocoa.id returnValue = null;//NSString.stringWith("");
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
651
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
652 /*
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
653 * Feature of the Macintosh. The text of a Label is returned in its value,
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
654 * not its title, so ensure that the role is not Label before asking for the title.
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
655 */
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
656 AccessibleControlEvent roleEvent = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
657 roleEvent.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
658 roleEvent.detail = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
659 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
660 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
661 listener.getRole(roleEvent);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
662 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
663 if (roleEvent.detail !is ACC.ROLE_LABEL) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
664 AccessibleEvent event = new AccessibleEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
665 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
666 event.result = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
667 for (int i = 0; i < accessibleListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
668 AccessibleListener listener = accessibleListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
669 listener.getName(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
670 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
671
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
672 if (event.result !is null)
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
673 returnValue = NSString.stringWith(event.result);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
674 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
675 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
676 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
677
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
678 cocoa.id getValueAttribute (int childID) {
60
62202ce0039f Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents: 59
diff changeset
679 cocoa.id returnValue = null;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
680 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
681 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
682 event.detail = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
683 event.result = null; //TODO: could pass the OS value to the app
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
684 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
685 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
686 listener.getRole(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
687 listener.getValue(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
688 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
689 int role = event.detail;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
690 String value = event.result;
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
691
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
692 switch (role) {
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
693 case ACC.ROLE_RADIOBUTTON: // 1 = on, 0 = off
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
694 case ACC.ROLE_CHECKBUTTON: // 1 = checked, 0 = unchecked, 2 = mixed
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
695 case ACC.ROLE_SCROLLBAR: // numeric value representing the position of the scroller
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
696 case ACC.ROLE_SLIDER: // the value associated with the position of the slider thumb
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
697 case ACC.ROLE_PROGRESSBAR: // the value associated with the fill level of the progress bar
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
698 if (value !is null) {
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
699 try {
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
700 int number = Integer.parseInt(value);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
701 returnValue = NSNumber.numberWithInt(number);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
702 } catch (NumberFormatException ex) {
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
703 if (value.equalsIgnoreCase("true")) {
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
704 returnValue = NSNumber.numberWithBool(true);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
705 } else if (value.equalsIgnoreCase("false")) {
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
706 returnValue = NSNumber.numberWithBool(false);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
707 }
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
708 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
709 } else {
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
710 returnValue = NSNumber.numberWithBool(false);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
711 }
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
712 break;
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
713 case ACC.ROLE_TABFOLDER: // the accessibility object representing the currently selected tab item
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
714 case ACC.ROLE_TABITEM: // 1 = selected, 0 = not selected
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
715 AccessibleControlEvent ace = new AccessibleControlEvent(this);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
716 ace.childID = -4;
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
717 for (int i = 0; i < accessibleControlListeners.size(); i++) {
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
718 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
719 listener.getSelection(ace);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
720 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
721 if (ace.childID >= ACC.CHILDID_SELF) {
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
722 if (role is ACC.ROLE_TABITEM) {
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
723 returnValue = NSNumber.numberWithBool(ace.childID is childID);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
724 } else {
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
725 returnValue = new cocoa.id(OS.NSAccessibilityUnignoredAncestor(childIDToOs(ace.childID).id));
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
726 }
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
727 } else {
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
728 returnValue = NSNumber.numberWithBool(false);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
729 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
730 break;
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
731 case ACC.ROLE_COMBOBOX: // text of the currently selected item
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
732 case ACC.ROLE_TEXT: // text in the text field
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
733 if (value !is null) returnValue = NSString.stringWith(value);
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
734 break;
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
735 case ACC.ROLE_LABEL: // text in the label
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
736 /* On a Mac, the 'value' of a label is the same as the 'name' of the label. */
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
737 AccessibleEvent e = new AccessibleEvent(this);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
738 e.childID = childID;
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
739 e.result = null;
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
740 for (int i = 0; i < accessibleListeners.size(); i++) {
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
741 AccessibleListener listener = accessibleListeners.elementAt(i);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
742 listener.getName(e);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
743 }
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
744 if (e.result !is null) {
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
745 returnValue = NSString.stringWith(e.result);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
746 } else {
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
747 if (value !is null) returnValue = NSString.stringWith(value);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
748 }
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
749 break;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
750 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
751
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
752 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
753 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
754
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
755 cocoa.id getEnabledAttribute (int childID) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
756 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
757 event.detail = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
758 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
759 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
760 listener.getState(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
761 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
762
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
763 return NSNumber.numberWithBool(control.isEnabled());
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
764 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
765
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
766 cocoa.id getFocusedAttribute (int childID) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
767 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
768 event.childID = ACC.CHILDID_MULTIPLE; // set to invalid value, to test if the application sets it in getFocus()
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
769 event.accessible = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
770 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
771 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
772 listener.getFocus(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
773 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
774
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
775 /* The application can optionally answer an accessible. */
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
776 // FIXME:
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
777 // if (event.accessible !is null) {
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
778 // bool hasFocus = (event.accessible.childID is childID) && (event.accessible.control is this.control);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
779 // return NSNumber.numberWithBool(hasFocus);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
780 // }
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
781
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
782 /* Or the application can answer a valid child ID, including CHILDID_SELF and CHILDID_NONE. */
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
783 if (event.childID is ACC.CHILDID_SELF) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
784 bool hasFocus = (event.childID is childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
785 return NSNumber.numberWithBool(hasFocus);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
786 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
787 if (event.childID is ACC.CHILDID_NONE) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
788 return NSNumber.numberWithBool(false);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
789 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
790 if (event.childID !is ACC.CHILDID_MULTIPLE) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
791 /* Other valid childID. */
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
792 return NSNumber.numberWithBool(event.childID is childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
793 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
794
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
795 // Invalid childID at this point means the application did not implement getFocus, so
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
796 // let the default handler return the native focus.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
797 bool hasFocus = (this.control.view.window().firstResponder() is control.view);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
798 return NSNumber.numberWithBool(hasFocus);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
799 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
800
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
801 cocoa.id getParentAttribute (int childID) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
802 // Returning null here means 'let Cocoa figure it out.'
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
803 if (childID is ACC.CHILDID_SELF)
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
804 return null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
805 else
60
62202ce0039f Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents: 59
diff changeset
806 return new cocoa.id(OS.NSAccessibilityUnignoredAncestor(control.view.id));
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
807 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
808
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
809 cocoa.id getChildrenAttribute (int childID) {
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
810 cocoa.id returnValue = null;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
811 if (childID is ACC.CHILDID_SELF) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
812 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
813 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
814 event.detail = -1; // set to impossible value to test if app resets
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
815 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
816 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
817 listener.getChildCount(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
818 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
819 if (event.detail > 0) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
820 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
821 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
822 listener.getChildren(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
823 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
824 Object [] appChildren = event.children;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
825 if (appChildren !is null && appChildren.length > 0) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
826 /* return an NSArray of NSAccessible objects. */
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
827 NSMutableArray childArray = NSMutableArray.arrayWithCapacity(appChildren.length);
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
828
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
829 for (int i = 0; i < appChildren.length; i++) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
830 Object child = appChildren[i];
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
831 if (cast(Integer) child) {
60
62202ce0039f Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents: 59
diff changeset
832 cocoa.id accChild = childIDToOs((cast(Integer)child).intValue());
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
833 childArray.addObject(accChild);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
834 } else {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
835 childArray.addObject((cast(Accessible)child).control.view);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
836 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
837 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
838
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
839 returnValue = new cocoa.id(OS.NSAccessibilityUnignoredChildren(childArray.id));
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
840 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
841 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
842 } else {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
843 // Lightweight children have no children of their own.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
844 // Don't return null if there are no children -- always return an empty array.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
845 returnValue = NSArray.array();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
846 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
847
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
848 // Returning null here means we want the control itself to determine its children. If the accessible listener
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
849 // implemented getChildCount/getChildren, references to those objects would have been returned above.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
850 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
851 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
852
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
853 cocoa.id getTabsAttribute (int childID) {
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
854 cocoa.id returnValue = null;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
855 if (childID is ACC.CHILDID_SELF) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
856 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
857 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
858 event.detail = -1; // set to impossible value to test if app resets
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
859 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
860 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
861 listener.getChildCount(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
862 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
863 if (event.detail > 0) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
864 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
865 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
866 listener.getChildren(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
867 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
868 Object [] appChildren = event.children;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
869 if (appChildren !is null && appChildren.length > 0) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
870 /* return an NSArray of NSAccessible objects. */
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
871 NSMutableArray childArray = NSMutableArray.arrayWithCapacity(appChildren.length);
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
872
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
873 for (int i = 0; i < appChildren.length; i++) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
874 Object child = appChildren[i];
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
875 if (cast(Integer)child) {
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
876 int subChildID = (cast(Integer)child).intValue();
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
877 event.childID = subChildID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
878 event.detail = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
879 for (int j = 0; j < accessibleControlListeners.size(); j++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
880 AccessibleControlListener listener = accessibleControlListeners.elementAt(j);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
881 listener.getRole(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
882 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
883
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
884 if (event.detail is ACC.ROLE_TABITEM) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
885 cocoa.id accChild = childIDToOs((cast(Integer)child).intValue());
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
886 childArray.addObject(accChild);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
887 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
888 } else {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
889 childArray.addObject((cast(Accessible)child).control.view);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
890 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
891 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
892
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
893 returnValue = new cocoa.id(OS.NSAccessibilityUnignoredChildren(childArray.id));
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
894 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
895 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
896 } else {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
897 // Lightweight children have no children of their own.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
898 // Don't return null if there are no children -- always return an empty array.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
899 returnValue = NSArray.array();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
900 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
901
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
902 // Returning null here means we want the control itself to determine its children. If the accessible listener
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
903 // implemented getChildCount/getChildren, references to those objects would have been returned above.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
904 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
905 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
906
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
907 cocoa.id getWindowAttribute (int childID) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
908 return control.view.window();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
909 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
910
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
911 cocoa.id getTopLevelUIElementAttribute (int childID) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
912 return control.view.window();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
913 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
914
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
915 cocoa.id getPositionAttribute (int childID) {
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
916 cocoa.id returnValue = null;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
917 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
918 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
919 event.width = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
920
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
921 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
922 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
923 listener.getLocation(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
924 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
925
60
62202ce0039f Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents: 59
diff changeset
926 dwt.widgets.Monitor.Monitor primaryMonitor = Display.getCurrent().getPrimaryMonitor();
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
927
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
928 NSPoint osPositionAttribute = NSPoint ();
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
929 if (event.width !is -1) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
930 // The point returned is the lower-left coordinate of the widget in lower-left relative screen coordinates.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
931 osPositionAttribute.x = event.x;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
932 osPositionAttribute.y = primaryMonitor.getBounds().height - event.y - event.height;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
933 returnValue = NSValue.valueWithPoint(osPositionAttribute);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
934 } else {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
935 if (childID !is ACC.CHILDID_SELF) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
936 Point pt = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
937 Rectangle location = control.getBounds();
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
938
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
939 if (control.getParent() !is null)
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
940 pt = control.getParent().toDisplay(location.x, location.y);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
941 else
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
942 pt = (cast(Shell)control).toDisplay(location.x, location.y);
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
943
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
944 osPositionAttribute.x = pt.x;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
945 osPositionAttribute.y = pt.y;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
946 returnValue = NSValue.valueWithPoint(osPositionAttribute);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
947 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
948 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
949
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
950 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
951 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
952
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
953 cocoa.id getSizeAttribute (int childID) {
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
954 cocoa.id returnValue = null;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
955 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
956 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
957 event.width = -1;
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
958
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
959 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
960 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
961 listener.getLocation(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
962 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
963
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
964 NSSize controlSize = NSSize ();
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
965 if (event.width !is -1) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
966 controlSize.width = event.width;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
967 controlSize.height = event.height;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
968 returnValue = NSValue.valueWithSize(controlSize);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
969 } else {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
970 if (childID !is ACC.CHILDID_SELF) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
971 controlSize.width = controlSize.height = 0;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
972 returnValue = NSValue.valueWithSize(controlSize);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
973 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
974 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
975
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
976 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
977 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
978
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
979 cocoa.id getDescriptionAttribute (int childID) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
980 AccessibleEvent event = new AccessibleEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
981 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
982 event.result = null;
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
983 cocoa.id returnValue = null;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
984 for (int i = 0; i < accessibleListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
985 AccessibleListener listener = accessibleListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
986 listener.getDescription(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
987 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
988
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
989 returnValue = (event.result !is null ? NSString.stringWith(event.result) : null);
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
990
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
991 // If no description was provided, try the name.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
992 if (returnValue is null) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
993 if (cast(Composite) control) returnValue = NSString.stringWith("");
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
994 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
995
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
996 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
997 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
998
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
999 cocoa.id getInsertionPointLineNumberAttribute (int childID) {
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1000 cocoa.id returnValue = null;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1001 AccessibleControlEvent controlEvent = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1002 controlEvent.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1003 controlEvent.result = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1004 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1005 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1006 listener.getValue(controlEvent);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1007 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1008 AccessibleTextEvent textEvent = new AccessibleTextEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1009 textEvent.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1010 textEvent.offset = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1011 for (int i = 0; i < accessibleTextListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1012 AccessibleTextListener listener = accessibleTextListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1013 listener.getCaretOffset(textEvent);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1014 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1015 if (controlEvent.result !is null && textEvent.offset !is -1) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1016 int lineNumber = lineNumberForOffset (controlEvent.result, textEvent.offset);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1017 returnValue = NSNumber.numberWithInt(lineNumber);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1018 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1019 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1020 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1021
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1022 cocoa.id getNumberOfCharactersAttribute (int childID) {
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1023 cocoa.id returnValue = null;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1024 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1025 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1026 event.result = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1027 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1028 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1029 listener.getValue(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1030 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1031 String appValue = event.result;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1032 if (appValue !is null) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1033 returnValue = NSNumber.numberWithInt(appValue.length());
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1034 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1035 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1036 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1037
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1038 cocoa.id getRangeForLineParameterizedAttribute (cocoa.id parameter, int childID) {
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1039 cocoa.id returnValue = null;
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1040
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1041 // The parameter is an NSNumber with the line number.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1042 NSNumber lineNumberObj = new NSNumber(parameter.id);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1043 int lineNumber = lineNumberObj.intValue();
61
c74ba20de292 Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents: 60
diff changeset
1044 System.out_.println("Line number = " ~ Integer.toString(lineNumber));
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1045 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1046 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1047 event.result = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1048 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1049 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1050 listener.getValue(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1051 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1052 if (event.result !is null) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1053 NSRange range = rangeForLineNumber (lineNumber, event.result);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1054 if (range.location !is -1) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1055 returnValue = NSValue.valueWithRange(range);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1056 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1057 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1058 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1059 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1060
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1061 cocoa.id getSelectedTextAttribute (int childID) {
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1062 cocoa.id returnValue = NSString.stringWith("");
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1063 AccessibleTextEvent event = new AccessibleTextEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1064 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1065 event.offset = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1066 event.length = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1067 for (int i = 0; i < accessibleTextListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1068 AccessibleTextListener listener = accessibleTextListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1069 listener.getSelectionRange(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1070 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1071 int offset = event.offset;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1072 int length = event.length;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1073 if (offset !is -1 && length !is -1 && length !is 0) { // TODO: do we need the && length !is 0 ?
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1074 AccessibleControlEvent event2 = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1075 event2.childID = event.childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1076 event2.result = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1077 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1078 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1079 listener.getValue(event2);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1080 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1081 String appValue = event2.result;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1082 if (appValue !is null) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1083 returnValue = NSString.stringWith(appValue.substring(offset, offset + length));
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1084 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1085 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1086 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1087 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1088
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1089 cocoa.id getSelectedTextRangeAttribute (int childID) {
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1090 cocoa.id returnValue = null;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1091 AccessibleTextEvent event = new AccessibleTextEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1092 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1093 event.offset = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1094 event.length = 0;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1095 for (int i = 0; i < accessibleTextListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1096 AccessibleTextListener listener = accessibleTextListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1097 listener.getSelectionRange(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1098 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1099 if (event.offset !is -1) {
46
cfa563df4fdd Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents: 45
diff changeset
1100 NSRange range = NSRange();
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1101 range.location = event.offset;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1102 range.length = event.length;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1103 returnValue = NSValue.valueWithRange(range);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1104 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1105 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1106 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1107
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1108 cocoa.id getStringForRangeAttribute (cocoa.id parameter, int childID) {
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1109 cocoa.id returnValue = null;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1110
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1111 // Parameter is an NSRange wrapped in an NSValue.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1112 NSValue parameterObject = new NSValue(parameter.id);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1113 NSRange range = parameterObject.rangeValue();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1114 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1115 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1116 event.result = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1117 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1118 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1119 listener.getValue(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1120 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1121 String appValue = event.result;
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1122
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1123 if (appValue !is null) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1124 returnValue = NSString.stringWith(appValue.substring(range.location, range.location + range.length));
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1125 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1126
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1127 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1128 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1129
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1130 cocoa.id getSelectedTextRangesAttribute (int childID) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1131 NSMutableArray returnValue = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1132 AccessibleTextEvent event = new AccessibleTextEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1133 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1134 event.offset = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1135 event.length = 0;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1136
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1137 for (int i = 0; i < accessibleTextListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1138 AccessibleTextListener listener = accessibleTextListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1139 listener.getSelectionRange(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1140 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1141
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1142 if (event.offset !is -1) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1143 returnValue = NSMutableArray.arrayWithCapacity(1);
46
cfa563df4fdd Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents: 45
diff changeset
1144 NSRange range = NSRange();
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1145 range.location = event.offset;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1146 range.length = event.length;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1147 returnValue.addObject(NSValue.valueWithRange(range));
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1148 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1149
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1150 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1151 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1152
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1153 cocoa.id getVisibleCharacterRangeAttribute (int childID) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1154 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1155 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1156 event.result = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1157 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1158 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1159 listener.getValue(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1160 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1161
46
cfa563df4fdd Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents: 45
diff changeset
1162 NSRange range = NSRange();
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1163
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1164 if (event.result !is null) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1165 range.location = 0;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1166 range.length = event.result.length();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1167 } else {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1168 return null;
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1169 // range.location = range.length = 0;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1170 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1171
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1172 return NSValue.valueWithRange(range);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1173 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1174
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1175 int lineNumberForOffset (String text, int offset) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1176 int lineNumber = 1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1177 int length = text.length();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1178 for (int i = 0; i < offset; i++) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1179 switch (text.charAt (i)) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1180 case '\r':
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1181 if (i + 1 < length) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1182 if (text.charAt (i + 1) is '\n') ++i;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1183 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1184 // FALL THROUGH
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1185 case '\n':
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1186 lineNumber++;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1187 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1188 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1189 return lineNumber;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1190 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1191
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1192 NSRange rangeForLineNumber (int lineNumber, String text) {
46
cfa563df4fdd Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents: 45
diff changeset
1193 NSRange range = NSRange();
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1194 range.location = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1195 int line = 1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1196 int count = 0;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1197 int length = text.length ();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1198 for (int i = 0; i < length; i++) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1199 if (line is lineNumber) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1200 if (count is 0) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1201 range.location = i;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1202 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1203 count++;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1204 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1205 if (line > lineNumber) break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1206 switch (text.charAt (i)) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1207 case '\r':
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1208 if (i + 1 < length && text.charAt (i + 1) is '\n') i++;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1209 // FALL THROUGH
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1210 case '\n':
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1211 line++;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1212 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1213 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1214 range.length = count;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1215 return range;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1216 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1217
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1218 /**
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1219 * Removes the listener from the collection of listeners who will
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1220 * be notified when an accessible client asks for certain strings,
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1221 * such as name, description, help, or keyboard shortcut.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1222 *
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1223 * @param listener the listener that should no longer be notified when the receiver
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1224 * is asked for a name, description, help, or keyboard shortcut string
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1225 *
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1226 * @exception IllegalArgumentException <ul>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1227 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1228 * </ul>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1229 * @exception DWTException <ul>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1230 * <li>ERROR_WIDGET_DISPOSED - if the receiver's control has been disposed</li>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1231 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver's control</li>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1232 * </ul>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1233 *
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1234 * @see AccessibleListener
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1235 * @see #addAccessibleListener
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1236 */
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1237 public void removeAccessibleListener(AccessibleListener listener) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1238 checkWidget();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1239 if (listener is null) DWT.error(DWT.ERROR_NULL_ARGUMENT);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1240 accessibleListeners.removeElement(listener);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1241 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1242
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1243 /**
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1244 * Removes the listener from the collection of listeners who will
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1245 * be notified when an accessible client asks for custom control
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1246 * specific information.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1247 *
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1248 * @param listener the listener that should no longer be notified when the receiver
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1249 * is asked for custom control specific information
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1250 *
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1251 * @exception IllegalArgumentException <ul>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1252 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1253 * </ul>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1254 * @exception DWTException <ul>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1255 * <li>ERROR_WIDGET_DISPOSED - if the receiver's control has been disposed</li>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1256 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver's control</li>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1257 * </ul>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1258 *
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1259 * @see AccessibleControlListener
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1260 * @see #addAccessibleControlListener
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1261 */
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1262 public void removeAccessibleControlListener(AccessibleControlListener listener) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1263 checkWidget();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1264 if (listener is null) DWT.error(DWT.ERROR_NULL_ARGUMENT);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1265 accessibleControlListeners.removeElement(listener);
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1266 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1267
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1268 /**
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1269 * Removes the listener from the collection of listeners who will
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1270 * be notified when an accessible client asks for custom text control
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1271 * specific information.
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1272 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1273 * @param listener the listener that should no longer be notified when the receiver
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1274 * is asked for custom text control specific information
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1275 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1276 * @exception IllegalArgumentException <ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1277 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1278 * </ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1279 * @exception DWTException <ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1280 * <li>ERROR_WIDGET_DISPOSED - if the receiver's control has been disposed</li>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1281 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver's control</li>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1282 * </ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1283 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1284 * @see AccessibleTextListener
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1285 * @see #addAccessibleTextListener
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1286 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1287 * @since 3.0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1288 */
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1289 public void removeAccessibleTextListener (AccessibleTextListener listener) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1290 checkWidget ();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1291 if (listener is null) DWT.error (DWT.ERROR_NULL_ARGUMENT);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1292 accessibleTextListeners.removeElement (listener);
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1293 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1294
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1295 static NSArray retainedAutoreleased(NSArray inObject) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1296 cocoa.id temp = inObject.retain();
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1297 cocoa.id temp2 = (new NSObject(temp.id)).autorelease();
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1298 return new NSArray(temp2.id);
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1299 }
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1300
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1301 /**
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1302 * Sends a message to accessible clients that the child selection
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1303 * within a custom container control has changed.
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1304 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1305 * @exception DWTException <ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1306 * <li>ERROR_WIDGET_DISPOSED - if the receiver's control has been disposed</li>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1307 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver's control</li>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1308 * </ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1309 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1310 * @since 3.0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1311 */
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1312 public void selectionChanged () {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1313 checkWidget();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1314 OS.NSAccessibilityPostNotification(control.view.id, OS.NSAccessibilitySelectedChildrenChangedNotification.id);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1315 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1316
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1317 /**
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1318 * Sends a message to accessible clients indicating that the focus
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1319 * has changed within a custom control.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1320 *
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1321 * @param childID an identifier specifying a child of the control
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1322 *
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1323 * @exception DWTException <ul>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1324 * <li>ERROR_WIDGET_DISPOSED - if the receiver's control has been disposed</li>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1325 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver's control</li>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1326 * </ul>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1327 */
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1328 public void setFocus(int childID) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1329 checkWidget();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1330 OS.NSAccessibilityPostNotification(control.view.id, OS.NSAccessibilityFocusedUIElementChangedNotification.id);
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1331 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1332
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1333 /**
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1334 * Sends a message to accessible clients that the text
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1335 * caret has moved within a custom control.
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1336 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1337 * @param index the new caret index within the control
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1338 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1339 * @exception DWTException <ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1340 * <li>ERROR_WIDGET_DISPOSED - if the receiver's control has been disposed</li>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1341 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver's control</li>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1342 * </ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1343 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1344 * @since 3.0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1345 */
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1346 public void textCaretMoved (int index) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1347 checkWidget();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1348 OS.NSAccessibilityPostNotification(control.view.id, OS.NSAccessibilitySelectedTextChangedNotification.id);
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1349 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1350
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1351 /**
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1352 * Sends a message to accessible clients that the text
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1353 * within a custom control has changed.
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1354 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1355 * @param type the type of change, one of <code>ACC.NOTIFY_TEXT_INSERT</code>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1356 * or <code>ACC.NOTIFY_TEXT_DELETE</code>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1357 * @param startIndex the text index within the control where the insertion or deletion begins
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1358 * @param length the non-negative length in characters of the insertion or deletion
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1359 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1360 * @exception DWTException <ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1361 * <li>ERROR_WIDGET_DISPOSED - if the receiver's control has been disposed</li>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1362 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver's control</li>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1363 * </ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1364 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1365 * @see ACC#TEXT_INSERT
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1366 * @see ACC#TEXT_DELETE
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1367 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1368 * @since 3.0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1369 */
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1370 public void textChanged (int type, int startIndex, int length) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1371 checkWidget();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1372 OS.NSAccessibilityPostNotification(control.view.id, OS.NSAccessibilityValueChangedNotification.id);
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1373 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1374
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1375 /**
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1376 * Sends a message to accessible clients that the text
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1377 * selection has changed within a custom control.
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1378 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1379 * @exception DWTException <ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1380 * <li>ERROR_WIDGET_DISPOSED - if the receiver's control has been disposed</li>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1381 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver's control</li>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1382 * </ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1383 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1384 * @since 3.0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1385 */
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1386 public void textSelectionChanged () {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1387 checkWidget();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1388 OS.NSAccessibilityPostNotification(control.view.id, OS.NSAccessibilitySelectedTextChangedNotification.id);
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1389 }
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1390
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1391 cocoa.id childIDToOs(int childID) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1392 if (childID is ACC.CHILDID_SELF) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1393 return control.view;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1394 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1395
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1396 /* Check cache for childID, if found, return corresponding osChildID. */
60
62202ce0039f Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents: 59
diff changeset
1397 SWTAccessibleDelegate childRef = children[childID];
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1398
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1399 if (childRef is null) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1400 childRef = new SWTAccessibleDelegate(this, childID);
129
ad4e1fe71a5a Fixed runtime errors
Jacob Carlborg <doob@me.com>
parents: 128
diff changeset
1401 children.put(childID, childRef);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1402 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1403
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1404 return childRef;
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1405 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1406
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1407 NSString concatStringsAsRole(NSString str1, NSString str2) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1408 NSString returnValue = str1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1409 returnValue = returnValue.stringByAppendingString(NSString.stringWith(":"));
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1410 returnValue = returnValue.stringByAppendingString(str2);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1411 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1412 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1413
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1414 String roleToOs(int role) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1415 NSString nsReturnValue = null; //OS.NSAccessibilityUnknownRole;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1416
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1417 switch (role) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1418 case ACC.ROLE_CLIENT_AREA: nsReturnValue = OS.NSAccessibilityGroupRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1419 case ACC.ROLE_WINDOW: nsReturnValue = OS.NSAccessibilityWindowRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1420 case ACC.ROLE_MENUBAR: nsReturnValue = OS.NSAccessibilityMenuBarRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1421 case ACC.ROLE_MENU: nsReturnValue = OS.NSAccessibilityMenuRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1422 case ACC.ROLE_MENUITEM: nsReturnValue = OS.NSAccessibilityMenuItemRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1423 case ACC.ROLE_SEPARATOR: nsReturnValue = OS.NSAccessibilitySplitterRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1424 case ACC.ROLE_TOOLTIP: nsReturnValue = OS.NSAccessibilityHelpTagRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1425 case ACC.ROLE_SCROLLBAR: nsReturnValue = OS.NSAccessibilityScrollBarRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1426 case ACC.ROLE_DIALOG: nsReturnValue = concatStringsAsRole(OS.NSAccessibilityWindowRole, OS.NSAccessibilityDialogSubrole); break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1427 case ACC.ROLE_LABEL: nsReturnValue = OS.NSAccessibilityStaticTextRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1428 case ACC.ROLE_PUSHBUTTON: nsReturnValue = OS.NSAccessibilityButtonRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1429 case ACC.ROLE_CHECKBUTTON: nsReturnValue = OS.NSAccessibilityCheckBoxRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1430 case ACC.ROLE_RADIOBUTTON: nsReturnValue = OS.NSAccessibilityRadioButtonRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1431 case ACC.ROLE_COMBOBOX: nsReturnValue = OS.NSAccessibilityComboBoxRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1432 case ACC.ROLE_TEXT: {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1433 int style = control.getStyle();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1434
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1435 if ((style & DWT.MULTI) !is 0) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1436 nsReturnValue = OS.NSAccessibilityTextAreaRole;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1437 } else {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1438 nsReturnValue = OS.NSAccessibilityTextFieldRole;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1439 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1440
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1441 break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1442 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1443 case ACC.ROLE_TOOLBAR: nsReturnValue = OS.NSAccessibilityToolbarRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1444 case ACC.ROLE_LIST: nsReturnValue = OS.NSAccessibilityOutlineRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1445 case ACC.ROLE_LISTITEM: nsReturnValue = OS.NSAccessibilityStaticTextRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1446 case ACC.ROLE_TABLE: nsReturnValue = OS.NSAccessibilityTableRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1447 case ACC.ROLE_TABLECELL: nsReturnValue = concatStringsAsRole(OS.NSAccessibilityRowRole, OS.NSAccessibilityTableRowSubrole); break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1448 case ACC.ROLE_TABLECOLUMNHEADER: nsReturnValue = OS.NSAccessibilitySortButtonRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1449 case ACC.ROLE_TABLEROWHEADER: nsReturnValue = concatStringsAsRole(OS.NSAccessibilityRowRole, OS.NSAccessibilityTableRowSubrole); break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1450 case ACC.ROLE_TREE: nsReturnValue = OS.NSAccessibilityOutlineRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1451 case ACC.ROLE_TREEITEM: nsReturnValue = concatStringsAsRole(OS.NSAccessibilityOutlineRole, OS.NSAccessibilityOutlineRowSubrole); break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1452 case ACC.ROLE_TABFOLDER: nsReturnValue = OS.NSAccessibilityTabGroupRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1453 case ACC.ROLE_TABITEM: nsReturnValue = OS.NSAccessibilityRadioButtonRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1454 case ACC.ROLE_PROGRESSBAR: nsReturnValue = OS.NSAccessibilityProgressIndicatorRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1455 case ACC.ROLE_SLIDER: nsReturnValue = OS.NSAccessibilitySliderRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1456 case ACC.ROLE_LINK: nsReturnValue = OS.NSAccessibilityLinkRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1457 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1458
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1459 return nsReturnValue.getString();
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1460 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1461
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1462 int osToRole(NSString osRole) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1463 if (osRole is null) return 0;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1464 if (osRole.isEqualToString(OS.NSAccessibilityWindowRole)) return ACC.ROLE_WINDOW;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1465 if (osRole.isEqualToString(OS.NSAccessibilityMenuBarRole)) return ACC.ROLE_MENUBAR;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1466 if (osRole.isEqualToString(OS.NSAccessibilityMenuRole)) return ACC.ROLE_MENU;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1467 if (osRole.isEqualToString(OS.NSAccessibilityMenuItemRole)) return ACC.ROLE_MENUITEM;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1468 if (osRole.isEqualToString(OS.NSAccessibilitySplitterRole)) return ACC.ROLE_SEPARATOR;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1469 if (osRole.isEqualToString(OS.NSAccessibilityHelpTagRole)) return ACC.ROLE_TOOLTIP;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1470 if (osRole.isEqualToString(OS.NSAccessibilityScrollBarRole)) return ACC.ROLE_SCROLLBAR;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1471 if (osRole.isEqualToString(OS.NSAccessibilityScrollAreaRole)) return ACC.ROLE_LIST;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1472 if (osRole.isEqualToString(concatStringsAsRole(OS.NSAccessibilityWindowRole, OS.NSAccessibilityDialogSubrole))) return ACC.ROLE_DIALOG;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1473 if (osRole.isEqualToString(concatStringsAsRole(OS.NSAccessibilityWindowRole, OS.NSAccessibilitySystemDialogSubrole))) return ACC.ROLE_DIALOG;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1474 if (osRole.isEqualToString(OS.NSAccessibilityStaticTextRole)) return ACC.ROLE_LABEL;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1475 if (osRole.isEqualToString(OS.NSAccessibilityButtonRole)) return ACC.ROLE_PUSHBUTTON;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1476 if (osRole.isEqualToString(OS.NSAccessibilityCheckBoxRole)) return ACC.ROLE_CHECKBUTTON;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1477 if (osRole.isEqualToString(OS.NSAccessibilityRadioButtonRole)) return ACC.ROLE_RADIOBUTTON;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1478 if (osRole.isEqualToString(OS.NSAccessibilityComboBoxRole)) return ACC.ROLE_COMBOBOX;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1479 if (osRole.isEqualToString(OS.NSAccessibilityTextFieldRole)) return ACC.ROLE_TEXT;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1480 if (osRole.isEqualToString(OS.NSAccessibilityTextAreaRole)) return ACC.ROLE_TEXT;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1481 if (osRole.isEqualToString(OS.NSAccessibilityToolbarRole)) return ACC.ROLE_TOOLBAR;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1482 if (osRole.isEqualToString(OS.NSAccessibilityListRole)) return ACC.ROLE_LIST;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1483 if (osRole.isEqualToString(OS.NSAccessibilityTableRole)) return ACC.ROLE_TABLE;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1484 if (osRole.isEqualToString(OS.NSAccessibilityColumnRole)) return ACC.ROLE_TABLECOLUMNHEADER;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1485 if (osRole.isEqualToString(concatStringsAsRole(OS.NSAccessibilityButtonRole, OS.NSAccessibilitySortButtonRole))) return ACC.ROLE_TABLECOLUMNHEADER;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1486 if (osRole.isEqualToString(concatStringsAsRole(OS.NSAccessibilityRowRole, OS.NSAccessibilityTableRowSubrole))) return ACC.ROLE_TABLEROWHEADER;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1487 if (osRole.isEqualToString(OS.NSAccessibilityOutlineRole)) return ACC.ROLE_TREE;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1488 if (osRole.isEqualToString(concatStringsAsRole(OS.NSAccessibilityOutlineRole, OS.NSAccessibilityOutlineRowSubrole))) return ACC.ROLE_TREEITEM;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1489 if (osRole.isEqualToString(OS.NSAccessibilityTabGroupRole)) return ACC.ROLE_TABFOLDER;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1490 if (osRole.isEqualToString(OS.NSAccessibilityProgressIndicatorRole)) return ACC.ROLE_PROGRESSBAR;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1491 if (osRole.isEqualToString(OS.NSAccessibilitySliderRole)) return ACC.ROLE_SLIDER;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1492 if (osRole.isEqualToString(OS.NSAccessibilityLinkRole)) return ACC.ROLE_LINK;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1493 return ACC.ROLE_CLIENT_AREA;
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1494 }
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1495
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1496 /* checkWidget was copied from Widget, and rewritten to work in this package */
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1497 void checkWidget () {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1498 if (!isValidThread ()) DWT.error (DWT.ERROR_THREAD_INVALID_ACCESS);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1499 if (control.isDisposed ()) DWT.error (DWT.ERROR_WIDGET_DISPOSED);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1500 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1501
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1502 /* isValidThread was copied from Widget, and rewritten to work in this package */
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1503 bool isValidThread () {
60
62202ce0039f Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents: 59
diff changeset
1504 return control.getDisplay ().getThread () is Thread.getThis ();
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1505 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1506
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1507 }