#ifndef _XmDropDown_h_ #define _XmDropDown_h_ #if defined(VMS) || defined(__VMS) #include #endif #include #include #ifdef __cplusplus extern "C" { #endif #define FIX_1446 #define XmDropDown_UP ((unsigned char) 0) #define XmDropDown_UNPOSTED XmDropDown_UP #define XmDropDown_DOWN ((unsigned char) 1) #define XmDropDown_POSTED XmDropDown_DOWN #define XmDropDown_IN_PROGRESS ((unsigned char) 2) #define XmDropDown_BEGIN_POPUP_FROM_TEXT ((unsigned char) 3) #ifdef FIX_1446 #define XmDropDown_AFTER_UNPOST ((unsigned char) 4) #endif #define XmDropDown_h_space(w) (((XmDropDownWidget)(w))->combo.h_space) #define XmDropDown_v_space(w) (((XmDropDownWidget)(w))->combo.v_space) #define XmDropDown_popup_offset(w) \ (((XmDropDownWidget)(w))->combo.popup_offset) #define XmDropDown_verify(w) (((XmDropDownWidget)(w))->combo.verify) #define XmDropDown_editable(w) (((XmDropDownWidget)(w))->combo.editable) #define XmDropDown_show_label(w) \ (((XmDropDownWidget)(w))->combo.show_label) #define XmDropDown_customized_combo_box(w) \ (((XmDropDownWidget)(w))->combo.customized_combo_box) #define XmDropDown_use_text_field(w) \ (((XmDropDownWidget)(w))->combo.use_text_field) #define XmDropDown_popup_shell(w) (((XmDropDownWidget)(w))->combo.popup_shell) #define XmDropDown_popup_cursor(w) \ (((XmDropDownWidget)(w))->combo.popup_cursor) #define XmDropDown_translations(w) \ (((XmDropDownWidget)(w))->combo.translations) #define XmDropDown_verify_text_callback(w) \ (((XmDropDownWidget)(w))->combo.verify_text_callback) #define XmDropDown_verify_text_failed_callback(w) \ (((XmDropDownWidget)(w))->combo.verify_text_failed_callback) #define XmDropDown_update_text_callback(w) \ (((XmDropDownWidget)(w))->combo.update_text_callback) #define XmDropDown_update_shell_callback(w) \ (((XmDropDownWidget)(w))->combo.update_shell_callback) #define XmDropDown_visible_items(w) \ (((XmDropDownWidget)(w))->combo.visible_items) #define XmDropDown_new_visual_style(w) \ (((XmDropDownWidget)(w))->combo.new_visual_style) #define XmDropDown_old_text(w) (((XmDropDownWidget)(w))->combo.old_text) #define XmDropDown_focus_owner(w) (((XmDropDownWidget)(w))->combo.focus_owner) #define XmDropDown_focus_state(w) (((XmDropDownWidget)(w))->combo.focus_state) #define XmDropDown_list_state(w) (((XmDropDownWidget)(w))->combo.list_state) #define XmDropDown_text_x(w) (((XmDropDownWidget)(w))->combo.text_x) #define XmDropDown_list(w) (((XmDropDownWidget)(w))->combo.list) #define XmDropDown_label(w) (((XmDropDownWidget)(w))->combo.label) #define XmDropDown_text(w) (((XmDropDownWidget)(w))->combo.text) #define XmDropDown_arrow(w) (((XmDropDownWidget)(w))->combo.arrow) #define XmDropDown_autoTraversal(w) (((XmDropDownWidget)(w))->combo.autoTraversal) #define XmDropDown_activateOnFill(w) \ (((XmDropDownWidget)(w))->combo.activateOnFill) #define XmDropDown_doActivate(w) (((XmDropDownWidget)(w))->combo.doActivate) #define XmDropDown_inValueChanged(w) \ (((XmDropDownWidget)(w))->combo.inValueChanged) /* Should return True to ignore invalid entry warning. Combination Box * does not currently use this. Presumes do it in subclasses */ typedef Boolean (*XmDropDownTextProc)(Widget w, char *text); typedef Boolean (*XmDropDownTextListMapProc)( Widget w, /* combo box */ Widget text, /* text */ Widget list /* list */ ); /* Version number for the first Revision */ #define XmDropDownExtensionVersion 2 typedef struct { /* standard extension fields */ XtPointer next_extension; XrmQuark record_type; long version; Cardinal record_size; /* extra fields */ XmDropDownTextProc verify; XmDropDownTextProc update; XmDropDownTextListMapProc setTextFromList; XmDropDownTextListMapProc setListFromText; } XmDropDownClassPartExtension; typedef struct { XtPointer extension; /* Just in case we need it later. */ } XmDropDownClassPart; typedef struct _XmDropDownClassRec { CoreClassPart core_class; CompositeClassPart composite_class; ConstraintClassPart constraint_class; XmManagerClassPart manager_class; XmDropDownClassPart combo_class; } XmDropDownClassRec; typedef struct { /* resources */ Dimension h_space; /* The amount of space to leave between */ Dimension v_space; /* widgets and the box edges. */ int popup_offset; /* The offset of the popup offset from the left edge of the text widget. */ Boolean verify; /* Verify the contents of the Text widget on leave or CR when this is True. */ Boolean editable; /* Allow the text field to be edited? */ Boolean show_label; /* Whether or not to show the label. */ Boolean customized_combo_box; /* Is this a customized combo box. */ Boolean use_text_field; /* Use XmTextField of XmText for textual input */ Widget popup_shell; /* The id of the popup shell. */ Cursor popup_cursor; /* Cursor for the Popup Window. */ XtTranslations translations; /* The translation table for all children. */ /* * Callbacks to verify, and update the text and shell widgets. */ XtCallbackList verify_text_callback; XtCallbackList verify_text_failed_callback; XtCallbackList update_text_callback; XtCallbackList update_shell_callback; /* private state */ String old_text; /* The old text value. */ Window focus_owner; /* Previous owner and state of the focus. */ int focus_state; unsigned char list_state; /* XmDropDown_UP, XmDropDown_DOWN or XmDropDown_IN_PROGRESS. */ Position text_x; /* X location of the text widget. */ Widget list; /* List contained in the popup shell. */ Widget label; /* The three children of the combo box. */ Widget text; Widget arrow; int visible_items; /* only to set/get XmNvisibleItemCount, which is ** a sop for non-customized combobox users */ Boolean new_visual_style; Boolean autoTraversal; /* traverse next on return */ int activateOnFill; /* activate when we fill this many chars */ Boolean doActivate; /* do activate on next value changed */ Boolean inValueChanged; /* recursion prevention */ Widget vsb; Widget hsb; Boolean scrolling; } XmDropDownPart; typedef struct _XmDropDownRec { CorePart core; CompositePart composite; ConstraintPart constraint; XmManagerPart manager; XmDropDownPart combo; } XmDropDownRec; extern XmDropDownClassRec xmDropDownClassRec; #ifdef __cplusplus } /* Closes scope of 'extern "C"' declaration */ #endif #if defined(VMS) || defined(__VMS) #include #endif #endif /* _XmDropDownP_h_ */