1 /*  Part of XPCE --- The SWI-Prolog GUI toolkit
2 
3     Author:        Jan Wielemaker and Anjo Anjewierden
4     E-mail:        jan@swi.psy.uva.nl
5     WWW:           http://www.swi.psy.uva.nl/projects/xpce/
6     Copyright (c)  1985-2002, University of Amsterdam
7     All rights reserved.
8 
9     Redistribution and use in source and binary forms, with or without
10     modification, are permitted provided that the following conditions
11     are met:
12 
13     1. Redistributions of source code must retain the above copyright
14        notice, this list of conditions and the following disclaimer.
15 
16     2. Redistributions in binary form must reproduce the above copyright
17        notice, this list of conditions and the following disclaimer in
18        the documentation and/or other materials provided with the
19        distribution.
20 
21     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22     "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23     LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24     FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25     COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26     INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27     BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29     CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30     LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31     ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32     POSSIBILITY OF SUCH DAMAGE.
33 */
34 
35 		/********************************
36 		*       KERNEL IDENTIFIERS	*
37 		********************************/
38 
39 #define CLASSINDEX_OBJECT	(1)
40 #define CLASSINDEX_TYPE		(2)
41 #define CLASSINDEX_CLASS	(3)
42 #define CLASSINDEX_NAME		(4)
43 #define CLASSINDEX_CHAR_ARRAY	(5)
44 #define CLASSINDEX_START	(6)	/* start index for others */
45 
46 
47 		/********************************
48 		*     MISCELLENEOUS TYPES	*
49 		********************************/
50 
51 typedef struct _goal	       *Goal;
52 typedef struct pceITFSymbol    *PceITFSymbol;
53 typedef struct _string	       *PceString;
54 
55 
56 		/********************************
57 		*         KERNEL TYPES		*
58 		********************************/
59 
60 typedef struct and *			And;
61 typedef struct application *		Application;
62 typedef struct area *			Area;
63 typedef struct atable *			Atable;
64 typedef struct attribute *		Attribute;
65 typedef struct behaviour *		Behaviour;
66 typedef struct binary_expression *	BinaryExpression;
67 typedef struct binary_condition *	BinaryCondition;
68 typedef struct binding *		Binding;
69 typedef struct assignment *		Assignment;
70 typedef struct block *			Block;
71 typedef struct bool *			BoolObj;
72 typedef struct c_pointer *		CPointer;
73 typedef struct cell *			Cell;
74 typedef struct chain *			Chain;
75 typedef struct chain_table *		ChainTable;
76 typedef struct char_array *		CharArray;
77 typedef struct class *			Class;
78 typedef struct class_stub *		ClassStub;
79 typedef struct class_variable *		ClassVariable;
80 typedef struct code *			Code;
81 typedef struct constant *		Constant;
82 typedef struct constraint *		Constraint;
83 typedef struct date *			Date;
84 typedef struct delegate_variable *	DelegateVariable;
85 typedef struct dict *			Dict;
86 typedef struct dictitem *		DictItem;
87 typedef struct directory *		Directory;
88 typedef struct divide *			Divide;
89 typedef struct equal *			Equal;
90 typedef struct equation *		Equation;
91 typedef struct error *			Error;
92 typedef struct eventobj *		EventObj;
93 typedef struct expression *		Expression;
94 typedef struct fileobj *		FileObj;
95 typedef struct function *		Function;
96 typedef struct gesture *		Gesture;
97 typedef struct get_method *		GetMethod;
98 typedef struct handle *			Handle;
99 typedef struct handler *		Handler;
100 typedef struct handlergroup *		HandlerGroup;
101 typedef struct hash_table *		HashTable;
102 typedef struct host *			Host;
103 typedef struct host_data *		HostData;
104 typedef struct hyper *			Hyper;
105 typedef struct identity *		Identity;
106 typedef struct if_obj *			If;
107 typedef struct instance *		Instance;
108 typedef struct key_binding *		KeyBinding;
109 typedef struct message *		Message;
110 typedef struct method *			Method;
111 typedef struct minus *			Minus;
112 typedef struct modifier *		Modifier;
113 typedef struct name *			Name;
114 typedef struct non_equal *		NonEqual;
115 typedef struct not *			Not;
116 typedef struct number *			Number;
117 typedef struct object *			PceObject;
118 typedef struct obtain *			Obtain;
119 typedef struct or *			Or;
120 typedef struct pce *			Pce;
121 typedef struct pen *			Pen;
122 typedef struct plus *			Plus;
123 typedef struct point *			Point;
124 typedef struct progn *			Progn;
125 typedef struct popup *			Popup;
126 typedef struct process *		Process;
127 typedef struct quote_function *		QuoteFunction;
128 typedef struct socketobj *		Socket;
129 typedef struct program_object *		ProgramObject;
130 typedef struct rc *			RC;
131 typedef struct real *			Real;
132 typedef struct recogniser *		Recogniser;
133 typedef struct regex *			Regex;
134 typedef struct region *			RegionObj;
135 typedef struct relation *		Relation;
136 typedef struct send_method *		SendMethod;
137 typedef struct sheet *			Sheet;
138 typedef struct size *			Size;
139 typedef struct symbol *			Symbol;
140 typedef struct syntax_table *		SyntaxTable;
141 typedef struct source_location *	SourceLocation;
142 typedef struct source_sink *		SourceSink;
143 typedef struct spatial *		Spatial;
144 typedef struct stream *			Stream;
145 typedef struct string *			StringObj;
146 typedef struct times *			Times;
147 typedef struct tuple *			Tuple;
148 typedef struct type *			Type;
149 typedef struct variable *		Variable;
150 typedef struct var *			Var;
151 typedef struct vector *			Vector;
152 typedef struct visual *			VisualObj;
153 typedef struct when *			When;
154 typedef struct while_obj *		While;
155 typedef struct create_obj *		Create;
156 
157 
158 		/********************************
159 		*        GRAPHICAL TYPES	*
160 		********************************/
161 
162 typedef struct arc			* ArcObj;
163 typedef struct arrow			* Arrow;
164 typedef struct bezier			* Bezier;
165 typedef struct bitmapobj		* BitmapObj;
166 typedef struct box			* Box;
167 typedef struct browser			* Browser;
168 typedef struct button			* Button;
169 typedef struct circle			* Circle;
170 typedef struct click_gesture		* ClickGesture;
171 typedef struct colour			* Colour;
172 typedef struct colour_map		* ColourMap;
173 typedef struct connect_gesture		* ConnectGesture;
174 typedef struct connection		* Connection;
175 typedef struct cursorobj		* CursorObj;
176 typedef struct device			* Device;
177 typedef struct dialog			* Dialog;
178 typedef struct dialog_item		* DialogItem;
179 typedef struct dialog_group		* DialogGroup;
180 typedef struct display_manager		* DisplayManager;
181 typedef struct displayobj		* DisplayObj;
182 typedef struct draw_context		* DrawContext;
183 typedef struct edit_text_gesture	* EditTextGesture;
184 typedef struct editor			* Editor;
185 typedef struct elevation		* Elevation;
186 typedef struct ellipse			* EllipseObj;
187 typedef struct event_nodeobj		* EventNodeObj;
188 typedef struct event_treeobj		* EventTreeObj;
189 typedef struct figure			* Figure;
190 typedef struct fontobj			* FontObj;
191 typedef struct format			* Format;
192 typedef struct fragment			* Fragment;
193 typedef struct frameobj			* FrameObj;
194 typedef struct graphical		* Graphical;
195 typedef struct image			* Image;
196 typedef struct joint			* Joint;
197 typedef struct label			* Label;
198 typedef struct label_box		* LabelBox;
199 typedef struct line			* Line;
200 typedef struct link			* Link;
201 typedef struct list_browser		* ListBrowser;
202 typedef struct menu			* Menu;
203 typedef struct menu_bar			* MenuBar;
204 typedef struct menu_item		* MenuItem;
205 typedef struct monitor			* Monitor;
206 typedef struct move_gesture		* MoveGesture;
207 typedef struct move_outline_gesture     * MoveOutlineGesture;
208 typedef struct node			* Node;
209 typedef struct path			* Path;
210 typedef struct picture			* PictureObj;
211 typedef struct pixmapobj		* PixmapObj;
212 typedef struct popup_gesture		* PopupGesture;
213 typedef struct popupobj			* PopupObj;
214 typedef struct resize_gesture		* ResizeGesture;
215 typedef struct resize_outline_gesture   * ResizeOutlineGesture;
216 typedef struct scrollbar		* ScrollBar;
217 typedef struct slider			* Slider;
218 typedef struct style			* Style;
219 typedef struct tab			* Tab;
220 typedef struct tab_stack		* TabStack;
221 typedef struct text_cursor		* TextCursor;
222 typedef struct text_image		* TextImage;
223 typedef struct text_margin		* TextMargin;
224 typedef struct text_buffer		* TextBuffer;
225 typedef struct textitem			* TextItem;
226 typedef struct textobj			* TextObj;
227 typedef struct tile_adjuster		* TileAdjuster;
228 typedef struct tileobj			* TileObj;
229 typedef struct timer			* Timer;
230 typedef struct tree			* Tree;
231 typedef struct undo_buffer		* UndoBuffer;
232 typedef struct view			* View;
233 typedef struct windowobj		* PceWindow;
234 typedef struct window_decorator		* WindowDecorator;
235 typedef struct resize_table_slice_gesture * ResizeTableSliceGesture;
236 
237 typedef Any				EventId;
238 
239 		/********************************
240 		*         TYPE POINTERS		*
241 		********************************/
242 
243 GLOBAL Type TypeAlien;
244 GLOBAL Type TypeAny;
245 GLOBAL Type TypeAny;
246 GLOBAL Type TypeArg;
247 GLOBAL Type TypeAtomic;
248 GLOBAL Type TypeBool;
249 GLOBAL Type TypeChar;
250 GLOBAL Type TypeChain;
251 GLOBAL Type TypeCharArray;
252 GLOBAL Type TypeClass;
253 GLOBAL Type TypeCode;
254 GLOBAL Type TypeConstant;
255 GLOBAL Type TypeColour;
256 GLOBAL Type TypeDefault;
257 GLOBAL Type TypeEventId;
258 GLOBAL Type TypeExpression;
259 GLOBAL Type TypeEquation;
260 GLOBAL Type TypeFunction;
261 GLOBAL Type TypeGetMethod;
262 GLOBAL Type TypeGraphical;
263 GLOBAL Type TypeInt;
264 GLOBAL Type TypeImage;
265 GLOBAL Type TypeName;
266 GLOBAL Type TypeNil;
267 GLOBAL Type TypeObject;
268 GLOBAL Type TypeReal;
269 GLOBAL Type TypeSendMethod;
270 GLOBAL Type TypeType;
271 GLOBAL Type TypeUnchecked;
272 GLOBAL Type TypeVar;
273 GLOBAL Type TypeVariable;
274 GLOBAL Type TypeVector;
275 
276 		/********************************
277 		*        CLASS POINTERS		*
278 		********************************/
279 
280 PUBLIC_GLOBAL Class ClassAnd;
281 PUBLIC_GLOBAL Class ClassApplication;
282 PUBLIC_GLOBAL Class ClassArc;
283 PUBLIC_GLOBAL Class ClassArea;
284 PUBLIC_GLOBAL Class ClassArrow;
285 PUBLIC_GLOBAL Class ClassRelationTable;
286 PUBLIC_GLOBAL Class ClassAttribute;
287 PUBLIC_GLOBAL Class ClassBehaviour;
288 PUBLIC_GLOBAL Class ClassBinaryCondition;
289 PUBLIC_GLOBAL Class ClassBinaryExpression;
290 PUBLIC_GLOBAL Class ClassAssign;
291 PUBLIC_GLOBAL Class ClassAssoc;
292 PUBLIC_GLOBAL Class ClassBezier;
293 PUBLIC_GLOBAL Class ClassBinding;
294 PUBLIC_GLOBAL Class ClassBitmap;
295 PUBLIC_GLOBAL Class ClassBlock;
296 PUBLIC_GLOBAL Class ClassBox;
297 PUBLIC_GLOBAL Class ClassBool;
298 PUBLIC_GLOBAL Class ClassBrowser;
299 PUBLIC_GLOBAL Class ClassBrowserSelectGesture;
300 PUBLIC_GLOBAL Class ClassButton;
301 PUBLIC_GLOBAL Class ClassChain;
302 PUBLIC_GLOBAL Class ClassChainTable;
303 PUBLIC_GLOBAL Class ClassCharArray;
304 PUBLIC_GLOBAL Class ClassCircle;
305 PUBLIC_GLOBAL Class ClassClass;
306 PUBLIC_GLOBAL Class ClassClassStub;
307 PUBLIC_GLOBAL Class ClassClassVariable;
308 PUBLIC_GLOBAL Class ClassClickGesture;
309 PUBLIC_GLOBAL Class ClassCode;
310 PUBLIC_GLOBAL Class ClassCodeVector;
311 PUBLIC_GLOBAL Class ClassColour;
312 PUBLIC_GLOBAL Class ClassColourMap;
313 PUBLIC_GLOBAL Class ClassConnectGesture;
314 PUBLIC_GLOBAL Class ClassConnection;
315 PUBLIC_GLOBAL Class ClassConstant;
316 PUBLIC_GLOBAL Class ClassConstraint;
317 PUBLIC_GLOBAL Class ClassCPointer;
318 PUBLIC_GLOBAL Class ClassCreate;
319 PUBLIC_GLOBAL Class ClassCursor;
320 PUBLIC_GLOBAL Class ClassDate;
321 PUBLIC_GLOBAL Class ClassDelegateVariable;
322 PUBLIC_GLOBAL Class ClassDevice;
323 PUBLIC_GLOBAL Class ClassDialog;
324 PUBLIC_GLOBAL Class ClassDialogItem;
325 PUBLIC_GLOBAL Class ClassDialogGroup;
326 PUBLIC_GLOBAL Class ClassDict;
327 PUBLIC_GLOBAL Class ClassDictItem;
328 PUBLIC_GLOBAL Class ClassDirectory;
329 PUBLIC_GLOBAL Class ClassDisplay;
330 PUBLIC_GLOBAL Class ClassDisplayManager;
331 PUBLIC_GLOBAL Class ClassEditTextGesture;
332 PUBLIC_GLOBAL Class ClassEditor;
333 PUBLIC_GLOBAL Class ClassElevation;
334 PUBLIC_GLOBAL Class ClassEllipse;
335 PUBLIC_GLOBAL Class ClassEqual;
336 PUBLIC_GLOBAL Class ClassEquation;
337 PUBLIC_GLOBAL Class ClassError;
338 PUBLIC_GLOBAL Class ClassEvent;
339 PUBLIC_GLOBAL Class ClassEventNode;
340 PUBLIC_GLOBAL Class ClassEventTree;
341 PUBLIC_GLOBAL Class ClassFigure;
342 PUBLIC_GLOBAL Class ClassFile;
343 PUBLIC_GLOBAL Class ClassFunction;
344 PUBLIC_GLOBAL Class ClassFont;
345 PUBLIC_GLOBAL Class ClassFormat;
346 PUBLIC_GLOBAL Class ClassFragment;
347 PUBLIC_GLOBAL Class ClassFrame;
348 PUBLIC_GLOBAL Class ClassGesture;
349 PUBLIC_GLOBAL Class ClassGetMethod;
350 PUBLIC_GLOBAL Class ClassGraphical;
351 PUBLIC_GLOBAL Class ClassHandle;
352 PUBLIC_GLOBAL Class ClassHandler;
353 PUBLIC_GLOBAL Class ClassHandlerGroup;
354 PUBLIC_GLOBAL Class ClassHashTable;
355 PUBLIC_GLOBAL Class ClassHost;
356 PUBLIC_GLOBAL Class ClassHostData;
357 PUBLIC_GLOBAL Class ClassHyper;
358 PUBLIC_GLOBAL Class ClassChainHyper;
359 PUBLIC_GLOBAL Class ClassIdentity;
360 PUBLIC_GLOBAL Class ClassIf;
361 PUBLIC_GLOBAL Class ClassImage;
362 PUBLIC_GLOBAL Class ClassKeyBinding;
363 PUBLIC_GLOBAL Class ClassJoint;
364 PUBLIC_GLOBAL Class ClassLabel;
365 PUBLIC_GLOBAL Class ClassLabelBox;
366 PUBLIC_GLOBAL Class ClassLine;
367 PUBLIC_GLOBAL Class ClassLink;
368 PUBLIC_GLOBAL Class ClassListBrowser;
369 PUBLIC_GLOBAL Class ClassMenu;
370 PUBLIC_GLOBAL Class ClassMenuBar;
371 PUBLIC_GLOBAL Class ClassMenuItem;
372 PUBLIC_GLOBAL Class ClassMessage;
373 PUBLIC_GLOBAL Class ClassMethod;
374 PUBLIC_GLOBAL Class ClassModifier;
375 PUBLIC_GLOBAL Class ClassMonitor;
376 PUBLIC_GLOBAL Class ClassMoveGesture;
377 PUBLIC_GLOBAL Class ClassMoveOutlineGesture;
378 PUBLIC_GLOBAL Class ClassName;
379 PUBLIC_GLOBAL Class ClassNode;
380 PUBLIC_GLOBAL Class ClassNonEqual;
381 PUBLIC_GLOBAL Class ClassNot;
382 PUBLIC_GLOBAL Class ClassNumber;
383 PUBLIC_GLOBAL Class ClassObject;
384 PUBLIC_GLOBAL Class ClassObject;
385 PUBLIC_GLOBAL Class ClassObtain;
386 PUBLIC_GLOBAL Class ClassOr;
387 PUBLIC_GLOBAL Class ClassPath;
388 PUBLIC_GLOBAL Class ClassPce;
389 PUBLIC_GLOBAL Class ClassPicture;
390 PUBLIC_GLOBAL Class ClassPixmap;
391 PUBLIC_GLOBAL Class ClassPoint;
392 PUBLIC_GLOBAL Class ClassPen;
393 PUBLIC_GLOBAL Class ClassProgn;
394 PUBLIC_GLOBAL Class ClassPopup;
395 PUBLIC_GLOBAL Class ClassProcess;
396 PUBLIC_GLOBAL Class ClassQuoteFunction;
397 PUBLIC_GLOBAL Class ClassSocket;
398 PUBLIC_GLOBAL Class ClassPopupGesture;
399 PUBLIC_GLOBAL Class ClassRC;
400 PUBLIC_GLOBAL Class ClassReal;
401 PUBLIC_GLOBAL Class ClassRecogniser;
402 PUBLIC_GLOBAL Class ClassRegex;
403 PUBLIC_GLOBAL Class ClassRegion;
404 PUBLIC_GLOBAL Class ClassRelation;
405 PUBLIC_GLOBAL Class ClassResizeGesture;
406 PUBLIC_GLOBAL Class ClassResizeOutlineGesture;
407 PUBLIC_GLOBAL Class ClassResizeTableSliceGesture;
408 PUBLIC_GLOBAL Class ClassClassVariable;
409 PUBLIC_GLOBAL Class ClassScrollBar;
410 PUBLIC_GLOBAL Class ClassSendMethod;
411 PUBLIC_GLOBAL Class ClassSheet;
412 PUBLIC_GLOBAL Class ClassSize;
413 PUBLIC_GLOBAL Class ClassSlider;
414 PUBLIC_GLOBAL Class ClassSourceLocation;
415 PUBLIC_GLOBAL Class ClassSourceSink;
416 PUBLIC_GLOBAL Class ClassSpatial;
417 PUBLIC_GLOBAL Class ClassStream;
418 PUBLIC_GLOBAL Class ClassString;
419 PUBLIC_GLOBAL Class ClassStyle;
420 PUBLIC_GLOBAL Class ClassSyntaxTable;
421 PUBLIC_GLOBAL Class ClassTab;
422 PUBLIC_GLOBAL Class ClassTabStack;
423 PUBLIC_GLOBAL Class ClassText;
424 PUBLIC_GLOBAL Class ClassTextBuffer;
425 PUBLIC_GLOBAL Class ClassTextCursor;
426 PUBLIC_GLOBAL Class ClassTextImage;
427 PUBLIC_GLOBAL Class ClassTextItem;
428 PUBLIC_GLOBAL Class ClassTextMargin;
429 PUBLIC_GLOBAL Class ClassTile;
430 PUBLIC_GLOBAL Class ClassTileAdjuster;
431 PUBLIC_GLOBAL Class ClassTimer;
432 PUBLIC_GLOBAL Class ClassTuple;
433 PUBLIC_GLOBAL Class ClassType;
434 PUBLIC_GLOBAL Class ClassTree;
435 PUBLIC_GLOBAL Class ClassVar;
436 PUBLIC_GLOBAL Class ClassObjOfVariable;
437 PUBLIC_GLOBAL Class ClassVector;
438 PUBLIC_GLOBAL Class ClassView;
439 PUBLIC_GLOBAL Class ClassVisual;
440 PUBLIC_GLOBAL Class ClassWhen;
441 PUBLIC_GLOBAL Class ClassWhile;
442 PUBLIC_GLOBAL Class ClassWindow;
443 PUBLIC_GLOBAL Class ClassDivide;
444 PUBLIC_GLOBAL Class ClassProgramObject;
445 PUBLIC_GLOBAL Class ClassPlus;
446 PUBLIC_GLOBAL Class ClassMinus;
447 PUBLIC_GLOBAL Class ClassTimes;
448 PUBLIC_GLOBAL Class ClassWindowDecorator;
449 PUBLIC_GLOBAL Class ClassC;
450 PUBLIC_GLOBAL Class ClassLess;
451 PUBLIC_GLOBAL Class ClassLessEqual;
452 PUBLIC_GLOBAL Class ClassGreater;
453 PUBLIC_GLOBAL Class ClassGreaterEqual;
454