annotate dwt/accessibility/Accessible.d @ 151:0ba75290f8ce

Added a bunch of missing defaults to switch statements
author Jacob Carlborg <doob@me.com>
date Wed, 10 Jun 2009 21:52:31 +0200
parents ad4e1fe71a5a
children
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;
151
0ba75290f8ce Added a bunch of missing defaults to switch statements
Jacob Carlborg <doob@me.com>
parents: 129
diff changeset
261 default:
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
262 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
263
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
264 switch (event.detail) {
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
265 case ACC.ROLE_COMBOBOX:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
266 returnValue.addObject(OS.NSAccessibilityConfirmAction);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
267 break;
151
0ba75290f8ce Added a bunch of missing defaults to switch statements
Jacob Carlborg <doob@me.com>
parents: 129
diff changeset
268 default:
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
269 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
270
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
271
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
272 if (childID is ACC.CHILDID_SELF) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
273 actionNames = returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
274 actionNames.retain();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
275 return retainedAutoreleased(actionNames);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
276 } else {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
277 // 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
278 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
279 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
280 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
281
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
282 public NSArray internal_accessibilityAttributeNames(int childID) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
283 // 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
284 // 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
285 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
286 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
287 event.detail = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
288 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
289 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
290 listener.getRole(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
291 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
292
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
293 // 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
294 // return the default set for the control.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
295 if (event.detail is -1)
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
296 return null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
297
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
298 if ((childID is ACC.CHILDID_SELF) && (attributeNames !is null)) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
299 return retainedAutoreleased(attributeNames);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
300 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
301
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
302 NSMutableArray returnValue = NSMutableArray.arrayWithCapacity(baseAttributes.length);
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
303
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
304 /* Add our list of supported attributes to the array.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
305 * 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
306 */
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
307 for (int i = 0; i < baseAttributes.length; i++) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
308 if (!returnValue.containsObject(baseAttributes[i])) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
309 returnValue.addObject(baseAttributes[i]);
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 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
312
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
313 if (accessibleTextListeners.size() > 0) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
314 for (int i = 0; i < baseTextAttributes.length; i++) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
315 if (!returnValue.containsObject(baseTextAttributes[i])) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
316 returnValue.addObject(baseTextAttributes[i]);
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 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
320
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
321 // The following are expected to have a value (AXValue)
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
322 switch (event.detail) {
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
323 case ACC.ROLE_CHECKBUTTON:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
324 case ACC.ROLE_RADIOBUTTON:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
325 case ACC.ROLE_LABEL:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
326 case ACC.ROLE_TABITEM:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
327 case ACC.ROLE_TABFOLDER:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
328 returnValue.addObject(OS.NSAccessibilityValueAttribute);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
329 break;
151
0ba75290f8ce Added a bunch of missing defaults to switch statements
Jacob Carlborg <doob@me.com>
parents: 129
diff changeset
330 default:
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
331 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
332
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
333 // 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
334 switch (event.detail) {
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
335 case ACC.ROLE_CHECKBUTTON:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
336 case ACC.ROLE_RADIOBUTTON:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
337 case ACC.ROLE_LABEL:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
338 case ACC.ROLE_TABITEM:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
339 case ACC.ROLE_PUSHBUTTON:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
340 case ACC.ROLE_COMBOBOX:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
341 returnValue.addObject(OS.NSAccessibilityEnabledAttribute);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
342 break;
151
0ba75290f8ce Added a bunch of missing defaults to switch statements
Jacob Carlborg <doob@me.com>
parents: 129
diff changeset
343 default:
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
344 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
345
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
346 // The following are expected to report a title (AXTitle)
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
347 switch (event.detail) {
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
348 case ACC.ROLE_CHECKBUTTON:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
349 case ACC.ROLE_RADIOBUTTON:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
350 case ACC.ROLE_PUSHBUTTON:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
351 case ACC.ROLE_TABITEM:
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
352 returnValue.addObject(OS.NSAccessibilityTitleAttribute);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
353 break;
151
0ba75290f8ce Added a bunch of missing defaults to switch statements
Jacob Carlborg <doob@me.com>
parents: 129
diff changeset
354 default:
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
355 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
356
45
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 combo boxes.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
358 if (event.detail is ACC.ROLE_COMBOBOX) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
359 returnValue.addObject(OS.NSAccessibilityExpandedAttribute);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
360 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
361
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
362 // 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
363 if (event.detail is ACC.ROLE_TABFOLDER) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
364 returnValue.addObject(OS.NSAccessibilityContentsAttribute);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
365 returnValue.addObject(OS.NSAccessibilityTabsAttribute);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
366 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
367
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
368 /*
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
369 * 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
370 */
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
371 if (event.detail !is -1) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
372 String osRole = roleToOs(event.detail);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
373
60
62202ce0039f Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents: 59
diff changeset
374 if (dwt.dwthelper.utils.indexOf(osRole, ':') is -1)
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
375 returnValue.removeObject(OS.NSAccessibilitySubroleAttribute);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
376 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
377
45
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 * 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
380 */
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
381 if (childID !is ACC.CHILDID_SELF) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
382 returnValue.removeObject(OS.NSAccessibilityChildrenAttribute);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
383 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
384
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
385 if (childID is ACC.CHILDID_SELF) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
386 attributeNames = returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
387 attributeNames.retain();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
388 return retainedAutoreleased(attributeNames);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
389 } else {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
390 // Caller must retain if necessary.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
391 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
392 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
393 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
394
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
395 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
396 if (attribute.isEqualToString(OS.NSAccessibilityRoleAttribute)) return getRoleAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
397 if (attribute.isEqualToString(OS.NSAccessibilitySubroleAttribute)) return getSubroleAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
398 if (attribute.isEqualToString(OS.NSAccessibilityRoleDescriptionAttribute)) return getRoleDescriptionAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
399 if (attribute.isEqualToString(OS.NSAccessibilityExpandedAttribute)) return getExpandedAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
400 if (attribute.isEqualToString(OS.NSAccessibilityHelpAttribute)) return getHelpAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
401 if (attribute.isEqualToString(OS.NSAccessibilityTitleAttribute)) return getTitleAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
402 if (attribute.isEqualToString(OS.NSAccessibilityValueAttribute)) return getValueAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
403 if (attribute.isEqualToString(OS.NSAccessibilityEnabledAttribute)) return getEnabledAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
404 if (attribute.isEqualToString(OS.NSAccessibilityFocusedAttribute)) return getFocusedAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
405 if (attribute.isEqualToString(OS.NSAccessibilityParentAttribute)) return getParentAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
406 if (attribute.isEqualToString(OS.NSAccessibilityChildrenAttribute)) return getChildrenAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
407 if (attribute.isEqualToString(OS.NSAccessibilityContentsAttribute)) return getChildrenAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
408 // 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
409 if (attribute.isEqualToString(OS.NSAccessibilityTabsAttribute)) return getTabsAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
410 if (attribute.isEqualToString(OS.NSAccessibilityWindowAttribute)) return getWindowAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
411 if (attribute.isEqualToString(OS.NSAccessibilityTopLevelUIElementAttribute)) return getTopLevelUIElementAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
412 if (attribute.isEqualToString(OS.NSAccessibilityPositionAttribute)) return getPositionAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
413 if (attribute.isEqualToString(OS.NSAccessibilitySizeAttribute)) return getSizeAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
414 if (attribute.isEqualToString(OS.NSAccessibilityDescriptionAttribute)) return getDescriptionAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
415 if (attribute.isEqualToString(OS.NSAccessibilityNumberOfCharactersAttribute)) return getNumberOfCharactersAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
416 if (attribute.isEqualToString(OS.NSAccessibilitySelectedTextAttribute)) return getSelectedTextAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
417 if (attribute.isEqualToString(OS.NSAccessibilitySelectedTextRangeAttribute)) return getSelectedTextRangeAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
418 if (attribute.isEqualToString(OS.NSAccessibilityInsertionPointLineNumberAttribute)) return getInsertionPointLineNumberAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
419 if (attribute.isEqualToString(OS.NSAccessibilitySelectedTextRangesAttribute)) return getSelectedTextRangesAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
420 if (attribute.isEqualToString(OS.NSAccessibilityVisibleCharacterRangeAttribute)) return getVisibleCharacterRangeAttribute(childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
421
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
422 // 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
423 return null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
424 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
425
59
83b0ad9d9238 Ported SWTAccessibleDelegate
Jacob Carlborg <doob@me.com>
parents: 58
diff changeset
426 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
427 if (attribute.isEqualToString(OS.NSAccessibilityStringForRangeParameterizedAttribute)) return getStringForRangeAttribute(parameter, childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
428 if (attribute.isEqualToString(OS.NSAccessibilityRangeForLineParameterizedAttribute)) return getRangeForLineParameterizedAttribute(parameter, childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
429 return null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
430 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
431
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
432 // 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
433 // 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
434 public cocoa.id internal_accessibilityFocusedUIElement(int childID) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
435 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
436 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
437 event.accessible = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
438 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
439 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
440 listener.getFocus(event);
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
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
443 // 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
444 if (event.childID is ACC.CHILDID_MULTIPLE)
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
445 return null;
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 /* The application can optionally answer an accessible. */
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
448 if (event.accessible !is null) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
449 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
450 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
451
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
452 /* 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
453 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
454 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
455 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
456
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
457 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
458 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
459
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
460 // 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
461 // 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
462 // 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
463 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
464 AccessibleControlEvent event = new AccessibleControlEvent(this);
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
465 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
466 dwt.widgets.Monitor.Monitor primaryMonitor = Display.getCurrent().getPrimaryMonitor();
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
467 event.y = cast(int) (primaryMonitor.getBounds().height - point.y);
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
468
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
469 // 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
470 event.childID = ACC.CHILDID_MULTIPLE;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
471 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
472 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
473 listener.getChildAtPoint(event);
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
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
476 // 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
477 if (event.childID is ACC.CHILDID_MULTIPLE)
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
478 return null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
479
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
480 if (event.accessible !is null) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
481 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
482 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
483
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
484 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
485 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
486 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
487
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
488 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
489 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
490
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
491 public bool internal_accessibilityIsAttributeSettable(NSString attribute, 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 // 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
496 public bool internal_accessibilityIsIgnored(int childID) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
497 return false;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
498 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
499
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
500 // parameterized attribute methods
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
501 public NSArray internal_accessibilityParameterizedAttributeNames(int childID) {
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
502
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
503 if ((childID is ACC.CHILDID_SELF) && (parameterizedAttributeNames !is null)) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
504 return retainedAutoreleased(parameterizedAttributeNames);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
505 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
506
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
507 NSMutableArray returnValue = NSMutableArray.arrayWithCapacity(4);
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
508
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
509 if (accessibleTextListeners.size() > 0) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
510 for (int i = 0; i < baseParameterizedAttributes.length; i++) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
511 if (!returnValue.containsObject(baseParameterizedAttributes[i])) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
512 returnValue.addObject(baseParameterizedAttributes[i]);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
513 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
514 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
515
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
516 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
517
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
518 if (childID is ACC.CHILDID_SELF) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
519 parameterizedAttributeNames = returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
520 parameterizedAttributeNames.retain();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
521 return retainedAutoreleased(parameterizedAttributeNames);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
522 } else {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
523 // Caller must retain if they want to keep it.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
524 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
525 }
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 public void internal_accessibilityPerformAction(NSString action, int childID) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
529 // TODO Auto-generated method stub
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
530 // No action support for now.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
531 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
532
45
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 * Returns the control for this Accessible object.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
535 *
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
536 * @return the receiver's control
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
537 * @since 3.0
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 public Control getControl() {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
540 return control;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
541 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
542
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
543 /**
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
544 * Invokes platform specific functionality to dispose an accessible object.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
545 * <p>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
546 * <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
547 * 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
548 * 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
549 * 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
550 * application code.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
551 * </p>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
552 */
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
553 public void internal_dispose_Accessible() {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
554 if (actionNames !is null) actionNames.release();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
555 actionNames = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
556 if (attributeNames !is null) attributeNames.release();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
557 attributeNames = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
558 if (parameterizedAttributeNames !is null) parameterizedAttributeNames.release();
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
559 parameterizedAttributeNames = null;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
560
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
561 foreach (childDelegate ; children)
129
ad4e1fe71a5a Fixed runtime errors
Jacob Carlborg <doob@me.com>
parents: 128
diff changeset
562 childDelegate.internal_dispose_SWTAccessibleDelegate();
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
563
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
564 children.clear();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
565 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
566
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
567 cocoa.id getExpandedAttribute(int childID) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
568 // 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
569 return NSNumber.numberWithBool(false);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
570 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
571
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
572 cocoa.id getHelpAttribute (int childID) {
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
573 cocoa.id returnValue = null;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
574 AccessibleEvent event = new AccessibleEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
575 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
576 for (int i = 0; i < accessibleListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
577 AccessibleListener listener = accessibleListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
578 listener.getHelp(event);
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
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
581 if (event.result !is null) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
582 returnValue = NSString.stringWith(event.result);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
583 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
584
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
585 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
586 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
587
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
588 NSString getRoleAttribute(int childID) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
589 NSString returnValue = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
590 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
591 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
592 event.detail = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
593 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
594 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
595 listener.getRole(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
596 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
597 if (event.detail !is -1) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
598 String appRole = roleToOs (event.detail);
60
62202ce0039f Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents: 59
diff changeset
599 int index = dwt.dwthelper.utils.indexOf(appRole, ':');
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
600 if (index !is -1) appRole = appRole.substring(0, index);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
601 returnValue = NSString.stringWith(appRole);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
602 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
603
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
604 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
605 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
606
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
607 cocoa.id getSubroleAttribute (int childID) {
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
608 cocoa.id returnValue = null;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
609 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
610 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
611 event.detail = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
612 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
613 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
614 listener.getRole(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
615 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
616 if (event.detail !is -1) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
617 String appRole = roleToOs (event.detail);
60
62202ce0039f Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents: 59
diff changeset
618 int index = dwt.dwthelper.utils.indexOf(appRole, ':');
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
619 if (index !is -1) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
620 appRole = appRole.substring(index + 1);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
621 returnValue = NSString.stringWith(appRole);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
622 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
623 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
624 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
625 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
626
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
627 cocoa.id getRoleDescriptionAttribute (int childID) {
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
628 cocoa.id returnValue = null;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
629 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
630 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
631 event.detail = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
632 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
633 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
634 listener.getRole(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
635 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
636 if (event.detail !is -1) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
637 String appRole = roleToOs (event.detail);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
638 String appSubrole = null;
60
62202ce0039f Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents: 59
diff changeset
639 int index = dwt.dwthelper.utils.indexOf(appRole, ':');
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
640 if (index !is -1) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
641 appSubrole = appRole.substring(index + 1);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
642 appRole = appRole.substring(0, index);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
643 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
644 NSString nsAppRole = NSString.stringWith(appRole);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
645 NSString nsAppSubrole = null;
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 if (appSubrole !is null) nsAppSubrole = NSString.stringWith(appSubrole);
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
648 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
649 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
650 return returnValue;
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
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
653 cocoa.id getTitleAttribute (int childID) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
654
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
655 cocoa.id returnValue = null;//NSString.stringWith("");
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
656
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
657 /*
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
658 * 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
659 * 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
660 */
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
661 AccessibleControlEvent roleEvent = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
662 roleEvent.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
663 roleEvent.detail = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
664 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
665 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
666 listener.getRole(roleEvent);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
667 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
668 if (roleEvent.detail !is ACC.ROLE_LABEL) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
669 AccessibleEvent event = new AccessibleEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
670 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
671 event.result = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
672 for (int i = 0; i < accessibleListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
673 AccessibleListener listener = accessibleListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
674 listener.getName(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
675 }
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 if (event.result !is null)
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
678 returnValue = NSString.stringWith(event.result);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
679 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
680 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
681 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
682
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
683 cocoa.id getValueAttribute (int childID) {
60
62202ce0039f Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents: 59
diff changeset
684 cocoa.id returnValue = null;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
685 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
686 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
687 event.detail = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
688 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
689 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
690 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
691 listener.getRole(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
692 listener.getValue(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
693 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
694 int role = event.detail;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
695 String value = event.result;
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
696
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
697 switch (role) {
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
698 case ACC.ROLE_RADIOBUTTON: // 1 = on, 0 = off
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
699 case ACC.ROLE_CHECKBUTTON: // 1 = checked, 0 = unchecked, 2 = mixed
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
700 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
701 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
702 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
703 if (value !is null) {
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
704 try {
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
705 int number = Integer.parseInt(value);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
706 returnValue = NSNumber.numberWithInt(number);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
707 } catch (NumberFormatException ex) {
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
708 if (value.equalsIgnoreCase("true")) {
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
709 returnValue = NSNumber.numberWithBool(true);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
710 } else if (value.equalsIgnoreCase("false")) {
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
711 returnValue = NSNumber.numberWithBool(false);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
712 }
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
713 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
714 } else {
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
715 returnValue = NSNumber.numberWithBool(false);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
716 }
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
717 break;
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
718 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
719 case ACC.ROLE_TABITEM: // 1 = selected, 0 = not selected
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
720 AccessibleControlEvent ace = new AccessibleControlEvent(this);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
721 ace.childID = -4;
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
722 for (int i = 0; i < accessibleControlListeners.size(); i++) {
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
723 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
724 listener.getSelection(ace);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
725 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
726 if (ace.childID >= ACC.CHILDID_SELF) {
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
727 if (role is ACC.ROLE_TABITEM) {
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
728 returnValue = NSNumber.numberWithBool(ace.childID is childID);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
729 } else {
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
730 returnValue = new cocoa.id(OS.NSAccessibilityUnignoredAncestor(childIDToOs(ace.childID).id));
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
731 }
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
732 } else {
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
733 returnValue = NSNumber.numberWithBool(false);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
734 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
735 break;
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
736 case ACC.ROLE_COMBOBOX: // text of the currently selected item
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
737 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
738 if (value !is null) returnValue = NSString.stringWith(value);
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
739 break;
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
740 case ACC.ROLE_LABEL: // text in the label
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
741 /* 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
742 AccessibleEvent e = new AccessibleEvent(this);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
743 e.childID = childID;
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
744 e.result = null;
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
745 for (int i = 0; i < accessibleListeners.size(); i++) {
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
746 AccessibleListener listener = accessibleListeners.elementAt(i);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
747 listener.getName(e);
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 if (e.result !is null) {
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
750 returnValue = NSString.stringWith(e.result);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
751 } else {
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
752 if (value !is null) returnValue = NSString.stringWith(value);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
753 }
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
754 break;
151
0ba75290f8ce Added a bunch of missing defaults to switch statements
Jacob Carlborg <doob@me.com>
parents: 129
diff changeset
755 default:
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
756 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
757
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
758 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
759 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
760
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
761 cocoa.id getEnabledAttribute (int childID) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
762 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
763 event.detail = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
764 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
765 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
766 listener.getState(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
767 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
768
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
769 return NSNumber.numberWithBool(control.isEnabled());
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
770 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
771
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
772 cocoa.id getFocusedAttribute (int childID) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
773 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
774 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
775 event.accessible = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
776 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
777 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
778 listener.getFocus(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
779 }
123
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 /* The application can optionally answer an accessible. */
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
782 // FIXME:
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
783 // if (event.accessible !is null) {
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
784 // 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
785 // return NSNumber.numberWithBool(hasFocus);
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
786 // }
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
787
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
788 /* 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
789 if (event.childID is ACC.CHILDID_SELF) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
790 bool hasFocus = (event.childID is childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
791 return NSNumber.numberWithBool(hasFocus);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
792 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
793 if (event.childID is ACC.CHILDID_NONE) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
794 return NSNumber.numberWithBool(false);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
795 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
796 if (event.childID !is ACC.CHILDID_MULTIPLE) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
797 /* Other valid childID. */
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
798 return NSNumber.numberWithBool(event.childID is childID);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
799 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
800
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
801 // 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
802 // let the default handler return the native focus.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
803 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
804 return NSNumber.numberWithBool(hasFocus);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
805 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
806
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
807 cocoa.id getParentAttribute (int childID) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
808 // Returning null here means 'let Cocoa figure it out.'
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
809 if (childID is ACC.CHILDID_SELF)
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
810 return null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
811 else
60
62202ce0039f Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents: 59
diff changeset
812 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
813 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
814
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
815 cocoa.id getChildrenAttribute (int childID) {
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
816 cocoa.id returnValue = null;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
817 if (childID is ACC.CHILDID_SELF) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
818 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
819 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
820 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
821 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
822 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
823 listener.getChildCount(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
824 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
825 if (event.detail > 0) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
826 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
827 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
828 listener.getChildren(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
829 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
830 Object [] appChildren = event.children;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
831 if (appChildren !is null && appChildren.length > 0) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
832 /* return an NSArray of NSAccessible objects. */
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
833 NSMutableArray childArray = NSMutableArray.arrayWithCapacity(appChildren.length);
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
834
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
835 for (int i = 0; i < appChildren.length; i++) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
836 Object child = appChildren[i];
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
837 if (cast(Integer) child) {
60
62202ce0039f Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents: 59
diff changeset
838 cocoa.id accChild = childIDToOs((cast(Integer)child).intValue());
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
839 childArray.addObject(accChild);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
840 } else {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
841 childArray.addObject((cast(Accessible)child).control.view);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
842 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
843 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
844
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
845 returnValue = new cocoa.id(OS.NSAccessibilityUnignoredChildren(childArray.id));
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
846 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
847 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
848 } else {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
849 // Lightweight children have no children of their own.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
850 // 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
851 returnValue = NSArray.array();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
852 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
853
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
854 // 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
855 // 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
856 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
857 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
858
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
859 cocoa.id getTabsAttribute (int childID) {
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
860 cocoa.id returnValue = null;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
861 if (childID is ACC.CHILDID_SELF) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
862 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
863 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
864 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
865 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
866 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
867 listener.getChildCount(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
868 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
869 if (event.detail > 0) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
870 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
871 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
872 listener.getChildren(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
873 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
874 Object [] appChildren = event.children;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
875 if (appChildren !is null && appChildren.length > 0) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
876 /* return an NSArray of NSAccessible objects. */
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
877 NSMutableArray childArray = NSMutableArray.arrayWithCapacity(appChildren.length);
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
878
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
879 for (int i = 0; i < appChildren.length; i++) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
880 Object child = appChildren[i];
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
881 if (cast(Integer)child) {
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
882 int subChildID = (cast(Integer)child).intValue();
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
883 event.childID = subChildID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
884 event.detail = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
885 for (int j = 0; j < accessibleControlListeners.size(); j++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
886 AccessibleControlListener listener = accessibleControlListeners.elementAt(j);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
887 listener.getRole(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
888 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
889
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
890 if (event.detail is ACC.ROLE_TABITEM) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
891 cocoa.id accChild = childIDToOs((cast(Integer)child).intValue());
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
892 childArray.addObject(accChild);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
893 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
894 } else {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
895 childArray.addObject((cast(Accessible)child).control.view);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
896 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
897 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
898
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
899 returnValue = new cocoa.id(OS.NSAccessibilityUnignoredChildren(childArray.id));
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
900 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
901 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
902 } else {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
903 // Lightweight children have no children of their own.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
904 // 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
905 returnValue = NSArray.array();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
906 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
907
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
908 // 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
909 // 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
910 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
911 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
912
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
913 cocoa.id getWindowAttribute (int childID) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
914 return control.view.window();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
915 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
916
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
917 cocoa.id getTopLevelUIElementAttribute (int childID) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
918 return control.view.window();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
919 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
920
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
921 cocoa.id getPositionAttribute (int childID) {
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
922 cocoa.id returnValue = null;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
923 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
924 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
925 event.width = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
926
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
927 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
928 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
929 listener.getLocation(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
930 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
931
60
62202ce0039f Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents: 59
diff changeset
932 dwt.widgets.Monitor.Monitor primaryMonitor = Display.getCurrent().getPrimaryMonitor();
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
933
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
934 NSPoint osPositionAttribute = NSPoint ();
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
935 if (event.width !is -1) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
936 // 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
937 osPositionAttribute.x = event.x;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
938 osPositionAttribute.y = primaryMonitor.getBounds().height - event.y - event.height;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
939 returnValue = NSValue.valueWithPoint(osPositionAttribute);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
940 } else {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
941 if (childID !is ACC.CHILDID_SELF) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
942 Point pt = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
943 Rectangle location = control.getBounds();
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
944
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
945 if (control.getParent() !is null)
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
946 pt = control.getParent().toDisplay(location.x, location.y);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
947 else
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
948 pt = (cast(Shell)control).toDisplay(location.x, location.y);
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
949
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
950 osPositionAttribute.x = pt.x;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
951 osPositionAttribute.y = pt.y;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
952 returnValue = NSValue.valueWithPoint(osPositionAttribute);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
953 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
954 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
955
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
956 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
957 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
958
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
959 cocoa.id getSizeAttribute (int childID) {
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
960 cocoa.id returnValue = null;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
961 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
962 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
963 event.width = -1;
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
964
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
965 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
966 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
967 listener.getLocation(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
968 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
969
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
970 NSSize controlSize = NSSize ();
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
971 if (event.width !is -1) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
972 controlSize.width = event.width;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
973 controlSize.height = event.height;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
974 returnValue = NSValue.valueWithSize(controlSize);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
975 } else {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
976 if (childID !is ACC.CHILDID_SELF) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
977 controlSize.width = controlSize.height = 0;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
978 returnValue = NSValue.valueWithSize(controlSize);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
979 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
980 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
981
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
982 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
983 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
984
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
985 cocoa.id getDescriptionAttribute (int childID) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
986 AccessibleEvent event = new AccessibleEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
987 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
988 event.result = null;
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
989 cocoa.id returnValue = null;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
990 for (int i = 0; i < accessibleListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
991 AccessibleListener listener = accessibleListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
992 listener.getDescription(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
993 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
994
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
995 returnValue = (event.result !is null ? NSString.stringWith(event.result) : null);
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
996
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
997 // If no description was provided, try the name.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
998 if (returnValue is null) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
999 if (cast(Composite) control) returnValue = NSString.stringWith("");
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1000 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1001
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1002 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1003 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1004
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1005 cocoa.id getInsertionPointLineNumberAttribute (int childID) {
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1006 cocoa.id returnValue = null;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1007 AccessibleControlEvent controlEvent = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1008 controlEvent.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1009 controlEvent.result = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1010 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1011 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1012 listener.getValue(controlEvent);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1013 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1014 AccessibleTextEvent textEvent = new AccessibleTextEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1015 textEvent.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1016 textEvent.offset = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1017 for (int i = 0; i < accessibleTextListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1018 AccessibleTextListener listener = accessibleTextListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1019 listener.getCaretOffset(textEvent);
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 if (controlEvent.result !is null && textEvent.offset !is -1) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1022 int lineNumber = lineNumberForOffset (controlEvent.result, textEvent.offset);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1023 returnValue = NSNumber.numberWithInt(lineNumber);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1024 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1025 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1026 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1027
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1028 cocoa.id getNumberOfCharactersAttribute (int childID) {
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1029 cocoa.id returnValue = null;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1030 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1031 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1032 event.result = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1033 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1034 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1035 listener.getValue(event);
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 String appValue = event.result;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1038 if (appValue !is null) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1039 returnValue = NSNumber.numberWithInt(appValue.length());
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1040 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1041 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1042 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1043
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1044 cocoa.id getRangeForLineParameterizedAttribute (cocoa.id parameter, int childID) {
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1045 cocoa.id returnValue = null;
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1046
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1047 // The parameter is an NSNumber with the line number.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1048 NSNumber lineNumberObj = new NSNumber(parameter.id);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1049 int lineNumber = lineNumberObj.intValue();
61
c74ba20de292 Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents: 60
diff changeset
1050 System.out_.println("Line number = " ~ Integer.toString(lineNumber));
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1051 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1052 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1053 event.result = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1054 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1055 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1056 listener.getValue(event);
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 if (event.result !is null) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1059 NSRange range = rangeForLineNumber (lineNumber, event.result);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1060 if (range.location !is -1) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1061 returnValue = NSValue.valueWithRange(range);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1062 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1063 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1064 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1065 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1066
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1067 cocoa.id getSelectedTextAttribute (int childID) {
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1068 cocoa.id returnValue = NSString.stringWith("");
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1069 AccessibleTextEvent event = new AccessibleTextEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1070 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1071 event.offset = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1072 event.length = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1073 for (int i = 0; i < accessibleTextListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1074 AccessibleTextListener listener = accessibleTextListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1075 listener.getSelectionRange(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1076 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1077 int offset = event.offset;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1078 int length = event.length;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1079 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
1080 AccessibleControlEvent event2 = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1081 event2.childID = event.childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1082 event2.result = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1083 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1084 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1085 listener.getValue(event2);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1086 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1087 String appValue = event2.result;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1088 if (appValue !is null) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1089 returnValue = NSString.stringWith(appValue.substring(offset, offset + length));
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1090 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1091 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1092 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1093 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1094
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1095 cocoa.id getSelectedTextRangeAttribute (int childID) {
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1096 cocoa.id returnValue = null;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1097 AccessibleTextEvent event = new AccessibleTextEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1098 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1099 event.offset = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1100 event.length = 0;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1101 for (int i = 0; i < accessibleTextListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1102 AccessibleTextListener listener = accessibleTextListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1103 listener.getSelectionRange(event);
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 if (event.offset !is -1) {
46
cfa563df4fdd Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents: 45
diff changeset
1106 NSRange range = NSRange();
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1107 range.location = event.offset;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1108 range.length = event.length;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1109 returnValue = NSValue.valueWithRange(range);
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 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1112 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1113
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1114 cocoa.id getStringForRangeAttribute (cocoa.id parameter, int childID) {
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1115 cocoa.id returnValue = null;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1116
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1117 // Parameter is an NSRange wrapped in an NSValue.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1118 NSValue parameterObject = new NSValue(parameter.id);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1119 NSRange range = parameterObject.rangeValue();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1120 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1121 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1122 event.result = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1123 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1124 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1125 listener.getValue(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1126 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1127 String appValue = event.result;
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1128
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1129 if (appValue !is null) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1130 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
1131 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1132
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1133 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1134 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1135
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1136 cocoa.id getSelectedTextRangesAttribute (int childID) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1137 NSMutableArray returnValue = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1138 AccessibleTextEvent event = new AccessibleTextEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1139 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1140 event.offset = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1141 event.length = 0;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1142
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1143 for (int i = 0; i < accessibleTextListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1144 AccessibleTextListener listener = accessibleTextListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1145 listener.getSelectionRange(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1146 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1147
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1148 if (event.offset !is -1) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1149 returnValue = NSMutableArray.arrayWithCapacity(1);
46
cfa563df4fdd Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents: 45
diff changeset
1150 NSRange range = NSRange();
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1151 range.location = event.offset;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1152 range.length = event.length;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1153 returnValue.addObject(NSValue.valueWithRange(range));
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1154 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1155
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1156 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1157 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1158
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1159 cocoa.id getVisibleCharacterRangeAttribute (int childID) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1160 AccessibleControlEvent event = new AccessibleControlEvent(this);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1161 event.childID = childID;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1162 event.result = null;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1163 for (int i = 0; i < accessibleControlListeners.size(); i++) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1164 AccessibleControlListener listener = accessibleControlListeners.elementAt(i);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1165 listener.getValue(event);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1166 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1167
46
cfa563df4fdd Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents: 45
diff changeset
1168 NSRange range = NSRange();
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1169
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1170 if (event.result !is null) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1171 range.location = 0;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1172 range.length = event.result.length();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1173 } else {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1174 return null;
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1175 // range.location = range.length = 0;
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1176 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1177
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1178 return NSValue.valueWithRange(range);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1179 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1180
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1181 int lineNumberForOffset (String text, int offset) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1182 int lineNumber = 1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1183 int length = text.length();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1184 for (int i = 0; i < offset; i++) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1185 switch (text.charAt (i)) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1186 case '\r':
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1187 if (i + 1 < length) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1188 if (text.charAt (i + 1) is '\n') ++i;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1189 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1190 // FALL THROUGH
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1191 case '\n':
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1192 lineNumber++;
151
0ba75290f8ce Added a bunch of missing defaults to switch statements
Jacob Carlborg <doob@me.com>
parents: 129
diff changeset
1193 default:
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1194 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1195 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1196 return lineNumber;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1197 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1198
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1199 NSRange rangeForLineNumber (int lineNumber, String text) {
46
cfa563df4fdd Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents: 45
diff changeset
1200 NSRange range = NSRange();
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1201 range.location = -1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1202 int line = 1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1203 int count = 0;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1204 int length = text.length ();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1205 for (int i = 0; i < length; i++) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1206 if (line is lineNumber) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1207 if (count is 0) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1208 range.location = i;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1209 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1210 count++;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1211 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1212 if (line > lineNumber) break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1213 switch (text.charAt (i)) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1214 case '\r':
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1215 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
1216 // FALL THROUGH
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1217 case '\n':
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1218 line++;
151
0ba75290f8ce Added a bunch of missing defaults to switch statements
Jacob Carlborg <doob@me.com>
parents: 129
diff changeset
1219 default:
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1220 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1221 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1222 range.length = count;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1223 return range;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1224 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1225
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1226 /**
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1227 * 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
1228 * 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
1229 * such as name, description, help, or keyboard shortcut.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1230 *
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1231 * @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
1232 * 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
1233 *
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1234 * @exception IllegalArgumentException <ul>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1235 * <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
1236 * </ul>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1237 * @exception DWTException <ul>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1238 * <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
1239 * <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
1240 * </ul>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1241 *
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1242 * @see AccessibleListener
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1243 * @see #addAccessibleListener
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1244 */
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1245 public void removeAccessibleListener(AccessibleListener listener) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1246 checkWidget();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1247 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
1248 accessibleListeners.removeElement(listener);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1249 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1250
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1251 /**
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1252 * 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
1253 * 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
1254 * specific information.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1255 *
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1256 * @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
1257 * is asked for custom control specific information
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 * @exception IllegalArgumentException <ul>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1260 * <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
1261 * </ul>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1262 * @exception DWTException <ul>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1263 * <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
1264 * <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
1265 * </ul>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1266 *
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1267 * @see AccessibleControlListener
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1268 * @see #addAccessibleControlListener
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1269 */
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1270 public void removeAccessibleControlListener(AccessibleControlListener listener) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1271 checkWidget();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1272 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
1273 accessibleControlListeners.removeElement(listener);
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1274 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1275
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1276 /**
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1277 * 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
1278 * 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
1279 * specific information.
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1280 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1281 * @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
1282 * 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
1283 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1284 * @exception IllegalArgumentException <ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1285 * <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
1286 * </ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1287 * @exception DWTException <ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1288 * <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
1289 * <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
1290 * </ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1291 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1292 * @see AccessibleTextListener
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1293 * @see #addAccessibleTextListener
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1294 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1295 * @since 3.0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1296 */
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1297 public void removeAccessibleTextListener (AccessibleTextListener listener) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1298 checkWidget ();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1299 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
1300 accessibleTextListeners.removeElement (listener);
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1301 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1302
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1303 static NSArray retainedAutoreleased(NSArray inObject) {
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1304 cocoa.id temp = inObject.retain();
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1305 cocoa.id temp2 = (new NSObject(temp.id)).autorelease();
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1306 return new NSArray(temp2.id);
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1307 }
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1308
0
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 * 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
1311 * 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
1312 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1313 * @exception DWTException <ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1314 * <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
1315 * <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
1316 * </ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1317 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1318 * @since 3.0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1319 */
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1320 public void selectionChanged () {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1321 checkWidget();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1322 OS.NSAccessibilityPostNotification(control.view.id, OS.NSAccessibilitySelectedChildrenChangedNotification.id);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1323 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1324
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1325 /**
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1326 * 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
1327 * has changed within a custom control.
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1328 *
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1329 * @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
1330 *
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1331 * @exception DWTException <ul>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1332 * <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
1333 * <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
1334 * </ul>
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1335 */
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1336 public void setFocus(int childID) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1337 checkWidget();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1338 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
1339 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1340
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1341 /**
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1342 * 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
1343 * 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
1344 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1345 * @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
1346 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1347 * @exception DWTException <ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1348 * <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
1349 * <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
1350 * </ul>
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 * @since 3.0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1353 */
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1354 public void textCaretMoved (int index) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1355 checkWidget();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1356 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
1357 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1358
0
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 * 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
1361 * within a custom control has changed.
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1362 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1363 * @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
1364 * 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
1365 * @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
1366 * @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
1367 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1368 * @exception DWTException <ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1369 * <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
1370 * <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
1371 * </ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1372 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1373 * @see ACC#TEXT_INSERT
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1374 * @see ACC#TEXT_DELETE
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 * @since 3.0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1377 */
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1378 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
1379 checkWidget();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1380 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
1381 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1382
0
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 * 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
1385 * 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
1386 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1387 * @exception DWTException <ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1388 * <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
1389 * <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
1390 * </ul>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1391 *
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1392 * @since 3.0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1393 */
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1394 public void textSelectionChanged () {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1395 checkWidget();
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1396 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
1397 }
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1398
58
6d9ec9ccdcdd Updated Accessible to 3.514
Jacob Carlborg <doob@me.com>
parents: 46
diff changeset
1399 cocoa.id childIDToOs(int childID) {
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1400 if (childID is ACC.CHILDID_SELF) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1401 return control.view;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1402 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1403
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1404 /* 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
1405 SWTAccessibleDelegate childRef = children[childID];
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1406
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1407 if (childRef is null) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1408 childRef = new SWTAccessibleDelegate(this, childID);
129
ad4e1fe71a5a Fixed runtime errors
Jacob Carlborg <doob@me.com>
parents: 128
diff changeset
1409 children.put(childID, childRef);
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1410 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1411
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1412 return childRef;
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1413 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1414
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1415 NSString concatStringsAsRole(NSString str1, NSString str2) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1416 NSString returnValue = str1;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1417 returnValue = returnValue.stringByAppendingString(NSString.stringWith(":"));
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1418 returnValue = returnValue.stringByAppendingString(str2);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1419 return returnValue;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1420 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1421
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1422 String roleToOs(int role) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1423 NSString nsReturnValue = null; //OS.NSAccessibilityUnknownRole;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1424
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1425 switch (role) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1426 case ACC.ROLE_CLIENT_AREA: nsReturnValue = OS.NSAccessibilityGroupRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1427 case ACC.ROLE_WINDOW: nsReturnValue = OS.NSAccessibilityWindowRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1428 case ACC.ROLE_MENUBAR: nsReturnValue = OS.NSAccessibilityMenuBarRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1429 case ACC.ROLE_MENU: nsReturnValue = OS.NSAccessibilityMenuRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1430 case ACC.ROLE_MENUITEM: nsReturnValue = OS.NSAccessibilityMenuItemRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1431 case ACC.ROLE_SEPARATOR: nsReturnValue = OS.NSAccessibilitySplitterRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1432 case ACC.ROLE_TOOLTIP: nsReturnValue = OS.NSAccessibilityHelpTagRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1433 case ACC.ROLE_SCROLLBAR: nsReturnValue = OS.NSAccessibilityScrollBarRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1434 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
1435 case ACC.ROLE_LABEL: nsReturnValue = OS.NSAccessibilityStaticTextRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1436 case ACC.ROLE_PUSHBUTTON: nsReturnValue = OS.NSAccessibilityButtonRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1437 case ACC.ROLE_CHECKBUTTON: nsReturnValue = OS.NSAccessibilityCheckBoxRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1438 case ACC.ROLE_RADIOBUTTON: nsReturnValue = OS.NSAccessibilityRadioButtonRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1439 case ACC.ROLE_COMBOBOX: nsReturnValue = OS.NSAccessibilityComboBoxRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1440 case ACC.ROLE_TEXT: {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1441 int style = control.getStyle();
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 if ((style & DWT.MULTI) !is 0) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1444 nsReturnValue = OS.NSAccessibilityTextAreaRole;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1445 } else {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1446 nsReturnValue = OS.NSAccessibilityTextFieldRole;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1447 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1448
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1449 break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1450 }
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1451 case ACC.ROLE_TOOLBAR: nsReturnValue = OS.NSAccessibilityToolbarRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1452 case ACC.ROLE_LIST: nsReturnValue = OS.NSAccessibilityOutlineRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1453 case ACC.ROLE_LISTITEM: nsReturnValue = OS.NSAccessibilityStaticTextRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1454 case ACC.ROLE_TABLE: nsReturnValue = OS.NSAccessibilityTableRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1455 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
1456 case ACC.ROLE_TABLECOLUMNHEADER: nsReturnValue = OS.NSAccessibilitySortButtonRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1457 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
1458 case ACC.ROLE_TREE: nsReturnValue = OS.NSAccessibilityOutlineRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1459 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
1460 case ACC.ROLE_TABFOLDER: nsReturnValue = OS.NSAccessibilityTabGroupRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1461 case ACC.ROLE_TABITEM: nsReturnValue = OS.NSAccessibilityRadioButtonRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1462 case ACC.ROLE_PROGRESSBAR: nsReturnValue = OS.NSAccessibilityProgressIndicatorRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1463 case ACC.ROLE_SLIDER: nsReturnValue = OS.NSAccessibilitySliderRole; break;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1464 case ACC.ROLE_LINK: nsReturnValue = OS.NSAccessibilityLinkRole; break;
151
0ba75290f8ce Added a bunch of missing defaults to switch statements
Jacob Carlborg <doob@me.com>
parents: 129
diff changeset
1465 default:
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1466 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1467
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1468 return nsReturnValue.getString();
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1469 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1470
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1471 int osToRole(NSString osRole) {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1472 if (osRole is null) return 0;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1473 if (osRole.isEqualToString(OS.NSAccessibilityWindowRole)) return ACC.ROLE_WINDOW;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1474 if (osRole.isEqualToString(OS.NSAccessibilityMenuBarRole)) return ACC.ROLE_MENUBAR;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1475 if (osRole.isEqualToString(OS.NSAccessibilityMenuRole)) return ACC.ROLE_MENU;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1476 if (osRole.isEqualToString(OS.NSAccessibilityMenuItemRole)) return ACC.ROLE_MENUITEM;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1477 if (osRole.isEqualToString(OS.NSAccessibilitySplitterRole)) return ACC.ROLE_SEPARATOR;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1478 if (osRole.isEqualToString(OS.NSAccessibilityHelpTagRole)) return ACC.ROLE_TOOLTIP;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1479 if (osRole.isEqualToString(OS.NSAccessibilityScrollBarRole)) return ACC.ROLE_SCROLLBAR;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1480 if (osRole.isEqualToString(OS.NSAccessibilityScrollAreaRole)) return ACC.ROLE_LIST;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1481 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
1482 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
1483 if (osRole.isEqualToString(OS.NSAccessibilityStaticTextRole)) return ACC.ROLE_LABEL;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1484 if (osRole.isEqualToString(OS.NSAccessibilityButtonRole)) return ACC.ROLE_PUSHBUTTON;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1485 if (osRole.isEqualToString(OS.NSAccessibilityCheckBoxRole)) return ACC.ROLE_CHECKBUTTON;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1486 if (osRole.isEqualToString(OS.NSAccessibilityRadioButtonRole)) return ACC.ROLE_RADIOBUTTON;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1487 if (osRole.isEqualToString(OS.NSAccessibilityComboBoxRole)) return ACC.ROLE_COMBOBOX;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1488 if (osRole.isEqualToString(OS.NSAccessibilityTextFieldRole)) return ACC.ROLE_TEXT;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1489 if (osRole.isEqualToString(OS.NSAccessibilityTextAreaRole)) return ACC.ROLE_TEXT;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1490 if (osRole.isEqualToString(OS.NSAccessibilityToolbarRole)) return ACC.ROLE_TOOLBAR;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1491 if (osRole.isEqualToString(OS.NSAccessibilityListRole)) return ACC.ROLE_LIST;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1492 if (osRole.isEqualToString(OS.NSAccessibilityTableRole)) return ACC.ROLE_TABLE;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1493 if (osRole.isEqualToString(OS.NSAccessibilityColumnRole)) return ACC.ROLE_TABLECOLUMNHEADER;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1494 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
1495 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
1496 if (osRole.isEqualToString(OS.NSAccessibilityOutlineRole)) return ACC.ROLE_TREE;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1497 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
1498 if (osRole.isEqualToString(OS.NSAccessibilityTabGroupRole)) return ACC.ROLE_TABFOLDER;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1499 if (osRole.isEqualToString(OS.NSAccessibilityProgressIndicatorRole)) return ACC.ROLE_PROGRESSBAR;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1500 if (osRole.isEqualToString(OS.NSAccessibilitySliderRole)) return ACC.ROLE_SLIDER;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1501 if (osRole.isEqualToString(OS.NSAccessibilityLinkRole)) return ACC.ROLE_LINK;
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1502 return ACC.ROLE_CLIENT_AREA;
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1503 }
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1504
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1505 /* 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
1506 void checkWidget () {
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1507 if (!isValidThread ()) DWT.error (DWT.ERROR_THREAD_INVALID_ACCESS);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1508 if (control.isDisposed ()) DWT.error (DWT.ERROR_WIDGET_DISPOSED);
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1509 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1510
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1511 /* 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
1512 bool isValidThread () {
60
62202ce0039f Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents: 59
diff changeset
1513 return control.getDisplay ().getThread () is Thread.getThis ();
45
d8635bb48c7c Merge with SWT 3.5
Jacob Carlborg <doob@me.com>
parents: 37
diff changeset
1514 }
123
63a09873578e Fixed compile errors
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
1515
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1516 }