3 * $XConsortium: util_types.h /main/4 1995/11/06 18:54:42 rswiston $
5 * @(#)util_types.h 3.69 15 Feb 1994 cde_app_builder/src/libAButil
7 * RESTRICTED CONFIDENTIAL INFORMATION:
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
17 * Copyright 1993 Sun Microsystems, Inc. All rights reserved.
21 #ifndef _AB_UTIL_TYPES_H
22 #define _AB_UTIL_TYPES_H
24 * util_types.h - defines all scalar types used in the CDE app builder
28 #define _POSIX_SOURCE 1 /* we want to be POSIX-compliant */
31 #define AB_VERSION_PREFIX ":bil-version"
34 /*************************************************************************
35 **************************************************************************
37 ** GENERAL/MISCELLANEOUS TYPES **
39 **************************************************************************
40 **************************************************************************/
45 #define AB_NO_SUBTYPE -1
47 extern const int Util_major_version;
48 extern const int Util_minor_version;
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;
57 #define FALSE ((BOOL)(0x00))
60 #define TRUE ((BOOL)(0x01))
63 /*************************************************************************
64 **************************************************************************
66 ** APP-BUILDER-SPECIFIC TYPES **
68 **************************************************************************
69 **************************************************************************/
72 * Argument type used in the resfile.
81 AB_ARG_LITERAL, /* e.g., #define values, written out "as is" */
82 AB_ARG_NONE, /* no argument */
93 AB_ARG_TYPE_NUM_VALUES /* number of valid values - MUST BE LAST */
94 /* ANSI: no comma after last enum item! */
100 * The classes are mutually exclusive.
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 */
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)
122 * Function type used in the resfile
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! */
144 AB_ORIENT_HORIZONTAL,
146 AB_ORIENTATION_NUM_VALUES /* number of valid values - MUST BE LAST */
147 /* ANSI: no comma after last enum item! */
151 * Types for the AB_GROUP_TYPE attribute.
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! */
165 * Types for AB_LINE_TYPE (Used for Separator Object &
176 AB_LINE_ETCHED_IN_DASH,
177 AB_LINE_ETCHED_OUT_DASH,
180 AB_LINE_SINGLE_DASHED_LINE,
181 AB_LINE_DOUBLE_DASHED_LINE,
182 AB_LINE_TYPE_NUM_VALUES
196 AB_ALIGN_CENTER, /* center verticaly and horizontally */
197 AB_ALIGN_VCENTER, /* center vertically */
198 AB_ALIGN_HCENTER, /* center horizontally */
200 AB_ALIGNMENT_NUM_VALUES /* must be last! */
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! */
215 * Types for the AB_{ANCHOR,REFERENCE}_POINT attributes.
229 AB_COMPASS_POINT_NUM_VALUES /* number of valid values - MUST BE LAST */
230 /* ANSI: no comma after last enum item! */
235 * Layout Attachment types
242 AB_ATTACH_ALIGN_OBJ_EDGE,
244 AB_ATTACH_CENTER_GRIDLINE,
246 AB_ATTACHMENT_NUM_VALUES
250 * Intitial state types.
259 AB_STATE_NOTSELECTED,
263 AB_OBJECT_STATE_NUM_VALUES /* number of valid values - MUST BE LAST */
264 /* ANSI: no comma after last enum item! */
277 AB_PACKING_NUM_VALUES
286 AB_FILE_BIL_COMPLETE,
290 AB_FILE_GIL_INTERFACE,
293 AB_FILE_TYPE_NUM_VALUES
298 * Action triggers ("when" values)
304 AB_WHEN_ACTION1, /* MessageBox Ok Button */
305 AB_WHEN_ACTION2, /* MessageBox Extra Button */
306 AB_WHEN_ACTION3, /* MessageBox Extra Button */
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 */
314 AB_WHEN_DOUBLE_CLICKED_ON,
316 AB_WHEN_DRAGGED_FROM,
319 AB_WHEN_ITEM_SELECTED,
323 AB_WHEN_REPAINT_NEEDED,
324 AB_WHEN_SESSION_RESTORE,
325 AB_WHEN_SESSION_SAVE,
327 AB_WHEN_TEXT_CHANGED,
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,
338 * Builtin app builder actions
350 AB_BUILTIN_ACTION_NUM_VALUES
354 * Horizontal and vertical scrollbar settings
358 AB_SCROLLBAR_UNDEF = 0,
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;
367 * Tooltalk Handling Level types
373 AB_TOOLTALK_DESKTOP_BASIC,
374 AB_TOOLTALK_DESKTOP_ADVANCED,
375 AB_TOOLTALK_NUM_VALUES /* number of valid values - LAST */
380 * Used in Project ABObj.
384 AB_SESSIONING_UNDEF = 0,
386 AB_SESSIONING_CMDLINE,
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;
394 /*************************************************************************
395 **************************************************************************
397 ** OBJECT TYPES AND SUBTYPES **
399 **************************************************************************
400 **************************************************************************/
417 AB_TYPE_DRAWING_AREA,
418 AB_TYPE_FILE, /*generic file, usually, a file in a proj*/
420 AB_TYPE_ITEM, /* item in a list, menu, or choice */
421 AB_TYPE_LABEL, /* static text */
433 AB_TYPE_FILE_CHOOSER,
435 AB_OBJECT_TYPE_NUM_VALUES /* number of valid values (MUST BE LAST!) */
437 #define AB_TYPE_INTERFACE AB_TYPE_MODULE /* INTERFACE WILL GO AWAY */
441 * Compound object sub-types
446 AB_COMP_FILE_CHOOSER,
448 AB_COMPOUND_TYPE_NUM_VALUES /* must be last! */
459 AB_CONT_BUTTON_PANEL,
466 AB_CONT_SCROLLED_WINDOW,
469 AB_CONTAINER_TYPE_NUM_VALUES /* must be last! */
478 AB_DIALOG_TYPE_NUM_VALUES /* must be last! */
491 AB_BUTTON_TYPE_NUM_VALUES /* must be last! */
500 AB_ITEM_FOR_UNDEF = 0,
502 AB_ITEM_FOR_COMBO_BOX,
506 AB_ITEM_FOR_SPIN_BOX,
507 AB_ITEM_TYPE_NUM_VALUES /* must be last */
519 AB_MENU_TYPE_NUM_VALUES /* number of valid values - MUST BE LAST */
520 /* ANSI: no comma after last enum item! */
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! */
543 AB_SELECT_BROWSE_MULTIPLE,
544 AB_SELECT_TYPE_NUM_VALUES
545 /* ANSI: no comma after last enum item! */
550 * subtype for: TEXT_FIELD, TEXT_PANE, SPIN_BOX
555 AB_TEXT_ALPHANUMERIC,
557 AB_TEXT_DEFINED_STRING,
558 AB_TEXT_TYPE_NUM_VALUES /* must be last! */
570 AB_LABEL_ARROW_RIGHT,
576 AB_LABEL_TYPE_NUM_VALUES /* number of valid values - MUST BE LAST */
585 AB_LABEL_STYLE_NUM_VALUES /* must be last */
589 * Arrow styles for SpinBox
599 AB_ARROW_STYLE_NUM_VALUES /* must be last */
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 )
615 AB_SCALE_NUM_VALUES /* must be last! */
619 * File type masks for the File Chooser
623 AB_FILE_TYPE_MASK_UNDEF = 0,
627 AB_FILE_TYPE_MASK_NUM_VALUES /* must be last! */
641 AB_MSG_TYPE_NUM_VALUES /* must be last! */
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,
655 AB_DEFAULT_BTN_NUM_VALUES /* must be last! */
659 /*************************************************************************
661 ** Type converters **
663 **************************************************************************/
665 AB_ARG_TYPE util_string_to_arg_type(
668 STRING util_arg_type_to_string(
672 AB_ARG_CLASS util_string_to_arg_class(
673 STRING arg_class_string
675 STRING util_arg_class_to_string(
676 AB_ARG_CLASS arg_class
678 AB_ARG_CLASS_FLAGS util_arg_class_to_flag(
679 AB_ARG_CLASS arg_class
681 AB_ARG_CLASS util_flag_to_arg_class(
682 AB_ARG_CLASS_FLAGS arg_flag
685 AB_LABEL_TYPE util_string_to_label_type(
688 STRING util_label_type_to_string(
689 AB_LABEL_TYPE label_type
692 AB_OBJECT_STATE util_string_to_object_state(
695 STRING util_object_state_to_string(
696 AB_OBJECT_STATE state
699 AB_OBJECT_TYPE util_string_to_object_type(
702 STRING util_object_type_to_string(
706 AB_ORIENTATION util_string_to_orientation(
709 STRING util_orientation_to_string(
710 AB_ORIENTATION orientation
713 AB_MENU_TYPE util_string_to_menu_type(
716 STRING util_menu_type_to_string(
717 AB_MENU_TYPE menu_type
720 AB_BUTTON_TYPE util_string_to_button_type(
723 STRING util_button_type_to_string(
724 AB_BUTTON_TYPE button_type
727 AB_ALIGNMENT util_string_to_alignment(
730 STRING util_alignment_to_string(
731 AB_ALIGNMENT alignment
734 AB_GROUP_TYPE util_string_to_group_type(
737 STRING util_group_type_to_string(
738 AB_GROUP_TYPE group_type
741 AB_CHOICE_TYPE util_string_to_choice_type(
744 STRING util_choice_type_to_string(
745 AB_CHOICE_TYPE choice_type
748 AB_TEXT_TYPE util_string_to_text_type(
751 STRING util_text_type_to_string(
752 AB_TEXT_TYPE text_type
755 AB_BUILTIN_ACTION util_string_to_builtin_action(
758 STRING util_builtin_action_to_string(
759 AB_BUILTIN_ACTION action
762 AB_WHEN util_string_to_when(
765 STRING util_when_to_string(
769 STRING util_object_type_to_browser_string(
772 AB_OBJECT_TYPE util_browser_string_to_object_type(
776 AB_CONTAINER_TYPE util_string_to_container_type(
777 STRING container_string
779 STRING util_container_type_to_string(
780 AB_CONTAINER_TYPE type
783 AB_ITEM_TYPE util_string_to_item_type(
786 STRING util_item_type_to_string(
790 #endif /* _AB_UTIL_TYPES_H */