category-group: xwin
layer(s): 0, 2, 3, 4, 6

header file(s): z_xmutils.h, z_xmfdisp.h, z_xmlookup.h, z_xmmatrix.h, z_xmfdisp.h, z_xmbusy.h

synopsis.
The existance of this group represents a departure from the Z Directory. The Vettasoft policy is to not get directly involved with window systems. But, the code was built, and is integrated with the Z Directory. However, since it appears that X Windows will not run under Microsoft operating systems, this code cannot be used in Microsoft environments anyway.

If that has not yet dissuaded you, if you try to use the components herein you will immediately be faced with missing header files, as z_xmutils.h includes Xm.h, which would not be under a Microsoft OS. If you have [stubbornly] put the header files somewhere accessible, the final problem is that all the X Window functions will be missing, leaving your build with a pile of unresolved externals. Once again, the Z Directory doesn't provide window support code and anything we provide in this group is extra, outside the main trajectory, and should be considered as an extra module that works only on unix systems.

An overview of what is provided here:

layer 0 functions:

z_strlist_to_xmstring_table():  converts array of (char *) --> xmstring
z_release_xmstring_table() ...: converse of "strlist_to_xmstring_table()"
z_xt_get_topshell(): returns the [1st] parent shell of type window manager
layer 2 functions:
z_xm_create_label()
z_xm_create_textfield():  simplified creation of field widgets
z_xm_create_pushbutton(): simplified creation of push button widgets
z_xm_create_arrow():    simplified creation of "arrow buttons"
z_xm_create_full_horizontal_line(): creates a horizontal separator
z_xm_center_widget(): align a widget horizontally
z_xm_attach_widget(): attach one widget to another
z_xm_align_widgets(): align an array of widgets, top / bottom / left / right
z_xm_align_widget_pair(): aligns 2 widgets
z_xm_equalize_2_heights(): makes a pair of widgets same height
z_xm_setlabel(): put a string on a label widget; eg label a label
z_xm_settextfield(): label a text widget
z_xm_gettextfield(): gets the contents of a text field widget, as string_o
z_xm_dollartextfield_to_double(): get dollar amount, as a double
z_xm_double_to_dollartextfield(): write a dollar amount to a widget
z_xm_settextfield_length(): sets max size of text field widget
z_xm_settextfield_read_only(): make text field widget read-only
z_xm_settextfield_read_write():make text field widget modifiable
z_xm_toggle_button_label(): get label, motif toggle button
is_z_xm_toggle_button_set(): tell if toggle button is set
z_xm_set_toggle_button(): set a toggle button
z_xm_clear_toggle_button(): clear a toggle button
z_xm_reverse_fgbg_colors(): flip the foreground / background colors
z_xm_fontheight(): get the height of a widget's font
z_xm_create_errmsg_popup_window()
z_xm_popup_errmsg_window()
z_xm_popdown_errmsg_window()
the tasks of layer 3 functions are self-explanatory by name:
z_xm_create_row_of_pushbuttons_onform()
z_xm_create_toggle_box()
z_xm_create_row_of_pushbuttons_onrowcol()
z_xm_create_widget_grid()
z_xm_create_popup_menu()
z_xm_cb_popup(): make a pop-up visible
z_xm_cb_popdown(): converse of z_xm_cb_popup()

xmfdisp_item_o: lets you set up a list of "xmfdisp items", which correspond to [text widget] fields in an x-window. you add fields with the "add()" member function. you display values into the fields with "load_from_dbag()".

xmmatrix_o: a simplified "wrapper" for a row-column widget

xmlookup_o: displays a list of items

classes in this group: xmmatrix_o, xmlookup_o, xmfdisp_item_o, xmbusy_o

support/internal classes: {comma-delimited list of private classes}