Mercurial > projects > dwt-linux
annotate dwt/accessibility/AccessibleFactory.d @ 364:2bcb17ebe0be default tip
fix: thx torhu
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Sun, 08 Nov 2009 20:57:46 +0100 |
parents | 4bffbf81e2d6 |
children |
rev | line source |
---|---|
72 | 1 /******************************************************************************* |
42 | 2 * Copyright (c) 2000, 2006 IBM Corporation and others. |
3 * All rights reserved. This program and the accompanying materials | |
4 * are made available under the terms of the Eclipse Public License v1.0 | |
5 * which accompanies this distribution, and is available at | |
6 * http://www.eclipse.org/legal/epl-v10.html | |
7 * | |
8 * Contributors: | |
9 * IBM Corporation - initial API and implementation | |
72 | 10 * Port to the D programming language: |
11 * Frank Benoit <benoit@tionex.de> | |
42 | 12 *******************************************************************************/ |
13 module dwt.accessibility.AccessibleFactory; | |
14 | |
238 | 15 import dwt.dwthelper.utils; |
16 | |
42 | 17 |
18 import dwt.internal.accessibility.gtk.ATK; | |
19 import dwt.internal.gtk.OS; | |
20 import dwt.accessibility.Accessible; | |
21 import dwt.accessibility.ACC; | |
22 import dwt.accessibility.AccessibleObject; | |
23 import dwt.accessibility.AccessibleControlEvent; | |
24 import dwt.accessibility.AccessibleControlListener; | |
25 | |
71 | 26 import dwt.DWT; |
42 | 27 |
28 class AccessibleFactory { | |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
29 AtkObjectFactory * handle; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
30 uint objectParentType; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
31 char* widgetTypeName; |
42 | 32 |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
33 //Callback atkObjectFactoryCB_create_accessible; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
34 //Callback gTypeInfo_base_init_factory; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
35 Accessible[GtkWidget*] accessibles; |
42 | 36 |
238 | 37 static long[String] Types; |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
38 static AccessibleFactory[long] Factories; |
42 | 39 |
54 | 40 static uint DefaultParentType; //$NON-NLS-1$ |
238 | 41 static const String FACTORY_PARENTTYPENAME = "AtkObjectFactory"; |
42 static const String SWT_TYPE_PREFIX = "DWT"; | |
43 static const String CHILD_TYPENAME = "Child"; | |
44 static const String FACTORY_TYPENAME = "SWTFactory"; | |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
45 static const int[] actionRoles = [ |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
46 ACC.ROLE_CHECKBUTTON, ACC.ROLE_COMBOBOX, ACC.ROLE_LINK, |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
47 ACC.ROLE_MENUITEM, ACC.ROLE_PUSHBUTTON, ACC.ROLE_RADIOBUTTON, |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
48 ]; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
49 static const int[] hypertextRoles = [ACC.ROLE_LINK]; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
50 static const int[] selectionRoles = [ |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
51 ACC.ROLE_LIST, ACC.ROLE_TABFOLDER, ACC.ROLE_TABLE, ACC.ROLE_TREE, |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
52 ]; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
53 static const int[] textRoles = [ |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
54 ACC.ROLE_COMBOBOX, ACC.ROLE_LINK, ACC.ROLE_LABEL, ACC.ROLE_TEXT, |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
55 ]; |
42 | 56 |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
57 /* AT callbacks*/ |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
58 /* interface definitions */ |
104 | 59 private static GTypeInfo* ObjectIfaceDefinition; |
60 private static GInterfaceInfo* ActionIfaceDefinition; | |
61 private static GInterfaceInfo* ComponentIfaceDefinition; | |
62 private static GInterfaceInfo* HypertextIfaceDefinition; | |
63 private static GInterfaceInfo* SelectionIfaceDefinition; | |
64 private static GInterfaceInfo* TextIfaceDefinition; | |
42 | 65 |
104 | 66 private static synchronized void static_this(){ |
67 AccessibleObject.static_this(); | |
68 /* Action interface */ | |
69 if( ActionIfaceDefinition is null ){ | |
54 | 70 DefaultParentType = OS.g_type_from_name ("GtkAccessible"); //$NON-NLS-1$ |
71 ActionIfaceDefinition = cast(GInterfaceInfo*)OS.g_malloc (GInterfaceInfo.sizeof); | |
72 ActionIfaceDefinition.interface_init = &AccessibleFactory.initActionIfaceCB; | |
104 | 73 } |
74 /* Component interface */ | |
75 if( ComponentIfaceDefinition is null ){ | |
54 | 76 ComponentIfaceDefinition = cast(GInterfaceInfo*)OS.g_malloc (GInterfaceInfo.sizeof); |
77 ComponentIfaceDefinition.interface_init = &AccessibleFactory.initComponentIfaceCB; | |
104 | 78 } |
79 /* Hypertext interface */ | |
80 if( HypertextIfaceDefinition is null ){ | |
54 | 81 HypertextIfaceDefinition = cast(GInterfaceInfo*)OS.g_malloc (GInterfaceInfo.sizeof); |
82 HypertextIfaceDefinition.interface_init = &AccessibleFactory.initHypertextIfaceCB; | |
104 | 83 } |
84 /* Selection interface */ | |
85 if( SelectionIfaceDefinition is null ){ | |
54 | 86 SelectionIfaceDefinition = cast(GInterfaceInfo*)OS.g_malloc (GInterfaceInfo.sizeof); |
87 SelectionIfaceDefinition.interface_init = &AccessibleFactory.initSelectionIfaceCB; | |
104 | 88 } |
89 /* Text interface */ | |
90 if( TextIfaceDefinition is null ){ | |
54 | 91 TextIfaceDefinition =cast(GInterfaceInfo*) OS.g_malloc (GInterfaceInfo.sizeof); |
92 TextIfaceDefinition.interface_init = &AccessibleFactory.initTextIfaceCB; | |
104 | 93 } |
54 | 94 } |
42 | 95 |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
96 private this (int /*long*/ widgetType) { |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
97 widgetTypeName = OS.g_type_name (widgetType); |
238 | 98 String factoryName = FACTORY_TYPENAME ~ fromStringz( widgetTypeName ) ~ \0; |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
99 if (OS.g_type_from_name (factoryName.ptr) is 0) { |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
100 /* register the factory */ |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
101 auto registry = ATK.atk_get_default_registry (); |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
102 auto previousFactory = ATK.atk_registry_get_factory (registry, widgetType); |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
103 objectParentType = ATK.atk_object_factory_get_accessible_type (previousFactory); |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
104 if (objectParentType is 0) objectParentType = DefaultParentType; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
105 auto factoryParentType = OS.g_type_from_name (FACTORY_PARENTTYPENAME.ptr); |
42 | 106 auto typeInfo = cast(GTypeInfo*) OS.g_malloc (GTypeInfo.sizeof); |
107 typeInfo.base_init = &gTypeInfo_base_init_factory; | |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
108 typeInfo.class_size = AtkObjectFactoryClass.sizeof; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
109 typeInfo.instance_size = AtkObjectFactory.sizeof; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
110 auto swtFactoryType = OS.g_type_register_static (factoryParentType, factoryName.ptr, typeInfo, 0); |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
111 ATK.atk_registry_set_factory_type (registry, widgetType, swtFactoryType); |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
112 handle = ATK.atk_registry_get_factory (registry, widgetType); |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
113 } |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
114 } |
42 | 115 |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
116 void addAccessible (Accessible accessible) { |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
117 auto controlHandle = accessible.getControlHandle (); |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
118 accessibles[controlHandle] = accessible; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
119 ATK.atk_object_factory_create_accessible (handle, cast(GObject*)controlHandle); |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
120 } |
42 | 121 |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
122 private static extern(C) AtkObject* atkObjectFactory_create_accessible (GObject* widget) { |
42 | 123 auto widgetType = OS.G_OBJECT_TYPE ( cast(GTypeInstance*)widget); |
124 if( auto factory = widgetType in Factories ){ | |
125 with( *factory ){ | |
126 Accessible accessible = accessibles[ cast(GtkWidget*) widget ]; | |
127 if (accessible is null) { | |
128 /* | |
129 * we don't care about this control, so create it with the parent's | |
130 * type so that its accessibility callbacks will not pass though here | |
131 */ | |
132 auto result = cast(AtkObject*) OS.g_object_new (objectParentType, null); | |
133 ATK.atk_object_initialize (result, cast(void*)widget); | |
134 return result; | |
135 } | |
136 /* if an atk object has already been created for this widget then just return it */ | |
137 if (accessible.accessibleObject !is null) { | |
138 return accessible.accessibleObject.handle; | |
139 } | |
238 | 140 String buffer = fromStringz( widgetTypeName ).dup; |
42 | 141 auto type = getType (buffer, accessible, objectParentType, ACC.CHILDID_SELF); |
142 AccessibleObject object = new AccessibleObject (type, cast(GtkWidget*)widget, accessible, objectParentType, false); | |
143 accessible.accessibleObject = object; | |
144 return object.handle; | |
145 } | |
146 } | |
147 else{ | |
361
4bffbf81e2d6
redirect direct prints to DwtLogger
Frank Benoit <benoit@tionex.de>
parents:
259
diff
changeset
|
148 getDwtLogger().info( "AccessibleFactory.atkObjectFactoryCB_create_accessible cannot find factory instance" ); |
42 | 149 } |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
150 } |
42 | 151 |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
152 static int /*long*/ getChildType (Accessible accessible, int childIndex) { |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
153 return getType (CHILD_TYPENAME, accessible, DefaultParentType, childIndex); |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
154 } |
42 | 155 |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
156 static int /*long*/ getDefaultParentType () { |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
157 return DefaultParentType; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
158 } |
42 | 159 |
238 | 160 static int /*long*/ getType (String widgetTypeName, Accessible accessible, int /*long*/ parentType, int childId) { |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
161 AccessibleControlEvent event = new AccessibleControlEvent (accessible); |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
162 event.childID = childId; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
163 AccessibleControlListener[] listeners = accessible.getControlListeners (); |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
164 for (int i = 0; i < listeners.length; i++) { |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
165 listeners [i].getRole (event); |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
166 } |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
167 bool action = false, hypertext = false, selection = false, text = false; |
259 | 168 if (event.detail !is 0) { /* a role was specified */ |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
169 for (int i = 0; i < actionRoles.length; i++) { |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
170 if (event.detail is actionRoles [i]) { |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
171 action = true; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
172 break; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
173 } |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
174 } |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
175 for (int i = 0; i < hypertextRoles.length; i++) { |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
176 if (event.detail is hypertextRoles [i]) { |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
177 hypertext = true; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
178 break; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
179 } |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
180 } |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
181 for (int i = 0; i < selectionRoles.length; i++) { |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
182 if (event.detail is selectionRoles [i]) { |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
183 selection = true; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
184 break; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
185 } |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
186 } |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
187 for (int i = 0; i < textRoles.length; i++) { |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
188 if (event.detail is textRoles [i]) { |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
189 text = true; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
190 break; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
191 } |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
192 } |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
193 } else { |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
194 action = hypertext = selection = text = true; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
195 } |
238 | 196 String swtTypeName = SWT_TYPE_PREFIX.dup; |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
197 swtTypeName ~= widgetTypeName; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
198 if (action) swtTypeName ~= "Action"; //$NON-NLS-1$ |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
199 if (hypertext) swtTypeName ~= "Hypertext"; //$NON-NLS-1$ |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
200 if (selection) swtTypeName ~= "Selection"; //$NON-NLS-1$ |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
201 if (text) swtTypeName ~= "Text"; //$NON-NLS-1$ |
42 | 202 |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
203 int /*long*/ type = 0; |
42 | 204 if (swtTypeName in Types ) { |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
205 type = Types[swtTypeName]; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
206 } else { |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
207 /* define the type */ |
42 | 208 GTypeQuery* query = new GTypeQuery (); |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
209 OS.g_type_query (parentType, query); |
42 | 210 |
211 GTypeInfo* typeInfo = new GTypeInfo (); | |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
212 typeInfo.base_init = &gTypeInfo_base_init_type; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
213 typeInfo.class_size = query.class_size; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
214 typeInfo.instance_size = query.instance_size; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
215 ObjectIfaceDefinition = typeInfo; |
42 | 216 |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
217 type = OS.g_type_register_static (parentType, toStringz( swtTypeName ), ObjectIfaceDefinition, 0); |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
218 OS.g_type_add_interface_static (type, AccessibleObject.ATK_COMPONENT_TYPE, ComponentIfaceDefinition); |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
219 if (action) OS.g_type_add_interface_static (type, AccessibleObject.ATK_ACTION_TYPE, ActionIfaceDefinition); |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
220 if (hypertext) OS.g_type_add_interface_static (type, AccessibleObject.ATK_HYPERTEXT_TYPE, HypertextIfaceDefinition); |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
221 if (selection) OS.g_type_add_interface_static (type, AccessibleObject.ATK_SELECTION_TYPE, SelectionIfaceDefinition); |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
222 if (text) OS.g_type_add_interface_static (type, AccessibleObject.ATK_TEXT_TYPE, TextIfaceDefinition); |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
223 Types[swtTypeName] = type; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
224 } |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
225 return type; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
226 } |
42 | 227 |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
228 private static extern(C) void gTypeInfo_base_init_factory (void* klass) { |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
229 auto atkObjectFactoryClass = ATK.ATK_OBJECT_FACTORY_CLASS (klass); |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
230 atkObjectFactoryClass.create_accessible = &atkObjectFactory_create_accessible; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
231 } |
42 | 232 |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
233 private static extern(C) void gTypeInfo_base_init_type (void* klass) { |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
234 auto objectClass = cast(AtkObjectClass*)klass; |
42 | 235 objectClass.get_name = &AccessibleObject.atkObject_get_name; |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
236 objectClass.get_description = &AccessibleObject.atkObject_get_description; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
237 objectClass.get_n_children = &AccessibleObject.atkObject_get_n_children; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
238 objectClass.get_role = &AccessibleObject.atkObject_get_role; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
239 objectClass.get_parent = &AccessibleObject.atkObject_get_parent; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
240 objectClass.ref_state_set = &AccessibleObject.atkObject_ref_state_set; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
241 objectClass.get_index_in_parent = &AccessibleObject.atkObject_get_index_in_parent; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
242 objectClass.ref_child = &AccessibleObject.atkObject_ref_child; |
42 | 243 |
244 GObjectClass* gObjectClass = OS.G_OBJECT_CLASS ( cast(GTypeClass*)klass); | |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
245 gObjectClass.finalize = &AccessibleObject.gObjectClass_finalize; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
246 } |
42 | 247 |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
248 private static extern(C) void initActionIfaceCB ( void* g_iface, void* iface_data ) { |
42 | 249 auto iface = cast(AtkActionIface*)g_iface; |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
250 iface.get_keybinding = &AccessibleObject.atkAction_get_keybinding; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
251 iface.get_name = &AccessibleObject.atkAction_get_name; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
252 } |
42 | 253 |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
254 private static extern(C) void initComponentIfaceCB ( void* g_iface, void* iface_data ) { |
42 | 255 auto iface = cast(AtkComponentIface*)g_iface; |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
256 iface.get_extents = &AccessibleObject.atkComponent_get_extents; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
257 iface.get_position = &AccessibleObject.atkComponent_get_position; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
258 iface.get_size = &AccessibleObject.atkComponent_get_size; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
259 iface.ref_accessible_at_point = &AccessibleObject.atkComponent_ref_accessible_at_point; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
260 } |
42 | 261 |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
262 private static extern(C) void initHypertextIfaceCB ( void* g_iface, void* iface_data ) { |
42 | 263 auto iface = cast(AtkHypertextIface*)g_iface; |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
264 iface.get_link = &AccessibleObject.atkHypertext_get_link; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
265 iface.get_link_index = &AccessibleObject.atkHypertext_get_link_index; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
266 iface.get_n_links = &AccessibleObject.atkHypertext_get_n_links; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
267 } |
42 | 268 |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
269 private static extern(C) void initSelectionIfaceCB ( void* g_iface, void* iface_data ) { |
42 | 270 auto iface = cast(AtkSelectionIface*)g_iface; |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
271 iface.is_child_selected = &AccessibleObject.atkSelection_is_child_selected; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
272 iface.ref_selection = &AccessibleObject.atkSelection_ref_selection; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
273 } |
42 | 274 |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
275 private static extern(C) void initTextIfaceCB ( void* g_iface, void* iface_data ) { |
42 | 276 auto iface = cast(AtkTextIface*)g_iface; |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
277 iface.get_caret_offset = &AccessibleObject.atkText_get_caret_offset; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
278 iface.get_character_at_offset = &AccessibleObject.atkText_get_character_at_offset; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
279 iface.get_character_count = &AccessibleObject.atkText_get_character_count; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
280 iface.get_n_selections = &AccessibleObject.atkText_get_n_selections; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
281 iface.get_selection = &AccessibleObject.atkText_get_selection; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
282 iface.get_text = &AccessibleObject.atkText_get_text; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
283 iface.get_text_after_offset = &AccessibleObject.atkText_get_text_after_offset; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
284 iface.get_text_at_offset = &AccessibleObject.atkText_get_text_at_offset; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
285 iface.get_text_before_offset = &AccessibleObject.atkText_get_text_before_offset; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
286 } |
42 | 287 |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
288 static void registerAccessible (Accessible accessible) { |
104 | 289 static_this(); |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
290 /* If DefaultParentType is 0 then OS accessibility is not active */ |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
291 if (DefaultParentType is 0) return; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
292 auto controlHandle = accessible.getControlHandle (); |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
293 auto widgetType = OS.G_OBJECT_TYPE ( cast(GTypeInstance*)controlHandle); |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
294 AccessibleFactory factory = Factories[widgetType]; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
295 if (factory is null) { |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
296 factory = new AccessibleFactory (widgetType); |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
297 Factories[widgetType] = factory; |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
298 } |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
299 factory.addAccessible (accessible); |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
300 } |
42 | 301 |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
302 void removeAccessible (Accessible accessible) { |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
303 accessibles.remove (accessible.getControlHandle ()); |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
304 } |
42 | 305 |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
306 static void unregisterAccessible (Accessible accessible) { |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
307 auto controlHandle = accessible.getControlHandle (); |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
308 auto widgetType = OS.G_OBJECT_TYPE (cast(GTypeInstance*)controlHandle); |
140 | 309 if ( auto factory = widgetType in Factories ) { |
59
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
310 factory.removeAccessible (accessible); |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
311 } |
8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
312 } |
42 | 313 } |