42468c9a740d736580d5f023f95b52b7dc87331d
[oweals/cde.git] / cde / programs / dtappbuilder / src / libAButil / util_types.h
1
2 /*
3  *      $XConsortium: util_types.h /main/4 1995/11/06 18:54:42 rswiston $
4  *
5  * @(#)util_types.h     3.69 15 Feb 1994        cde_app_builder/src/libAButil
6  *
7  *      RESTRICTED CONFIDENTIAL INFORMATION:
8  *      
9  *      The information in this document is subject to special
10  *      restrictions in a confidential disclosure agreement between
11  *      HP, IBM, Sun, USL, SCO and Univel.  Do not distribute this
12  *      document outside HP, IBM, Sun, USL, SCO, or Univel without
13  *      Sun's specific written approval.  This document and all copies
14  *      and derivative works thereof must be returned or destroyed at
15  *      Sun's request.
16  *
17  *      Copyright 1993 Sun Microsystems, Inc.  All rights reserved.
18  *
19  */
20
21 #ifndef _AB_UTIL_TYPES_H
22 #define _AB_UTIL_TYPES_H
23 /*
24  * util_types.h - defines all scalar types used in the CDE app builder
25  */
26
27 #ifndef _POSIX_SOURCE
28 #define _POSIX_SOURCE 1         /* we want to be POSIX-compliant */
29 #endif
30
31 #define AB_VERSION_PREFIX       ":bil-version"
32
33
34 /*************************************************************************
35 **************************************************************************
36 **                                                                      **
37 **              GENERAL/MISCELLANEOUS TYPES                             **
38 **                                                                      **
39 **************************************************************************
40 **************************************************************************/
41
42 #define OK      (0)
43 #define ERROR   (-1)
44
45 #define AB_NO_SUBTYPE   -1
46
47 extern const int        Util_major_version;
48 extern const int        Util_minor_version;
49
50 #include <X11/Xmd.h>    /* For BOOL and BYTE typedefs */
51 typedef unsigned char   UCHAR;
52 typedef unsigned int    UINT;
53 typedef unsigned long   ULONG;
54 typedef char *          STRING;
55
56 #ifndef FALSE
57 #define FALSE   ((BOOL)(0x00))
58 #endif
59 #ifndef TRUE
60 #define TRUE    ((BOOL)(0x01))
61 #endif
62
63 /*************************************************************************
64 **************************************************************************
65 **                                                                      **
66 **                      APP-BUILDER-SPECIFIC TYPES                      **
67 **                                                                      **
68 **************************************************************************
69 **************************************************************************/
70
71 /*
72  * Argument type used in the resfile.
73  */
74 typedef enum
75 {
76         AB_ARG_UNDEF = 0,
77         AB_ARG_BOOLEAN,
78         AB_ARG_CALLBACK,
79         AB_ARG_FLOAT,
80         AB_ARG_INT,
81         AB_ARG_LITERAL,         /* e.g., #define values, written out "as is" */
82         AB_ARG_NONE,            /* no argument */
83         AB_ARG_STRING,
84         AB_ARG_XMSTRING,
85         AB_ARG_XMSTRING_TBL,
86         AB_ARG_PIXEL,
87         AB_ARG_PIXMAP,
88         AB_ARG_FONT,
89         AB_ARG_WIDGET,
90         AB_ARG_VOID_PTR,
91         AB_ARG_VARIABLE,
92         AB_ARG_MNEMONIC,
93         AB_ARG_TYPE_NUM_VALUES  /* number of valid values - MUST BE LAST */
94         /* ANSI: no comma after last enum item! */
95 } AB_ARG_TYPE;
96
97 /*
98  * Resource "classes"
99  *
100  * The classes are mutually exclusive.
101  */
102 typedef enum
103 {
104     AB_ARG_CLASS_UNDEF = 0,
105     AB_ARG_CLASS_ACCELERATOR,           /* items */
106     AB_ARG_CLASS_COLOR,                 /* any color-related arg */
107     AB_ARG_CLASS_GEOMETRY,              /* includes layout, attachments */
108     AB_ARG_CLASS_GLYPH,                 /* any glyph (including icons) */
109     AB_ARG_CLASS_NON_GLYPH_LABEL,       /* any label not of type glyph */
110     AB_ARG_CLASS_OTHER_STRING,          /* any string of no other class */
111     AB_ARG_CLASS_OTHER,                 /* any of no other class */
112     AB_ARG_CLASS_VALUE,                 /* e.g., text field, scale, scrollbar*/
113     AB_ARG_CLASS_NUM_VALUES     /* must be last */
114 } AB_ARG_CLASS;
115
116 typedef unsigned char AB_ARG_CLASS_FLAGS;       /* bitmap of arg classes */
117 #define AB_ARG_CLASS_FLAGS_NONE ((AB_ARG_CLASS_FLAGS)0x0000)
118 #define AB_ARG_CLASS_FLAGS_ALL  ((AB_ARG_CLASS_FLAGS)~0x0000)
119
120
121 /*
122  * Function type used in the resfile
123  */
124 typedef enum
125 {
126         AB_FUNC_UNDEF = 0,
127         AB_FUNC_BUILTIN,        /* ab-defined action (e.g., setvalue) */
128         AB_FUNC_USER_DEF,       /* function name (user-defined function) */
129         AB_FUNC_CODE_FRAG,      /* actual code entered by user */
130         AB_FUNC_ON_ITEM_HELP,   /* dtb_do_on_item_help() */
131         AB_FUNC_HELP_VOLUME,    /* dtb_show_help_volume_info() */
132         AB_FUNC_TYPE_NUM_VALUES /* number of valid values - MUST BE LAST */
133         /* ANSI: no comma after last enum item! */
134 } AB_FUNC_TYPE;
135
136
137
138 /*
139  * Orientation scalar
140  */
141 typedef enum
142 {
143         AB_ORIENT_UNDEF = 0,
144         AB_ORIENT_HORIZONTAL,
145         AB_ORIENT_VERTICAL,
146         AB_ORIENTATION_NUM_VALUES /* number of valid values - MUST BE LAST */
147         /* ANSI: no comma after last enum item! */
148 } AB_ORIENTATION;
149
150 /*
151  * Types for the AB_GROUP_TYPE attribute.
152  */
153 typedef enum
154 {
155         AB_GROUP_UNDEF = 0,
156         AB_GROUP_IGNORE,
157         AB_GROUP_COLUMNS,
158         AB_GROUP_ROWS,
159         AB_GROUP_ROWSCOLUMNS,
160         AB_GROUP_TYPE_NUM_VALUES /* number of valid values - MUST BE LAST */
161         /* ANSI: no comma after last enum item! */
162 } AB_GROUP_TYPE;
163
164 /*
165  * Types for AB_LINE_TYPE (Used for Separator Object &
166  * framing objects)
167  */
168 typedef enum
169 {
170         AB_LINE_UNDEF = 0,
171         AB_LINE_NONE,
172         AB_LINE_SHADOW_IN,
173         AB_LINE_SHADOW_OUT,
174         AB_LINE_ETCHED_IN,
175         AB_LINE_ETCHED_OUT,
176         AB_LINE_ETCHED_IN_DASH,
177         AB_LINE_ETCHED_OUT_DASH,
178         AB_LINE_SINGLE_LINE,
179         AB_LINE_DOUBLE_LINE,
180         AB_LINE_SINGLE_DASHED_LINE,
181         AB_LINE_DOUBLE_DASHED_LINE,
182         AB_LINE_TYPE_NUM_VALUES
183 } AB_LINE_TYPE;
184
185
186 /*
187  * 
188  */
189 typedef enum
190 {
191         AB_ALIGN_UNDEF = 0,
192         AB_ALIGN_TOP,
193         AB_ALIGN_RIGHT,
194         AB_ALIGN_BOTTOM,
195         AB_ALIGN_LEFT,
196         AB_ALIGN_CENTER,        /* center verticaly and horizontally */
197         AB_ALIGN_VCENTER,       /* center vertically */
198         AB_ALIGN_HCENTER,       /* center horizontally */
199         AB_ALIGN_LABELS,
200         AB_ALIGNMENT_NUM_VALUES /* must be last! */
201 } AB_ALIGNMENT;
202
203 typedef enum
204 {
205         AB_DIR_UNDEF = 0,
206         AB_DIR_LEFT_TO_RIGHT,
207         AB_DIR_RIGHT_TO_LEFT,
208         AB_DIR_TOP_TO_BOTTOM,
209         AB_DIR_BOTTOM_TO_TOP,
210         AB_DIR_NUM_VALUES /* must be last! */
211 } AB_DIRECTION;
212
213
214 /*
215  * Types for the AB_{ANCHOR,REFERENCE}_POINT attributes.
216  */
217 typedef enum
218 {
219         AB_CP_UNDEF = 0,
220         AB_CP_NORTH,
221         AB_CP_NORTHEAST,
222         AB_CP_EAST,
223         AB_CP_SOUTHEAST,
224         AB_CP_SOUTH,
225         AB_CP_SOUTHWEST,
226         AB_CP_WEST,
227         AB_CP_NORTHWEST,
228         AB_CP_CENTER,
229         AB_COMPASS_POINT_NUM_VALUES /* number of valid values - MUST BE LAST */
230         /* ANSI: no comma after last enum item! */
231 } AB_COMPASS_POINT;
232
233
234 /*
235  * Layout Attachment types
236  */
237 typedef enum
238 {
239         AB_ATTACH_UNDEF = 0,
240         AB_ATTACH_POINT,
241         AB_ATTACH_OBJ,
242         AB_ATTACH_ALIGN_OBJ_EDGE, 
243         AB_ATTACH_GRIDLINE,
244         AB_ATTACH_CENTER_GRIDLINE,
245         AB_ATTACH_NONE,
246         AB_ATTACHMENT_NUM_VALUES
247 } AB_ATTACH_TYPE;
248
249 /*
250  * Intitial state types.
251  */
252 typedef enum
253 {
254         AB_STATE_UNDEF = 0,
255         AB_STATE_ACTIVE,
256         AB_STATE_ICONIC,
257         AB_STATE_INACTIVE,
258         AB_STATE_INVISIBLE,
259         AB_STATE_NOTSELECTED,
260         AB_STATE_OPEN,
261         AB_STATE_SELECTED,
262         AB_STATE_VISIBLE,
263         AB_OBJECT_STATE_NUM_VALUES /* number of valid values - MUST BE LAST */
264         /* ANSI: no comma after last enum item! */
265 } AB_OBJECT_STATE;
266
267
268 /*
269  * 
270  */
271 typedef enum
272 {
273         AB_PACK_UNDEF = 0,
274         AB_PACK_NONE,
275         AB_PACK_TIGHT,
276         AB_PACK_EQUAL,
277         AB_PACKING_NUM_VALUES
278 } AB_PACKING;
279  
280 /*
281  * file types
282  */
283 typedef enum
284 {
285         AB_FILE_UNDEF = 0,
286         AB_FILE_BIL_COMPLETE,
287         AB_FILE_BIL_PROJECT,
288         AB_FILE_BIL_MODULE,
289         AB_FILE_C,
290         AB_FILE_GIL_INTERFACE,
291         AB_FILE_GIL_PROJECT,
292         AB_FILE_UIL,
293         AB_FILE_TYPE_NUM_VALUES
294 } AB_FILE_TYPE;
295
296
297 /*
298  * Action triggers ("when" values)
299  *
300  */
301 typedef enum
302 {
303         AB_WHEN_UNDEF = 0,
304         AB_WHEN_ACTION1,                /* MessageBox Ok Button */
305         AB_WHEN_ACTION2,                /* MessageBox Extra Button */
306         AB_WHEN_ACTION3,                /* MessageBox Extra Button */
307         AB_WHEN_ACTIVATED,
308         AB_WHEN_AFTER_CREATED,          /* immediately after create */
309         AB_WHEN_AFTER_RESIZED,
310         AB_WHEN_BEFORE_POST_MENU,
311         AB_WHEN_BEFORE_TEXT_CHANGED,
312         AB_WHEN_CANCEL,                 /* MessageBox Cancel Button */
313         AB_WHEN_DESTROYED,
314         AB_WHEN_DOUBLE_CLICKED_ON,
315         AB_WHEN_DRAGGED,
316         AB_WHEN_DRAGGED_FROM,
317         AB_WHEN_DROPPED_ON,
318         AB_WHEN_HIDDEN,
319         AB_WHEN_ITEM_SELECTED,
320         AB_WHEN_OK,
321         AB_WHEN_POPPED_DOWN,
322         AB_WHEN_POPPED_UP,
323         AB_WHEN_REPAINT_NEEDED,
324         AB_WHEN_SESSION_RESTORE,
325         AB_WHEN_SESSION_SAVE,
326         AB_WHEN_SHOWN,
327         AB_WHEN_TEXT_CHANGED,
328         AB_WHEN_TOGGLED,
329         AB_WHEN_TOOLTALK_DO_COMMAND,
330         AB_WHEN_TOOLTALK_GET_STATUS,
331         AB_WHEN_TOOLTALK_PAUSE_RESUME,
332         AB_WHEN_TOOLTALK_QUIT,
333         AB_WHEN_VALUE_CHANGED,
334         AB_WHEN_NUM_VALUES
335 } AB_WHEN;
336  
337 /*
338  * Builtin app builder actions
339  */
340 typedef enum
341 {
342         AB_STDACT_UNDEF = 0,
343         AB_STDACT_DISABLE,
344         AB_STDACT_ENABLE,
345         AB_STDACT_HIDE,
346         AB_STDACT_SET_LABEL,
347         AB_STDACT_SET_TEXT,
348         AB_STDACT_SET_VALUE,
349         AB_STDACT_SHOW,
350         AB_BUILTIN_ACTION_NUM_VALUES
351 } AB_BUILTIN_ACTION;
352  
353 /*
354  * Horizontal and vertical scrollbar settings
355  */
356 typedef enum
357 {
358         AB_SCROLLBAR_UNDEF = 0,
359         AB_SCROLLBAR_ALWAYS,
360         AB_SCROLLBAR_NEVER,
361         AB_SCROLLBAR_WHEN_NEEDED,
362         AB_SCROLLBAR_NUM_VALUES /* number of valid values - MUST BE LAST */
363         /* ANSI: no comma after last enum item! */
364 } AB_SCROLLBAR_POLICY;
365
366 /*
367  * Tooltalk Handling Level types
368  */
369 typedef enum
370 {
371         AB_TOOLTALK_UNDEF,
372         AB_TOOLTALK_NONE,
373         AB_TOOLTALK_DESKTOP_BASIC,
374         AB_TOOLTALK_DESKTOP_ADVANCED,
375         AB_TOOLTALK_NUM_VALUES /* number of valid values - LAST */
376 } AB_TOOLTALK_LEVEL;
377
378 /*
379  * Sessioning method.
380  * Used in Project ABObj.
381  */
382 typedef enum
383 {
384         AB_SESSIONING_UNDEF = 0,
385         AB_SESSIONING_NONE,
386         AB_SESSIONING_CMDLINE,
387         AB_SESSIONING_FILE,
388         AB_SESSIONING_CMDLINE_AND_FILE,
389         AB_SESSIONING_NUM_VALUES /* number of valid values - MUST BE LAST */
390         /* ANSI: no comma after last enum item! */
391 } AB_SESSIONING_METHOD;
392
393
394 /*************************************************************************
395 **************************************************************************
396 **                                                                      **
397 **                      OBJECT TYPES AND SUBTYPES                       **
398 **                                                                      **
399 **************************************************************************
400 **************************************************************************/
401
402
403 /*
404  * Basic object types
405  */
406 typedef enum
407 {
408         AB_TYPE_UNDEF = 0,
409         AB_TYPE_ACTION,
410         AB_TYPE_ACTION_LIST,
411         AB_TYPE_BASE_WINDOW,
412         AB_TYPE_BUTTON,
413         AB_TYPE_CHOICE,
414         AB_TYPE_COMBO_BOX,
415         AB_TYPE_CONTAINER,
416         AB_TYPE_DIALOG,
417         AB_TYPE_DRAWING_AREA,
418         AB_TYPE_FILE,       /*generic file, usually, a file in a proj*/
419         AB_TYPE_MODULE,
420         AB_TYPE_ITEM,           /* item in a list, menu, or choice */
421         AB_TYPE_LABEL,          /* static text */
422         AB_TYPE_LAYERS,
423         AB_TYPE_LIST,
424         AB_TYPE_MENU,
425         AB_TYPE_PROJECT,
426         AB_TYPE_SEPARATOR,
427         AB_TYPE_SPIN_BOX,
428         AB_TYPE_SCALE,
429         AB_TYPE_TERM_PANE,
430         AB_TYPE_TEXT_FIELD,
431         AB_TYPE_TEXT_PANE,
432         AB_TYPE_UNKNOWN,
433         AB_TYPE_FILE_CHOOSER,
434         AB_TYPE_MESSAGE,
435         AB_OBJECT_TYPE_NUM_VALUES /* number of valid values (MUST BE LAST!) */
436 }               AB_OBJECT_TYPE;
437 #define AB_TYPE_INTERFACE AB_TYPE_MODULE /* INTERFACE WILL GO AWAY */
438
439
440 /*
441  * Compound object sub-types
442  */
443 typedef enum
444 {
445         AB_COMP_UNDEF = 0,
446         AB_COMP_FILE_CHOOSER,
447         AB_COMP_MESSAGE,
448         AB_COMPOUND_TYPE_NUM_VALUES     /* must be last! */
449 } AB_COMPOUND_TYPE;
450
451
452 /*
453  * Container subtypes
454  */
455 typedef enum
456 {
457         AB_CONT_UNDEF = 0,
458         AB_CONT_ABSOLUTE,
459         AB_CONT_BUTTON_PANEL,
460         AB_CONT_FOOTER,
461         AB_CONT_GROUP,
462         AB_CONT_MAIN_WINDOW,
463         AB_CONT_MENU_BAR,
464         AB_CONT_PANED,
465         AB_CONT_RELATIVE,
466         AB_CONT_SCROLLED_WINDOW,
467         AB_CONT_ROW_COLUMN,
468         AB_CONT_TOOL_BAR,
469         AB_CONTAINER_TYPE_NUM_VALUES    /* must be last! */
470 } AB_CONTAINER_TYPE;
471
472
473 typedef enum
474 {
475         AB_DLG_UNDEF = 0,
476         AB_DLG_BUILTIN,
477         AB_DLG_CUSTOM,
478         AB_DIALOG_TYPE_NUM_VALUES       /* must be last! */
479 } AB_DIALOG_TYPE;
480
481
482 /*
483  * Button subtypes.
484  */
485 typedef enum
486 {
487         AB_BUT_UNDEF = 0,
488         AB_BUT_PUSH,
489         AB_BUT_DRAWN,
490         AB_BUT_MENU,
491         AB_BUTTON_TYPE_NUM_VALUES       /* must be last! */
492 }       AB_BUTTON_TYPE;
493
494
495 /*
496  * subtype for: ITEM
497  */
498 typedef enum
499 {
500         AB_ITEM_FOR_UNDEF = 0,
501         AB_ITEM_FOR_CHOICE,
502         AB_ITEM_FOR_COMBO_BOX,
503         AB_ITEM_FOR_LIST,
504         AB_ITEM_FOR_MENU,
505         AB_ITEM_FOR_MENUBAR,
506         AB_ITEM_FOR_SPIN_BOX,
507         AB_ITEM_TYPE_NUM_VALUES /* must be last */
508 } AB_ITEM_TYPE;
509
510 /*
511  * Menu types.
512  */
513 typedef enum
514 {
515         AB_MENU_UNDEF = 0,
516         AB_MENU_PULLDOWN, 
517         AB_MENU_POPUP,
518         AB_MENU_OPTION,
519         AB_MENU_TYPE_NUM_VALUES /* number of valid values - MUST BE LAST */
520         /* ANSI: no comma after last enum item! */
521 } AB_MENU_TYPE;
522
523
524 /*
525  * Setting types.
526  */
527 typedef enum
528 {
529         AB_CHOICE_UNDEF = 0,
530         AB_CHOICE_EXCLUSIVE,
531         AB_CHOICE_NONEXCLUSIVE,
532         AB_CHOICE_OPTION_MENU,
533         AB_CHOICE_TYPE_NUM_VALUES /* number of valid values - MUST BE LAST */
534         /* ANSI: no comma after last enum item! */
535 } AB_CHOICE_TYPE;
536
537 typedef enum
538 {
539         AB_SELECT_UNDEF = 0,
540         AB_SELECT_SINGLE,
541         AB_SELECT_BROWSE,
542         AB_SELECT_MULTIPLE,
543         AB_SELECT_BROWSE_MULTIPLE,
544         AB_SELECT_TYPE_NUM_VALUES
545         /* ANSI: no comma after last enum item! */
546
547 } AB_SELECT_TYPE;
548
549 /*
550  * subtype for: TEXT_FIELD, TEXT_PANE, SPIN_BOX
551  */
552 typedef enum
553 {
554         AB_TEXT_UNDEF = 0,
555         AB_TEXT_ALPHANUMERIC,
556         AB_TEXT_NUMERIC,
557         AB_TEXT_DEFINED_STRING,
558         AB_TEXT_TYPE_NUM_VALUES /* must be last! */
559 } AB_TEXT_TYPE;
560
561
562 /*
563  * Label subtypes.
564  */
565 typedef enum
566 {
567         AB_LABEL_UNDEF = 0,
568         AB_LABEL_ARROW_DOWN,
569         AB_LABEL_ARROW_LEFT,
570         AB_LABEL_ARROW_RIGHT,
571         AB_LABEL_ARROW_UP,
572         AB_LABEL_DRAWN,
573         AB_LABEL_GLYPH,
574         AB_LABEL_STRING,
575         AB_LABEL_SEPARATOR,
576         AB_LABEL_TYPE_NUM_VALUES /* number of valid values - MUST BE LAST */ 
577 } AB_LABEL_TYPE;
578
579 typedef enum
580 {
581         AB_STYLE_UNDEF = 0,
582         AB_STYLE_NORMAL,
583         AB_STYLE_BOLD,
584         AB_STYLE_3D,
585         AB_LABEL_STYLE_NUM_VALUES       /* must be last */
586 } AB_LABEL_STYLE;
587
588 /*
589  * Arrow styles for SpinBox
590  */
591 typedef enum
592 {
593         AB_ARROW_UNDEF = 0,
594         AB_ARROW_FLAT_BEGIN,
595         AB_ARROW_FLAT_END,
596         AB_ARROW_BEGIN,
597         AB_ARROW_END,
598         AB_ARROW_SPLIT,
599         AB_ARROW_STYLE_NUM_VALUES       /* must be last */
600 } AB_ARROW_STYLE;
601
602 #define ab_label_is_arrow(lt)   \
603                 ((lt) == AB_LABEL_ARROW_DOWN || \
604                  (lt) == AB_LABEL_ARROW_UP   || \
605                  (lt) == AB_LABEL_ARROW_RIGHT || \
606                  (lt) == AB_LABEL_ARROW_LEFT )
607 /*
608  * Scale subtypes.
609  */
610 typedef enum
611 {
612         AB_SCALE_UNDEF = 0,
613         AB_SCALE_SCALE,
614         AB_SCALE_GAUGE,
615         AB_SCALE_NUM_VALUES       /* must be last! */
616 } AB_SCALE_TYPE;
617
618 /*
619  * File type masks for the File Chooser
620  */
621 typedef enum
622 {
623         AB_FILE_TYPE_MASK_UNDEF = 0,
624         AB_FILE_REGULAR,
625         AB_FILE_DIRECTORY,
626         AB_FILE_ANY,
627         AB_FILE_TYPE_MASK_NUM_VALUES       /* must be last! */
628 } AB_FILE_TYPE_MASK;
629
630 /*
631  * Message Box types
632  */
633 typedef enum
634 {
635         AB_MSG_UNDEF = 0,
636         AB_MSG_ERROR,
637         AB_MSG_INFORMATION,
638         AB_MSG_QUESTION,
639         AB_MSG_WARNING,
640         AB_MSG_WORKING,
641         AB_MSG_TYPE_NUM_VALUES       /* must be last! */
642 } AB_MESSAGE_TYPE;
643
644 /*
645  * Default Button.
646  */
647 typedef enum
648 {
649         AB_DEFAULT_BTN_UNDEF = 0,
650         AB_DEFAULT_BTN_ACTION1,
651         AB_DEFAULT_BTN_ACTION2,
652         AB_DEFAULT_BTN_ACTION3,
653         AB_DEFAULT_BTN_CANCEL,
654         AB_DEFAULT_BTN_NONE,
655         AB_DEFAULT_BTN_NUM_VALUES       /* must be last! */
656 }       AB_DEFAULT_BUTTON;
657
658
659 /*************************************************************************
660 **                                                                      **
661 **              Type converters                                         **
662 **                                                                      **
663 **************************************************************************/
664
665 AB_ARG_TYPE             util_string_to_arg_type(
666                             STRING arg_type
667                         );
668 STRING                  util_arg_type_to_string(
669                             AB_ARG_TYPE arg_type
670                         );
671
672 AB_ARG_CLASS            util_string_to_arg_class(
673                             STRING              arg_class_string
674                         );
675 STRING                  util_arg_class_to_string(
676                             AB_ARG_CLASS        arg_class
677                         );
678 AB_ARG_CLASS_FLAGS      util_arg_class_to_flag(
679                             AB_ARG_CLASS        arg_class
680                         );
681 AB_ARG_CLASS            util_flag_to_arg_class(
682                             AB_ARG_CLASS_FLAGS  arg_flag
683                         );
684
685 AB_LABEL_TYPE           util_string_to_label_type(
686                             STRING label_type
687                         );
688 STRING                  util_label_type_to_string(
689                             AB_LABEL_TYPE label_type
690                         );
691
692 AB_OBJECT_STATE         util_string_to_object_state(
693                             STRING state
694                         );
695 STRING                  util_object_state_to_string(
696                             AB_OBJECT_STATE state
697                         );
698
699 AB_OBJECT_TYPE          util_string_to_object_type(
700                             STRING type
701                         );
702 STRING                  util_object_type_to_string(
703                             AB_OBJECT_TYPE type
704                         );
705
706 AB_ORIENTATION          util_string_to_orientation(
707                             STRING orientation
708                         );
709 STRING                  util_orientation_to_string(
710                             AB_ORIENTATION orientation
711                         );
712
713 AB_MENU_TYPE            util_string_to_menu_type(
714                             STRING menu_type
715                         );
716 STRING                  util_menu_type_to_string(
717                             AB_MENU_TYPE menu_type
718                         );
719
720 AB_BUTTON_TYPE          util_string_to_button_type(
721                             STRING button_type
722                         );
723 STRING                  util_button_type_to_string(
724                             AB_BUTTON_TYPE button_type
725                         );
726
727 AB_ALIGNMENT            util_string_to_alignment(
728                             STRING alignment
729                         );
730 STRING                  util_alignment_to_string(
731                             AB_ALIGNMENT alignment
732                         );
733
734 AB_GROUP_TYPE           util_string_to_group_type(
735                             STRING group_type
736                         );
737 STRING                  util_group_type_to_string(
738                             AB_GROUP_TYPE group_type
739                         );
740
741 AB_CHOICE_TYPE          util_string_to_choice_type(
742                             STRING choice_type
743                         );
744 STRING                  util_choice_type_to_string(
745                             AB_CHOICE_TYPE choice_type
746                         );
747
748 AB_TEXT_TYPE            util_string_to_text_type(
749                             STRING text_type
750                         );
751 STRING                  util_text_type_to_string(
752                             AB_TEXT_TYPE text_type
753                         );
754
755 AB_BUILTIN_ACTION       util_string_to_builtin_action(
756                             STRING action
757                         );
758 STRING                  util_builtin_action_to_string(
759                             AB_BUILTIN_ACTION action
760                         );
761
762 AB_WHEN                 util_string_to_when(
763                             STRING when
764                         );
765 STRING                  util_when_to_string(
766                             AB_WHEN when
767                         );
768
769 STRING                  util_object_type_to_browser_string(
770                             AB_OBJECT_TYPE type
771                         );
772 AB_OBJECT_TYPE          util_browser_string_to_object_type(
773                             STRING string_type
774                         );
775
776 AB_CONTAINER_TYPE       util_string_to_container_type(
777                             STRING container_string
778                         );
779 STRING                  util_container_type_to_string(
780                             AB_CONTAINER_TYPE type
781                         );
782
783 AB_ITEM_TYPE            util_string_to_item_type(
784                             STRING item_string
785                         );
786 STRING                  util_item_type_to_string(
787                             AB_ITEM_TYPE type
788                         );
789
790 #endif /* _AB_UTIL_TYPES_H */