void cvxFieldClear
(
char *Form,      /* I: GUI form name */
int idField      /* I: field id */
)
/*
DESCRIPTION:
Deletes all text items contained in the specified "w_list",
or "w_combo" field.  

Input "OptForm" to apply this function to an "Options" form.
*/
________________________________________________________________________________

void cvxFieldDisable
(
char *Form,      /* I: GUI form name */
int idField      /* I: field id */
)
/*
DESCRIPTION:
Disable the specified GUI form field.  

Input "OptForm" to apply this function to an "Options" form.
*/
________________________________________________________________________________

void cvxFieldEnable
(
char *Form,      /* I: GUI form name */
int idField      /* I: field id */
)
/*
DESCRIPTION:
Enable the specified GUI form field.  

Input "OptForm" to apply this function to an "Options" form.
*/
________________________________________________________________________________

void cvxFieldImageSet
(
char *Form,      /* I: GUI form name */
int idField,   /* I: label field id */
char *Image      /* I: image file name */
)
/*
DESCRIPTION:
Assigns the specified image to the specified label field.  
VX looks in the default search paths for the image file.
See cvxPathFind().

Input "OptForm" to apply this function to an "Options" form.
*/
________________________________________________________________________________

void cvxFieldNumItems
(
char *Form,      /* I: GUI form name */
int idField,   /* I: field id */
int *NumItems    /* O: number of items associated with the field */
)
/*
DESCRIPTION:
Gets the number of items associated with a field. This is
primarily for querying the number of items associated with a
w_list, w_opt, w_btn, w_tree, w_combo, w_tab, or w_table widget.

Input "OptForm" to apply this function to an "Options" form.
*/
________________________________________________________________________________

void cvxFormCallback
(
vxName Name,      /* I: function name */
void *Function    /* I: function pointer */
)
/*
DESCRIPTION:
Registers a pointer to a callback function referenced by name 
in the definition of a GUI form template field (e.g. "callback=MyCallback").

Function pointers should be registered in the "Init" function
called when your library is dynamically loaded by VX at runtime.

The callback function should be of the following type:

int Callback(char *FormName, int idField, int idItem)

*/
________________________________________________________________________________

int cvxFormCreate
(
char *Form,      /* I: GUI form name */
int Display      /* I: 1 to display form after it is created; else 0 */
)
/*
DESCRIPTION:
Creates the specified form in memory and displays it if requested.
Returns 1 if error; else 0.
*/
________________________________________________________________________________

int cvxFormDataGet
(
char *Form,      /* I: GUI form name */
char **Data      /* O:  GUI data encoded in a null-terminated string */
)
/*
DESCRIPTION:
Encodes the data associated with the specified GUI form in a
null-terminated ascii string.  Memory for the output string
is allocated by this function and should be deallocated by
the calling procedure.  Only field items numbered 1 or more
are encoded.

The string has the following format:

Version,FormName,Field_Id,ItemCnt,IsOn,ItemData,IsOn,ItemData...,
Field_Id,ItemCnt,...

It is assumed no item exceeds 1024 bytes in its text-encoded form.

If a field is flagged with the "is_distance" option, the text string
associated with it is converted from user to database units if the
string contains a constant value.

Returns 1 if error, else 0.
*/
________________________________________________________________________________

int cvxFormDataSet
(
char *Form,      /* I: GUI form name */
char *Data      /* I:  GUI data encoded in a null-terminated string */
)
/*
DESCRIPTION:
Uses the data encoded in "text" to initialize the specified GUI form.
See cvxFormDataGet().

Returns 1 if error, else 0.
*/
________________________________________________________________________________

void cvxFormFunc
(
vxName Name,      /* I: function name */
void *Function,   /* I: function pointer */
double Code         /* I: VX licensing code (e.g. VX_ADV_MODELING) or 0.0 */
)
/*
DESCRIPTION:
Registers a function referenced by the "function=" field in 
a GUI form template definition. 

Callback functions should be registered in the "Init" function
called when your library is dynamically loaded by VX at runtime.

The function should be the following type:

int FormFunction(int FormAction, int *UnusedInteger)

See evxFormAction for possible values of "int FormAction".
*/
________________________________________________________________________________

int cvxFormInqFld
(
vxName Name,         /* I: template name */
int *Count,            /* O: number of template fields */
svxTplFld **Fields   /* O: list of template fields */
)
/*
DESCRIPTION:
Gets abbreviated information about the fields associated 
with a GUI form template.  The calling procedure MUST 
deallocate the output list.

Returns 1 if function fails; 0 if it succeeds.
*/
________________________________________________________________________________

void cvxFormKill
(
char *Form   /* I: GUI form name */
)
/*
DESCRIPTION:
Kills (i.e. cancel and undisplay) the specified GUI form.

Input "OptForm" to apply this function to an "Options" form.
*/
________________________________________________________________________________

void cvxFormRefresh
(
char *Form   /* I: GUI form name */
)
/*
DESCRIPTION:
Refreshes display of the specified GUI form.
Input "OptForm" to apply this function to the active "Options" form.
*/
________________________________________________________________________________

void cvxFormShow
(
char *Form   /* I: GUI form name */
)
/*
DESCRIPTION:
Shows (i.e. display) the specified GUI form.

Input "OptForm" to apply this function to an "Options" form.
*/
________________________________________________________________________________

int cvxFormState
(
char *Form       /* I: GUI form name */
)
/*
DESCRIPTION:
Returns 0 if the specified form has not been created in memory.
Returns 1 if the form is created but not displayed.
Returns 2 if the form is created and displayed.
*/
________________________________________________________________________________

int cvxFormTemplate
(
vxPath File   /* I: file that contains command template(s) */
)
/*
DESCRIPTION:
Loads, compiles and registers the GUI form template(s) defined in 
the specified file.

If "File" does not define a full path to the template file,
VX searches for the file in the runtime directory, the directories 
defined in "vxpaths", and the installation directories.  Register 
the directory that contains your template files using cvxPathAdd(). 

All callback functions and variables referenced by a GUI 
form template must be registered with cvxFormCallback() 
and cvxFormVariable().  See the "Virtual Forms" online 
help topic for more information about the definition of 
GUI form templates.

GUI form templates should be registered in the "Init" function
called when your library is dynamically loaded by VX at runtime.

Another way to dynamically define a template is to write it to 
a file in the VX "temp" directory (see cvxPathTemp()) and then 
use this function to load/compile it.  Template files in the 
"temp" directory are deleted when VX exits.

Returns 1 if function fails; 0 if it succeeds.
*/
________________________________________________________________________________

void cvxFormTitleSet
(
char *Form,      /* I: GUI form name */
char *Title      /* I: form title (null-terminated text string) */
)
/*
DESCRIPTION:
Assigns the specified text to the specified form's title bar.
*/
________________________________________________________________________________

void cvxFormUpdate
(
int idField      /* I: field id */
)
/*
DESCRIPTION:
Updates the specified field of the active "Options" form to
display the numeric input associated with the corresponding
field of the form's data container (i.e. VDATA).
*/
________________________________________________________________________________

int cvxFormsPrecompiled
(
vxPath File      /* I: full path to precompiled VX forms file */
)
/*
DESCRIPTION:
Registers the path to a pre-compiled VX forms (i.e. template) file.
If VX cannot find a form/template definition in Forms.VX, it will
search for it in one of the files logged by this function.  There
may be a small delay in program execution the first time these files
are accessed, because they are opened/mapped on-demand.

Run the following command from within a VX user directory to compile
all of the template (.t) files in a directory into a VX file deposited
in the user directory: 

   vx -d  

For example; 

   vx -d "C:\Program Files\VXCorp\User-11.50\NewForms" NewForms.VX

   compiles all .t files in the "NewForms" sub-directory into a
   new file deposited in the local directory named "NewForms.VX".

*/
________________________________________________________________________________

void cvxItemAdd
(
char *Form,         /* I: GUI form name */
int idField,      /* I: field id */
char *Text         /* I; item text */
)
/*
DESCRIPTION:
Adds a new item to the end of the list associated with
the specified "w_list" or "w_combo" field.  

Input "OptForm" to apply this function to an "Options" form.
*/
________________________________________________________________________________

void cvxItemDel
(
char *Form,         /* I: GUI form name */
int idField,      /* I: field id */
int idItem         /* I: item id */
)
/*
DESCRIPTION:
Deletes the specified item from the specified 
"w_list" or "w_combo" field.  

Input "OptForm" to apply this function to an "Options" form.
*/
________________________________________________________________________________

void cvxItemFind
(
char *Form,         /* I: GUI form name */
int idField,      /* I: field id */
char *Text,         /* I: item text */
int *idItem         /* O: item id */
)
/*
DESCRIPTION:
Searches the specified "w_list" or "w_combo" field for 
the specified text and outputs the corresponding item id.
"idItem" is set to zero if the specified text is not found.
*/
________________________________________________________________________________

void cvxItemGet
(
char *Form,         /* I: GUI form name */
int idField,      /* I: field id */
int idItem,         /* I: item id */
char *Text         /* I: item text */
)
/*
DESCRIPTION:
Gets the text string associated with the specified item of 
the specified field.  It is assumed that "Text" references
sufficent memory to hold the output string.  See cvxItemSet()
for the meaning of "idItem" for each field type.

Input "OptForm" to apply this function to an "Options" form.
*/
________________________________________________________________________________

void cvxItemSelect
(
char *Form,         /* I: GUI form name */
int idField,      /* I: field id */
int idItem         /* I: item id */
)
/*
DESCRIPTION:
Selects the specified item.  

Input "OptForm" to apply this function to an "Options" form.
*/
________________________________________________________________________________

void cvxItemSelectText
(
char *Form,         /* I: GUI form name */
int idField,      /* I: field id */
char *Text         /* I: item text */
)
/*
DESCRIPTION:
Selects the specified item.  

Input "OptForm" to apply this function to an "Options" form.
*/
________________________________________________________________________________

void cvxItemSelected
(
char *Form,         /* I: GUI form name */
int idField,      /* I: field id */
int *idItem         /* O: item id */
)
/*
DESCRIPTION:
Outputs the id of the item currently selected in the specified field.
Items are numbered from 1.  Outputs 0 if there isn't a selected item.

Input "OptForm" to apply this function to an "Options" form.
*/
________________________________________________________________________________

void cvxItemSet
(
char *Form,         /* I: GUI form name */
int idField,      /* I: field id */
int idItem,         /* I: item id */
char *Text         /* I; item text */
)
/*
DESCRIPTION:
Sets the text associated with the specified item.
The meaning of "idItem" for each field type is
documented below:

"w_num" field: 
   item 0 = label;
   item 1 = numeric input area;

"w_slider" field:    
   item 0 = label
   item 1 = slider value
   item 2 = text input field

"w_slider" field:    
   item 0 = label
   item 1 = slider value
   item 2 = text input field

"w_txt_in" field:
   item 0 = label
   item 1 = slider value
   item 2 = text input field

"w_txt_out" field:
   item 0 = label
   item 1 = text output area

"w_txt_btn" field:
   item 0 = toggle
   item 1 = button (0 if no toggle)
   item 2 = text input area (1 if no toggle)

"w_txt_lbl" field:
   item 0 = toggle button
   item 1 = label (0 if no toggle)
   item 2 = text input area (1 if no toggle)

"w_list" field:
   item 0 = label
   item N = Nth item in scrolling list

"w_opt" field:
   item 0 = label
   item N = Nth option button

"w_color" field:
   item 0 = label
   item 1 = color box

"w_combo" field:
   item 0 = label
   item N = Nth item in combo list

Input "OptForm" to apply this function to an "Options" form.
*/
________________________________________________________________________________

void cvxItemStateGet
(
char *Form,         /* I: GUI form name */
int idField,      /* I: field id */
int idItem,         /* I: item id */
int *isOn         /* O: 1 if item is ON; 0 if it is OFF */
)
/*
DESCRIPTION:
Gets the ON/OFF status of a GUI item.
Input "OptForm" to apply this function to an "Options" form.
*/
________________________________________________________________________________

void cvxItemStateSet
(
char *Form,         /* I: GUI form name */
int idField,      /* I: field id */
int idItem,         /* I: item id */
int isOn            /* I: 1 if item is ON; 0 if it is OFF */
)
/*
DESCRIPTION:
Gets the ON/OFF status of a GUI item.
Input "OptForm" to apply this function to an "Options" form.
*/
________________________________________________________________________________