#ifndef _FZ_FUIM_API
#define _FZ_FUIM_API

#ifdef __cplusplus
extern "C" {
#endif


/* @doc EXTERNAL FUIM */
/********************************************************************************************************

	@module 

	@desc	formZ User Interface Manager (FUIM). This function set contains the functions for creating
			and managing interface elements in formZ.  This includes displaying alert windows, dialog
			windows, progress bars, laying out content on palette or dialog templates, and providing the
			logic for tying the user interface items to the data and tools they control.

	@toc	fuim

*********************************************************************************************************/


/********************************************************************************************************

	@module dlogs

	@desc	Functions for driving or invoking dialogs.  A dialog window may be displayed for whatever
			reason at any time to get information from the user.  Usually, dialogs are only used if
			there are many options, and a simple alert window won't do.

	@toc	fuim_dlog

*********************************************************************************************************/


/********************************************************************************************************

	@module FUIM Templates

	@desc	Functions for templates used for dialog and palette contents.  Dialogs and palettes are built
			from a template of items, arranged in some layout.  A template includes items such as text
			fields, check boxes, radio buttons, lists, drop down menus, pop up menus, etc.  These items
			are registered with the template so the template can keep track of them in one logical place.

	@toc	fuim_tmpl

*********************************************************************************************************/


/********************************************************************************************************

	@type	

	@desc	fuim template pointer. fuim template contains the content for dialogs and palettes.
			
	@avail	5.0.0.0
	
	@see	<auto>

	@toc	fuim

*********************************************************************************************************/
typedef struct fuim_tmpl_td *fz_fuim_tmpl_ptr;

#include "fz_api.h"

#include "fz_fuim_alrt_api.h"
#include "fz_fuim_prog_api.h"

#include "fzpl_plugin.h"
#include "fz_type_api.h"
#include "fz_objt_refn_api.h"

#include "fz_fuim_list_api.h"


/********************************************************************************************************

	@enum

	@desc	Command click types. Indicates how many times the mouse is to be or was clicked.

	@avail	5.0.0.0

	@see	<auto>

	@toc	fuim_tmpl

*********************************************************************************************************/
typedef enum fz_fuim_click_enum
{
	FZ_FUIM_CLICK_SINGLE=1,	/*	@emem	indicates a single mouse click */
	FZ_FUIM_CLICK_DOUBLE,	/*	@emem	indicates a double mouse click */
	FZ_FUIM_CLICK_TRIPLE,	/*	@emem	indicates a triple mouse click */
	
	FZ_FUIM_CLICK_MAX		
} fz_fuim_click_enum;

/********************************************************************************************************

	@enum	Command wait click types. Indicates how many times the mouse is waited for clicks.

	@desc	

	@avail	5.0.0.0
			
	@see	<auto>

	@toc	fuim_tmpl

*********************************************************************************************************/
typedef enum fz_fuim_click_wait_enum
{	
	FZ_FUIM_CLICK_WAIT_NOT=0,		/*	@emem */
	FZ_FUIM_CLICK_WAIT_SINGLE,		/*	@emem */
	FZ_FUIM_CLICK_WAIT_DOUBLE,		/*	@emem */
	FZ_FUIM_CLICK_WAIT_TRIPLE,		/*	@emem */
	
	FZ_FUIM_CLICK_WAIT_MAX
} fz_fuim_click_wait_enum;

/********************************************************************************************************

	@enum	

	@desc	Defines the style of an icon. formZ supports 3 styles of icons. Recall that these are selectable by the user 
			from the Icon Style menu in the Icons Customization dialog. The first two options (White and Gray) are  
			generated from a black and white source graphic with different treatments at drawing time. The third option is 
			generated from a color source graphic. The first two options are older icon styles wich are provided for 
			backwards compatibility. The color icons became the default with v 4.0.  <nl>
			
			For each type of icon source, there are two possible sizes. The full size icon is the size that is used 
			in the main tool palettes and tear off tool palettes. The black and white source full size is 30 x 30
			pixels. The color source is 32 x 32 pixels. The alternate size is the smaller size used for window 
			icons that are drawn in the lower margin of the window. These are only used for commands whose level is 
			FZ_PROJ_LEVEL_MODEL_WIND or FZ_PROJ_LEVEL_DRAFT_WIND. The alternate size for both black and white and color sources
			is 20 x 16 pixels. <nl>
							
			
	@avail	5.0.0.0
			
	@see	<auto>

	@toc	cmds_cbak

*********************************************************************************************************/
typedef enum fz_fuim_icon_enum
{	
	FZ_FUIM_ICON_MONOC_OBSOLETE = 0,		/*	@emem Indicates a black and white full size icon (30x30 pixels)	OBSOLETE */
	FZ_FUIM_ICON_MONOC_ALT_OBSOLETE,		/*	@emem Indicates a black and white small size icon (20x16 pixels) OBSOLETE	 */
	FZ_FUIM_ICON_COLOR,						/*	@emem Indicates a color full size icon (32x32 pixels)	 */
	FZ_FUIM_ICON_COLOR_ALT_OBSOLETE,		/*	@emem Indicates a color small size icon (20x16 pixels)	OBSOLETE */
	
	FZ_FUIM_ICON_MAX
} fz_fuim_icon_enum;

/********************************************************************************************************

	@enum 

	@desc	Command icon group positions. 

	@avail	5.0.0.0

	@see	<auto>

	@toc	cmds_cbak

*********************************************************************************************************/
typedef enum fz_fuim_icon_group_enum
{	FZ_FUIM_ICON_GROUP_DEFAULT=0,	/*	@emem	default icon position (currently FZ_FUIM_ICON_GROUP_END) */
	FZ_FUIM_ICON_GROUP_START,		/*	@emem	specifies location at the start of a group (row) */
	FZ_FUIM_ICON_GROUP_END,		/*	@emem	specifies location at the end of a group (row) */
	FZ_FUIM_ICON_GROUP_CUSTOM		/*	@emem	specifies a specific location in a group (row). The exact row and column position must be specified  */
} fz_fuim_icon_group_enum;			

/********************************************************************************************************

	@enum  

	@desc	Command icon adjacent positions. 

	@avail	5.0.0.0

	@see	<auto>

	@toc	cmds_cbak

*********************************************************************************************************/
typedef enum fz_fuim_icon_adjacent_enum
{	FZ_FUIM_ICON_ADJACENT_DEFAULT=0,	/*	@emem	default icon position (currently FZ_FUIM_ICON_ADJACENT_RIGHT) */
	FZ_FUIM_ICON_ADJACENT_TOP,			/*	@emem	positions the icon above the reference command icon. 
												If necessary, a new row is added above the referenced icon */
	FZ_FUIM_ICON_ADJACENT_BOTTOM,		/*	@emem	positions the icon below the reference command icon. 
												If necessary, a new row is added below the referenced icon */
	FZ_FUIM_ICON_ADJACENT_LEFT,		/*	@emem	positions the icon to the left of the reference command icon. 
												If necessary, all icons are shifted to the right to make space */
	FZ_FUIM_ICON_ADJACENT_RIGHT		/*	@emem	 positions the icon to the right of the reference command icon. 
												If necessary, all icons are shifted to the left to make space */
} fz_fuim_icon_adjacent_enum;

/********************************************************************************************************

	@enum	

	@desc	Fuim action enumerators.
			
	@avail	5.0.0.0
			
	@see	fz_fuim_item_func
			

	@toc	fuim_tmpl

*********************************************************************************************************/
typedef enum fz_fuim_actn_enum
{	FZ_FUIM_ACTN_NONE=0x0000,		/*	@emem	Fuim action : Nothing happened. */
	FZ_FUIM_ACTN_BLESS,				/*	@emem	Fuim action : An item is blessed as a standard ok or cancel button. */
	FZ_FUIM_ACTN_HIT,				/*	@emem	Fuim action : An item was hit. */
	FZ_FUIM_ACTN_GET_VALUE,			/*	@emem	Fuim action : The value of an item is being get. */
	FZ_FUIM_ACTN_SET_VALUE,			/*	@emem	Fuim action : The value of an item is being set. */
	FZ_FUIM_ACTN_GET_ACTIV,			/*	@emem	Fuim action : An item is being checked to see whether it is active or not. */
	FZ_FUIM_ACTN_NEW_VALUE,			/*	@emem	Fuim action : An item has been set to a new value. */
	FZ_FUIM_ACTN_PICT_SCALE,		/*	@emem	Fuim action : A picture has been scaled. */
	FZ_FUIM_ACTN_KEY,				/*	@emem	Fuim action : A key hit occurred. */
	FZ_FUIM_ACTN_NEW_CHILD_VALUE,	/*	@emem	Fuim action : The value of a child of the given item has been changed. */
	FZ_FUIM_ACTN_PRE_NEW_VALUE,		/*	@emem	Fuim action : Called right before the value of an item is changed. This gives
															  the called code the opportunity to, for example, perform
															  object backups or similar actions that need to be done
															  before the change occurs. 
														@pavail 7.0.0.0 */
	FZ_FUIM_ACTN_PRE_NEW_CHILD_VALUE,/*	@emem	Fuim action : Same as FZ_FUIM_ACTN_PRE_NEW_VALUE, except that this action
															  is invoked for any item, that has a child item, whose value
															  is about to be changed.
														@pavail 7.0.0.0 */
	
	FZ_FUIM_ACTN_MOUSE_MOVED_IN,				/*	@emem	Fuim action : mouse moved into the item. 
														@pavail 7.0.0.0 */
	FZ_FUIM_ACTN_MOUSE_MOVED_OUT,		/*	@emem	Fuim action : mouse moved out the item. 
														@pavail 7.0.0.0 */
	FZ_FUIM_ACTN_CHILD_HIT,				/*	@emem	Fuim action : A child of an item was hit. 
														@pavail 7.0.0.0 */
	FZ_FUIM_ACTN_COLLAPSE,				/*	@emem	Fuim action : A bordered shade enabled item was collapsed. 
														@pavail 7.0.0.0 */
	FZ_FUIM_ACTN_EXPAND,				/*	@emem	Fuim action : A bordered shade enabled item was expanded. 
														@pavail 7.0.0.0 */
	
	FZ_FUIM_ACTN_LOCK_NEW_VALUE_START,		/*	@emem	Fuim action : Called right before FZ_FUIM_ACTN_PRE_NEW_CHILD_VALUE, FZ_FUIM_ACTN_NEW_VALUE and 
														FZ_FUIM_ACTN_NEW_CHILD_VALUE actions are issued for items
														which were changed because they were locked together (such as x,y and z radii of a sphere).
														@pavail 7.0.0.0 */
	FZ_FUIM_ACTN_LOCK_NEW_VALUE_END,		/*	@emem	Fuim action : Called right after FZ_FUIM_ACTN_PRE_NEW_CHILD_VALUE, FZ_FUIM_ACTN_NEW_VALUE and 
														FZ_FUIM_ACTN_NEW_CHILD_VALUE actions were issued for items
														which were changed because they were locked together (such as x,y and z radii of a sphere).
														@pavail 7.0.0.0 */
	FZ_FUIM_ACTN_MOUSE_DOWN,				/*	@emem	Fuim action : A mouse button was pressed on a fuim item.
														@pavail 7.0.0.0 */
	
	
	FZ_FUIM_ACTN_POST_NEW_VALUE,			/*	@emem	Fuim action : Called right after the value of an item is changed. This gives
															  the called code the opportunity to perform
															  finalization steps that need to be done at the end.
															
															  For dynamic items running in continuous mode, such as sliders, the calling sequence is :<nl>
															  	 FZ_FUIM_ACTN_PRE_NEW_VALUE,<nl>
															  	 FZ_FUIM_ACTN_NEW_VALUE,<nl>
															  	 FZ_FUIM_ACTN_NEW_VALUE,<nl>
															  	 ...(while tracking)<nl>
															  	 FZ_FUIM_ACTN_NEW_VALUE,<nl>
															  	 FZ_FUIM_ACTN_POST_NEW_VALUE<nl>
															
															  For dynamic items running in non continuous mode, such as sliders with the FZ_FUIM_FLAG_NCNT flags, 
															  the calling sequence is :<nl>
															  	 FZ_FUIM_ACTN_PRE_NEW_VALUE,<nl>
															  	 FZ_FUIM_ACTN_NEW_VALUE,<nl>
															  	 FZ_FUIM_ACTN_POST_NEW_VALUE,<nl>
															  	 <nl>
															  	 FZ_FUIM_ACTN_PRE_NEW_VALUE,<nl>
															  	 FZ_FUIM_ACTN_NEW_VALUE,<nl>
															  	 FZ_FUIM_ACTN_POST_NEW_VALUE,<nl>
															  	 <nl>
															  	 FZ_FUIM_ACTN_PRE_NEW_VALUE,<nl>
															  	 FZ_FUIM_ACTN_NEW_VALUE,<nl>
															  	 FZ_FUIM_ACTN_POST_NEW_VALUE,<nl>
															  	 <nl>
															  	 ... (while tracking)<nl>
															 
															 For non dynamic items, such as check boxes, radios ... the calling sequence is :<nl>
															  	 FZ_FUIM_ACTN_PRE_NEW_VALUE,<nl>
															  	 FZ_FUIM_ACTN_NEW_VALUE,<nl>
															  	 FZ_FUIM_ACTN_POST_NEW_VALUE<nl>

														@pavail 7.0.0.0 */
	FZ_FUIM_ACTN_POST_NEW_CHILD_VALUE,	/*	@emem	Fuim action : Same as FZ_FUIM_ACTN_POST_NEW_VALUE, except that this action
															  is invoked for any item, that has a child item, whose value
															  is about to be changed.
														@pavail 7.0.0.0 */
	FZ_FUIM_ACTN_NO_NEW_VALUE,			/*	@emem	Fuim action : do not generate a new value message when this item is hit . */
	FUIM_ACTN_MAX
} fz_fuim_actn_enum;

/********************************************************************************************************

	@enum	

	@desc	Fuim custom item action enumerators.
	
	@avail	5.0.0.0
			
	@see	fz_fuim_item_cust_func

	@toc	fuim_tmpl

*********************************************************************************************************/
typedef enum fz_fuim_actn_cust_enum
{	FZ_FUIM_ACTN_CUST_NONE=0x0100,				/*	@emem	Fuim custom item action : Nothing happened. */
	FZ_FUIM_ACTN_CUST_INIT,						/*	@emem	Fuim custom item action : A custom item is being initialized. */
	FZ_FUIM_ACTN_CUST_FINIT,					/*	@emem	Fuim custom item action : A custom item is being finalized. */
	FZ_FUIM_ACTN_CUST_GET_WIDTH_MIN,			/*	@emem	Fuim custom item action : Used to get the minimum width of a custom item.<nl>
														action_data out of short */
	FZ_FUIM_ACTN_CUST_GET_HEIGHT_MIN,			/*	@emem	Fuim custom item action : Used to get the minimum height of a custom item.<nl>
														action_data out of short */
	FZ_FUIM_ACTN_CUST_GET_WIDTH,				/*	@emem	Fuim custom item action : Used to get the width of a custom item.<nl>
														action_data out of short */
	FZ_FUIM_ACTN_CUST_GET_HEIGHT,				/*	@emem	Fuim custom item action : Used to get the height of a custom item.<nl>
														action_data out of short */
	FZ_FUIM_ACTN_CUST_REDRAW,					/*	@emem	Fuim custom item action : A custom item needs to be redrawn. */
	FZ_FUIM_ACTN_CUST_CLICK,					/*	@emem	Fuim custom item action : A mouse click has occurred in a custom item.<nl>
														action_data in of point (click point) */
	FZ_FUIM_ACTN_CUST_HILITE,					/*	@emem	Fuim custom item action : A custom item has become the active item.<nl>
														action_data in of point (highlight point) */
	FZ_FUIM_ACTN_CUST_REPOSITION,				/*	@emem	Fuim custom item action : A custom item has been moved. */
	FZ_FUIM_ACTN_CUST_MOUSE_MOVED,				/*	@emem	Fuim custom item action : The mouse moved.<nl>
														action_data in of point (mouse point) */
	FZ_FUIM_ACTN_CUST_MOUSE_MOVED_IN,			/*	@emem	Fuim custom item action : The mouse has moved into a custom item.<nl>
														action_data in of point (mouse point) */
	FZ_FUIM_ACTN_CUST_MOUSE_MOVED_OUT,			/*	@emem	Fuim custom item action : The mouse has moved out of a custom item.<nl>
														action_data in of point (mouse point) */
	FZ_FUIM_ACTN_CUST_KEY_DOWN,					/*	@emem	Fuim custom item action : A key is down.<nl>
														action_data in of pointer to fz_fuim_key_td* */
	FZ_FUIM_ACTN_CUST_MODF_KEY,					/*	@emem	Fuim custom item action : A modifier key is down.<nl>
														action_data in of fzrt_int (modifiers mask) */
	FZ_FUIM_ACTN_CUST_NEW_VAL_INVAL,			/*	@emem	Fuim custom item action : Does a custom item need to be invalidated when a new value is set.<nl>
														action_data out of short (TRUE/FALSE to invalidate on new value) */
	FZ_FUIM_ACTN_CUST_TEXT_FOCUS_GET,			/*	@emem	Fuim custom item action : Used to check if a custom text item has focus.<nl>
														action_data out of short (TRUE/FALSE custom item has text focus) */
	FZ_FUIM_ACTN_CUST_TEXT_FOCUS_SET,			/*	@emem	Fuim custom item action : Used to set a custom text item to have focus or not.<nl>
														action_data in of short (TRUE/FALSE custom item has text focus) */
	FZ_FUIM_ACTN_CUST_ACTIVE,					/* @emem   Fuim custom item action: Used to notify any custom control if active
														action_data in of short (TRUE/FALSE item is active) */
	FZ_FUIM_ACTN_CUST_WHEEL,					/* @emem   Fuim custom item action: Used to notify any custom control if the scroll wheel (on the mouse) was moved
														action_data in of pointer to fz_fuim_wheel_td (delta of movement) */
	FZ_FUIM_ACTN_CUST_GET_DYNAMIC,				/*	@emem	Fuim custom item action : Used to get the current height as a ratio (0.0-1.0 from WIDTH_MIN to WIDTH_MAX).<nl>
														action_data out of float
														@pavail 6.0.0.0 */
	FZ_FUIM_ACTN_CUST_POST_INIT,				/*	@emem	Fuim custom item action : A custom item has just completed its initialization.<nl>
														action_data out of float
														@pavail 7.0.0.0 */
	FZ_FUIM_ACTN_CUST_MOUSE_UP,					/*	@emem	Fuim custom item action : A custom item has just completed its initialization.<nl>
														action_data out of float
														@pavail 7.0.0.0 */
	FZ_FUIM_ACTN_CUST_DBLCLICK,					/*	@emem	Fuim custom item action : A mouse double click has occurred in a custom item.<nl>
														action_data in of point (click point) */
	FZ_FUIM_ACTN_CUST_TRPLCLICK,				/*	@emem	Fuim custom item action : A mouse triple click has occurred in a custom item.<nl>
														action_data in of point (click point) */
	FZ_FUIM_ACTN_CUST_GET_HINT_NAME,			/*	@emem	get the name hint for the item <nl>
														action_data in of point (click point) */
	FZ_FUIM_ACTN_CUST_GET_HINT_ACTN,			/*	@emem	get the action hint for the item <nl>
														action_data in of point (click point) */
	FZ_FUIM_ACTN_CUST_GET_HINT_HELP,			/*	@emem	get the help hint for the item <nl>
														action_data in of point (click point) */
	
	FUIM_ACTN_CUST_MAX
} fz_fuim_actn_cust_enum;

/********************************************************************************************************

	@enum

	@desc	Bit flags that are used when specifying the range a value can take. 
			If no bits are set, the range of values isn't limited.
			To set a variable with a bit flag, see FZ_SETBIT, FZ_CLRBIT, FZ_CHKBIT.
			Alternatively, the constants below could be used.
			
	@avail	5.0.0.0

	@see	<auto>,
			FZ_FUIM_RANGE_NONE,
			FZ_FUIM_RANGE_MIN,
			FZ_FUIM_RANGE_MIN_INCL,
			FZ_FUIM_RANGE_MAX,
			FZ_FUIM_RANGE_MAX_INCL
	
	@toc	fuim_tmpl

*********************************************************************************************************/
typedef enum fz_fuim_range_enum 
{	FZ_FUIM_RANGE_MIN_BIT=0,		/*	@emem	The minimum allowable value in the range must be greater than the specified minimum. */
	FZ_FUIM_RANGE_MIN_INCL_BIT,		/*	@emem	The minimum allowable value in the range must be greater than or equal to the specified minimum. */
	FZ_FUIM_RANGE_MAX_BIT,			/*	@emem	The maximum allowable value in the range must be less than the specified maximum. */
	FZ_FUIM_RANGE_MAX_INCL_BIT,		/*	@emem	The maximum allowable value in the range must be less than or equal to the specified maximum. */
	FZ_FUIM_RANGE_NOT_ZERO_BIT,		/*	@emem	Zero is not allowed as a value */
	
	FUIM_RANGE_BIT_MAX
} fz_fuim_range_enum;


/********************************************************************************************************

	@enum	

	@desc	Format types for an integer variable displayed in a text field. 
			This enum is used as a parameter for any of the whole number set range API functions. 
			It determines how a variable's value is displayed in a dialog.
	
	@avail	5.0.0.0
			
	@see	<auto>
			fz_fuim_format_float_enum

	@toc	fuim_tmpl

*********************************************************************************************************/
typedef enum fz_fuim_format_int_enum
{
	FZ_FUIM_FORMAT_INT_DEFAULT = 0,		/*	@emem	The value is displayed as a whole number in decimal notation. */
	FZ_FUIM_FORMAT_INT_DATE_NATIVE,		/*	@emem	The value is displayed as a date (day, month and year) according to the current date format of the OS. */
	FZ_FUIM_FORMAT_INT_TIME_NATIVE,		/*	@emem	The value is displayed as a time of day (hours, minutes and seconds), according to the current date format of the OS. */
	FZ_FUIM_FORMAT_INT_DURN_HHMMSS,		/*	@emem	The value is displayed as a duration (hours, minutes and seconds), separated by colons. */
	
	FZ_FUIM_FORMAT_INT_MAX

} fz_fuim_format_int_enum;

/********************************************************************************************************

	@enum	

	@desc	Format types for a floating point variable displayed in a text field. 
			This enum is used as a parameter for any of the floating point number set range API functions. 
			It determines how a variable's value is displayed in a dialog.
	
	@avail	5.0.0.0
			
	@see	<auto>
			fz_fuim_format_int_enum

	@toc	fuim_tmpl

*********************************************************************************************************/
typedef enum fz_fuim_format_float_enum
{
	FZ_FUIM_FORMAT_FLOAT_DEFAULT = 0,	/*	@emem	The floating point value is displayed as a fraction, with 
													the whole and fractional part of the number separated by a 
													decimal point. */
	
	FZ_FUIM_FORMAT_FLOAT_DISTANCE,		/*	@emem	The floating point value is displayed as a distance value. 
													The ultimate format is determined by the setting in the Working 
													Units dialog. For example, when English units are selected 
													the default linear distances are displayed with the 
													feet and inch notation. */
	
	FZ_FUIM_FORMAT_FLOAT_ANGLE,			/*	@emem	The floating point value is displayed as an angle. 
													The variable's value is expected to be in radians. The 
													display of an angle is shown in degrees in the text field. */
	
	FZ_FUIM_FORMAT_FLOAT_PERCENT,		/*	@emem	The floating point value is displayed as a percentage 
													value. That is, the variable's value is multiplied by 
													100 before it is displayed in the text field. This 
													allows a value to be stored in a variable in a normalized 
													range (0.0 to 1.0) but display it to the user as a 
													percentage (0.0 to 100.0). */
	
	FZ_FUIM_FORMAT_FLOAT_CURRENCY_NATIVE,	/*	@emem	The floating point value is displayed as a currency, formatted 
														according to the language setting of the operating system. */

	
	FZ_FUIM_FORMAT_FLOAT_AREA_SQIN,		/*	@emem	The floating point value is displayed as an area value,  
													converted to and formatted as square inches. 
													The floating point value is assumed to represent square inches in an English
													project or square centimeters in a metric project.  */
	FZ_FUIM_FORMAT_FLOAT_AREA_SQFT,		/*	@emem	The floating point value is displayed as an area value,  
													converted to and formatted as square feet. 
													The floating point value is assumed to represent square inches in an English
													project or square centimeters in a metric project.  */
	FZ_FUIM_FORMAT_FLOAT_AREA_SQYD,		/*	@emem	The floating point value is displayed as an area value,  
													converted to and formatted as square yards. 
													The floating point value is assumed to represent square inches in an English
													project or square centimeters in a metric project.  */
	FZ_FUIM_FORMAT_FLOAT_AREA_ACRE,		/*	@emem	The floating point value is displayed as an area value,  
													converted to and formatted as acres. 
													The floating point value is assumed to represent square inches in an English
													project or square centimeters in a metric project.  */
	FZ_FUIM_FORMAT_FLOAT_AREA_SQMI,		/*	@emem	The floating point value is displayed as an area value,  
													converted to and formatted as square miles. 
													The floating point value is assumed to represent square inches in an English
													project or square centimeters in a metric project.  */
	FZ_FUIM_FORMAT_FLOAT_AREA_SQMM,		/*	@emem	The floating point value is displayed as an area value,  
													converted to and formatted as square millimeters. 
													The floating point value is assumed to represent square inches in an English
													project or square centimeters in a metric project.  */
	FZ_FUIM_FORMAT_FLOAT_AREA_SQCM,		/*	@emem	The floating point value is displayed as an area value,  
													converted to and formatted as square centimeters. 
													The floating point value is assumed to represent square inches in an English
													project or square centimeters in a metric project.  */
	FZ_FUIM_FORMAT_FLOAT_AREA_SQMT,		/*	@emem	The floating point value is displayed as an area value,  
													converted to and formatted as square meters. 
													The floating point value is assumed to represent square inches in an English
													project or square centimeters in a metric project.  */
	FZ_FUIM_FORMAT_FLOAT_AREA_SQKM,		/*	@emem	The floating point value is displayed as an area value,  
													converted to and formatted as square kilometers. 
													The floating point value is assumed to represent square inches in an English
													project or square centimeters in a metric project.  */
	
	FZ_FUIM_FORMAT_FLOAT_VOLUME_CUIN,	/*	@emem	The floating point value is displayed as a volumetric value,  
													converted to and formatted as cubic inches.  
													The floating point value is assumed to represent cubic inches in an English
													project or cubic centimeters in a metric project.  */
	FZ_FUIM_FORMAT_FLOAT_VOLUME_CUFT,	/*	@emem	The floating point value is displayed as a volumetric value,  
													converted to and formatted as cubic feet.  
													The floating point value is assumed to represent cubic inches in an English
													project or cubic centimeters in a metric project.  */
	FZ_FUIM_FORMAT_FLOAT_VOLUME_CUYD,	/*	@emem	The floating point value is displayed as a volumetric value,  
													converted to and formatted as cubic yards.  
													The floating point value is assumed to represent cubic inches in an English
													project or cubic centimeters in a metric project.  */
	FZ_FUIM_FORMAT_FLOAT_VOLUME_GAL,	/*	@emem	The floating point value is displayed as a volumetric value,  
													converted to and formatted as gallons.  
													The floating point value is assumed to represent cubic inches in an English
													project or cubic centimeters in a metric project.  */
	FZ_FUIM_FORMAT_FLOAT_VOLUME_CUMM,	/*	@emem	The floating point value is displayed as a volumetric value,  
													converted to and formatted as cubic millimeters.  
													The floating point value is assumed to represent cubic inches in an English
													project or cubic centimeters in a metric project.  */
	FZ_FUIM_FORMAT_FLOAT_VOLUME_CUCM,	/*	@emem	The floating point value is displayed as a volumetric value,  
													converted to and formatted as cubic centimeters.  
													The floating point value is assumed to represent cubic inches in an English
													project or cubic centimeters in a metric project.  */
	FZ_FUIM_FORMAT_FLOAT_VOLUME_LITR,	/*	@emem	The floating point value is displayed as a volumetric value,  
													converted to and formatted as liters (cubic decimeter).  
													The floating point value is assumed to represent cubic inches in an English
													project or cubic centimeters in a metric project.  */
	FZ_FUIM_FORMAT_FLOAT_VOLUME_CUMT,	/*	@emem	The floating point value is displayed as a volumetric value,  
													converted to and formatted as cubic meters.  
													The floating point value is assumed to represent cubic inches in an English
													project or cubic centimeters in a metric project.  */
	
	FZ_FUIM_FORMAT_FLOAT_WEIGHT_OZ,		/*	@emem	The floating point value is displayed as a weight value, 
													converted to and formatted as ounces.  
													The floating point value is assumed to represent grams.  */
	FZ_FUIM_FORMAT_FLOAT_WEIGHT_LBS,	/*	@emem	The floating point value is displayed as a weight value,  
													converted to and formatted as pounds (16 ounces).  
													The floating point value is assumed to represent grams.  */
	FZ_FUIM_FORMAT_FLOAT_WEIGHT_ETON,	/*	@emem	The floating point value is displayed as a weight value,  
													converted to and formatted as English tons.  
													The floating point value is assumed to represent grams.  */
	FZ_FUIM_FORMAT_FLOAT_WEIGHT_G,		/*	@emem	The floating point value is displayed as a weight value,  
													converted to and formatted as grams.  
													The floating point value is assumed to represent grams.  */
	FZ_FUIM_FORMAT_FLOAT_WEIGHT_KG,		/*	@emem	The floating point value is displayed as a weight value,  
													converted to and formatted as kilo grams.  
													The floating point value is assumed to represent grams.  */
	FZ_FUIM_FORMAT_FLOAT_WEIGHT_MTON,	/*	@emem	The floating point value is displayed as a weight value,  
													converted to and formatted as metric tons.  
													The floating point value is assumed to represent grams.  */
	
	FZ_FUIM_FORMAT_FLOAT_DURATION_SECONDS,	/*	@emem	The floating point value is displayed as a time value. 
													The variable's value is expected to be in seconds. The 
													display of the duration is shown as seconds. */
	FZ_FUIM_FORMAT_FLOAT_DURATION_HMS,	/*	@emem	The floating point value is displayed as a time value. 
													The variable's value is expected to be in seconds. The 
													display of the duration is shown as hours:minutes:seconds. */
	FZ_FUIM_FORMAT_FLOAT_DURATION_ANIM_DEFAULT,	/*	@emem	The floating point value is displayed as a time value. 
													The variable's value is expected to be in seconds. The 
													display of the duration is shown according to the animatio ndefault settings of the current project. */
	
    FZ_FUIM_FORMAT_FLOAT_WEIGHT_ATON,           /*    @emem    The floating point value is displayed as a weight value,
                                                    converted to and formatted as American tons. */

	FZ_FUIM_FORMAT_FLOAT_MAX

} fz_fuim_format_float_enum;

/********************************************************************************************************

	@grpbegin	FUIM Range Flags Constants

	@desc		These defines are used when specifying the range a value can take. 
				They set how the boundaries of a range are handled.
				They need to be OR-ed together to specify more than one flag. For example to
				specify that a range uses the minimum range and the minimum value is inclusive use the
				following code :
				range = FZ_FUIM_RANGE_MIN <bar> FZ_FUIM_RANGE_MIN_INCL;

	@avail		5.0.0.0
	
	@see		fz_fuim_range_enum

	@toc		fuim_tmpl

*********************************************************************************************************/
/********************************************************************************************************

	@gdef	

	@desc	There are no mimimum or maximum values for the range.<nl>
			If minimum and maximum values are specified, they are ignored.

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_RANGE_NONE			0
/********************************************************************************************************

	@gdef	

	@desc	The minimum allowable value in the range must be greater than the specified minimum.

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_RANGE_MIN			(1<<FZ_FUIM_RANGE_MIN_BIT)
/********************************************************************************************************

	@gdef	

	@desc	The minimum allowable value in the range must be greater than or equal to the specified minimum.

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_RANGE_MIN_INCL		(1<<FZ_FUIM_RANGE_MIN_INCL_BIT)
/********************************************************************************************************

	@gdef	

	@desc	The maximum allowable value in the range must be less than the specified maximum.

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_RANGE_MAX			(1<<FZ_FUIM_RANGE_MAX_BIT)
/********************************************************************************************************

	@gdef	

	@desc	The maximum allowable value in the range must be less than or equal to the specified maximum.

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_RANGE_MAX_INCL		(1<<FZ_FUIM_RANGE_MAX_INCL_BIT)

/********************************************************************************************************

	@gdef	

	@desc	Zero is not allowed as a value.

	@avail	7.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_RANGE_NOT_ZERO		(1<<FZ_FUIM_RANGE_NOT_ZERO_BIT)

/********************************************************************************************************
	@grpend
*********************************************************************************************************/

/********************************************************************************************************

	@struct	

	@desc	This union is used for getting return values from the item function (fz_fuim_item_func).
			
	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
typedef union fz_fuim_type_td
{	fzrt_boolean		fuim_boolean;	/* @field Storage for boolean data. */
	char				fuim_char;		/* @field Storage for character data. */
	unsigned char		fuim_uchar;		/* @field Storage for unsigned character data. */
	short				fuim_short;		/* @field Storage for short data. */
	unsigned short		fuim_ushort;	/* @field Storage for unsigned short data. */
	fzrt_int			fuim_int;		/* @field Storage for fzrt_int data. */
	fzrt_unsigned_int	fuim_uint;		/* @field Storage for fzrt_unsigned_int data. */
	float				fuim_float;		/* @field Storage for float data. */
	double				fuim_double;	/* @field Storage for double data. */
} fz_fuim_type_td;

#define fuim_long fuim_int
#define fuim_ulong fuim_uint
/********************************************************************************************************

	@struct	

	@desc	This structure is used when a key press is handled in a custom item function.
			
	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
typedef struct fz_fuim_key_td {	
	short 		hit_char;		/* @field	Character of the key that was hit. */
	short 		virt_code;		/* @field	Virtual key code of the key that was hit. */
	fzrt_point	where;			/* @field	Point where the key hit took place. */
	fzrt_int 		when;			/* @field	When the key was hit. */
	fzrt_int 		modifiers;		/* @field	Specifies what key modifiers are being held down. */
	short 		repeat;			/* @field	Specifies if the hit key being held down. 0 means it's not. */
	short		button;			/* @field   Specifies which mouse button was pressed. */
} fz_fuim_key_td;

/********************************************************************************************************

	@struct	

	@desc	This structure is used when a scroll wheel (on mouse) is handled in a custom item function.
			
	@avail	5.5.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
typedef struct fz_fuim_wheel_td {	
	fzrt_int 		delta1;			/* @field	delta value for primary direction of wheel. */
	fzrt_int 		delta2;			/* @field	delta value for secondary direction of wheel. */
	fzrt_point	where;			/* @field	Point where the wheel took place. */
} fz_fuim_wheel_td;

/********************************************************************************************************

	@type	

	@desc	Pointer to a data structure that holds information about a menu manager.
			
	@avail	5.0.0.0

	@see	<auto>

	@toc	fuim_tmpl

*********************************************************************************************************/
typedef struct fz_menu_mngr_td			*fz_fuim_menu_ptr;

/********************************************************************************************************

	@def	

	@desc	Converts a bit value into a mask. 
			Useful for converting a known bit into a bit mask for use with the bit_mask parameter of the 
			fuim item encode functions.

	@see	fz_fuim_item_encod_bool,fz_fuim_item_encod_char,fz_fuim_item_encod_uchar,fz_fuim_item_encod_short,
			fz_fuim_item_encod_ushort,fz_fuim_item_encod_int,fz_fuim_item_encod_uint

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_BIT2_MASK(x)			(1<<(x))

/********************************************************************************************************

	@def	

	@desc	Indicates that a group/item id doesn't exist for a group/item.

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_NONE 	(-1)

/********************************************************************************************************

	@def	

	@desc	Indicates that a group/item id is a child of the root group.

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_ROOT 	(-1)

/********************************************************************************************************

	@enum	

	@desc	Bit flags that are used to change how fuim items and groups are displayed.
			To set a variable with a bit flag, see FZ_SETBIT, FZ_CLRBIT, FZ_CHKBIT.
			Alternatively, the constants below could be used.
	
	@avail	5.0.0.0
			
	@see	FZ_FUIM_FLAG_NONE,
			FZ_FUIM_FLAG_HORZ,
			FZ_FUIM_FLAG_BRDR,
			FZ_FUIM_FLAG_INDT,
			FZ_FUIM_FLAG_GFLT,
			FZ_FUIM_FLAG_HTOP,
			FZ_FUIM_FLAG_HBOT,
			FZ_FUIM_FLAG_VCNT,
			FZ_FUIM_FLAG_VRGT,
			FZ_FUIM_FLAG_SMAL,
			FZ_FUIM_FLAG_EQSZ,
			FZ_FUIM_FLAG_JRGT,
			FZ_FUIM_FLAG_DIMM,
			FZ_FUIM_FLAG_FRAM,
			FZ_FUIM_FLAG_PASS,
			FZ_FUIM_FLAG_UCOD

	@toc	fuim_tmpl

*********************************************************************************************************/
typedef enum fz_fuim_flag_enum
{	FZ_FUIM_FLAG_HORZ_BIT=0,	/*	@emem	Indicates that all child groups/items of the newly created group/item will be laid 
											out horizontally. If this isn't set, child groups/items are laid out vertically. */
	FZ_FUIM_FLAG_BRDR_BIT,		/*	@emem	Indicates that all child groups/items of the newly created group/item will have a border around them. */
	FZ_FUIM_FLAG_INDT_BIT,		/*	@emem	Indicates that all child groups/items of the newly created group/item will be indented. */
	FZ_FUIM_FLAG_GFLT_BIT,		/*	@emem	Indicates that the group is flat. */
	FZ_FUIM_FLAG_HTOP_BIT,		/*	@emem	Indicates text is top justified. */
	FZ_FUIM_FLAG_HBOT_BIT,		/*	@emem	Indicates text is bottom justified. */
	FZ_FUIM_FLAG_VCNT_BIT,		/*	@emem	Indicates text is center justified. */
	FZ_FUIM_FLAG_VRGT_BIT,		/*	@emem	Indicates text is right justified. */
	FZ_FUIM_FLAG_SMAL_BIT,		/*	@emem	Indicates that the newly created item will use small graphics. */
	FZ_FUIM_FLAG_EQSZ_BIT,		/*	@emem	Indicates that all child groups/items of the newly created group/item will be created the same size. 
											The size is the largest item in the group.*/
	FZ_FUIM_FLAG_JRGT_BIT,		/*	@emem	Indicates that all child groups/items of the newly created group/item will be right justified. */
	FZ_FUIM_FLAG_DIMM_BIT,		/*	@emem	Indicates that all child groups/items of the newly created group/item will be dimmed. */
	FZ_FUIM_FLAG_FRAM_BIT,		/*	@emem	Indicates that all child groups/items of the newly created group/item will have a frame around them. */
	FZ_FUIM_FLAG_PASS_BIT,		/*	@emem	Indicates that the edit field is to be treated as a password field. */
	FZ_FUIM_FLAG_UCOD_BIT,		/*	@emem	Indicates that the string is a unicode string */
	FZ_FUIM_FLAG_LINE_BIT,		/*	@emem	Indicates that all child groups/items of the newly created group/item will have a border 
											line under the group primary item (ie like FZ_FUIM_FLAG_BRDR_BIT with just a line) @pavail 7.0.0.0 */
	FZ_FUIM_FLAG_FEDT_BIT,		/*	@emem	Indicates that a text edit field appears to be editable but is not.  This flag assumes that a custom control
											captures the keystrokes making the edit field appear editable.  Use this if special
											key stroke filtering or processing is needed. @pavail 7.0.0.0 */
	FZ_FUIM_FLAG_VERT_BIT,		/*	@emem	Indicates that a static text item will be rotated 90 degrees. @pavail 7.0.0.0 */
	FZ_FUIM_FLAG_NMEX_BIT,		/*	@emem	Indicates that a icon button will ba drawn in the non-mutually exclusive style. @pavail 7.0.0.0 */
	FZ_FUIM_FLAG_NCNT_BIT,		/*	@emem	Indicates that a continuous control (slider, color picker) should send new value and set value messages
											in a non-continuous manor.  In other words, when the mouse button is released and dragging is completed. @pavail 7.0.0.0 */
	FZ_FUIM_FLAG_SHAD_BIT,		/*	@emem	Indicates that a border control (text, check box, radio button) have a shade (disclose) button. @pavail 7.0.0.0 */
	
	FZ_FUIM_FLAG_MAX
} fz_fuim_flag_enum;

/********************************************************************************************************

	@grpbegin	FUIM Item Flags Constants

	@desc		These defines are used to change how fuim items and groups are displayed.
				They need to be OR-ed together to specify more than one flag. For example to
				specify that a field uses the border and horizontal flags use the
				following code :
				flags = FZ_FUIM_FLAG_BRDR <bar> FZ_FUIM_FLAG_HORZ;

	@avail		5.0.0.0
	
	@see		fz_fuim_flag_enum

	@toc		fuim_tmpl

*********************************************************************************************************/
/********************************************************************************************************

	@gdef	

	@desc	Indicates there are no options set for how a group/item is displayed. 
			This is the default for how groups/items are displayed.

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_FLAG_NONE		0
/********************************************************************************************************

	@gdef	

	@desc	Indicates that all child groups/items of the newly created group/item 
			will be laid out horizontally.<nl>
			If this isn't set, child groups/items are laid out vertically.

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_FLAG_HORZ		(1<<FZ_FUIM_FLAG_HORZ_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Indicates that all child groups/items of the newly created group/item 
			will have a border around them.

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_FLAG_BRDR		(1<<FZ_FUIM_FLAG_BRDR_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Indicates that all child groups/items of the newly created group/item 
			will be indented.

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_FLAG_INDT		(1<<FZ_FUIM_FLAG_INDT_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Indicates that the group is flat.

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_FLAG_GFLT		(1<<FZ_FUIM_FLAG_GFLT_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Indicates text is top justified.<nl>
			Default is center vertical justification.

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_FLAG_HTOP		(1<<FZ_FUIM_FLAG_HTOP_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Indicates text is bottom justified.<nl>
			Default is center vertical justification.

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_FLAG_HBOT		(1<<FZ_FUIM_FLAG_HBOT_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Indicates text is horizontallly center justified.<nl>
			Default is left justified.

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_FLAG_VCNT		(1<<FZ_FUIM_FLAG_VCNT_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Indicates text is right justified.<nl>
			Default is left justified.

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_FLAG_VRGT		(1<<FZ_FUIM_FLAG_VRGT_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Indicates that the newly created item will use small graphics.

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_FLAG_SMAL		(1<<FZ_FUIM_FLAG_SMAL_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Indicates that all child groups/items of the newly created group/item 
			will be created the same size. 
			The size is the largest item in the group.

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_FLAG_EQSZ		(1<<FZ_FUIM_FLAG_EQSZ_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Indicates that all child groups/items of the newly created group/item 
			will be right justified.

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_FLAG_JRGT		(1<<FZ_FUIM_FLAG_JRGT_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Indicates that all child groups/items of the newly created group/item 
			will be dimmed. 
			The children will remain dimmed for the life of the dialog.

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_FLAG_DIMM		(1<<FZ_FUIM_FLAG_DIMM_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Indicates that all child groups/items of the newly created group/item 
			will have a frame around them.

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_FLAG_FRAM		(1<<FZ_FUIM_FLAG_FRAM_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Indicates that the edit field is to be treated as a password field. 
			A password field has it's contents obscured.

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_FLAG_PASS		(1<<FZ_FUIM_FLAG_PASS_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Indicates that the string is a unicode string. 
			The string used for the fuim edit control is a unicode encoded strng.

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_FLAG_UCOD		(1<<FZ_FUIM_FLAG_UCOD_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Indicates that all child groups/items of the newly created group/item will have a border 
			line under the group primary item (ie like FZ_FUIM_FLAG_BRDR_BIT with just a line) 

	@avail	7.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_FLAG_LINE		(1<<FZ_FUIM_FLAG_LINE_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Indicates that a text edit field appears to be editable but is not.  This flag assumes that a custom control
			captures the keystrokes making the edit field appear editable.  Use this if special
			key stroke filtering or processing is needed.

	@avail	7.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_FLAG_FEDT		(1<<FZ_FUIM_FLAG_FEDT_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Indicates that a static text item will be rotated 90 degrees.

	@avail	7.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_FLAG_VERT		(1<<FZ_FUIM_FLAG_VERT_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Indicates that a icon button will ba drawn in the non-mutually exclusive style.

	@avail	7.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_FLAG_NMEX		(1<<FZ_FUIM_FLAG_NMEX_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Indicates that a continuous control (slider, color picker) should send new value and set value messages
			in a non-continuous manor.  In other words, when the mouse button is released and dragging is completed.

	@avail	7.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_FLAG_NCNT		(1<<FZ_FUIM_FLAG_NCNT_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Indicates that a border control (text, check box, radio button) have a shade (disclose) button.

	@avail	7.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_FLAG_SHAD		(1<<FZ_FUIM_FLAG_SHAD_BIT)
/********************************************************************************************************
	@grpend
*********************************************************************************************************/

/********************************************************************************************************

	@enum	
	
	@desc	Bit flags that are used to indicate the alignment of fuim items and groups.
			To set a variable with a bit flag, see FZ_SETBIT, FZ_CLRBIT, FZ_CHKBIT.
			Alternatively, the constants below could be used.
			
	@avail	5.0.0.0
			
	@see	<auto>,
			FZ_FUIM_ALIGN_HTOP,
			FZ_FUIM_ALIGN_HCNT,
			FZ_FUIM_ALIGN_HBOT,
			FZ_FUIM_ALIGN_HEQU,
			FZ_FUIM_ALIGN_VLFT,
			FZ_FUIM_ALIGN_VCNT,
			FZ_FUIM_ALIGN_VRGT,
			FZ_FUIM_ALIGN_VEQU,
			FZ_FUIM_ALIGN_MAX,
			FZ_FUIM_ALIGN_MIN
	
	@toc	fuim_tmpl

*********************************************************************************************************/
typedef enum fz_fuim_align_enum
{	FZ_FUIM_ALIGN_HTOP_BIT=0,	/*	@emem	Indicates horizontally laid out groups/items are to be aligned by their top edges. */
	FZ_FUIM_ALIGN_HCNT_BIT,		/*	@emem	Indicates horizontally laid out groups/items are to be aligned by their centers. */
	FZ_FUIM_ALIGN_HBOT_BIT,		/*	@emem	Indicates horizontally laid out groups/items are to be aligned by their bottom edges. */
	FZ_FUIM_ALIGN_HEQU_BIT,		/*	@emem	Indicates horizontally laid out groups/items are to be equally sized. */
	FZ_FUIM_ALIGN_VLFT_BIT,		/*	@emem	Indicates vertically laid out groups/items are to be aligned by their left edges. */
	FZ_FUIM_ALIGN_VCNT_BIT,		/*	@emem	Indicates vertically laid out groups/items are to be aligned by their centers. */
	FZ_FUIM_ALIGN_VRGT_BIT,		/*	@emem	Indicates vertically laid out groups/items are to be aligned by their right edges. */
	FZ_FUIM_ALIGN_VEQU_BIT,		/*	@emem	Indicates vertically laid out groups/items are to be equally sized. */
	FZ_FUIM_ALIGN_MAX_BIT,		/*	@emem	Indicates to use the groups maximum dimensions. */
	FZ_FUIM_ALIGN_MIN_BIT,		/*	@emem	Indicates to use the groups minimum dimensions. */
	
	FUIM_ALIGN_MAX
} fz_fuim_align_enum;

/********************************************************************************************************

	@grpbegin	FUIM Alignment Constants

	@desc		These defines are used to change the alignment of fuim items and groups.
				They need to be OR-ed together to specify more than one flag. For example to
				specify that a field uses the horizontal top and vertical center flags use the
				following code :
				flags = FZ_FUIM_ALIGN_HTOP <bar> FZ_FUIM_ALIGN_VCNT;

	@avail		5.0.0.0
	
	@see		fz_fuim_align_enum

	@toc		fuim_tmpl

*********************************************************************************************************/
/********************************************************************************************************

	@gdef	

	@desc	Alignment flag that indicates horizontally laid out groups/items are to be aligned by their 
			top edges.

	@see	

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_ALIGN_HTOP		(1<<FZ_FUIM_ALIGN_HTOP_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Alignment flag that indicates horizontally laid out groups/items are to be aligned by their 
			centers.

	@see	fz_fuim_item_align

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_ALIGN_HCNT		(1<<FZ_FUIM_ALIGN_HCNT_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Alignment flag that indicates horizontally laid out groups/items are to be aligned by their 
			bottom edges.

	@see	fz_fuim_item_align

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_ALIGN_HBOT		(1<<FZ_FUIM_ALIGN_HBOT_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Alignment flag that indicates horizontally laid out groups/items are to be equally sized.

	@see	fz_fuim_item_align

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_ALIGN_HEQU		(1<<FZ_FUIM_ALIGN_HEQU_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Alignment flag that indicates vertically laid out groups/items are to be aligned by their 
			left edges.

	@see	fz_fuim_item_align

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_ALIGN_VLFT		(1<<FZ_FUIM_ALIGN_VLFT_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Alignment flag that indicates vertically laid out groups/items are to be aligned by their 
			centers.

	@see	fz_fuim_item_align

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_ALIGN_VCNT		(1<<FZ_FUIM_ALIGN_VCNT_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Alignment flag that indicates vertically laid out groups/items are to be aligned by their 
			right edges.

	@see	fz_fuim_item_align

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_ALIGN_VRGT		(1<<FZ_FUIM_ALIGN_VRGT_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Alignment flag that indicates vertically laid out groups/items are to be equally sized.

	@see	fz_fuim_item_align

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_ALIGN_VEQU		(1<<FZ_FUIM_ALIGN_VEQU_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Alignment flag that indicates to use the groups maximum dimensions.

	@see	fz_fuim_item_align

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_ALIGN_MAX		(1<<FZ_FUIM_ALIGN_MAX_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Alignment flag that indicates to use the groups minimum dimensions.

	@see	fz_fuim_item_align

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define FZ_FUIM_ALIGN_MIN		(1<<FZ_FUIM_ALIGN_MIN_BIT)
/********************************************************************************************************
	@grpend		
*********************************************************************************************************/

/********************************************************************************************************

	@func		

	@desc		Interface setup function prototype.  Use this prototype to create a user interface template that is 
				invoked by the driver function: fz_fuim_dlog_drive_data. 
				This callback function is called to create fuim template content for dialogs and palettes. 
				This function should call first fz_fuim_tmpl_init to initialize the template and then call functions to create 
				the desired items (functions that start with fz_fuim_new_) and bind them to their corresponding 
				storage (functions that start with fz_fuim_item_). The template utility functions (functions that start with fz_fuim_tmpl_) 
				can be used to add additional functionality to the template.

	@return		Error codes

	@avail		5.0.0.0

	@see		<auto>,fz_fuim_setup_data_func,fz_fuim_setup_windex_func

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_fuim_setup_func)(
	fz_fuim_tmpl_ptr 	tmpl_ptr		/* @parm	<in> | pointer to fuim template (provided by driver). Needed for additional fuim function calls */
	);

/********************************************************************************************************

	@func		

	@desc		Interface setup function prototype.  Use this prototype to create a user interface template that is 
				invoked by the driver function: fz_fuim_dlog_drive_data. 
				This callback function is called to create fuim template content for dialogs and palettes. 
				This function should call fz_fuim_tmpl_init to initialize the template and then call functions to create 
				the desired items (functions that start with fz_fuim_new_) and bind them to their corresponding 
				storage (functions that start with fz_fuim_item_). The template utility functions (functions that start with fz_fuim_tmpl_) 
				can be used to add additional functionality to the template. <nl>
				
				The tmpl_data parameter is the data pointer that is provided by the driver function and is how 
				to get external information into the setup function without the need for a global variable.

	@return		Error codes

	@avail		5.0.0.0

	@see		<auto>,fz_fuim_setup_func,fz_fuim_setup_windex_func

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_fuim_setup_data_func)(
	fz_fuim_tmpl_ptr 	tmpl_ptr,	/* @parm	<in> | pointer to fuim template (provided by driver). Needed for additional fuim function calls */
	fzrt_ptr			tmpl_data	/* @parm	<in> | data pointer that is provided by the driver function 		*/
	);

/********************************************************************************************************

	@func		

	@desc		Interface setup function prototype. Use this prototype to create a user interface template that is 
				invoked by the driver function: fz_fuim_dlog_drive_windex.
				This function is called to create fuim template content for dialogs and palettes. 
				This function should first call fz_fuim_tmpl_init to initialize the given template and then call functions to create 
				the desired items (functions that start with fz_fuim_new_) and bind them to their corresponding 
				storage (functions that start with fz_fuim_item_). The template utility functions (functions that start with fz_fuim_tmpl_) 
				can be used to add additional functionality to the template. <nl>
				
				The windex and tmpl_data parameters are the corresponding parameters that are provided by the driver function and is how 
				to get external information into the setup function without the need for global variables.

	@return		Error codes

	@avail		5.0.0.0

	@see		<auto>,fz_fuim_setup_func,fz_fuim_setup_data_func

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef fzrt_error_td (FZRT_SPEC *fz_fuim_setup_windex_func)(
	fzrt_int					windex,			/* @parm	<in> | project window index passed into fz_fuim_setup_windex */
	fz_fuim_tmpl_ptr 		tmpl_ptr,		/* @parm	<in> | pointer to the template provided by the driver. Needed for additional fuim function calls */
	fzrt_ptr				tmpl_data		/* @parm	<in> | data pointer that is provided by the driver function 		*/	
	);

/********************************************************************************************************

	@func		

	@desc		This function is called to handle events that happen to an item.<nl>
				It is passed in the item_func parameter of the any of the functions that 
				start with fz_fuim_new_.<nl>
				Not all action types have to be handled in the function.

	@return		TRUE if the action was handled successfully, FALSE if it was not successful.

	@avail		5.0.0.0

	@see		<auto>

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short (FZRT_SPEC *fz_fuim_item_func)(
	fz_fuim_tmpl_ptr		fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	fzrt_int					action,			/* @parm	<in> | type of action that occurred				*/
	short					item_id,		/* @parm	<in> | index of the item that an action occurred */
	void					*func_data,		/* @parm	<in> | data to pass to the item function		*/
	fz_fuim_type_td			*rv_data		/* @parm	<out> | return value for the action				*/
	);

/* NO LONGER USED. NEEDED FOR BACKWARD COMPATIBILITY */
typedef short (FZRT_SPEC *fz_fuim_new_text_info_char_unused_func)(fz_fuim_tmpl_ptr fuim_tmpl,short parent,short id,fzrt_int flags,short format,char *data_ptr,short persist,short width,short height,fz_fuim_item_func item_func,void *item_data);
typedef short (FZRT_SPEC *fz_fuim_new_text_info_uchar_unused_func)(fz_fuim_tmpl_ptr fuim_tmpl,short parent,short id,fzrt_int flags,short format,unsigned char *data_ptr,short persist,short width,short height,fz_fuim_item_func item_func,void *item_data);	
typedef short (FZRT_SPEC *fz_fuim_new_text_info_short_unused_func)(fz_fuim_tmpl_ptr fuim_tmpl,short parent,short id,fzrt_int flags,short format,short *data_ptr,short persist,short width,short height,fz_fuim_item_func item_func,void *item_data);
typedef short (FZRT_SPEC *fz_fuim_new_text_info_ushort_unused_func)(fz_fuim_tmpl_ptr fuim_tmpl,	short parent,short id,fzrt_int flags,short format,unsigned short *data_ptr,short persist,short width,short height,fz_fuim_item_func item_func,void *item_data);
typedef short (FZRT_SPEC *fz_fuim_new_text_info_int_unused_func)(fz_fuim_tmpl_ptr fuim_tmpl,short parent,short id,fzrt_int flags,short format,fzrt_int *data_ptr,short persist,short width,short height,fz_fuim_item_func item_func,void *item_data);
typedef short (FZRT_SPEC *fz_fuim_new_text_info_uint_unused_func)(fz_fuim_tmpl_ptr fuim_tmpl,short parent,short id,fzrt_int flags,short format,fzrt_unsigned_int *data_ptr,short persist,short width,short height,fz_fuim_item_func item_func,void *item_data);
typedef short (FZRT_SPEC *fz_fuim_new_text_info_float_unused_func)(fz_fuim_tmpl_ptr fuim_tmpl,short parent,short id,fzrt_int flags,short format,float *data_ptr,short persist,short width,short height,fz_fuim_item_func item_func,void *item_data);
typedef short (FZRT_SPEC *fz_fuim_new_text_info_double_unused_func)(fz_fuim_tmpl_ptr fuim_tmpl,short parent,short id,fzrt_int flags,short format,double *data_ptr,short persist,short width,short height,fz_fuim_item_func item_func,void *item_data);

/********************************************************************************************************

	@func		

	@desc		This function is called to handle events that happen to a custom item.<nl>
				It is passed in the cust_func parameter of fz_fuim_new_custom when creating 
				a new custom item. It can also be is passed in the func parameter of 
				fz_fuim_tmpl_item_set_cust_func when setting a custom function of an already 
				created custom item.<nl>
				Not all action types have to be handled in the function.

	@return		TRUE if the action was handled successfully, FALSE if it was not successful.

	@avail		5.0.0.0

	@see		fz_fuim_new_custom,fz_fuim_tmpl_item_set_cust_func

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short (FZRT_SPEC *fz_fuim_item_cust_func)(
	fz_fuim_tmpl_ptr	fuim_tmpl,		/* @parm	<in> | fuim manager											*/
	short				indx,				/* @parm	<in> | item id of custom item that an action occurred on		*/
	fz_fuim_actn_cust_enum	action,				/* @parm	<in> | type of action that occurred						*/
	fz_type_td			*action_data,		/* @parm	<in_out> | data passed to be used by the action				*/
	void				*func_data,			/* @parm	<in> | data to pass to the custom item function		*/
	void				**prvt_data			/* @parm	<out> | data that is created by the custom function for return	*/
	);

/********************************************************************************************************

	@func		

	@desc		fuim action function.<nl>
				This function is registered with the template called when a specific action occurs.<nl>
				The action is determined by the registration function used.
	
	@return		TRUE if the action was handled successfully, FALSE if it was not successful.

	@avail		5.0.0.0

	@see		<auto>

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef fzrt_boolean  (FZRT_SPEC *fz_fuim_tmpl_actn_func)(
	fz_fuim_tmpl_ptr 	fuim_tmpl,				/* @parm	<in> | fuim manager								*/
	void				*actn_data				/* @parm	<in> | registered with the action function		*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Initialize interface template. This function must be the first function called in an 
				interface setup function. The titl_str parameter is shown in the name of the dialog or 
				palette window title bar. <nl>
				
				The UUID and version are provided so that formZ can maintain some persistent information 
				about the template so that is kept in same state when it is invoked the next time. 
				This includes settings like the active tab in tab controls, the collapse state for 
				groups in palettes etc. This information is also used to automate the predefined settings 
				menu which is present next to the reset button (when a UUID is provided). The version number 
				should start at 0 and if the content of the template is changed, the version number should be 
				increased so that formZ can properly handle persistent information from previous versions.

	@return		Error codes

	@avail		5.0.0.0

	@see		fz_fuim_setup_func,fz_fuim_setup_data_func,fz_fuim_setup_windex_func

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef fzrt_error_td 	 (FZRT_SPEC *fz_fuim_tmpl_init_func)(
	fz_fuim_tmpl_ptr 	fuim_tmpl,		/* @parm	<in> | pointer to fuim template */
	char				*titl_str,		/* @parm	<in> | name of template. */
	short 				tmpl_flags, 	/* @parm	<in> | options flags for template. Exists for future compatibility. Should always be 0 */
	fzrt_UUID_td		uuid, 			/* @parm	<in_opt> | UUID for template */
	fzrt_int 				version			/* @parm	<in> | version for template */
	);



/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new fuim group. 
				All items created using this group's id as a parent will appear in this group.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific group id. 
				An id will be created and assigned to the group and returned.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.

	@return		Group id

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_group_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager							*/
	short			parent,				/* @parm	<in> | parent group							*/
	short			id,					/* @parm	<in> | group id								*/
	fzrt_int			flags,				/* @parm	<in> | construction flags
										   @rflag	fz_fuim_flag_enum							*/
	char			*titl_str			/* @parm	<in_opt> | group title
										   @default	a group without a title is created			*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new tab group. 
				All items created using this group's id as a parent will appear in this tab.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific group id. 
				An id will be created and assigned to the group and returned.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				item_func is an optional function that is called to handle actions occurring to this group.

	@return		Tab group id

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_tab_group_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	short				parent,				/* @parm	<in> | parent group								*/
	short				id,					/* @parm	<in> | group id									*/
	fzrt_int				flags,				/* @parm	<in> | construction flags
											   @rflag	fz_fuim_flag_enum								*/
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function						*/
	void				*item_data			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored			*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new frame group. 
				All items created using this group's id as a parent will appear in this group, bounded by a border.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific group id. 
				An id will be created and assigned to the group and returned.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				item_func is an optional function that is called to handle actions occurring to this group.

	@return		Frame group id

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_frame_group_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	short				parent,				/* @parm	<in> | parent group								*/
	short				id,					/* @parm	<in> | group id									*/
	fzrt_int				flags,				/* @parm	<in> | construction flags
											   @rflag	fz_fuim_flag_enum								*/
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function						*/
	void				*item_data			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored			*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new button item.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item and returned.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				item_func is an optional function that is called to handle actions occurring to this item.

	@return		Button id

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_button_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short				parent,				/* @parm	<in> | parent group									*/
	short				id,					/* @parm	<in> | item id										*/
	fzrt_int				flags,				/* @parm	<in> | construction flags
											   @rflag	fz_fuim_flag_enum									*/
	char				*titl_str,			/* @parm	<in_opt> | button title
											   @default	button item is created without a title				*/
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function							*/
	void				*item_data			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored				*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a divider item that is used to separate items or groups.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item and returned.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				item_func is an optional function that is called to handle actions occurring to this item.

	@return		Divider id

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_divider_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short				parent,				/* @parm	<in> | parent group									*/
	short				id,					/* @parm	<in> | item id										*/
	fzrt_int				flags,				/* @parm	<in> | construction flags
											   @rflag	fz_fuim_flag_enum									*/
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function							*/
	void				*item_data			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored				*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a spacer item that is used to add a blank area of space for the purpose of spreading
				items in a template farther apart.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item and returned.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				item_func is an optional function that is called to handle actions occurring to this item.

	@return		Spacer id

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_spacer_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short				parent,				/* @parm	<in> | parent group									*/
	short				id,					/* @parm	<in> | item id										*/
	fzrt_int				flags,				/* @parm	<in> | construction flags
											   @rflag	fz_fuim_flag_enum									*/
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function							*/
	void				*item_data			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored				*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new radio button item.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item and returned.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				item_func is an optional function that is called to handle actions occurring to this item.

	@return		Radio button id

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_radio_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager										*/
	short				parent,				/* @parm	<in> | parent group										*/
	short				id,					/* @parm	<in> | item id											*/
	fzrt_int				flags,				/* @parm	<in> | construction flags
											   @rflag	fz_fuim_flag_enum								*/
	char				*titl_str,			/* @parm	<in_opt> | radio button title
											   @default	a radio button item without a title is created			*/
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function								*/
	void				*item_data			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored					*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new radio button item with a static text item.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item and returned.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				item_func is an optional function that is called to handle actions occurring to this item.

	@return		Radio button id

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short	 (FZRT_SPEC *fz_fuim_new_radio_text_static_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager										*/
	short				parent,				/* @parm	<in> | parent group										*/
	short				radio_id,			/* @parm	<in> | radio button item id								*/
	char				*radio_str,			/* @parm	<in> | radio button string								*/
	short				text_id,			/* @parm	<in> | static text item id								*/
	char				*text_str, 			/* @parm	<in_opt> | radio button title
											   @default	a radio button item without a title is created			*/
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function								*/
	void				*item_data,			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored					*/
	short				*radio_indx,		/* @parm	<out_opt> | item id of radio item						*/
	short				*text_indx			/* @parm	<out_opt> | item id of static text item					*/
	);



/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new checkbox item.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to each item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				item_func is an optional function that is called to handle actions occurring to this item.

	@return		Checkbox id

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_check_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short				parent,				/* @parm	<in> | parent group									*/
	short				id,					/* @parm	<in> | checkbox item id								*/
	fzrt_int				flags,				/* @parm	<in> | construction flags
											   @rflag	fz_fuim_flag_enum									*/
	char				*titl_str,			/* @parm	<in_opt> | checkbox title
											   @default	a checkbox item without a title is created			*/
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function							*/
	void				*item_data			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored				*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new checkbox item.<nl>
				Pass FZ_FUIM_NONE for check_id to not assign a specific item id. 
				An id will be created and assigned to each item.<nl>
				The checkbox item id is returned by the function and the edit item 
				id is returned in edit_indx.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				item_func is an optional function that is called to handle actions occurring to this item.

	@return		Checkbox item id

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short	 (FZRT_SPEC *fz_fuim_new_check_edit_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short				parent,				/* @parm	<in> | parent group									*/
	short				check_id,			/* @parm	<in> | checkbox item id								*/
	char				*check_str,			/* @parm	<in_opt> | checkbox title
											   @default	a checkbox item without a title is created			*/
	short				edit_id,			/* @parm	<in> | edit box item id								*/
	fzrt_int				edit_flags,			/* @parm	<in> | edit flags									*/
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function							*/
	void				*item_data,			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored				*/
	short				*edit_indx			/* @parm	<out_opt> | edit box item id						*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new slider item.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				item_func is an optional function that is called to handle actions occurring to this item.

	@return		Slider id

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_slider_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short				parent,				/* @parm	<in> | parent group									*/
	short				id,					/* @parm	<in> | slider item id								*/
	fzrt_int				flags,				/* @parm	<in> | construction flags
											   @rflag	fz_fuim_flag_enum									*/
	char				*titl_str,			/* @parm	<in_opt> | slider title
											   @default	a slider item without a name is created				*/
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function							*/
	void				*item_data			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored				*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new static (uneditable) text item.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				item_func is an optional function that is called to handle actions occurring to this item.

	@return		Static text id

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_text_static_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short				parent,				/* @parm	<in> | parent group									*/
	short				id,					/* @parm	<in> | static text item id							*/
	fzrt_int				flags,				/* @parm	<in> | construction flags
											   @rflag	fz_fuim_flag_enum									*/
	char				*titl_str,			/* @parm	<in_opt> | item text
											   @default	an empty static text item is created				*/
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function							*/
	void				*item_data			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored				*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new edit (editable) text item.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				item_func is an optional function that is called to handle actions occurring to this item.

	@return		Edit text id

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_text_edit_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short				parent,				/* @parm	<in> | parent group									*/
	short				id,					/* @parm	<in> | edit text item id							*/
	fzrt_int				flags,				/* @parm	<in> | construction flags
											   @rflag	fz_fuim_flag_enum									*/
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function							*/
	void				*item_data			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored				*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new note text item.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				item_func is an optional function that is called to handle actions occurring to this item.

	@return		Note text id

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_note_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short				parent,				/* @parm	<in> | parent group									*/
	short				id,					/* @parm	<in> | note text item id							*/
	fzrt_int				flags,				/* @parm	<in> | construction flags
											   @rflag	fz_fuim_flag_enum									*/
	char				*titl_str,			/* @parm	<in_opt> | note title
											   @default	a note item without a name is created				*/
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function							*/
	void				*item_data			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored				*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new icon item.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				item_func is an optional function that is called to handle actions occurring to this item.

	@return		Icon id

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_icon_func)(
	fz_fuim_tmpl_ptr	fuim_tmpl,			/* @parm	<in> | fuim manager									*/
	short				parent,				/* @parm	<in> | parent group									*/
	short				id,					/* @parm	<in> | icon item id									*/
	fzrt_int				flags,				/* @parm	<in> | construction flags
											   @rflag	fz_fuim_flag_enum									*/
	fzrt_floc_ptr 		floc,				/* @parm	<in> | file location of file which contains the icon. */
	fzrt_int 				hpos, 				/* @parm	<in> | left horizontal location of icon data in file. */
	fzrt_int 				vpos, 				/* @parm	<in> | top vertical location of icon data in file. */
	fzrt_floc_ptr 		floc_mask, 			/* @parm	<in_opt> | file location of file which contains the icon mask data. */
	fzrt_int 				hpos_mask, 			/* @parm	<in_opt> | left horizontal location of icon mask data in file. */
	fzrt_int 				vpos_mask,			/* @parm	<in_opt> | top vertical location of icon mask data in file. */
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function							*/
	void				*item_data			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored				*/
	);


/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new menu item.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				item_func is an optional function that is called to handle actions occurring to this item.

	@return		Menu id

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_menu_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short				parent,				/* @parm	<in> | parent group									*/
	short				id,					/* @parm	<in> | menu item id									*/
	fzrt_int				flags,				/* @parm	<in> | construction flags
											   @rflag	fz_fuim_flag_enum									*/
	char				*titl_str,			/* @parm	<in_opt> | menu title
											   @default	a menu item without a name is created				*/
	fzrt_menu_ptr		menu,				/* @parm	<in> | pointer to menu								*/
	fzrt_boolean		is_pop,				/* @parm	<in> | if TRUE, the menu is a popup, 
														otherwise it is a standard menu						*/
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function							*/
	void				*item_data			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored				*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new image item.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				item_func is an optional function that is called to handle actions occurring to this item.

	@return		Picture id

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_image_func)(
	fz_fuim_tmpl_ptr 	fuim_tmpl,			/* @parm	<in> | fuim manager									*/
	short				parent,				/* @parm	<in> | parent group									*/
	short				id,					/* @parm	<in> | image item id								*/
	fzrt_int				flags,				/* @parm	<in> | construction flags
											   @rflag	fz_fuim_flag_enum									*/
	fzrt_floc_ptr		floc,				/* @parm	<in> | file location of image 						*/
	double				scale,				/* @parm	<in> | scale to show image 							*/
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function							*/
	void				*item_data			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored				*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new custom item. 
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				item_func is an optional function that is called to handle actions occurring to this item.

	@return		Custom id

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_custom_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short					parent,				/* @parm	<in> | parent group									*/
	short					id,					/* @parm	<in> | custom item id								*/
	fzrt_int					flags,				/* @parm	<in> | construction flags
												   @rflag	fz_fuim_flag_enum							*/
	char					*titl_str,			/* @parm	<in_opt> | custom title
												   @default	a picture item without a name is created			*/
	fz_fuim_item_cust_func	cust_func,			/* @parm	<in_opt> | custom function							*/
	void					*cust_data			/* @parm	<in_opt> | data to pass to custom function<nl>
															if cust_func is NULL, this is ignored				*/
	);


/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new color picker item (using a float for the color).<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>

	@return		Color picker item id

	@avail		5.0.0.0

	@see		fz_fuim_new_color_box2

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_color_box_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,	/* @parm	<in> | fuim manager									*/
	short	parent,				/* @parm	<in> | parent group									*/
	short	id,					/* @parm	<in> | color picker item id							*/
	fzrt_int	flags,				/* @parm	<in> | construction flags
								   @rflag	fz_fuim_flag_enum									*/
	char	*picker_title,		/* @parm	<in> | <in_opt> | color picker title
								   @default	a color picker item without a name is created		*/
	float	*col				/* @parm	<in> | color										*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new color picker item (using a float for the color).<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>

				This function is the same as fz_fuim_new_color_box, except that
				it takes an item function and and item data argument, as other
				fuim item creation functions. Note, that the item function is called
				less frequently for a color box. Its main use is for the FZ_FUIM_ACTN_NEW_VALUE
				action, which indicates, that the color was changed. Other actions
				are currently not supported.

	@return		Color picker item id

	@avail		6.5.4.0

	@see		fz_fuim_new_color_box

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_color_box2_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,	/* @parm	<in> | fuim manager									*/
	short	parent,				/* @parm	<in> | parent group									*/
	short	id,					/* @parm	<in> | color picker item id							*/
	fzrt_int	flags,				/* @parm	<in> | construction flags
								   @rflag	fz_fuim_flag_enum									*/
	char	*picker_title,		/* @parm	<in> | <in_opt> | color picker title
								   @default	a color picker item without a name is created		*/
	float	*col,				/* @parm	<in> | color										*/
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function								*/
	void				*item_data			/* @parm	<in_opt> | data to pass to item function<nl>			*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new text info item using a preformatted string (titl_str). 
				A text info item has an uneditable box that displays information. 
				The size of the box can be set with the width and height parameters.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				item_func is an optional function that is called to handle actions occurring to this item.

	@return		Text info item id

	@avail		5.0.0.0

	@see		fz_fuim_new_text_info_char,fz_fuim_new_text_info_uchar,fz_fuim_new_text_info_short,fz_fuim_new_text_info_ushort,
				fz_fuim_new_text_info_int,fz_fuim_new_text_info_uint,fz_fuim_new_text_info_float,fz_fuim_new_text_info_double

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_text_info_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager										*/
	short				parent,				/* @parm	<in> | parent group										*/
	short				id,					/* @parm	<in> | text info item id								*/
	fzrt_int				flags,				/* @parm	<in> | construction flags
											   @rflag	fz_fuim_flag_enum										*/
	char				*titl_str,			/* @parm	<in> | <in_opt> | text info contents
											   @default	an empty text info item is created						*/
	short				width,				/* @parm	<in_opt> | width of the info box (in characters)
											   @default	wide enough to hold the titl_str (pass 0 for default)
											   @rimin	0														*/
	short				height,				/* @parm	<in_opt> | height of the info box (in rows)
											   @default	1 row high (pass 0 for default)
											   @rimin	0														*/
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function								*/
	void				*item_data			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored					*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new text info item using a character. 
				A text info item has an uneditable box that displays information. 
				The size of the box can be set with the width and height parameters.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				item_func is an optional function that is called to handle actions occurring to this item.

	@return		Text info item id

	@avail		5.0.0.0

	@see		fz_fuim_new_text_info,fz_fuim_new_text_info_uchar,fz_fuim_new_text_info_short,fz_fuim_new_text_info_ushort,
				fz_fuim_new_text_info_int,fz_fuim_new_text_info_uint,fz_fuim_new_text_info_float,fz_fuim_new_text_info_double

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_text_info_char_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager													*/
	short				parent,				/* @parm	<in> | parent group													*/
	short				id,					/* @parm	<in> | text info item id											*/
	fzrt_int				flags,				/* @parm	<in> | construction flags
											   @rflag	fz_fuim_flag_enum													*/
	fz_fuim_format_int_enum format,			/* @parm	<in> | formatting option											*/
	char				*data_ptr,			/* @parm	<in> | text info contents											*/
	short				persist,			/* @parm	<in> | should the data_ptr be stored with the item<nl>
														if TRUE, the data_ptr persists as fzrt_int as the item exists, 
														otherwise the data_ptr is only used on setup and doesn't persist	*/
	short				width,				/* @parm	<in_opt> | width of the info box (in characters)
											   @default	wide enough to hold the formatted data_ptr (pass 0 for default)
											   @rimin	0																	*/
	short				height,				/* @parm	<in_opt> | height of the info box (in rows) (pass 0 for default)
											   @default	1 row high (pass 0 for default)
											   @rimin	0																	*/
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function											*/
	void				*item_data			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored								*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new text info item using an unsigned character. 
				A text info item has an uneditable box that displays information. 
				The size of the box can be set with the width and height parameters. 
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				item_func is an optional function that is called to handle actions occurring to this item.

	@return		Text info item id

	@avail		5.0.0.0

	@see		fz_fuim_new_text_info,fz_fuim_new_text_info_char,fz_fuim_new_text_info_short,fz_fuim_new_text_info_ushort,
				fz_fuim_new_text_info_int,fz_fuim_new_text_info_uint,fz_fuim_new_text_info_float,fz_fuim_new_text_info_double

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_text_info_uchar_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager													*/
	short				parent,				/* @parm	<in> | parent group													*/
	short				id,					/* @parm	<in> | text info item id											*/
	fzrt_int				flags,				/* @parm	<in> | construction flags
											   @rflag	fz_fuim_flag_enum													*/
	fz_fuim_format_int_enum format,			/* @parm	<in> | formatting option											*/
	unsigned char		*data_ptr,			/* @parm	<in> | text info contents											*/
	short				persist,			/* @parm	<in> | should the data_ptr be stored with the item<nl>
														if TRUE, the data_ptr persists as fzrt_int as the item exists, 
														otherwise the data_ptr is only used on setup and doesn't persist	*/
	short				width,				/* @parm	<in_opt> | width of the info box (in characters)
											   @default	wide enough to hold the formatted data_ptr (pass 0 for default)
											   @rimin	0																	*/
	short				height,				/* @parm	<in_opt> | height of the info box (in rows) (pass 0 for default)
											   @default	1 row high (pass 0 for default)
											   @rimin	0																	*/
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function											*/
	void				*item_data			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored								*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new text info item using a short. 
				A text info item has an uneditable box that displays information. 
				The size of the box can be set with the width and height parameters. 
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				item_func is an optional function that is called to handle actions occurring to this item.

	@return		Text info item id

	@avail		5.0.0.0

	@see		fz_fuim_new_text_info,fz_fuim_new_text_info_char,fz_fuim_new_text_info_uchar,fz_fuim_new_text_info_ushort,
				fz_fuim_new_text_info_int,fz_fuim_new_text_info_uint,fz_fuim_new_text_info_float,fz_fuim_new_text_info_double

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_text_info_short_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager													*/
	short				parent,				/* @parm	<in> | parent group													*/
	short				id,					/* @parm	<in> | text info item id											*/
	fzrt_int				flags,				/* @parm	<in> | construction flags
											   @rflag	fz_fuim_flag_enum													*/
	fz_fuim_format_int_enum format,			/* @parm	<in> | formatting option											*/
	short				*data_ptr,			/* @parm	<in> | text info contents											*/
	short				persist,			/* @parm	<in> | should the data_ptr be stored with the item<nl>
														if TRUE, the data_ptr persists as fzrt_int as the item exists, 
														otherwise the data_ptr is only used on setup and doesn't persist	*/
	short				width,				/* @parm	<in_opt> | width of the info box (in characters)
											   @default	wide enough to hold the formatted data_ptr (pass 0 for default)
											   @rimin	0																	*/
	short				height,				/* @parm	<in_opt> | height of the info box (in rows) (pass 0 for default)
											   @default	1 row high (pass 0 for default)
											   @rimin	0																	*/
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function											*/
	void				*item_data			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored								*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new text info item using an unsigned short. 
				A text info item has an uneditable box that displays information. 
				The size of the box can be set with the width and height parameters. 
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				item_func is an optional function that is called to handle actions occurring to this item.

	@return		Text info item id

	@avail		5.0.0.0

	@see		fz_fuim_new_text_info,fz_fuim_new_text_info_char,fz_fuim_new_text_info_uchar,fz_fuim_new_text_info_short,
				fz_fuim_new_text_info_int,fz_fuim_new_text_info_uint,fz_fuim_new_text_info_float,fz_fuim_new_text_info_double

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_text_info_ushort_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager													*/
	short				parent,				/* @parm	<in> | parent group													*/
	short				id,					/* @parm	<in> | text info item id											*/
	fzrt_int				flags,				/* @parm	<in> | construction flags
											   @rflag	fz_fuim_flag_enum													*/
	fz_fuim_format_int_enum format,			/* @parm	<in> | formatting option											*/
	unsigned short		*data_ptr,			/* @parm	<in> | text info contents											*/
	short				persist,			/* @parm	<in> | should the data_ptr be stored with the item<nl>
														if TRUE, the data_ptr persists as fzrt_int as the item exists, 
														otherwise the data_ptr is only used on setup and doesn't persist	*/
	short				width,				/* @parm	<in_opt> | width of the info box (in characters)
											   @default	wide enough to hold the formatted data_ptr (pass 0 for default)
											   @rimin	0																	*/
	short				height,				/* @parm	<in_opt> | height of the info box (in rows) (pass 0 for default)
											   @default	1 row high (pass 0 for default)
											   @rimin	0																	*/
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function											*/
	void				*item_data			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored								*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new text info item using a fzrt_int. 
				A text info item has an uneditable box that displays information.<nl>
				The size of the box can be set with the width and height parameters. 
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				item_func is an optional function that is called to handle actions occurring to this item.

	@return		Text info item id

	@avail		5.0.0.0

	@see		fz_fuim_new_text_info,fz_fuim_new_text_info_char,fz_fuim_new_text_info_uchar,fz_fuim_new_text_info_short,
				fz_fuim_new_text_info_ushort,fz_fuim_new_text_info_uint,fz_fuim_new_text_info_float,fz_fuim_new_text_info_double

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_text_info_int_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager													*/
	short				parent,				/* @parm	<in> | parent group													*/
	short				id,					/* @parm	<in> | text info item id											*/
	fzrt_int				flags,				/* @parm	<in> | construction flags
											   @rflag	fz_fuim_flag_enum													*/
	fz_fuim_format_int_enum format,			/* @parm	<in> | formatting option											*/
	fzrt_int				*data_ptr,			/* @parm	<in> | text info contents											*/
	short				persist,			/* @parm	<in> | should the data_ptr be stored with the item<nl>
														if TRUE, the data_ptr persists as fzrt_int as the item exists, 
														otherwise the data_ptr is only used on setup and doesn't persist	*/
	short				width,				/* @parm	<in_opt> | width of the info box (in characters)
											   @default	wide enough to hold the formatted data_ptr (pass 0 for default)
											   @rimin	0																	*/
	short				height,				/* @parm	<in_opt> | height of the info box (in rows) (pass 0 for default)
											   @default	1 row high (pass 0 for default)
											   @rimin	0																	*/
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function											*/
	void				*item_data			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored								*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new text info item using an fzrt_unsigned_int. 
				A text info item has an uneditable box that displays information.<nl>
				The size of the box can be set with the width and height parameters.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				item_func is an optional function that is called to handle actions occurring to this item.

	@return		Text info item id

	@avail		5.0.0.0

	@see		fz_fuim_new_text_info,fz_fuim_new_text_info_char,fz_fuim_new_text_info_uchar,fz_fuim_new_text_info_short,
				fz_fuim_new_text_info_ushort,fz_fuim_new_text_info_int,fz_fuim_new_text_info_float,fz_fuim_new_text_info_double

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_text_info_uint_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager													*/
	short				parent,				/* @parm	<in> | parent group													*/
	short				id,					/* @parm	<in> | text info item id											*/
	fzrt_int				flags,				/* @parm	<in> | construction flags
											   @rflag	fz_fuim_flag_enum													*/
	fz_fuim_format_int_enum format,			/* @parm	<in> | formatting option											*/
	fzrt_unsigned_int		*data_ptr,			/* @parm	<in> | text info contents											*/
	short				persist,			/* @parm	<in> | should the data_ptr be stored with the item<nl>
														if TRUE, the data_ptr persists as fzrt_int as the item exists, 
														otherwise the data_ptr is only used on setup and doesn't persist	*/
	short				width,				/* @parm	<in_opt> | width of the info box (in characters)
											   @default	wide enough to hold the formatted data_ptr (pass 0 for default)
											   @rimin	0																	*/
	short				height,				/* @parm	<in_opt> | height of the info box (in rows) (pass 0 for default)
											   @default	1 row high (pass 0 for default)
											   @rimin	0																	*/
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function											*/
	void				*item_data			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored								*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new text info item using a float. 
				A text info item has an uneditable box that displays information. 
				The size of the box can be set with the width and height parameters.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				item_func is an optional function that is called to handle actions occurring to this item.

	@return		Text info item id

	@avail		5.0.0.0

	@see		fz_fuim_new_text_info,fz_fuim_new_text_info_char,fz_fuim_new_text_info_uchar,fz_fuim_new_text_info_short,
				fz_fuim_new_text_info_ushort,fz_fuim_new_text_info_int,fz_fuim_new_text_info_uint,fz_fuim_new_text_info_double

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_text_info_float_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager													*/
	short				parent,				/* @parm	<in> | parent group													*/
	short				id,					/* @parm	<in> | text info item id											*/
	fzrt_int				flags,				/* @parm	<in> | construction flags
											   @rflag	fz_fuim_flag_enum													*/
	fz_fuim_format_float_enum format,			/* @parm	<in> | formatting option											*/
	float				*data_ptr,			/* @parm	<in> | text info contents											*/
	short				persist,			/* @parm	<in> | should the data_ptr be stored with the item<nl>
														if TRUE, the data_ptr persists as fzrt_int as the item exists, 
														otherwise the data_ptr is only used on setup and doesn't persist	*/
	short				width,				/* @parm	<in_opt> | width of the info box (in characters)
											   @default	wide enough to hold the formatted data_ptr (pass 0 for default)
											   @rimin	0																	*/
	short				height,				/* @parm	<in_opt> | height of the info box (in rows) (pass 0 for default)
											   @default	1 row high (pass 0 for default)
											   @rimin	0																	*/
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function											*/
	void				*item_data			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored								*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new text info item using a double. 
				A text info item has an uneditable box that displays information. 
				The size of the box can be set with the width and height parameters.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				item_func is an optional function that is called to handle actions occurring to this item.

	@return		Text info item id

	@avail		5.0.0.0

	@see		fz_fuim_new_text_info,fz_fuim_new_text_info_char,fz_fuim_new_text_info_uchar,fz_fuim_new_text_info_short,
				fz_fuim_new_text_info_ushort,fz_fuim_new_text_info_int,fz_fuim_new_text_info_uint,fz_fuim_new_text_info_float

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_text_info_double_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager													*/
	short				parent,				/* @parm	<in> | parent group													*/
	short				id,					/* @parm	<in> | text info item id											*/
	fzrt_int				flags,				/* @parm	<in> | construction flags
											   @rflag	fz_fuim_flag_enum													*/
	fz_fuim_format_float_enum format,		/* @parm	<in> | formatting option											*/
	double				*data_ptr,			/* @parm	<in> | text info contents											*/
	short				persist,			/* @parm	<in> | should the data_ptr be stored with the item<nl>
														if TRUE, the data_ptr persists as fzrt_int as the item exists, 
														otherwise the data_ptr is only used on setup and doesn't persist	*/
	short				width,				/* @parm	<in_opt> | width of the info box (in characters)
											   @default	wide enough to hold the formatted data_ptr (pass 0 for default)
											   @rimin	0																	*/
	short				height,				/* @parm	<in_opt> | height of the info box (in rows) (pass 0 for default)
											   @default	1 row high (pass 0 for default)
											   @rimin	0																	*/
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function											*/
	void				*item_data			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored								*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new scroll bar item.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				item_func is an optional function that is called to handle actions occurring to this item.

	@return		Scroll bar item id

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_scroll_bar_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager										*/
	short				parent,				/* @parm	<in> | parent group										*/
	short				id,					/* @parm	<in> | scroll bar item id								*/
	fzrt_int				flags,				/* @parm	<in> | construction flags
											   @rflag	fz_fuim_flag_enum										*/
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function								*/
	void				*item_data,			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored					*/
	short				scroll_line,		/* @parm	<in> | number of lines to scroll by 
														when the arrow buttons are clicked						*/
	short				scroll_page			/* @parm	<in> | number of lines to scroll by 
														when the empty area of the scroll bar is clicked		*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates an edit field attached to a static text item.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				item_func is an optional function that is called to handle actions occurring to this item.

	@return		Static text item id

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short	 (FZRT_SPEC *fz_fuim_new_text_static_edit_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short				parent,				/* @parm	<in> | parent group									*/
	short				text_id,			/* @parm	<in> | text static item id							*/
	char				*text_str,			/* @parm	<in> | <in_opt> | static text name
											   @default	a text edit item without a name is created			*/
	short				edit_id,			/* @parm	<in> | text edit item id							*/
	fzrt_int				edit_flags,			/* @parm	<in> | edit flags									*/
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function							*/
	void				*item_data,			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored				*/
	short				*edit_indx			/* @parm	<out_opt> | item id of edit fuim item				*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates an edit field attached to a radio button item.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				item_func is an optional function that is called to handle actions occurring to this item.

	@return		Radio button item id (same as radio_indx)

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short    (FZRT_SPEC *fz_fuim_new_radio_text_edit_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short				parent,				/* @parm	<in> | parent group									*/
	short				radio_id,			/* @parm	<in> | radio item id								*/
	char				*radio_str,			/* @parm	<in> | <in_opt> | static radio button name
											   @default	a radio button item without a name is created		*/
	short				text_id,			/* @parm	<in> | text edit item id							*/
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function							*/
	void				*item_data,			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored				*/
	short				*radio_indx,		/* @parm	<out_opt> | radio button item id					*/
	short				*text_indx			/* @parm	<out_opt> | text edit item id						*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a slider item with an edit box using a fzrt_int for the range 
				where the range value is different from the display range value. 
				The range values [min, max] are mapped to the display values [pmin, pmax].<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.

	@return		Static text item id

	@avail		5.0.0.0

	@see		fz_fuim_new_slid_edit_pcent_float,fz_fuim_new_slid_edit_pcent_float,
				fz_fuim_new_slid_edit_pcent_double,fz_fuim_new_slid_edit_pcent_short,
				fz_fuim_new_slid_edit_int,fz_fuim_new_slid_edit_short,fz_fuim_new_slid_edit_double,
				fz_fuim_new_slid_edit_float

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_slid_edit_pcent_int_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager										*/
	short	parent,				/* @parm	<in> | parent group										*/
	char	*titl_str,			/* @parm	<in_opt> | slider title
								   @default	a slider item without a name is created					*/
	short 	slid_item_id,		/* @parm	<in> | slider item id									*/	
	short	edit_item_id,		/* @parm	<in> | text edit item id								*/
	fzrt_int	min,				/* @parm	<in> | minimum value of slider (range value)			*/
	fzrt_int	max,				/* @parm	<in> | maximum value of slider (range value)			*/
	fzrt_int	pmin,				/* @parm	<in> | minimum value of slider (display value)			*/
	fzrt_int	pmax,				/* @parm	<in> | maximum value of slider (display value)			*/
	fzrt_int	range_flags,		/* @parm	<in> | range flags
									@rflag	fz_fuim_range_enum										*/
	fz_fuim_item_func	item_func,	/* @parm	<in_opt> | item function							*/
	fzrt_int	*data,				/* @parm	<in> | pointer to the data								*/
	short	*slid_item,			/* @parm	<out_opt> | slider item id								*/
	short	*edit_item			/* @parm	<out_opt> | text edit item id							*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a slider item with an edit box using a float for the range 
				where the value is displayed as a percentage. 
				The 0 ... 1 based range values [min, max] are mapped to the 0 ... 100 based display values [pmin, pmax].
				In other words, the min, max and data arguments need to be 0 ... 1 based. The pmin and pmax
				arguments need to be 0 ... 100 based. <nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.

	@return		Static text item id

	@avail		5.0.0.0

	@see		fz_fuim_new_slid_edit_pcent_int,fz_fuim_new_slid_edit_pcent_float,
				fz_fuim_new_slid_edit_pcent_double,fz_fuim_new_slid_edit_pcent_short,
				fz_fuim_new_slid_edit_int,fz_fuim_new_slid_edit_short,fz_fuim_new_slid_edit_double,
				fz_fuim_new_slid_edit_float

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_slid_edit_pcent_float_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short	parent,				/* @parm	<in> | parent group										*/
	char	*titl_str,			/* @parm	<in_opt> | slider title
								   @default	a slider item without a name is created					*/
	short 	slid_item_id,		/* @parm	<in> | slider item id									*/	
	short	edit_item_id,		/* @parm	<in> | text edit item id								*/
	float	min,				/* @parm	<in> | minimum value of slider (range value, 0 ... 1 based)			*/
	float	max,				/* @parm	<in> | maximum value of slider (range value, 0 ... 1 based)			*/
	float	pmin,				/* @parm	<in> | minimum value of slider (display value, 0 ... 100 based)			*/
	float	pmax,				/* @parm	<in> | maximum value of slider (display value, 0 ... 100 based)			*/
	fzrt_int	range_flags,		/* @parm	<in> | range flags
									@rflag	fz_fuim_range_enum										*/
	fz_fuim_item_func	item_func,	/* @parm	<in_opt> | item function							*/
	float	*data,				/* @parm	<in> | pointer to the data (0 ... 1 based)				*/
	short	*slid_item,			/* @parm	<out_opt> | slider item id								*/
	short	*edit_item			/* @parm	<out_opt> | text edit item id							*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a slider item with an edit box using a double for the range 
				where the value is displayed as a percentage. 
				The 0 ... 1 based range values [min, max] are mapped to the 0 ... 100 based display values [pmin, pmax].
				In other words, the min, max and data arguments need to be 0 ... 1 based. The pmin and pmax
				arguments need to be 0 ... 100 based. <nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.

	@return		Static text item id

	@avail		5.0.0.0

	@see		fz_fuim_new_slid_edit_pcent_int,fz_fuim_new_slid_edit_pcent_float,
				fz_fuim_new_slid_edit_pcent_float,fz_fuim_new_slid_edit_pcent_short,
				fz_fuim_new_slid_edit_int,fz_fuim_new_slid_edit_short,fz_fuim_new_slid_edit_double,
				fz_fuim_new_slid_edit_float

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_slid_edit_pcent_double_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager										*/
	short	parent,				/* @parm	<in> | parent group										*/
	char	*titl_str,			/* @parm	<in_opt> | slider title
								   @default	a slider item without a name is created					*/
	short 	slid_item_id,		/* @parm	<in> | slider item id									*/	
	short	edit_item_id,		/* @parm	<in> | text edit item id								*/
	double	min,				/* @parm	<in> | minimum value of slider (range value, 0 ... 1 based)			*/
	double	max,				/* @parm	<in> | maximum value of slider (range value, 0 ... 1 based)			*/
	double	pmin,				/* @parm	<in> | minimum value of slider (display value, 0 ... 100 based)			*/
	double	pmax,				/* @parm	<in> | maximum value of slider (display value, 0 ... 100 based)			*/
	fzrt_int	range_flags,		/* @parm	<in> | range flags
									@rflag	fz_fuim_range_enum										*/
	fz_fuim_item_func	item_func,	/* @parm	<in_opt> | item function							*/
	double	*data,				/* @parm	<in> | pointer to the data, 0 ... 1 based				*/
	short	*slid_item,			/* @parm	<out_opt> | slider item id								*/
	short	*edit_item			/* @parm	<out_opt> | text edit item id							*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a slider item with an edit box using a short for the range 
				where the range value is different from the display range value. 
				The range values [min, max] are mapped to the display values [pmin, pmax].<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.

	@return		Static text item id

	@avail		5.0.0.0

	@see		fz_fuim_new_slid_edit_pcent_int,fz_fuim_new_slid_edit_pcent_float,
				fz_fuim_new_slid_edit_pcent_float,fz_fuim_new_slid_edit_pcent_double,
				fz_fuim_new_slid_edit_int,fz_fuim_new_slid_edit_short,fz_fuim_new_slid_edit_double,
				fz_fuim_new_slid_edit_float

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_slid_edit_pcent_short_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager										*/
	short	parent,				/* @parm	<in> | parent group										*/
	char	*titl_str,			/* @parm	<in_opt> | slider title
								   @default	a slider item without a name is created					*/
	short 	slid_item_id,		/* @parm	<in> | slider item id									*/	
	short	edit_item_id,		/* @parm	<in> | text edit item id								*/
	short	min,				/* @parm	<in> | minimum value of slider (range value)			*/
	short	max,				/* @parm	<in> | maximum value of slider (range value)			*/
	short	pmin,				/* @parm	<in> | minimum value of slider (display value)			*/
	short	pmax,				/* @parm	<in> | maximum value of slider (display value)			*/
	fzrt_int	range_flags,		/* @parm	<in> | range flags
									@rflag	fz_fuim_range_enum										*/
	fz_fuim_item_func	item_func,	/* @parm	<in_opt> | item function							*/
	short	*data,				/* @parm	<in> | pointer to the data								*/
	short	*slid_item,			/* @parm	<out_opt> | slider item id								*/
	short	*edit_item			/* @parm	<out_opt> | text edit item id							*/
	);



/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a slider item with an edit box using a fzrt_int for the range 
				where the range value and the display range value are the same.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.

	@return		Static text item id

	@avail		5.0.0.0

	@see		fz_fuim_new_slid_edit_pcent_int,fz_fuim_new_slid_edit_pcent_float,fz_fuim_new_slid_edit_pcent_float,
				fz_fuim_new_slid_edit_short,fz_fuim_new_slid_edit_double,
				fz_fuim_new_slid_edit_float

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_slid_edit_int_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	short	parent,				/* @parm	<in> | parent group								*/
	char	*titl_str,			/* @parm	<in_opt> | slider title
								   @default	a slider item without a name is created			*/
	short 	slid_item_id,		/* @parm	<in> | slider item id							*/
	short	edit_item_id,		/* @parm	<in> | text edit item id						*/
	fzrt_int	min,				/* @parm	<in> | minimum value of slider					*/
	fzrt_int	max,				/* @parm	<in> | maximum value of slider					*/
	fzrt_int	range_flags,		/* @parm	<in> | range flags
									@rflag	fz_fuim_range_enum								*/
	fz_fuim_item_func	item_func,	/* @parm	<in_opt> | item function							*/
	fzrt_int	*data,				/* @parm	<in> | pointer to the data						*/
	short	*slid_item,			/* @parm	<out_opt> | slider item id						*/
	short	*edit_item			/* @parm	<out_opt> | text edit item id					*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a slider item with an edit box using a short for the range 
				where the range value and the display range value are the same.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.

	@return		Static text item id

	@avail		5.0.0.0

	@see		fz_fuim_new_slid_edit_pcent_int,fz_fuim_new_slid_edit_pcent_float,fz_fuim_new_slid_edit_pcent_float,
				fz_fuim_new_slid_edit_pcent_double,fz_fuim_new_slid_edit_pcent_short,
				fz_fuim_new_slid_edit_int,fz_fuim_new_slid_edit_double,
				fz_fuim_new_slid_edit_float

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_slid_edit_short_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	short	parent,				/* @parm	<in> | parent group								*/
	char	*titl_str,			/* @parm	<in_opt> | slider title
								   @default	a slider item without a name is created			*/
	short 	slid_item_id,		/* @parm	<in> | slider item id							*/	
	short	edit_item_id,		/* @parm	<in> | text edit item id						*/
	short	min,				/* @parm	<in> | minimum value of slider					*/
	short	max,				/* @parm	<in> | maximum value of slider					*/
	fzrt_int	range_flags,		/* @parm	<in> | range flags
									@rflag	fz_fuim_range_enum								*/
	fz_fuim_item_func	item_func,	/* @parm	<in_opt> | item function							*/
	short	*data,				/* @parm	<in> | pointer to the data						*/
	short	*slid_item,			/* @parm	<out_opt> | slider item id						*/
	short	*edit_item			/* @parm	<out_opt> | text edit item id					*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a slider item with an edit box using a double for the range 
				where the range value and the display range value are the same.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.

	@return		Static text item id

	@avail		5.0.0.0

	@see		fz_fuim_new_slid_edit_pcent_int,fz_fuim_new_slid_edit_pcent_float,fz_fuim_new_slid_edit_pcent_float,
				fz_fuim_new_slid_edit_pcent_double,fz_fuim_new_slid_edit_pcent_short,
				fz_fuim_new_slid_edit_int,fz_fuim_new_slid_edit_short,
				fz_fuim_new_slid_edit_float

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_slid_edit_double_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	short	parent,				/* @parm	<in> | parent group								*/
	char	*titl_str,			/* @parm	<in_opt> | slider title
								   @default	a slider item without a name is created			*/
	short 	slid_item_id,		/* @parm	<in> | slider item id							*/	
	short	edit_item_id,		/* @parm	<in> | text edit item id						*/
	double	min,				/* @parm	<in> | minimum value of slider					*/
	double	max,				/* @parm	<in> | maximum value of slider					*/
	fzrt_int	range_flags,		/* @parm	<in> | range flags
									@rflag	fz_fuim_range_enum								*/
	fz_fuim_item_func	item_func,	/* @parm	<in_opt> | item function							*/
	double	*data,				/* @parm	<in> | pointer to the data						*/
	short	*slid_item,			/* @parm	<out_opt> | slider item id						*/
	short	*edit_item			/* @parm	<out_opt> | text edit item id					*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a slider item with an edit box using a float for the range 
				where the range value and the display range value are the same.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.

	@return		Static text item id

	@avail		5.0.0.0

	@see		fz_fuim_new_slid_edit_pcent_int,fz_fuim_new_slid_edit_pcent_float,fz_fuim_new_slid_edit_pcent_float,
				fz_fuim_new_slid_edit_pcent_double,fz_fuim_new_slid_edit_pcent_short,
				fz_fuim_new_slid_edit_int,fz_fuim_new_slid_edit_short,fz_fuim_new_slid_edit_double

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_slid_edit_float_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	short	parent,				/* @parm	<in> | parent group								*/
	char	*titl_str,			/* @parm	<in_opt> | slider title
								   @default	a slider item without a name is created			*/
	short 	slid_item_id,		/* @parm	<in> | slider item id							*/	
	short	edit_item_id,		/* @parm	<in> | text edit item id						*/
	float	min,				/* @parm	<in> | minimum value							*/
	float	max,				/* @parm	<in> | maximum value							*/
	fzrt_int	range_flags,		/* @parm	<in> | range flags
									@rflag	fz_fuim_range_enum								*/
	fz_fuim_item_func	item_func,	/* @parm	<in_opt> | item function							*/
	float	*data,				/* @parm	<in> | pointer to the data						*/
	short	*slid_item,			/* @parm	<out_opt> | slider item id						*/
	short	*edit_item			/* @parm	<out_opt> | text edit item id					*/
	);
					

/********************************************************************************************************

	@fsfunc_t	

	@desc		Encodes a fuim item to a boolean. <nl>
				The fuim item (such as a checkbox) will be 'on' if   (*data_ptr & bit_mask == true_value), 
				otherwise the fuim item will be 'off'.

	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_item_encod_char,fz_fuim_item_encod_uchar,fz_fuim_item_encod_short,
				fz_fuim_item_encod_ushort,fz_fuim_item_encod_int,fz_fuim_item_encod_uint

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_encod_bool_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	short			item_id,			/* @parm	<in> | item id of fuim item to encode				*/
	fzrt_boolean	*data_ptr,			/* @parm	<in> | pointer to the data to encode				*/
	fzrt_boolean	true_value,			/* @parm	<in> | if TRUE, the true value of 
													the encoding agrees with the bit mask, 
													otherwise the true value is when the 
													bit mask doesn't find the value						*/
	fzrt_boolean	bit_mask			/* @parm	<in> | bit mask of value to encode					*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Encodes a fuim item to a character.<nl>
				The fuim item (such as a checkbox) will be 'on' if   (*data_ptr & bit_mask == true_value), 
				otherwise the fuim item will be 'off'.


	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_item_encod_bool,fz_fuim_item_encod_uchar,fz_fuim_item_encod_short,
				fz_fuim_item_encod_ushort,fz_fuim_item_encod_int,fz_fuim_item_encod_uint

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_encod_char_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	short			item_id,			/* @parm	<in> | item id of fuim item to encode				*/
	char			*data_ptr,			/* @parm	<in> | pointer to the data to encode				*/
	fzrt_boolean	true_value,			/* @parm	<in> | if TRUE, the true value of 
													the encoding agrees with the bit mask, 
													otherwise the true value is when the 
													bit mask doesn't find the value						*/
	char			bit_mask			/* @parm	<in> | bit mask of value to encode					*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Encodes a fuim item to an unsigned character.<nl>
				The fuim item (such as a checkbox) will be 'on' if   (*data_ptr & bit_mask == true_value), 
				otherwise the fuim item will be 'off'.


	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_item_encod_bool,fz_fuim_item_encod_char,fz_fuim_item_encod_short,
				fz_fuim_item_encod_ushort,fz_fuim_item_encod_int,fz_fuim_item_encod_uint

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_encod_uchar_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	short			item_id,			/* @parm	<in> | item id of fuim item to encode				*/
	unsigned char	*data_ptr,			/* @parm	<in> | pointer to the data to encode				*/
	fzrt_boolean	true_value,			/* @parm	<in> | if TRUE, the true value of 
													the encoding agrees with the bit mask, 
													otherwise the true value is when the 
													bit mask doesn't find the value						*/
	unsigned char	bit_mask			/* @parm	<in> | bit mask of value to encode					*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Encodes a fuim item to a short.<nl>
				The fuim item (such as a checkbox) will be 'on' if   (*data_ptr & bit_mask == true_value), 
				otherwise the fuim item will be 'off'.


	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_item_encod_bool,fz_fuim_item_encod_char,fz_fuim_item_encod_uchar,
				fz_fuim_item_encod_ushort,fz_fuim_item_encod_int,fz_fuim_item_encod_uint

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_encod_short_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	short			item_id,			/* @parm	<in> | item id of fuim item to encode				*/
	short			*data_ptr,			/* @parm	<in> | pointer to the data to encode				*/
	fzrt_boolean	true_value,			/* @parm	<in> | if TRUE, the true value of 
													the encoding agrees with the bit mask, 
													otherwise the true value is when the 
													bit mask doesn't find the value						*/
	short			bit_mask			/* @parm	<in> | bit mask of value to encode					*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Encodes a fuim item to an unsigned short.<nl>
				The fuim item (such as a checkbox) will be 'on' if   (*data_ptr & bit_mask == true_value), 
				otherwise the fuim item will be 'off'.


	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_item_encod_bool,fz_fuim_item_encod_char,fz_fuim_item_encod_uchar,
				fz_fuim_item_encod_short,fz_fuim_item_encod_int,fz_fuim_item_encod_uint

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_encod_ushort_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	short			item_id,			/* @parm	<in> | item id of fuim item to encode				*/
	unsigned short	*data_ptr,			/* @parm	<in> | pointer to the data to encode				*/
	fzrt_boolean	true_value,			/* @parm	<in> | if TRUE, the true value of 
													the encoding agrees with the bit mask, 
													otherwise the true value is when the 
													bit mask doesn't find the value						*/
	unsigned short	bit_mask			/* @parm	<in> | bit mask of value to encode					*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Encodes a fuim item to a fzrt_int.<nl>
				The fuim item (such as a checkbox) will be 'on' if   (*data_ptr & bit_mask == true_value), 
				otherwise the fuim item will be 'off'.


	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_item_encod_bool,fz_fuim_item_encod_char,fz_fuim_item_encod_uchar,
				fz_fuim_item_encod_short,fz_fuim_item_encod_ushort,fz_fuim_item_encod_uint

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_encod_int_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	short			item_id,			/* @parm	<in> | item id of fuim item to encode				*/
	fzrt_int			*data_ptr,			/* @parm	<in> | pointer to the data to encode				*/
	fzrt_boolean	true_value,			/* @parm	<in> | if TRUE, the true value of 
													the encoding agrees with the bit mask, 
													otherwise the true value is when the 
													bit mask doesn't find the value						*/
	fzrt_int			bit_mask			/* @parm	<in> | bit mask of value to encode					*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Encodes a fuim item to an fzrt_unsigned_int.<nl>
				The fuim item (such as a checkbox) will be 'on' if   (*data_ptr & bit_mask == true_value), 
				otherwise the fuim item will be 'off'.


	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_item_encod_bool,fz_fuim_item_encod_char,fz_fuim_item_encod_uchar,
				fz_fuim_item_encod_short,fz_fuim_item_encod_ushort,fz_fuim_item_encod_int

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_encod_uint_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	short			item_id,			/* @parm	<in> | item id of fuim item to encode				*/
	fzrt_unsigned_int	*data_ptr,			/* @parm	<in> | pointer to the data to encode				*/
	fzrt_boolean	true_value,			/* @parm	<in> | if TRUE, the true value of 
													the encoding agrees with the bit mask, 
													otherwise the true value is when the 
													bit mask doesn't find the value						*/
	fzrt_unsigned_int	bit_mask			/* @parm	<in> | bit mask of value to encode					*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets the valid range of character values for a fuim item.

	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_item_range_uchar,fz_fuim_item_range_short,fz_fuim_item_range_ushort,
				fz_fuim_item_range_int,fz_fuim_item_range_uint,fz_fuim_item_range_float,
				fz_fuim_item_range_double,fz_fuim_item_range_string

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_range_char_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	short	item_id,			/* @parm	<in> | item id of fuim item to encode				*/
	char	*data_ptr,			/* @parm	<in> | pointer to the data							*/
	char	min_value,			/* @parm	<in> | minimum allowed value						*/
	char	max_value,			/* @parm	<in> | maximum allowed value						*/
	fz_fuim_format_int_enum	format,				/* @parm	<in> | formatting option							*/
	short	flags				/* @parm	<in> | range flags
									@rflag	fz_fuim_range_enum									*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets the valid range of unsigned character values for a fuim item.

	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_item_range_char,fz_fuim_item_range_short,fz_fuim_item_range_ushort,
				fz_fuim_item_range_int,fz_fuim_item_range_uint,fz_fuim_item_range_float,
				fz_fuim_item_range_double,fz_fuim_item_range_string

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_range_uchar_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	short			item_id,			/* @parm	<in> | item of fuim item to encode					*/
	unsigned char	*data_ptr,			/* @parm	<in> | pointer to the data							*/
	unsigned char	min_value,			/* @parm	<in> | minimum allowed value						*/
	unsigned char	max_value,			/* @parm	<in> | maximum allowed value						*/
	fz_fuim_format_int_enum	format,				/* @parm	<in> | formatting option							*/
	short			flags				/* @parm	<in> | range flags
										@rflag	fz_fuim_range_enum									*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets the valid range of short values for a fuim item.

	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_item_range_char,fz_fuim_item_range_uchar,fz_fuim_item_range_ushort,
				fz_fuim_item_range_int,fz_fuim_item_range_uint,fz_fuim_item_range_float,
				fz_fuim_item_range_double,fz_fuim_item_range_string

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_range_short_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	short	item_id,			/* @parm	<in> | item id of fuim item to encode				*/
	short	*data_ptr,			/* @parm	<in> | pointer to the data							*/
	short	min_value,			/* @parm	<in> | minimum allowed value						*/
	short	max_value,			/* @parm	<in> | maximum allowed value						*/
	fz_fuim_format_int_enum	format,				/* @parm	<in> | formatting option							*/
	short	flags				/* @parm	<in> | range flags
									@rflag	fz_fuim_range_enum									*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets the valid range of unsigned short values for a fuim item.

	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_item_range_char,fz_fuim_item_range_uchar,fz_fuim_item_range_short,
				fz_fuim_item_range_int,fz_fuim_item_range_uint,fz_fuim_item_range_float,
				fz_fuim_item_range_double,fz_fuim_item_range_string

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_range_ushort_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	short			item_id,			/* @parm	<in> | item id of fuim item to encode				*/
	unsigned short	*data_ptr,			/* @parm	<in> | pointer to the data							*/
	unsigned short	min_value,			/* @parm	<in> | minimum allowed value						*/
	unsigned short	max_value,			/* @parm	<in> | maximum allowed value						*/
	fz_fuim_format_int_enum	format,				/* @parm	<in> | formatting option							*/
	short			flags				/* @parm	<in> | range flags
										@rflag	fz_fuim_range_enum									*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets the valid range of fzrt_int values for a fuim item.

	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_item_range_char,fz_fuim_item_range_uchar,fz_fuim_item_range_short,
				fz_fuim_item_range_ushort,fz_fuim_item_range_uint,fz_fuim_item_range_float,
				fz_fuim_item_range_double,fz_fuim_item_range_string

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_range_int_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	short	item_id,			/* @parm	<in> | item id of fuim item to encode				*/
	fzrt_int	*data_ptr,			/* @parm	<in> | pointer to the data							*/
	fzrt_int	min_value,			/* @parm	<in> | minimum allowed value						*/
	fzrt_int	max_value,			/* @parm	<in> | maximum allowed value						*/
	fz_fuim_format_int_enum	format,				/* @parm	<in> | formatting option							*/
	short	flags				/* @parm	<in> | range flags
									@rflag	fz_fuim_range_enum									*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets the valid range of fzrt_unsigned_int values for a fuim item.

	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_item_range_char,fz_fuim_item_range_uchar,fz_fuim_item_range_short,
				fz_fuim_item_range_ushort,fz_fuim_item_range_int,fz_fuim_item_range_float,
				fz_fuim_item_range_double,fz_fuim_item_range_string

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_range_uint_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	short			item_id,			/* @parm	<in> | item id of fuim item to encode				*/
	fzrt_unsigned_int	*data_ptr,			/* @parm	<in> | pointer to the data							*/
	fzrt_unsigned_int	min_value,			/* @parm	<in> | minimum allowed value						*/
	fzrt_unsigned_int	max_value,			/* @parm	<in> | maximum allowed value						*/
	fz_fuim_format_int_enum	format,				/* @parm	<in> | formatting option							*/
	short			flags				/* @parm	<in> | range flags
									@rflag	fz_fuim_range_enum									*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets the valid range of float values for a fuim item.

	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_item_range_char,fz_fuim_item_range_uchar,fz_fuim_item_range_short,
				fz_fuim_item_range_ushort,fz_fuim_item_range_int,fz_fuim_item_range_uint,
				fz_fuim_item_range_double,fz_fuim_item_range_string

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_range_float_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	short	item_id,			/* @parm	<in> | item id of fuim item to encode				*/
	float	*data_ptr,			/* @parm	<in> | pointer to the data							*/
	float	min_value,			/* @parm	<in> | minimum allowed value						*/
	float	max_value,			/* @parm	<in> | maximum allowed value						*/
	fz_fuim_format_float_enum	format,				/* @parm	<in> | formatting option							*/
	short	flags				/* @parm	<in> | range flags
									@rflag	fz_fuim_range_enum									*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets the valid range of double values for a fuim item.

	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_item_range_char,fz_fuim_item_range_uchar,fz_fuim_item_range_short,
				fz_fuim_item_range_ushort,fz_fuim_item_range_int,fz_fuim_item_range_uint,
				fz_fuim_item_range_float,fz_fuim_item_range_string

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_range_double_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	short	item_id,			/* @parm	<in> | item id of fuim item to encode				*/
	double	*data_ptr,			/* @parm	<in> | pointer to the data							*/
	double	min_value,			/* @parm	<in> | minimum allowed value						*/
	double	max_value,			/* @parm	<in> | maximum allowed value						*/
	fz_fuim_format_float_enum	format,				/* @parm	<in> | formatting option							*/
	short	flags				/* @parm	<in> | range flags
									@rflag	fz_fuim_range_enum									*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets the valid range of string values for a fuim item.

	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_item_range_char,fz_fuim_item_range_uchar,fz_fuim_item_range_short,
				fz_fuim_item_range_ushort,fz_fuim_item_range_int,fz_fuim_item_range_uint,
				fz_fuim_item_range_float,fz_fuim_item_range_double

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_range_string_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	short	item_id,			/* @parm	<in> | item id of fuim item to encode				*/
	char	*data_ptr,			/* @parm	<in> | pointer to the data							*/
	short	min_value,			/* @parm	<in> | minimum allowed value						*/
	short	max_value,			/* @parm	<in> | maximum allowed value						*/
	short	flags				/* @parm	<in> | range flags
									@rflag	fz_fuim_range_enum									*/
	);							

/********************************************************************************************************

	@fsfunc_t

	@desc		Invokes a dialog. The content of the dialog is specified by the fuim_setup function. The fuim_setup 
				function is called by the dialog driver to create the content for the dialog. If the content is successfully 
				created then the dialog is opened and in a movable modal window on the screen. The dialog stays on the screen until the user closes the dialog by selecting the OK or Cancel buttons. 

	@return		FZRT_STD_OK if OK button selected. <nl>
				FZRT_STD_CANCEL if Cancel button selected. <nl>
				A different value may also be returned, if the dialog driver chooses to return a custom value. This
				will be documented on a per dialog basis.

	@avail		5.0.0.0

	@see		fz_fuim_dlog_drive_data,fz_fuim_dlog_drive_windex,fz_fuim_setup_func

	@exfile		

	@toc		fuim_dlog

*********************************************************************************************************/
typedef short (FZRT_SPEC *fz_fuim_dlog_drive_func)(
	fz_fuim_setup_func fuim_setup		/* @parm	<in> | function pointer for dialog setup function */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Invokes a dialog with a data pointer.

	@return		FZRT_STD_OK if OK button selected. <nl>
				FZRT_STD_CANCEL if Cancel button selected. <nl>
				A different value may also be returned, if the dialog driver chooses to return a custom value. This
				will be documented on a per dialog basis.

	@avail		5.0.0.0

	@see		fz_fuim_dlog_drive,fz_fuim_dlog_drive_windex,fz_fuim_setup_data_func

	@exfile		

	@toc		fuim_dlog

*********************************************************************************************************/
typedef short (FZRT_SPEC *fz_fuim_dlog_drive_data_func)(
	fz_fuim_setup_data_func 	fuim_setup_data,			/* @parm	<in> | function pointer for dialog setup function */
	void						*data						/* @parm	<in> | data pointer passed into fuim_setup_data */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Invokes a dialog with a project window index and a data pointer.

	@return		FZRT_STD_OK if OK button selected. <nl>
				FZRT_STD_CANCEL if Cancel button selected. <nl>
				A different value may also be returned, if the dialog driver chooses to return a custom value. This
				will be documented on a per dialog basis.

	@avail		5.0.0.0

	@see		fz_fuim_dlog_drive,fz_fuim_dlog_drive_data,fz_fuim_setup_windex_func

	@exfile		

	@toc		fuim_dlog

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_dlog_drive_windex_func)(
	fzrt_int						windex,									/* @parm	<in> | project window index passed into fuim_setup_windex */
	fz_fuim_setup_windex_func 	fuim_setup_windex,						/* @parm	<in> | function pointer for dialog setup function */
	void						*data									/* @parm	<in> | data pointer passed into fuim_setup_windex */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets an OK action function. This function is called when the user selects the OK button in a dialog or after 
				any click occures in a palette. This function should perform any required actions in response to 
				the user selecting the OK button.

	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_tmpl_set_cancel_func,fz_fuim_tmpl_set_reset_func

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_tmpl_set_ok_func_func)(
	fz_fuim_tmpl_ptr 		fuim_tmpl,			/* @parm	<in> | fuim manager */
	fz_fuim_tmpl_actn_func	ok_func,			/* @parm	<in> | ok function */
	void					*ok_data			/* @parm	<in_opt> | pointer to data to pass to the ok function.  */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Registers a cancel action function. This function registers a function which is to be is called when the 
				user selects the Cancel button in a dialog. The registered function should perform any required 
				actions in response to the user selecting the Cancel button. It should return TRUE if it 
				handled the reset properly and FALSE if it did not. If FALSE is returned then the Reset 
				operation is not performed.

	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_tmpl_set_ok_func,fz_fuim_tmpl_set_reset_func

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_tmpl_set_cancel_func_func)(
	fz_fuim_tmpl_ptr 		fuim_tmpl,			/* @parm	<in> | fuim manager	*/
	fz_fuim_tmpl_actn_func	cancel_func,		/* @parm	<in> | cancel function */
	void					*cancel_data		/* @parm	<in_opt> | pointer to data to pass to the cancel function.  */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Registers a reset action function. This function registers a function which is to be is called when the 
				user selects the Reset button in a dialog. The registered function should perform any required 
				actions in response to the user selecting the Reset button. It should return TRUE if it 
				handled the reset properly and FALSE if it did not. If FALSE is returned then the Reset 
				operation is not performed.

	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_tmpl_set_ok_func,fz_fuim_tmpl_set_cancel_func

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_tmpl_set_reset_func_func)(
	fz_fuim_tmpl_ptr 		fuim_tmpl,			/* @parm	<in> | fuim manager	*/
	fz_fuim_tmpl_actn_func	reset_func,			/* @parm	<in> | reset function */
	void					*reset_data			/* @parm	<in_opt> | pointer to data to pass to the reset function.  */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Cross links two items in a dialog. 
				This is done to allow one item to update automatically when the other item is changed.

	@return		None

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void	 (FZRT_SPEC *fz_fuim_item_cross_link_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short	item_id1,			/* @parm	<in> | item id of first fuim item to cross link		*/
	short	item_id2			/* @parm	<in> | item id of second fuim item to cross link		*/
	);


/********************************************************************************************************

	@fsfunc_t	

	@desc		Aligns the given fuim items according to the alignment flags.

	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_item_align_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	fzrt_int	flags,				/* @parm	<in> | alignment flags
								   @rflag	fz_fuim_align_enum								*/
	short	knt,				/* @parm	<in> | number of items in array to align		*/
	short	*indx				/* @parm	<in> | array of fuim item ids to align			*/
	);


/********************************************************************************************************

	@fsfunc_t	

	@desc		Set the dimensions of a fuim item.

	@return		none

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_set_dimns_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	short	item_id1,			/* @parm	<in> | item id of fuim item to set dimensions		*/
	short 	user_width, 		/* @parm	<in> | width, in pixels, of fuim item. 0 to use default		*/
	short	 user_height		/* @parm	<in> | height of fuim item. 0 to use default. 
													For text based items, this is the number of lines of text, for others it is the height in pixels		*/
	);


/********************************************************************************************************

	@enum	
	
	@desc	Bit flags that are used to set and check how the preview is displayed.
			To set a variable with a bit flag, see FZ_SETBIT, FZ_CLRBIT, FZ_CHKBIT.
			Alternatively, the constants below could be used.
			
	@avail	5.0.0.0
			
	@see	<auto>,
			FZ_FUIM_PVIEW_FLAG_2D,
			FZ_FUIM_PVIEW_FLAG_NOPICK,
			FZ_FUIM_PVIEW_FLAG_NORNDRMENU,
			FZ_FUIM_PVIEW_FLAG_IRNDRMENU,
			FZ_FUIM_PVIEW_FLAG_GRID,
			FZ_FUIM_PVIEW_FLAG_NOSIZE,
			FZ_FUIM_PVIEW_FLAG_NOPAN,
			FZ_FUIM_PVIEW_FLAG_NOGHOST

	@toc	fuim_tmpl

*********************************************************************************************************/
typedef enum fz_fuim_pview_enum
{
	FZ_FUIM_PVIEW_FLAG_2D_BIT = 0,			/*	@emem	Preview type is 2D. */
	FZ_FUIM_PVIEW_FLAG_NOPICK_BIT,			/*	@emem	Pick button in the preview is off. */
	FZ_FUIM_PVIEW_FLAG_NORNDRMENU_BIT,		/*	@emem	Render menu in the preview is off. */
	FZ_FUIM_PVIEW_FLAG_IRNDRMENU_BIT,		/*	@emem	Only interactive renderer in the preview render menu. 
														This is overridden if FZ_FUIM_PVIEW_FLAG_NORNDRMENU_BIT is set */
	FZ_FUIM_PVIEW_FLAG_GRID_BIT,			/*	@emem	Show grid and axis. */
	FZ_FUIM_PVIEW_FLAG_NOSIZE_BIT,			/*	@emem	Don't autosize, but leave at minimum. */
	FZ_FUIM_PVIEW_FLAG_NOPAN_BIT,			/*	@emem	Pan button in the preview is off. */
	FZ_FUIM_PVIEW_FLAG_NOGHOST_BIT,			/*	@emem	Don't hide ghosted items in the preview. */
	
	FZ_FUIM_PVIEW_FLAG_MAX
} fz_fuim_pview_enum;

/********************************************************************************************************

	@grpbegin	FUIM Preview Flags Constants

	@desc		These defines are used to change how the preview is displayed.
				They need to be OR-ed together to specify more than one flag. For example to
				specify that a preview uses the 2d type and turn off the pick button flags use the
				following code :
				flags = FZ_FUIM_PVIEW_FLAG_2D <bar> FZ_FUIM_PVIEW_FLAG_NOPICK;

	@avail		5.0.0.0
	
	@see		fz_fuim_pview_enum

	@toc		fuim_tmpl

*********************************************************************************************************/
/********************************************************************************************************

	@gdef	

	@desc	Sets the preview type to 2D.<nl>
			Turns off the TOP (BOT), RGT (LFT), BAK (FRT), and AXO buttons in the preview.

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define	FZ_FUIM_PVIEW_FLAG_2D 			(1<<FZ_FUIM_PVIEW_FLAG_2D_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Turns off the pick button in the preview.

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define	FZ_FUIM_PVIEW_FLAG_NOPICK 		(1<<FZ_FUIM_PVIEW_FLAG_NOPICK_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Turns off the render menu in the preview.<nl>
			This option overrides FZ_FUIM_PVIEW_FLAG_IRNDRMENU.

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define	FZ_FUIM_PVIEW_FLAG_NORNDRMENU 	(1<<FZ_FUIM_PVIEW_FLAG_NORNDRMENU_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Only allows for interactive rendering in the render menu in the preview.<nl>
			This gets overridden if the render menu is turned off (FZ_FUIM_PVIEW_FLAG_NORNDRMENU).

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define	FZ_FUIM_PVIEW_FLAG_IRNDRMENU 	(1<<FZ_FUIM_PVIEW_FLAG_IRNDRMENU_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Turns on the grid and axis in the preview.

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define	FZ_FUIM_PVIEW_FLAG_GRID	 	(1<<FZ_FUIM_PVIEW_FLAG_GRID_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Don't autosize, but leave at minimum.

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define	FZ_FUIM_PVIEW_FLAG_NOSIZE	 	(1<<FZ_FUIM_PVIEW_FLAG_NOSIZE_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Turns off the pan button in the preview.

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define	FZ_FUIM_PVIEW_FLAG_NOPAN	 	(1<<FZ_FUIM_PVIEW_FLAG_NOPAN_BIT)
/********************************************************************************************************

	@gdef	

	@desc	Always show ghosted items in the preview.

	@avail	5.0.0.0

	@toc	fuim_tmpl

*********************************************************************************************************/
#define	FZ_FUIM_PVIEW_FLAG_NOGHOST	 	(1<<FZ_FUIM_PVIEW_FLAG_NOGHOST_BIT)
/********************************************************************************************************
	@grpend
*********************************************************************************************************/

/********************************************************************************************************

	@type	

	@desc	Pointer to a data structure that holds information about a preview options.
			
	@avail	5.0.0.0
	
	@see	<auto>

	@toc	fuim_tmpl

*********************************************************************************************************/
typedef struct fuim_pview_opts_td 	*fz_fuim_pview_opts_ptr;


/********************************************************************************************************

	@func		

	@desc		This is a function that allows for any custom loading during setup of a preview.

	@return		Error codes

	@avail		5.0.0.0

	@see		fz_fuim_pview_opts_set_load_func

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_fuim_pview_load_func)(
	fz_fuim_tmpl_ptr 		fuim_tmpl,		/* @parm	<in> | fuim manager										*/
	fzrt_int					src_windex,		/* @parm	<in> | project window index source			*/
	fzrt_int					dst_windex		/* @parm	<in> | project window index destination		*/
	);

/********************************************************************************************************

	@func		

	@desc		This is a function that allows for any custom unloading during closing of a preview.<nl>
				The unload function is called during the shutdown of the preview window.

	@return		Error codes

	@avail		5.0.0.0

	@see		fz_fuim_pview_opts_set_unload_func

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_fuim_pview_unload_func)(
	fz_fuim_tmpl_ptr 		fuim_tmpl,		/* @parm	<in> | fuim manager							*/
	fzrt_int					src_windex,		/* @parm	<in> | project window index source			*/
	fzrt_int					dst_windex		/* @parm	<in> | project window index destination		*/
	);

/********************************************************************************************************

	@func		

	@desc		This is a callback function that allows for any custom mouse click handling during a mouse click of a preview.<nl>
				The click function is called when the mouse is clicked in the preview window for an 
				action other than the standard window commands.

	@return		Error codes

	@avail		5.0.0.0

	@see		fz_fuim_pview_opts_set_click_func

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short  (FZRT_SPEC *fz_fuim_pview_click_func)(
	fz_fuim_tmpl_ptr 		fuim_tmpl,		/* @parm	<in> | fuim manager										*/
	fzrt_int					dst_windex,		/* @parm	<in> | project window index destination		*/
	fzrt_point				*click_pnt		/* @parm	<in> | click point				*/
	);

/********************************************************************************************************

	@func		

	@desc		This is a function that allows for any custom mouse tracking during 
				a mouse track of a preview.<nl>
				The track function is called when the mouse is moved in the preview window for an 
				action other than the standard window commands.

	@return		Error codes

	@avail		5.0.0.0

	@see		fz_fuim_pview_opts_set_track_func

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short  (FZRT_SPEC *fz_fuim_pview_track_func)(
	fz_fuim_tmpl_ptr 		fuim_tmpl,		/* @parm	<in> | fuim manager							*/
	fzrt_int					dst_windex,		/* @parm	<in> | project window index destination		*/
	fzrt_point				*click_pnt,		/* @parm	<in> | click point				*/
	short					*curs_id		/* @parm	<in> | cursor id				*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Allocates a preview options structure and fills with defaults.<nl>
				This function must be called first when setting up a preview.

	@return		None

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_pview_opts_init_func)(
	fz_fuim_pview_opts_ptr	*opts,				/* @parm	<in> | preview options pointer	*/
	fzrt_int					src_windex			/* @parm	<in> | project window index source			*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Deletes a preview options structure.<nl>
				This function must be called first when closing a window with a preview item.

	@return		None

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_pview_opts_finit_func)(
	fz_fuim_pview_opts_ptr	*opts				/* @parm	<in> | preview options pointer	*/
	);


/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets the load function.<nl>
				This can only be called after fz_fuim_pview_opts_init and before the preview is created.<nl>
				If fz_fuim_pview_opts_setup was called with a self_windex of TRUE or a function passed for 
				setup_func, the load_func will not be called.

	@return		None

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_pview_opts_set_load_func_func)(
	fz_fuim_pview_opts_ptr		opts,			/* @parm	<in> | preview options		*/
	fz_fuim_pview_load_func	load_func		/* @parm	<in> | load function		*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets the unload function.<nl>
				This can only be called after fz_fuim_pview_opts_init.<nl>
				It is recommended that this be called before the preview is created, 
				but it can be called any time before the preview is closed.<nl>
				If fz_fuim_pview_opts_setup was called with a self_windex of TRUE, 
				the unload_func will not be called.

	@return		None

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_pview_opts_set_unload_func_func)(
	fz_fuim_pview_opts_ptr		opts,			/* @parm	<in> | preview options		*/
	fz_fuim_pview_unload_func	unload_func		/* @parm	<in> | unload function		*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets the mouse click function.<nl>
				This can only be called after fz_fuim_pview_opts_init.<nl>
				This can be called any time before the preview is closed and 
				can be called multiple times if it's necessary to change how 
				mouse clicks are handled.

	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_pview_opts_set_click_func_func)(
	fz_fuim_pview_opts_ptr		opts,			/* @parm	<in> | preview options		*/
	fz_fuim_pview_click_func	click_func		/* @parm	<in> | click function		*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets the mouse tracking function.<nl>
				This can only be called after fz_fuim_pview_opts_init.<nl>
				This can be called any time before the preview is closed and 
				can be called multiple times if it's necessary to change how 
				mouse tracking is handled.

	@return		None

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_pview_opts_set_track_func_func)(
	fz_fuim_pview_opts_ptr		opts,			/* @parm	<in> | preview options		*/
	fz_fuim_pview_track_func	track_func		/* @parm	<in> | track function		*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets preview options flags.

	@return		None

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_pview_opts_set_flags_func)(
	fz_fuim_pview_opts_ptr	opts,		/* @parm	<in> | preview options		*/
	fzrt_int					flags		/* @parm	<in> | flags
										   @rflag	fz_fuim_pview_enum			*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a preview window item in a dialog, where objects can be displayed. 
				The options data structure determines how the
				preview is set up. The options need to be allocated with fz_fuim_pview_opts_init.
				A number of API functions can be called to customize the options.

	@return		The item id of the preview

	@avail		5.0.0.0

	@see		fz_fuim_pview_opts_init,fz_fuim_pview_opts_set_load_func,fz_fuim_pview_opts_set_unload_func,
				fz_fuim_pview_opts_set_click_func,fz_fuim_pview_opts_set_track_func,
				fz_fuim_pview_opts_set_flags

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_pview_create_func)(
	fz_fuim_tmpl_ptr		fuim_tmpl, 	/* @parm	<in> | fuim manager								*/
	short					parent,		/* @parm	<in> | parent group								*/
	short					item_id, 	/* @parm	<in> | fuim item id								*/
	fz_fuim_pview_opts_ptr 	pview_opts_ptr/* @parm	<in> | preview options							*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Retrieves a data item from the stack. 
				This gets the value of a data item on the stack. 
				Any changes to this data will not affect the data stored on the stack. 
				The where parameter is the same value as used when calling fz_fuim_stack_put.

	@return		Error codes

	@avail		5.0.0.0

	@see		fz_fuim_stack_get_ptr,fz_fuim_stack_get_size,fz_fuim_stack_put

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef fzrt_error_td 	 (FZRT_SPEC *fz_fuim_stack_get_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	fzrt_int		where,				/* @parm	<in> | location index of the data item to 
											retrieve from the stack							*/
	void	*data				/* @parm	<out> | data item retrieved from the stack		*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Gets a pointer to a data item on the stack. 
				Any changes to the data referenced by this pointer will affect the data stored on the stack. 
				The where parameter is the same value as used when calling fz_fuim_stack_put.

	@return		Error codes

	@avail		5.0.0.0

	@see		fz_fuim_stack_get,fz_fuim_stack_get_size,fz_fuim_stack_put

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef fzrt_error_td 	 (FZRT_SPEC *fz_fuim_stack_get_ptr_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	fzrt_int		where,				/* @parm	<in> | location index of the data item to 
											get the pointer from the stack					*/
	void	**data				/* @parm	<out> | pointer to the data item on the stack	*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Retrieves a data item from the stack. 
				This gets the data on the stack for the selected item up to size large. 
				If size is greater than the size of the selected data on the stack, 
				the full data item will be returned. 
				Any changes to this data will not affect the data stored on the stack.

	@return		Error codes

	@avail		5.0.0.0

	@see		fz_fuim_stack_get_ptr,fz_fuim_stack_get,fz_fuim_stack_put

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef fzrt_error_td 	 (FZRT_SPEC *fz_fuim_stack_get_size_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	fzrt_int		where,				/* @parm	<in> | location index of the data item to 
											retrieve from the stack							*/
	fzrt_int	size,				/* @parm	<in> | requested amount of the data item to 
											retrieve from the stack							*/
	void	*data				/* @parm	<out> | data item retrieved from the stack		*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Puts a data item on the stack. 
				The where parameter tells the stack where this data is to be stored and the size 
				tells the stack how big the data is. The same value for where is used when 
				getting the data from the stack.

	@return		Error codes

	@avail		5.0.0.0

	@see		fz_fuim_stack_get_ptr,fz_fuim_stack_get,fz_fuim_stack_get_size

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef fzrt_error_td 	 (FZRT_SPEC *fz_fuim_stack_put_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	short	where,				/* @parm	<in> | location index of where the data item 
											is to be put in the stack						*/
	fzrt_int	size,				/* @parm	<in> | size of data item						*/
	void	*data				/* @parm	<in> | data item to put on the stack			*/
	);


/********************************************************************************************************

	@fsfunc_t	

	@desc		Retrieves a data item from a stack itentified by a UUID. This is an advanced version of fz_fuim_stack_uuid_get.
				Stack is automatically craeted with the first call to fz_fuim_stack_uuid_put using the uuid.
				This gets the value of a data item on the stack. 
				Any changes to this data will not affect the data stored on the stack. 
				The where parameter is the same value as used when calling fz_fuim_stack_put.

	@return		Error codes

	@avail		7.0.0.0

	@see		fz_fuim_stack_uuid_get_ptr,fz_fuim_stack_uuid_get_size,fz_fuim_stack_uuid_put

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef fzrt_error_td 	 (FZRT_SPEC *fz_fuim_stack_uuid_get_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	fzrt_UUID_td 		uuid,		/* @parm	<in> | uuid id of stack								*/
	fzrt_int		where,				/* @parm	<in> | location index of the data item to 
											retrieve from the stack							*/
	void	*data				/* @parm	<out> | data item retrieved from the stack		*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Gets a pointer to a data item on a stack itentified by a UUID. This is an advanced version of fz_fuim_stack_uuid_get_ptr.
				Stack is automatically craeted with the first call to fz_fuim_stack_uuid_put using the uuid.
				Any changes to the data referenced by this pointer will affect the data stored on the stack. 
				The where parameter is the same value as used when calling fz_fuim_stack_uuid_put.

	@return		Error codes

	@avail		7.0.0.0

	@see		fz_fuim_stack_uuid_get,fz_fuim_stack_uuid_get_size,fz_fuim_stack_uuid_put

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef fzrt_error_td 	 (FZRT_SPEC *fz_fuim_stack_uuid_get_ptr_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	fzrt_UUID_td 		uuid,		/* @parm	<in> | uuid id of stack								*/
	fzrt_int		where,				/* @parm	<in> | location index of the data item to 
											get the pointer from the stack					*/
	void	**data				/* @parm	<out> | pointer to the data item on the stack	*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Retrieves a data item from a stack itentified by a UUID. This is an advanced version of fz_fuim_stack_uuid_get_size. 
				Stack is automatically craeted with the first call to fz_fuim_stack_uuid_put using the uuid.
				This gets the data on the stack for the selected item up to size large. 
				If size is greater than the size of the selected data on the stack, 
				the full data item will be returned. 
				Any changes to this data will not affect the data stored on the stack.

	@return		Error codes

	@avail		7.0.0.0

	@see		fz_fuim_stack_uuid_get_ptr,fz_fuim_stack_uuid_get,fz_fuim_stack_uuid_put

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef fzrt_error_td 	 (FZRT_SPEC *fz_fuim_stack_uuid_get_size_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	fzrt_UUID_td 		uuid,		/* @parm	<in> | uuid id of stack								*/
	fzrt_int		where,				/* @parm	<in> | location index of the data item to 
											retrieve from the stack							*/
	fzrt_int	size,				/* @parm	<in> | requested amount of the data item to 
											retrieve from the stack							*/
	void	*data				/* @parm	<out> | data item retrieved from the stack		*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Puts a data item on a stack itentified by a UUID. This is an advanced version of fz_fuim_stack_uuid_put.
				Stack is automatically craeted with the first call to fz_fuim_stack_uuid_put using the uuid.
				The where parameter tells the stack where this data is to be stored and the size 
				tells the stack how big the data is. The same value for where is used when 
				getting the data from the stack.

	@return		Error codes

	@avail		7.0.0.0

	@see		fz_fuim_stack_uuid_get_ptr,fz_fuim_stack_uuid_get,fz_fuim_stack_uuid_get_size

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef fzrt_error_td 	 (FZRT_SPEC *fz_fuim_stack_uuid_put_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager								*/
	fzrt_UUID_td 		uuid,		/* @parm	<in> | uuid id of stack								*/
	short	where,				/* @parm	<in> | location index of where the data item 
											is to be put in the stack						*/
	fzrt_int	size,				/* @parm	<in> | size of data item						*/
	void	*data				/* @parm	<in> | data item to put on the stack			*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Returns the window pointer of the selected fuim manager.

	@return		window pointer. NULL if an error occurs.

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef fzrt_window_ptr  (FZRT_SPEC *fz_fuim_tmpl_get_wptr_func)(
	fz_fuim_tmpl_ptr fuim_tmpl		/* @parm	<in> | fuim manager		*/
	);

/********************************************************************************************************
	
	 @fsfunc_t
	 
	 @desc		Returns the assocted windex of the selected fuim manager.
	 
	 @return	windex of the selected fuim manager if it was initated via a windex based context.
	 
	 @avail		8.0.0.0
	 
	 @see		fz_fuim_setup_windex_func
	 
	 @exfile
	 
	 @toc		fuim_tmpl
	 
 *********************************************************************************************************/
typedef fzrt_int  (FZRT_SPEC *fz_fuim_tmpl_get_windex_func)(
	fz_fuim_tmpl_ptr fuim_tmpl		/* @parm	<in> | fuim manager		*/
	);
	

/********************************************************************************************************

	@fsfunc_t	

	@desc		Gets the bounding rectangle of the selected fuim item.

	@return		None

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_get_rect_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager							*/
	short		item_index,			/* @parm	<in> | item id of item to get rect of		*/
	fzrt_rect	*rect				/* @parm	<out> | rectangle of the selected item		*/
	);


/********************************************************************************************************

	@fsfunc_t	

	@desc		Changes the string of the fuim item. 
				The item identified by item_id will have it's string changed to str. 
				If the item is of a type that doesn't have a string, an error will 
				be returned and the item will remain untouched.

	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short	 (FZRT_SPEC *fz_fuim_item_set_string_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager		*/
	short	item_id,			/* @parm	<in> | fuim item id		*/
	char	*str				/* @parm	<in> | new string		*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Changes the labels on the ok, cancel and reset buttons. 
				If a string is NULL, the associated default label is used. 
				If a string is the empty string (""), the associated button isn't drawn.

	@return		None

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_tmpl_set_std_titles_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager						*/
	char	*str_ok,			/* @parm	<in_opt> | new ok button string			*/
	char	*str_cancel,		/* @parm	<in_opt> | new cancel button string		*/
	char	*str_reset			/* @parm	<in_opt> | new reset button string		*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets a fuim item to be true when the associated boolean data (data_ptr) 
				is true (true_value). 
				The item is true when the value in data_ptr equals true_value.

	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_item_binary_char,fz_fuim_item_binary_uchar,fz_fuim_item_binary_short,
				fz_fuim_item_binary_ushort,fz_fuim_item_binary_int,fz_fuim_item_binary_uint

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_binary_bool_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short			item_id,			/* @parm	<in> | item id										*/
	fzrt_boolean	*data_ptr,			/* @parm	<in> | pointer to data to check for true value		*/
	fzrt_boolean	true_value,			/* @parm	<in> | value that indicates true					*/
	fzrt_boolean	false_value			/* @parm	<in> | value that indicates false					*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets a fuim item to be true when the associated character data (data_ptr) 
				is true (true_value). 
				The item is true when the value in data_ptr equals true_value.

	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_item_binary_bool,fz_fuim_item_binary_uchar,fz_fuim_item_binary_short,
				fz_fuim_item_binary_ushort,fz_fuim_item_binary_int,fz_fuim_item_binary_uint

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_binary_char_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short	item_id,			/* @parm	<in> | item id										*/
	char	*data_ptr,			/* @parm	<in> | pointer to data to check for true value		*/
	char	true_value,			/* @parm	<in> | value that indicates true					*/
	char	false_value			/* @parm	<in> | value that indicates false					*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets a fuim item to be true when the associated unsigned character data (data_ptr) 
				is true (true_value). 
				The item is true when the value in data_ptr equals true_value.

	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_item_binary_bool,fz_fuim_item_binary_char,fz_fuim_item_binary_short,
				fz_fuim_item_binary_ushort,fz_fuim_item_binary_int,fz_fuim_item_binary_uint

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_binary_uchar_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short			item_id,			/* @parm	<in> | item id										*/
	unsigned char	*data_ptr,			/* @parm	<in> | pointer to data to check for true value		*/
	unsigned char	true_value,			/* @parm	<in> | value that indicates true					*/
	unsigned char	false_value			/* @parm	<in> | value that indicates false					*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets a fuim item to be true when the associated short data (data_ptr) 
				is true (true_value). 
				The item is true when the value in data_ptr equals true_value.

	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_item_binary_bool,fz_fuim_item_binary_char,fz_fuim_item_binary_uchar,
				fz_fuim_item_binary_ushort,fz_fuim_item_binary_int,fz_fuim_item_binary_uint

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_binary_short_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short	item_id,			/* @parm	<in> | item id										*/
	short	*data_ptr,			/* @parm	<in> | pointer to data to check for true value		*/
	short	true_value,			/* @parm	<in> | value that indicates true					*/
	short	false_value			/* @parm	<in> | value that indicates false					*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets a fuim item to be true when the associated unsigned short data (data_ptr) 
				is true (true_value). 
				The item is true when the value in data_ptr equals true_value.

	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_item_binary_bool,fz_fuim_item_binary_char,fz_fuim_item_binary_uchar,
				fz_fuim_item_binary_short,fz_fuim_item_binary_int,fz_fuim_item_binary_uint

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_binary_ushort_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short			item_id,			/* @parm	<in> | item id										*/
	unsigned short	*data_ptr,			/* @parm	<in> | pointer to data to check for true value		*/
	unsigned short	true_value,			/* @parm	<in> | value that indicates true					*/
	unsigned short	false_value			/* @parm	<in> | value that indicates false					*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets a fuim item to be true when the associated fzrt_int data (data_ptr) 
				is true (true_value). 
				The item is true when the value in data_ptr equals true_value.

	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_item_binary_bool,fz_fuim_item_binary_char,fz_fuim_item_binary_uchar,
				fz_fuim_item_binary_short,fz_fuim_item_binary_ushort,fz_fuim_item_binary_uint

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_binary_int_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short	item_id,			/* @parm	<in> | item id										*/
	fzrt_int	*data_ptr,			/* @parm	<in> | pointer to data to check for true value		*/
	fzrt_int	true_value,			/* @parm	<in> | value that indicates true					*/
	fzrt_int	false_value			/* @parm	<in> | value that indicates false					*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets a fuim item to be true when the associated fzrt_unsigned_int data (data_ptr) 
				is true (true_value). 
				The item is true when the value in data_ptr equals true_value.

	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_item_binary_bool,fz_fuim_item_binary_char,fz_fuim_item_binary_uchar,
				fz_fuim_item_binary_short,fz_fuim_item_binary_ushort,fz_fuim_item_binary_int

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_binary_uint_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short			item_id,			/* @parm	<in> | item id										*/
	fzrt_unsigned_int	*data_ptr,			/* @parm	<in> | pointer to data to check for true value		*/
	fzrt_unsigned_int	true_value,			/* @parm	<in> | value that indicates true					*/
	fzrt_unsigned_int	false_value			/* @parm	<in> | value that indicates false					*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets a fuim item to be true when the associated boolean data (data_ptr) 
				is true (true_value). 
				The item is true when the value in data_ptr equals true_value.

	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_item_unary_char,fz_fuim_item_unary_uchar,fz_fuim_item_unary_short,
				fz_fuim_item_unary_ushort,fz_fuim_item_unary_int,fz_fuim_item_unary_uint

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_unary_bool_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short			item_id,			/* @parm	<in> | item id										*/
	fzrt_boolean	*data_ptr,			/* @parm	<in> | pointer to data to check for true value		*/
	fzrt_boolean	true_value			/* @parm	<in> | value that indicates true					*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets a fuim item to be true when the associated character data (data_ptr) 
				is true (true_value). 
				The item is true when the value in data_ptr equals true_value and false otherwise.

	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_item_unary_bool,fz_fuim_item_unary_uchar,fz_fuim_item_unary_short,
				fz_fuim_item_unary_ushort,fz_fuim_item_unary_int,fz_fuim_item_unary_uint

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_unary_char_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short	item_id,			/* @parm	<in> | item id										*/
	char	*data_ptr,			/* @parm	<in> | pointer to data to check for true value		*/
	char	true_value			/* @parm	<in> | value that indicates true					*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets a fuim item to be true when the associated unsigned character data (data_ptr) 
				is true (true_value). 
				The item is true when the value in data_ptr equals true_value and false otherwise.

	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_item_unary_bool,fz_fuim_item_unary_char,fz_fuim_item_unary_short,
				fz_fuim_item_unary_ushort,fz_fuim_item_unary_int,fz_fuim_item_unary_uint

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_unary_uchar_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short			item_id,			/* @parm	<in> | item id										*/
	unsigned char	*data_ptr,			/* @parm	<in> | pointer to data to check for true value		*/
	unsigned char	true_value			/* @parm	<in> | value that indicates true					*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets a fuim item to be true when the associated short data (data_ptr) 
				is true (true_value). 
				The item is true when the value in data_ptr equals true_value and false otherwise.

	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_item_unary_bool,fz_fuim_item_unary_char,fz_fuim_item_unary_uchar,
				fz_fuim_item_unary_ushort,fz_fuim_item_unary_int,fz_fuim_item_unary_uint

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_unary_short_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short	item_id,			/* @parm	<in> | item id										*/
	short	*data_ptr,			/* @parm	<in> | pointer to data to check for true value		*/
	short	true_value			/* @parm	<in> | value that indicates true					*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets a fuim item to be true when the associated unsigned short data (data_ptr) 
				is true (true_value). 
				The item is true when the value in data_ptr equals true_value and false otherwise.

	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_item_unary_bool,fz_fuim_item_unary_char,fz_fuim_item_unary_uchar,
				fz_fuim_item_unary_short,fz_fuim_item_unary_int,fz_fuim_item_unary_uint

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_unary_ushort_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short			item_id,			/* @parm	<in> | item id										*/
	unsigned short	*data_ptr,			/* @parm	<in> | pointer to data to check for true value		*/
	unsigned short	true_value			/* @parm	<in> | value that indicates true					*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets a fuim item to be true when the associated fzrt_int data (data_ptr) 
				is true (true_value). 
				The item is true when the value in data_ptr equals true_value and false otherwise.

	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_item_unary_bool,fz_fuim_item_unary_char,fz_fuim_item_unary_uchar,
				fz_fuim_item_unary_short,fz_fuim_item_unary_ushort,fz_fuim_item_unary_uint

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_unary_int_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short	item_id,			/* @parm	<in> | item id										*/
	fzrt_int	*data_ptr,			/* @parm	<in> | pointer to data to check for true value		*/
	fzrt_int	true_value			/* @parm	<in> | value that indicates true					*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets a fuim item to be true when the associated fzrt_unsigned_int data (data_ptr) 
				is true (true_value). 
				The item is true when the value in data_ptr equals true_value and false otherwise.

	@return		None

	@avail		5.0.0.0

	@see		fz_fuim_item_unary_bool,fz_fuim_item_unary_char,fz_fuim_item_unary_uchar,
				fz_fuim_item_unary_short,fz_fuim_item_unary_ushort,fz_fuim_item_unary_int

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_unary_uint_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short			item_id,			/* @parm	<in> | item id										*/
	fzrt_unsigned_int	*data_ptr,			/* @parm	<in> | pointer to data to check for true value		*/
	fzrt_unsigned_int	true_value			/* @parm	<in> | value that indicates true					*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets a function to call when the fuim dialog is closed.

	@return		None

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_tmpl_set_finit_func_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	fz_fuim_tmpl_actn_func	finit_func,			/* @parm	<in> | finit function								*/
	void				*finit_data			/* @parm	<in_opt> | data to pass to the finit function		*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets a custom function to call when a new value is set.

	@return		None

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_tmpl_set_new_value_func_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager										*/
	fz_fuim_tmpl_actn_func	new_value_func,		/* @parm	<in> | new value function								*/
	void				*new_value_data		/* @parm	<in_opt> | data to pass to the new value function		*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets a custom function to call for the specified custom item.

	@return		None

	@avail		5.5.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_tmpl_item_set_cust_func_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short					item_id,			/* @parm	<in> | custom item id								*/
	fz_fuim_item_cust_func	func,				/* @parm	<in> | custom function								*/
	void					*func_data			/* @parm	<in_opt> | data to pass to the custom function		*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Redraws the fuim window.

	@return		None

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_tmpl_update_state_func)(
	fz_fuim_tmpl_ptr fuim_tmpl		/* @parm	<in> | fuim manager		*/
	);

/* RWB 06/4/04 { BEGIN */
/********************************************************************************************************

	@fsfunc_t	

	@desc		Informs formZ that the item identified by item_id needs to be updated.

	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_fuim_tmpl_update_value_func)(
	fz_fuim_tmpl_ptr			fuim_tmpl,		/* @parm <in> | fuim manager */
	short						item_id			/* @parm <in> | item identifier */
	);

/* RWB 06/4/04 } END */

/********************************************************************************************************

	@fsfunc_t	

	@desc		Tells if a template is being displayed in a dialog.

	@return		TRUE if the specified template is being displayed in a dialog, FALSE if not.

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef fzrt_boolean 	 (FZRT_SPEC *fz_fuim_tmpl_in_dialog_func)(
	fz_fuim_tmpl_ptr fuim_tmpl		/* @parm	<in> | fuim manager								*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Tells if a template is being displayed in a palette.

	@return		TRUE if the specified template is being displayed in a palette, FALSE if not.

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef fzrt_boolean 	 (FZRT_SPEC *fz_fuim_tmpl_in_palette_func)(
	fz_fuim_tmpl_ptr fuim_tmpl		/* @parm	<in> | fuim manager								*/
	);



/********************************************************************************************************

	@enum	

	@desc	Indicates the relative placement of a new icon group.
			
	@avail	5.0.0.0
			
	@see	<auto>
			
	@toc	fuim

*********************************************************************************************************/
typedef enum fz_fuim_position_enum
{
	FZ_FUIM_POS_BEFORE=0,	/*	@emem	inserts the new icon group before the referenced group */
	FZ_FUIM_POS_AFTER,		/*	@emem	inserts the new icon group after the referenced group  */
	
	FZ_FUIM_POS_MAX
} fz_fuim_position_enum;

/********************************************************************************************************

	@fsfunc_t

	@desc		Creates a pop-out group in an icons menu. 

	@return		Error codes

	@avail		5.0.0.0

	@see		fz_cmnd_cbak_syst_icon_menu,fz_cmnd_cbak_proj_icon_menu,fz_tool_cbak_icon_menu

	@exfile		

	@toc		fuim

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_fuim_exts_icon_group_func)(
	const fzrt_UUID_td			tool_bar_id,		/* @parm	<in> | UUID of extensions menu received from 
																		formZ call back functions fz_cmnd_cbak_syst_icon_menu,fz_cmnd_cbak_proj_icon_menu, 
																		or fz_tool_cbak_icon_menu		*/
	char						*group_name,		/* @parm	<in> | name of new pop-out icon group		*/
	fzrt_UUID_td				group_id,			/* @parm	<in> | UUID of new pop-out icon group	*/
	fzrt_UUID_td				row_id,				/* @parm	<in> | UUID of reference row		*/
	fz_fuim_position_enum		row_position,		/* @parm	<in> | position for row		*/
	fzrt_UUID_td				col_id,				/* @parm	<in> | UUID of reference column		*/
	fz_fuim_position_enum		col_position		/* @parm	<in> | position for column		*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a pop-out menu in the extensions menu. The menu is established with the specified name and UUID. 
				Multiple calls to this function with the same UUID will not create additional pop-out menus. This allows multiple 
				plugins to install into the pop-out menu without being concerned about the load order of the plugins. In this 
				situation all of the plugins that use the pop-out menu should call the function (only the first 
				one to make the call will actually add the menu)

	@return		Error codes

	@avail		5.0.0.0

	@see		fz_cmnd_cbak_syst_menu,fz_cmnd_cbak_proj_menu

	@exfile		

	@toc		fuim

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_fuim_exts_menu_func)(
	fz_fuim_menu_ptr 	menu_ptr,			/* @parm	<in> | pointer to formZ menu manager received from formZ call back functions fz_cmnd_cbak_syst_menu or fz_cmnd_cbak_proj_menu	*/
	const fzrt_UUID_td 	menu_id, 			/* @parm	<in> | UUID of extensions menu received from formZ call back functions fz_cmnd_cbak_syst_menu or fz_cmnd_cbak_proj_menu */
	char 				*group_name, 		/* @parm	<in> | name of new menu group	*/
	fzrt_UUID_td 		group_id			/* @parm	<in> | UUID of new group		*/
	);


/********************************************************************************************************

	@enum	

	@desc	Indicates the line of the prompts palette to place a prompt string
			
	@avail	5.0.0.0
			
	@see	<auto>

	@toc	fuim_tmpl

*********************************************************************************************************/
typedef enum fz_fuim_prompt_line_enum 
{
	FZ_FUIM_PROMPT_LINE_NEXT = (-1),		/*	@emem	Places the prompt on the next line in the prompts palette */
	FZ_FUIM_PROMPT_LINE_SAME = (-2),		/*	@emem	Places the prompt on the current line in the prompts palette */
	
	FUIM_PROMPT_LINE_MAX
} fz_fuim_prompt_line_enum;

/********************************************************************************************************

	@enum	

	@desc	Indicates the format of the prompt input. The prompt input is an editable text field to the right 
			of the prompt string on the current prompt line. The data for the prompt input is set with the 
			function fz_fuim_prompt_refresh_data.
			
	@avail	5.0.0.0
			
	@see	fz_fuim_prompt_refresh_data, <auto>

	@toc	fuim

*********************************************************************************************************/
typedef enum fz_fuim_prompt_edit_enum 
{
	FZ_FUIM_PROMPT_EDIT_NONE = 0,				/*	@emem	No prompt input */
	FZ_FUIM_PROMPT_EDIT_XY = 11,				/*	@emem	Prompt input is an XY value in world space on the current reference plane. */
	FZ_FUIM_PROMPT_EDIT_XYZ = 1,				/*	@emem	Prompt input is an XYZ value in world space on the current reference plane. */
	FZ_FUIM_PROMPT_EDIT_ANGLE = 2,				/*	@emem	Prompt input is an angle value. */
	FZ_FUIM_PROMPT_EDIT_LINEAR_X = 4,			/*	@emem	Prompt input single linear value (X). */
	FZ_FUIM_PROMPT_EDIT_LINEAR_XY,				/*	@emem	Prompt input double linear value (X, Y).*/
	FZ_FUIM_PROMPT_EDIT_LINEAR_XYZ,				/*	@emem	Prompt input triple linear value (X, Y, Z). */
	FZ_FUIM_PROMPT_EDIT_LINEAR_DECIMAL_X,		/*	@emem	Prompt input single linear value with decimal display (X). (Overrides working units numeric display options) */
	FZ_FUIM_PROMPT_EDIT_LINEAR_DECIMAL_XY,		/*	@emem	Prompt input double linear value with decimal display (X, Y). (Overrides working units numeric display options) */
	FZ_FUIM_PROMPT_EDIT_LINEAR_DECIMAL_XYZ,		/*	@emem	Prompt input triple linear value with decimal display (X, Y, Z). (Overrides working units numeric display options) */
	FZ_FUIM_PROMPT_EDIT_STRING,					/*	@emem	Prompt input is an unformatted string */

	FUIM_PROMPT_EDIT_MAX
} fz_fuim_prompt_edit_enum;

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets the command name in the prompts palette. This function can be called from the fz_tool_cbak_select 
				function from a tool command plugin to set the name of the tool at the top of the prompts palette. 
				If this function is not called then the tool's name is used as the name at the top of the 
				prompts palette.<nl>
				
				Note: this function can only be called from within tool extensions.<nl> 

	@return		error codes

	@avail		5.0.0.0

	@see		fz_tool_cbak_select,fz_tool_cbak_name

	@exfile		

	@toc		fuim

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_fuim_prompt_name_func)(
	char 				*name			/* @parm	<in> | name string to be placed at the top of the prompts palette */
	);

/********************************************************************************************************

	@fsfunc_t

	@desc		Sets the current prompt in the prompts palette. The provided string is placed on the specified 
				line of the prompts palette. The line parameter indicates which line the string should be 
				placed on.<nl>
				
				Note: this function can only be called from within tool extensions in the click, track and prompt callback functions.<nl> 

	@return		error codes

	@avail		5.0.0.0

	@see		fz_fuim_prompt_refresh_data

	@exfile		

	@toc		fuim

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_fuim_prompt_line_func)(
	char						*string,		/* @parm	<in> | prompt string to be placed at the top of the prompts palette */
	fz_fuim_prompt_line_enum	line,			/* @parm	<in> | indicates what line to place the prompt */
	fz_fuim_prompt_edit_enum	edit_type		/* @parm	<in> | indicates the type of prompt input */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Updates prompt input. This function updates the prompt input of the current prompt line. The prompt data must 
				match the type that was specified in a previous fz_fuim_prompt_line function call as shown below. <nl>
				
				Note: this function can only be called from within tool extensions in the click, track and prompt callback functions.<nl> 
						
				FZ_FUIM_PROMPT_EDIT_XY						fz_xy_td <nl>
				FZ_FUIM_PROMPT_EDIT_XYZ						fz_xyz_td<nl>
				FZ_FUIM_PROMPT_EDIT_ANGLE					double<nl>
				FZ_FUIM_PROMPT_EDIT_LINEAR_X				double<nl>
				FZ_FUIM_PROMPT_EDIT_LINEAR_XY				fz_xy_td<nl>
				FZ_FUIM_PROMPT_EDIT_LINEAR_XYZ				fz_xyz_td<nl>
				FZ_FUIM_PROMPT_EDIT_LINEAR_DECIMAL_X		double<nl>
				FZ_FUIM_PROMPT_EDIT_LINEAR_DECIMAL_XY		fz_xy_td<nl>
				FZ_FUIM_PROMPT_EDIT_LINEAR_DECIMAL_XYZ		fz_xyz_td<nl>
				FZ_FUIM_PROMPT_EDIT_STRING					string (char *) <nl>

	@return		error codes

	@avail		5.0.0.0

	@see		fz_fuim_prompt_line,fz_tool_cbak_track,fz_tool_cbak_click,fz_tool_cbak_prompt

	@exfile		

	@toc		fuim

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_fuim_prompt_refresh_data_func)(
	fz_type_td					*prompt_data		/* @parm	<in> | data for the prompt input */
	);
	
/********************************************************************************************************

	@fsfunc_t	

	@desc		Checks for user cancel of operation. This function checks to see if the user has pressed the 
				cancel key shortcut or the cancel button of a progress bar. It should be called at strategic 
				places in code that could take a fzrt_int time to execute and it is desirable to have the ability 
				for the user to interrupt the task being performed. This function should not be called too frequently as it can 
				affect performance. This function will only return TRUE once per cancel operation so it is important that 
				every call to the function catches the cancel and handles it appropriately. <nl>
	
				The cancel key shortcut is defined by the user in the shortcut manager dialog. By default the <esc> 
				key is a cancel shortcut on all platforms. On Macintosh, the Command + '.' (period) keys 
				is also a default cancel shortcut. On Windows control + 'c' key is also a default cancel shortcut.

	@return		TRUE if cancel has been requested, FALSE if cancel has not been requested.

	@avail		5.0.0.0

	@see		fz_fuim_curs_wait

	@exfile		

	@toc		fuim

*********************************************************************************************************/
typedef fzrt_boolean  (FZRT_SPEC *fz_fuim_key_cancel_func)( void );

/********************************************************************************************************

	@enum	

	@desc	Wait cursor states.
	
	@avail	5.0.0.0
			
	@see	<auto>

	@toc	fuim

*********************************************************************************************************/
typedef enum fz_fuim_curs_wait_enum
{	FZ_FUIM_CURS_WAIT_START=0,				/*	@emem	Indicates the start of a task. */
	FZ_FUIM_CURS_WAIT_TURN,					/*	@emem	Indicates the continuation of a task. */
	FZ_FUIM_CURS_WAIT_END,					/*	@emem	Indicates the end of a task. */
	FZ_FUIM_CURS_WAIT_MAX
} fz_fuim_curs_wait_enum;

/********************************************************************************************************

	@fsfunc_t	

	@desc		Updates the wait cursor. This function updates the wait cursor to indicate to the user that some 
				processing is occurring and they must wait for it to complete (or cancel it if available). It should be 
				called at strategic places in code that could take a fzrt_int time to execute to give feedback to the user that 
				the processing is occurring. This function has small overhead so it will not affect performance unless it is 
				placed in very tight loops. <nl>
				
				The function should be called once with kind == FZ_FUIM_CURS_WAIT_START to indicate the start of a time 
				consuming task. During the processing of the task, it should be called with kind == FZ_FUIM_CURS_WAIT_TURN to 
				update the cursor. A final call at the end of the task with FZ_FUIM_CURS_WAIT_END switches the cursor back to 
				the normal cursor. This function supports nested calls so that only the first call with 
				kind == FZ_FUIM_CURS_WAIT_START changes the cursor to the wait cursor. Likewise only the last nested call with 
				kind == FZ_FUIM_CURS_WAIT_END changes the cursor to the normal cursor.
	
	@avail		5.0.0.0

	@see		fz_fuim_key_cancel

	@exfile		

	@toc		fuim

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_curs_wait_func)(
	fz_fuim_curs_wait_enum	kind		/* @parm	<in> | Update kind for the wait cursor */
	);
	
/********************************************************************************************************

	@fsfunc_t	

	@desc		Default unit conversion function. This function is used to set default values for dimensional values. 
				It takes a default English (inches) and metric (cm) value at a specified scale and converts it to the proper value in 
				the requested units and at the requested scale. This function is useful to keep dimensional values 
				reasonable for the available units and scales.
	
	@avail		5.0.0.0

	@see		fz_notf_cbak_syst_units,fz_notf_cbak_proj_units,fz_notf_cbak_wind_units,fz_notf_cbak_pref_default

	@exfile		

	@toc		fuim

*********************************************************************************************************/
typedef fzrt_error_td 	 (FZRT_SPEC *fz_fuim_unit_convert_func)(
	double 				english_value, 			/* @parm	<in> | default English unit dimensional value */
	double 				metric_value, 			/* @parm	<in> | default metric unit dimensional value */
	fz_unit_scale_enum 	scale_value, 			/* @parm	<in> | scale which the English_value and metric_value parameters represent */
	fz_unit_type_enum 	unit_out, 				/* @parm	<in> | The desired unit type for the returned value */
	fz_unit_scale_enum 	scale_out,				/* @parm	<in> | The desired scale for the returned value */
	double 				*value 					/* @parm	<out> | pointer to dimensional value to be set */
	);
	
/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a group of items, which display the fields of the display resolution 
				attribute passed in. This function should be used, if the display resolution
				attribute belongs to a surface or solid object. If the attribute belongs to a
				curve like object, the function fz_fuim_disp_res_curve_group should be used instead.
				If NULL is passed in for the attribute, the global default display resolution attribute is used. 
				This is the attribute, which is shown in all of the tool options dialogs. 
				The parent group passed in should be a tab group, created with fz_fuim_new_tab_group,
				when the display resolution fields coexist with other items in the same dialog.

	@return		error codes

	@avail		5.0.0.0

	@see		fz_fuim_disp_res_curve_group

	@exfile		

	@toc		fuim

*********************************************************************************************************/
typedef fzrt_error_td 	 (FZRT_SPEC *fz_fuim_disp_res_surf_group_func)(
	fz_fuim_tmpl_ptr 	fuim_tmpl,			/* @parm	<in> | fuim manager										*/
	fzrt_int 				parent,				/* @parm	<in> | parent group										*/
	fz_attr_refn_ptr 	refn_ptr			/* @parm <in_opt> | the display resolution attribute. if passed as NULL, 
																the global default display resolution attribute is used.
																This is the attribute, which is shown in all of the
																tool options dialogs. */
	);
	
/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a group of items, which display the fields of the display resolution 
				attribute passed in. This function should be used, if the display resolution
				attribute belongs to a curve like object. If the attribute belongs to a
				surface or solid object, the function fz_fuim_disp_res_surf_group should be used instead.
				If NULL is passed in for the attribute, the global default display resolution attribute is used. 
				This is the attribute, which is shown in all of the tool options dialogs. 
				The parent group passed in should be a tab group, created with fz_fuim_new_tab_group,
				when the display resolution fields coexist with other items in the same dialog.

	@return		error codes

	@avail		5.0.0.0

	@see		fz_fuim_disp_res_surf_group

	@exfile		

	@toc		fuim

*********************************************************************************************************/
typedef fzrt_error_td 	 (FZRT_SPEC *fz_fuim_disp_res_curve_group_func)(
	fz_fuim_tmpl_ptr 	fuim_tmpl,			/* @parm	<in> | fuim manager										*/
	fzrt_int 				parent,				/* @parm	<in> | parent group										*/
	fz_attr_refn_ptr 	refn_ptr			/* @parm <in_opt> | the display resolution attribute. if passed as NULL, 
																the global default display resolution attribute is used.
																This is the attribute, which is shown in all of the
																tool options dialogs. */
	);

	
/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a group of items, which display the status of object fields for a tool.
				The parent group passed in should be a tab group, created with fz_fuim_new_tab_group,
				when the status of object fields coexist with other items in the same dialog.

	@return		error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim

*********************************************************************************************************/
typedef fzrt_error_td 	 (FZRT_SPEC *fz_fuim_status_of_objt_group_func)(
	fz_fuim_tmpl_ptr 	fuim_tmpl,			/* @parm	<in> | fuim manager										*/
	fzrt_int 				parent				/* @parm	<in> | parent group										*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a group of items, which display the standard model type options : two radio
				buttons named "Facetted" and "Smooth" enclosed by a border titled "Model Type".

	@return		error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim

*********************************************************************************************************/
typedef fzrt_error_td 	 (FZRT_SPEC *fz_fuim_model_type_group_func)(
	fz_fuim_tmpl_ptr 	fuim_tmpl,			/* @parm	<in> | fuim manager										*/
	fzrt_int 				parent,				/* @parm	<in> | parent group										*/
	fz_objt_model_type_enum *model_type		/* @parm	<in> | the variable, which stored the model type		*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Gets the current time.
				This will get the current time in seconds since a predefined
				time. Unlike fzrt_get_date_time, the predefined time is system independent.

	@return		FZRT_NOERR if successful, error ID otherwise

	@avail		5.5.0.0

	@see		fzrt_get_date_time

	@toc		fuim

*********************************************************************************************************/
typedef fzrt_error_td 	 (FZRT_SPEC *fz_fuim_get_date_time_func)(
	fzrt_unsigned_int *			date_time		/* @parm	<out> | pointer to fzrt_unsigned_int that receives the current time in seconds */
	);

/************************************************************************

	@fsfunc_t

	@desc		Gets the month. This will get the month from a date time object

	@return		FZRT_NOERR if successful, error ID otherwise

	@avail		5.5.0.0

	@see		fz_fuim_get_date_time

	@toc		fuim

*************************************************************************/
typedef fzrt_error_td (FZRT_SPEC * fz_fuim_date_time_get_month_func)(
	fzrt_unsigned_int			date_time,		/* @parm <in> | seconds from fz_fuim_get_date_time*/
	fzrt_int *					month			/* @parm <out> | received the month from the date_time object */
	);

/************************************************************************

	@fsfunc_t

	@desc		Gets the day. This will get the day of the month from a date time object

	@return		FZRT_NOERR if successful, error ID otherwise

	@avail		5.5.0.0

	@see		fz_fuim_get_date_time

	@toc		fuim

*************************************************************************/
typedef fzrt_error_td (FZRT_SPEC * fz_fuim_date_time_get_day_func)(
	fzrt_unsigned_int			date_time,		/* @parm <in> | seconds from fz_fuim_get_date_time*/
	fzrt_int *					day				/* @parm <out> | received the day of the month from the date_time object */
	);

/************************************************************************

	 @fsfunc_t

	@desc		Gets the year. This will get the year from a date time object

	@return		FZRT_NOERR if successful, error ID otherwise

	@avail		5.5.0.0

	@see		fz_fuim_get_date_time

	@toc		fuim

*************************************************************************/
typedef fzrt_error_td (FZRT_SPEC * fz_fuim_date_time_get_year_func)(
	fzrt_unsigned_int			date_time,		/* @parm <in> | seconds from fz_fuim_get_date_time*/
	fzrt_int *					year			/* @parm <out> | received the year from the date_time object */
	);

/************************************************************************

	@fsfunc_t

	@desc		Gets the hour. This will get the hour (0--23) from a date time object

	@return		FZRT_NOERR if successful, error ID otherwise

	@avail		5.5.0.0

	@see		fz_fuim_get_date_time

	@toc		fuim

*************************************************************************/
typedef fzrt_error_td (FZRT_SPEC * fz_fuim_date_time_get_hour_func)(
	fzrt_unsigned_int			date_time,		/* @parm <in> | seconds from fz_fuim_get_date_time*/
	fzrt_int *					hour			/* @parm <out> | received the hours from the date_time object */
	);

/************************************************************************

	@fsfunc_t

	@desc		This will get the minute (0..59) from a date time object

	@return		FZRT_NOERR if successful, error ID otherwise

	@avail		5.5.0.0

	@see		fz_fuim_get_date_time

	@toc		fuim

*************************************************************************/
typedef fzrt_error_td (FZRT_SPEC * fz_fuim_date_time_get_minute_func)(
	fzrt_unsigned_int			date_time,		/* @parm <in> | seconds from fz_fuim_get_date_time*/
	fzrt_int *					minute			/* @parm <out> | receives the minutes from the date_time object */
	);

/************************************************************************

	@fsfunc_t

	@desc		Gets the seconds This will get the seconds (0..59) from a date time object

	@return		FZRT_NOERR if successful, error ID otherwise

	@avail		5.5.0.0

	@see		fz_fuim_get_date_time

	@toc		fuim

*************************************************************************/
typedef fzrt_error_td (FZRT_SPEC * fz_fuim_date_time_get_second_func)(
	fzrt_unsigned_int			date_time,		/* @parm <in> | seconds from fz_fuim_get_date_time*/
	fzrt_int *					second			/* @parm <out> | received the seconds from the date_time object */
	);

/********************************************************************************************************

	@enum	

	@desc	Identifier which determines which kind of entity a dialog item belongs to.
			This identifier is used in the animation dialog item creation function to
			tell formZ in which kind of dialog the item is created.
	
	@avail	6.0.0.2
			
	@see	<auto>

	@toc	fuim

*********************************************************************************************************/
typedef enum fz_fuim_anim_item_type_enum
{
	FZ_FUIM_ANIM_OBJECT_TYPE = 0,	/*	@emem	dialog item belongs to an object. */
	FZ_FUIM_ANIM_LIGHT_TYPE,		/*	@emem	dialog item belongs to a light. */
	FZ_FUIM_ANIM_VIEW_TYPE,			/*	@emem	dialog item belongs to a view. */
	FZ_FUIM_ANIM_GRUP_TYPE,			/*  @emem	dialog item belongs to an animation group. */
	FZ_FUIM_ANIM_SURF_TYPE,			/*	@emem	dialog item belongs to a surface style. */
	FZ_FUIM_ANIM_DFRM_TYPE,			/*	@emem	dialog item belongs to a deformation. */

	FZ_FUIM_ANIM_TYPE_MAX

} fz_fuim_anim_item_type_enum;

/********************************************************************************************************

	@enum	

	@desc	Bit flags meant to be used by the anim_flags parameter of the 
			animation dialog item creation functions. They determine which kind of
			appearance the animation items have.
	
	@avail	6.0.0.2
			
	@see	<auto>

	@toc	fuim

*********************************************************************************************************/
typedef enum fz_fuim_anim_flags_enum
{
	FZ_FUIM_ANIM_FLAG_DEFER_BIT = 0,			/*	@emem	If this bit is set, the animation item is not added to the dialog item. 
														It is expected that the animation item is created by a separate call 
														to fz_fuim_new_anim_item. If this bit is off, the animation item is
														automatically added at the right side of the dialog item. */
	FZ_FUIM_ANIM_FLAG_MAX
	
} fz_fuim_anim_flags_enum;

/************************************************************************

	@fsfunc_t

	@desc		Creates an animation dialog item for a set of other, previously created, dialog items.
				This is most commonly the case for a set of radio buttons, which represent one
				animated parameter. The radios buttons are created with fz_fuim_new_radio_anim,
				where the anim_flags has the FZ_FUIM_ANIM_FLAG_DEFER_BIT bit set. This causes the radio
				button to not show an animation item right next to it. The item ids returned
				by fz_fuim_new_radio_anim are stored in the grup_item_indx array, which is then passed
				to fz_fuim_new_anim_item. Typically a layout is created so that the animation item is positioned
				to the right of the group of radio buttons. That means, that the radio buttons are grouped together and
				together with the animation item are placed in a horizopntal parent group.
				Note, that it is important, that all the radio buttons and 
				fz_fuim_new_anim_item are passed the same track uuid (parm_uuid).

	@return		animation item id

	@avail		6.0.0.2

	@see		<auto>

	@toc		fuim

*************************************************************************/
typedef short (FZRT_SPEC *fz_fuim_new_anim_item_func) (
	fz_fuim_tmpl_ptr 			fuim_tmpl,			/* @parm	<in> | fuim manager										*/
	short 						parent,				/* @parm	<in> | parent group										*/
	fzrt_int						grup_cnt,			/* @parm	<in> | the number of items in the grup_item_indx array  */ 
	short						*grup_item_indx, 	/* @parm	<in> | an array with item ids, which are represented by the animation item. */ 
	fzrt_int 						windex,				/* @parm	<in> | The project, in which the animated entity exists					*/
	fz_fuim_anim_item_type_enum	item_type, 			/* @parm	<in> | The type of entity that is animated								*/
	fz_tag_td					*item_tag,			/* @parm	<in> | The tag reference of the animated entity							*/
	fzrt_UUID_td				parm_uuid			/* @parm	<in> | The uuid of the track (entity parameter), which is animated		*/
	);

/************************************************************************

	@fsfunc_t

	@desc		Creates a text edit item which represents an entity parameter that can be animated.
				The animation item is shown as a small dot behind the text edit field, which
				pops a menu, when clicked on. The menu items allow the user to control the animation status of the parameter.
				See fz_fuim_new_text_edit for a full description of the text edit item.

	@return		text edit item id

	@avail		6.0.0.2

	@see		fz_fuim_new_text_edit

	@toc		fuim

*************************************************************************/
typedef short (FZRT_SPEC *fz_fuim_new_text_edit_anim_func) (
	fz_fuim_tmpl_ptr 			fuim_tmpl,			/* @parm	<in> | fuim manager									*/
	short						parent,				/* @parm	<in> | parent group									*/
	short						id,					/* @parm	<in> | edit text item id							*/
	fzrt_int						flags,				/* @parm	<in> | construction flags
											   		   @rflag	fz_fuim_flag_enum									*/
	fz_fuim_item_func			item_func,			/* @parm	<in_opt> | item function							*/
	void						*item_data,			/* @parm	<in_opt> | data to pass to item function<nl>
																		   if item_func is NULL, this is ignored	*/
	fzrt_int						anim_flags, 		/* @parm	<in> | bit encoded flag, that determine the appearance of the animation item.
													   @rflag	The flags are defined by fz_fuim_anim_flags_enum. 		*/
	fzrt_int 						windex,				/* @parm	<in> | The project, in which the animated entity exists					*/
	fz_fuim_anim_item_type_enum	item_type, 			/* @parm	<in> | The type of entity that is animated								*/
	fz_tag_td					*item_tag,			/* @parm	<in> | The tag reference of the animated entity							*/
	fzrt_UUID_td				parm_uuid			/* @parm	<in> | The uuid of the track (entity parameter), which is animated		*/
	);

/************************************************************************

	@fsfunc_t

	@desc		Creates a static text item, followed by a text edit item which represents an entity parameter that can be animated.
				The animation item is shown as a small dot behind the text edit field, which
				pops a menu, when clicked on. The menu items allow the user to control the animation status of the parameter.
				See fz_fuim_new_text_static_edit for a full description of the static/edit text item.

	@return		static text item id

	@avail		6.0.0.2

	@see		fz_fuim_new_text_static_edit

	@toc		fuim

*************************************************************************/
typedef short (FZRT_SPEC *fz_fuim_new_text_static_edit_anim_func) (
	fz_fuim_tmpl_ptr 			fuim_tmpl,			/* @parm	<in> | fuim manager									*/
	short						parent,				/* @parm	<in> | parent group									*/
	short						text_id,			/* @parm	<in> | text static item id							*/
	char						*text_str,			/* @parm	<in> | <in_opt> | static text name
											   		   @default	a text edit item without a name is created			*/
	short						edit_id,			/* @parm	<in> | text edit item id							*/
	fzrt_int						edit_flags,			/* @parm	<in> | edit flags									*/
	fz_fuim_item_func			item_func,			/* @parm	<in_opt> | item function							*/
	void						*item_data,			/* @parm	<in_opt> | data to pass to item function<nl>
																		   if item_func is NULL, this is ignored				*/
	fzrt_int						anim_flags, 		/* @parm	<in> | bit encoded flag, that determine the appearance of the animation item.
													   @rflag	The flags are defined by fz_fuim_anim_flags_enum. 		*/
	fzrt_int 						windex,				/* @parm	<in> | The project, in which the animated entity exists					*/
	fz_fuim_anim_item_type_enum	item_type, 			/* @parm	<in> | The type of entity that is animated								*/
	fz_tag_td					*item_tag,			/* @parm	<in> | The tag reference of the animated entity							*/
	fzrt_UUID_td				parm_uuid,			/* @parm	<in> | The uuid of the track (entity parameter), which is animated		*/
	short						*edit_indx			/* @parm	<out_opt> | item id of edit fuim item				*/
	);

/************************************************************************

	@fsfunc_t

	@desc		Creates a check box item which represents an entity parameter that can be animated.
				The animation item is shown as a small dot behind the check box field, which
				pops a menu, when clicked on. The menu items allow the user to control the animation status of the parameter.
				See fz_fuim_new_check for a full description of the check box item.

	@return		check box item id

	@avail		6.0.0.2

	@see		fz_fuim_new_check

	@toc		fuim

*************************************************************************/
typedef short (FZRT_SPEC *fz_fuim_new_check_anim_func) (
	fz_fuim_tmpl_ptr 			fuim_tmpl,			/* @parm	<in> | fuim manager									*/
	short						parent,				/* @parm	<in> | parent group									*/
	short						id,					/* @parm	<in> | checkbox item id								*/
	fzrt_int						flags,				/* @parm	<in> | construction flags
											  			 @rflag	fz_fuim_flag_enum									*/
	char						*titl_str,			/* @parm	<in_opt> | checkbox title
											   			@default	a checkbox item without a title is created			*/
	fz_fuim_item_func			item_func,			/* @parm	<in_opt> | item function							*/
	void						*item_data,			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored				*/
	fzrt_int						anim_flags, 		/* @parm	<in> | bit encoded flag, that determine the appearance of the animation item.
													   @rflag	The flags are defined by fz_fuim_anim_flags_enum. 		*/
	fzrt_int 						windex,				/* @parm	<in> | The project, in which the animated entity exists					*/
	fz_fuim_anim_item_type_enum	item_type, 			/* @parm	<in> | The type of entity that is animated								*/
	fz_tag_td					*item_tag,			/* @parm	<in> | The tag reference of the animated entity							*/
	fzrt_UUID_td				parm_uuid			/* @parm	<in> | The uuid of the track (entity parameter), which is animated		*/
	);

/************************************************************************

	@fsfunc_t

	@desc		Creates a menu item which represents an entity parameter that can be animated.
				The animation item is shown as a small dot behind the menu, which
				pops a menu, when clicked on. The menu items allow the user to control the animation status of the parameter.
				See fz_fuim_new_menu for a full description of the menu item.

	@return		menu item id

	@avail		6.0.0.2

	@see		fz_fuim_new_menu

	@toc		fuim

*************************************************************************/
typedef short (FZRT_SPEC *fz_fuim_new_menu_anim_func) (
	fz_fuim_tmpl_ptr			fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short						parent,				/* @parm	<in> | parent group									*/
	short						id,					/* @parm	<in> | menu item id									*/
	fzrt_int						flags,				/* @parm	<in> | construction flags
											  		   @rflag	fz_fuim_flag_enum									*/
	char						*titl_str,			/* @parm	<in_opt> | menu title
											   		   @default	a menu item without a name is created				*/
	fzrt_menu_ptr				menu,				/* @parm	<in> | pointer to menu								*/
	fzrt_boolean				is_pop,				/* @parm	<in> | if TRUE, the menu is a popup, 
														otherwise it is a standard menu						*/
	fz_fuim_item_func			item_func,			/* @parm	<in_opt> | item function							*/
	void						*item_data,			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored				*/
	fzrt_int						anim_flags, 		/* @parm	<in> | bit encoded flag, that determine the appearance of the animation item.
													   @rflag	The flags are defined by fz_fuim_anim_flags_enum. 		*/
	fzrt_int 						windex,				/* @parm	<in> | The project, in which the animated entity exists					*/
	fz_fuim_anim_item_type_enum	item_type, 			/* @parm	<in> | The type of entity that is animated								*/
	fz_tag_td					*item_tag,			/* @parm	<in> | The tag reference of the animated entity							*/
	fzrt_UUID_td				parm_uuid			/* @parm	<in> | The uuid of the track (entity parameter), which is animated		*/
	);

/************************************************************************

	@fsfunc_t

	@desc		Creates a slider item which represents an entity parameter that can be animated.
				The animation item is shown as a small dot behind the slider, which
				pops a menu, when clicked on. The menu items allow the user to control the animation status of the parameter.
				See fz_fuim_new_slider for a full description of the slider item.

	@return		slider item id

	@avail		6.0.0.2

	@see		fz_fuim_new_slider

	@toc		fuim

*************************************************************************/
typedef short (FZRT_SPEC *fz_fuim_new_slider_anim_func) (
	fz_fuim_tmpl_ptr			fuim_tmpl,			/* @parm	<in> | fuim manager									*/
	short						parent,				/* @parm	<in> | parent group									*/
	short						id,					/* @parm	<in> | slider item id								*/
	fzrt_int						flags,				/* @parm	<in> | construction flags
											  		   @rflag	fz_fuim_flag_enum									*/
	char						*titl_str,			/* @parm	<in_opt> | slider title
											   		   @default	a slider item without a name is created				*/
	fz_fuim_item_func			item_func,			/* @parm	<in_opt> | item function							*/
	void						*item_data,			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored				*/
	fzrt_int						anim_flags, 		/* @parm	<in> | bit encoded flag, that determine the appearance of the animation item.
													   @rflag	The flags are defined by fz_fuim_anim_flags_enum. 		*/
	fzrt_int 						windex,				/* @parm	<in> | The project, in which the animated entity exists					*/
	fz_fuim_anim_item_type_enum	item_type, 			/* @parm	<in> | The type of entity that is animated								*/
	fz_tag_td					*item_tag,			/* @parm	<in> | The tag reference of the animated entity							*/
	fzrt_UUID_td				parm_uuid			/* @parm	<in> | The uuid of the track (entity parameter), which is animated		*/
	);

/************************************************************************

	@fsfunc_t

	@desc		Creates a radio button item which represents an entity parameter that can be animated.
				The animation item is shown as a small dot behind the radio button, which
				pops a menu, when clicked on. The menu items allow the user to control the animation status of the parameter.
				See fz_fuim_new_radio for a full description of the radio button.
				
				Note, that ususally, the anim_flags argument has the FZ_FUIM_ANIM_FLAG_DEFER_BIT bit set. 
				This causes the radio button to not show an animation item right next to it. The item ids returned
				by fz_fuim_new_radio_anim are stored in an array array, which is then passed
				to fz_fuim_new_anim_item. Typically a layout is created so that the animation item is positioned
				to the right of the group of radio buttons. That means, that the radio buttons are grouped together and
				together with the animation item are placed in a horizopntal parent group.
				Note, that it is important, that all the radio buttons and 
				fz_fuim_new_anim_item are passed the same track uuid (parm_uuid).

	@return		radio item id

	@avail		6.0.0.2

	@see		fz_fuim_new_radio

	@toc		fuim

*************************************************************************/
typedef short (FZRT_SPEC *fz_fuim_new_radio_anim_func) (
	fz_fuim_tmpl_ptr			fuim_tmpl,		/* @parm	<in> | fuim manager										*/
	short						parent,				/* @parm	<in> | parent group										*/
	short						id,					/* @parm	<in> | item id											*/
	fzrt_int						flags,				/* @parm	<in> | construction flags
													   @rflag	fz_fuim_flag_enum								*/
	char						*titl_str,			/* @parm	<in_opt> | radio button title
													   @default	a radio button item without a title is created			*/
	fz_fuim_item_func			item_func,			/* @parm	<in_opt> | item function								*/
	void						*item_data,			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored					*/
	fzrt_int						anim_flags, 		/* @parm	<in> | bit encoded flag, that determine the appearance of the animation item.
													   @rflag	The flags are defined by fz_fuim_anim_flags_enum. 		*/
	fzrt_int 						windex,				/* @parm	<in> | The project, in which the animated entity exists					*/
	fz_fuim_anim_item_type_enum	item_type, 			/* @parm	<in> | The type of entity that is animated								*/
	fz_tag_td					*item_tag,			/* @parm	<in> | The tag reference of the animated entity							*/
	fzrt_UUID_td				parm_uuid			/* @parm	<in> | The uuid of the track (entity parameter), which is animated		*/
	);

/************************************************************************

	@fsfunc_t

	@desc		Creates an icon item which represents an entity parameter that can be animated.
				The animation item is shown as a small dot behind the icon, which
				pops a menu, when clicked on. The menu items allow the user to control the animation status of the parameter.
				See fz_fuim_new_icon for a full description of the icon item.
				
				If several icons are used to represent the state of a single pararameter, they must
				be set up like radio buttons. See fz_fuim_new_radio_anim for more details.

	@return		icon item id

	@avail		6.0.0.2

	@see		fz_fuim_new_radio_anim, fz_fuim_new_icon

	@toc		fuim

*************************************************************************/
typedef short (FZRT_SPEC *fz_fuim_new_icon_anim_func) (
	fz_fuim_tmpl_ptr			fuim_tmpl,			/* @parm	<in> | fuim manager									*/
	short						parent,				/* @parm	<in> | parent group									*/
	short						id,					/* @parm	<in> | icon item id									*/
	fzrt_int						flags,				/* @parm	<in> | construction flags
											  		   @rflag	fz_fuim_flag_enum									*/
	fzrt_floc_ptr 				floc,				/* @parm	<in> | file location of file which contains the icon. */
	fzrt_int 						hpos, 				/* @parm	<in> | left horizontal location of icon data in file. */
	fzrt_int 						vpos, 				/* @parm	<in> | top vertical location of icon data in file. */
	fzrt_floc_ptr 				floc_mask, 			/* @parm	<in_opt> | file location of file which contains the icon mask data. */
	fzrt_int 						hpos_mask, 			/* @parm	<in_opt> | left horizontal location of icon mask data in file. */
	fzrt_int 						vpos_mask,			/* @parm	<in_opt> | top vertical location of icon mask data in file. */
	fz_fuim_item_func			item_func,			/* @parm	<in_opt> | item function							*/
	void						*item_data,			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored				*/
	fzrt_int						anim_flags, 		/* @parm	<in> | bit encoded flag, that determine the appearance of the animation item.
													   @rflag	The flags are defined by fz_fuim_anim_flags_enum. 		*/
	fzrt_int 						windex,				/* @parm	<in> | The project, in which the animated entity exists					*/
	fz_fuim_anim_item_type_enum	item_type, 			/* @parm	<in> | The type of entity that is animated								*/
	fz_tag_td					*item_tag,			/* @parm	<in> | The tag reference of the animated entity							*/
	fzrt_UUID_td				parm_uuid			/* @parm	<in> | The uuid of the track (entity parameter), which is animated		*/
	);

/************************************************************************

	@fsfunc_t

	@desc		Creates a custom item which represents an entity parameter that can be animated.
				The animation item is shown as a small dot behind the custom item, which
				pops a menu, when clicked on. The menu items allow the user to control the animation status of the parameter.
				See fz_fuim_new_custom for a full description of the custom item.
				
	@return		custom item id

	@avail		6.0.0.2

	@see		fz_fuim_new_custom

	@toc		fuim

*************************************************************************/
typedef short (FZRT_SPEC *fz_fuim_new_custom_anim_func) (
	fz_fuim_tmpl_ptr 			fuim_tmpl,			/* @parm	<in> | fuim manager									*/
	short						parent,				/* @parm	<in> | parent group									*/
	short						id,					/* @parm	<in> | custom item id								*/
	fzrt_int						flags,				/* @parm	<in> | construction flags
													   @rflag	fz_fuim_flag_enum							*/
	char						*titl_str,			/* @parm	<in_opt> | custom title
													   @default	a picture item without a name is created			*/
	fz_fuim_item_cust_func		cust_func,			/* @parm	<in_opt> | custom function							*/
	void						*cust_data,			/* @parm	<in_opt> | data to pass to custom function<nl>
																if cust_func is NULL, this is ignored				*/
	fzrt_int						anim_flags, 		/* @parm	<in> | bit encoded flag, that determine the appearance of the animation item.
													   @rflag	The flags are defined by fz_fuim_anim_flags_enum. 		*/
	fzrt_int 						windex,				/* @parm	<in> | The project, in which the animated entity exists					*/
	fz_fuim_anim_item_type_enum	item_type, 			/* @parm	<in> | The type of entity that is animated								*/
	fz_tag_td					*item_tag,			/* @parm	<in> | The tag reference of the animated entity							*/
	fzrt_UUID_td				parm_uuid			/* @parm	<in> | The uuid of the track (entity parameter), which is animated		*/
	);

/************************************************************************

	@fsfunc_t

	@desc		Creates a slider item with a text edit field, which show a percentage value.
				The slider and text edit field are linked to a float value. This value which represents an 
				entity parameter that can be animated.
				The animation item is shown as a small dot behind the text edit item, which
				pops a menu, when clicked on. The menu items allow the user to control the animation status of the parameter.
				See fz_fuim_new_slid_edit_pcent_float for a full description of the precent slider item.
				
	@return		item id of the slider title

	@avail		6.0.0.2

	@see		fz_fuim_new_slid_edit_pcent_float

	@toc		fuim

*************************************************************************/
typedef short (FZRT_SPEC *fz_fuim_new_slider_edit_pcent_float_anim_func) (
	fz_fuim_tmpl_ptr 			fuim_tmpl,			/* @parm	<in> | fuim manager										*/
	short						parent,				/* @parm	<in> | parent group										*/
	char						*titl_str,			/* @parm	<in_opt> | slider title
													   @default	a slider item without a name is created					*/
	short 						slid_item_id,		/* @parm	<in> | slider item id									*/	
	short						edit_item_id,		/* @parm	<in> | text edit item id								*/
	float						min,				/* @parm	<in> | minimum value of slider (range value)			*/
	float						max,				/* @parm	<in> | maximum value of slider (range value)			*/
	float						pmin,				/* @parm	<in> | minimum value of slider (display value)			*/
	float						pmax,				/* @parm	<in> | maximum value of slider (display value)			*/
	float 						field_min, 			/* @parm	<in> | minimum allowable field value, if the range_flags parameter is passed with FZ_FUIM_RANGE_MIN. 
																	   This argument must be less or equal to the pmin argument */
	float 						field_max, 			/* @parm	<in> | maximum allowable field value, if the range_flags parameter is passed with FZ_FUIM_RANGE_MAX. 
																	   This argument must be greater or equal to the pmax argument */
	fzrt_int						range_flags,		/* @parm	<in> | range flags
													   @rflag	fz_fuim_range_enum										*/
	fz_fuim_item_func			item_func,			/* @parm	<in_opt> | item function							*/
	void						*item_data,			/* @parm	<in_opt> | data to pass to item function<nl>
																		   if item_func is NULL, this is ignored				*/
	float						*data,				/* @parm	<in> | pointer to the data								*/
	fzrt_int						anim_flags, 		/* @parm	<in> | bit encoded flag, that determine the appearance of the animation item.
													   @rflag	The flags are defined by fz_fuim_anim_flags_enum. 		*/
	fzrt_int 						windex,				/* @parm	<in> | The project, in which the animated entity exists					*/
	fz_fuim_anim_item_type_enum	item_type, 			/* @parm	<in> | The type of entity that is animated								*/
	fz_tag_td					*item_tag,			/* @parm	<in> | The tag reference of the animated entity							*/
	fzrt_UUID_td				parm_uuid,			/* @parm	<in> | The uuid of the track (entity parameter), which is animated		*/
	short						*slid_item,			/* @parm	<out_opt> | slider item id								*/
	short						*edit_item			/* @parm	<out_opt> | text edit item id							*/
	);

/************************************************************************

	@fsfunc_t

	@desc		Creates a slider item with a text edit field, which show a percentage value.
				The slider and text edit field are linked to a double value. This value which represents an 
				entity parameter that can be animated.
				The animation item is shown as a small dot behind the text edit item, which
				pops a menu, when clicked on. The menu items allow the user to control the animation status of the parameter.
				See fz_fuim_new_slid_edit_pcent_double for a full description of the precent slider item.
				
	@return		item id of the slider title

	@avail		6.0.0.2

	@see		fz_fuim_new_slid_edit_pcent_double

	@toc		fuim

*************************************************************************/
typedef short (FZRT_SPEC *fz_fuim_new_slider_edit_pcent_double_anim_func) (
	fz_fuim_tmpl_ptr 			fuim_tmpl,			/* @parm	<in> | fuim manager										*/
	short						parent,				/* @parm	<in> | parent group										*/
	char						*titl_str,			/* @parm	<in_opt> | slider title
													   @default	a slider item without a name is created					*/
	short 						slid_item_id,		/* @parm	<in> | slider item id									*/	
	short						edit_item_id,		/* @parm	<in> | text edit item id								*/
	double						min,				/* @parm	<in> | minimum value of slider (range value)			*/
	double						max,				/* @parm	<in> | maximum value of slider (range value)			*/
	double						pmin,				/* @parm	<in> | minimum value of slider (display value)			*/
	double						pmax,				/* @parm	<in> | maximum value of slider (display value)			*/
	double 						field_min, 			/* @parm	<in> | minimum allowable field value, if the range_flags parameter is passed with FZ_FUIM_RANGE_MIN. 
																	   This argument must be less or equal to the pmin argument */
	double 						field_max, 			/* @parm	<in> | maximum allowable field value, if the range_flags parameter is passed with FZ_FUIM_RANGE_MAX. 
																	   This argument must be greater or equal to the pmax argument */
	fzrt_int						range_flags,		/* @parm	<in> | range flags
													   @rflag	fz_fuim_range_enum										*/
	fz_fuim_item_func			item_func,			/* @parm	<in_opt> | item function							*/
	void						*item_data,			/* @parm	<in_opt> | data to pass to item function<nl>
																		   if item_func is NULL, this is ignored				*/
	double						*data,				/* @parm	<in> | pointer to the data								*/
	fzrt_int						anim_flags, 		/* @parm	<in> | bit encoded flag, that determine the appearance of the animation item.
													   @rflag	The flags are defined by fz_fuim_anim_flags_enum. 		*/
	fzrt_int 						windex,				/* @parm	<in> | The project, in which the animated entity exists					*/
	fz_fuim_anim_item_type_enum	item_type, 			/* @parm	<in> | The type of entity that is animated								*/
	fz_tag_td					*item_tag,			/* @parm	<in> | The tag reference of the animated entity							*/
	fzrt_UUID_td				parm_uuid,			/* @parm	<in> | The uuid of the track (entity parameter), which is animated		*/
	short						*slid_item,			/* @parm	<out_opt> | slider item id								*/
	short						*edit_item			/* @parm	<out_opt> | text edit item id							*/
	);

/************************************************************************

	@fsfunc_t

	@desc		Creates a new color picker item (using a float for the color). Item represent a 
				color parameter that can be animated.
				The animation item is shown as a small dot behind the color box, which
				pops a menu, when clicked on. The menu items allow the user to control the animation status of the parameter.
				See fz_fuim_new_color_box for a full description of the color item.
				
	@return		item id of the color box

	@avail		6.0.0.2

	@see		fz_fuim_new_color_box

	@toc		fuim

*************************************************************************/
typedef short (FZRT_SPEC *fz_fuim_new_color_box_anim_func) (
	fz_fuim_tmpl_ptr fuim_tmpl,						/* @parm	<in> | fuim manager									*/
	short						parent,				/* @parm	<in> | parent group									*/
	short						id,					/* @parm	<in> | color picker item id							*/
	fzrt_int						flags,				/* @parm	<in> | construction flags
								  					   @rflag	fz_fuim_flag_enum									*/
	char						*picker_title,		/* @parm	<in> | <in_opt> | color picker title
								  					   @default	a color picker item without a name is created		*/
	float						*col,				/* @parm	<in> | color										*/
	fzrt_int						anim_flags, 		/* @parm	<in> | bit encoded flag, that determine the appearance of the animation item.
													   @rflag	The flags are defined by fz_fuim_anim_flags_enum. 		*/
	fzrt_int 						windex,				/* @parm	<in> | The project, in which the animated entity exists					*/
	fz_fuim_anim_item_type_enum	item_type, 			/* @parm	<in> | The type of entity that is animated								*/
	fz_tag_td					*item_tag,			/* @parm	<in> | The tag reference of the animated entity							*/
	fzrt_UUID_td				parm_uuid			/* @parm	<in> | The uuid of the track (entity parameter), which is animated		*/
	);

/************************************************************************

	@fsfunc_t

	@desc		Creates a new color picker item (using a float for the color). Item represent a 
				color parameter that can be animated.
				The animation item is shown as a small dot behind the color box, which
				pops a menu, when clicked on. The menu items allow the user to control the animation status of the parameter.
				See fz_fuim_new_color_box for a full description of the color item.
				

				This function is the same as fz_fuim_new_color_box_anim, except that
				it takes an item function and and item data argument, as other
				fuim item creation functions. Note, that the item function is called
				less frequently for a color box. Its main use is for the FZ_FUIM_ACTN_NEW_VALUE
				action, which indicates, that the color was changed. Other actions
				are currently not supported.

	@return		item id of the color box

	@avail		6.5.4.0

	@see		fz_fuim_new_color_box_anim

	@toc		fuim

*************************************************************************/
typedef short (FZRT_SPEC *fz_fuim_new_color_box_anim2_func) (
	fz_fuim_tmpl_ptr fuim_tmpl,						/* @parm	<in> | fuim manager									*/
	short						parent,				/* @parm	<in> | parent group									*/
	short						id,					/* @parm	<in> | color picker item id							*/
	fzrt_int						flags,				/* @parm	<in> | construction flags
								  					   @rflag	fz_fuim_flag_enum									*/
	char						*picker_title,		/* @parm	<in> | <in_opt> | color picker title
								  					   @default	a color picker item without a name is created		*/
	float						*col,				/* @parm	<in> | color										*/
	fz_fuim_item_func			item_func,			/* @parm	<in_opt> | item function								*/
	void						*item_data,			/* @parm	<in_opt> | data to pass to item function<nl>			*/
	fzrt_int						anim_flags, 		/* @parm	<in> | bit encoded flag, that determine the appearance of the animation item.
													   @rflag	The flags are defined by fz_fuim_anim_flags_enum. 		*/
	fzrt_int 						windex,				/* @parm	<in> | The project, in which the animated entity exists					*/
	fz_fuim_anim_item_type_enum	item_type, 			/* @parm	<in> | The type of entity that is animated								*/
	fz_tag_td					*item_tag,			/* @parm	<in> | The tag reference of the animated entity							*/
	fzrt_UUID_td				parm_uuid			/* @parm	<in> | The uuid of the track (entity parameter), which is animated		*/
	);

/************************************************************************

	@fsfunc_t

	@desc		Redraws the fuim item.

	@return		None

	@avail		7.0.0.0

	@see		

	@toc		fuim

*************************************************************************/
typedef void (FZRT_SPEC *fz_fuim_item_redraw_now_func)(
	fz_fuim_tmpl_ptr		fuim_tmpl,				/* @parm	<in> | fuim manager	*/
	short					id						/* @parm	<in> | item id */
	);
	
/************************************************************************

	@fsfunc_t

	@desc		Invalidates the item, so that it can be redrawn.

	@return		None

	@avail		7.0.0.0

	@see		

	@toc		fuim

*************************************************************************/
typedef void (FZRT_SPEC *fz_fuim_item_inval_func)(
	fz_fuim_tmpl_ptr		fuim_tmpl,				/* @parm	<in> | fuim manager	*/
	short					id						/* @parm	<in> | item id */
	);

/********************************************************************************************************

	@gdef	

	@desc	Flag equivalent to FZ_FUIM_ANIM_FLAG_DEFER_BIT

	@avail	6.0.0.2

	@toc	fuim_tmpl

*********************************************************************************************************/
#define	FZ_FUIM_ANIM_FLAG_DEFER	 	(1<<FZ_FUIM_ANIM_FLAG_DEFER_BIT)

/********************************************************************************************************

	@enum	

	@desc	Dialog item type through which a parameter of a entity can be displayed. This enum
			is used by generic info callback function of the object type, surface style ...
			plugin types, to tell formZ how a parameter is perferrably displayed in a dialog.
			formZ uses this information, for example, to format a parameter in the animation
			track editor dialog.
			
	@avail	6.0.0.2
			
	@see	<auto>

	@toc	fuim_tmpl

*********************************************************************************************************/
typedef enum	fz_fuim_item_type_enum
{
	FZ_FUIM_ITEM_NONE = 0,			/*	@emem		Entity parameter is not displayed by a dialog item					*/
	FZ_FUIM_ITEM_TEXT,				/*	@emem		Entity parameter is displayed as a text edit field.					*/
	FZ_FUIM_ITEM_MENU,				/*	@emem		Entity parameter is displayed as a menu.							*/
	FZ_FUIM_ITEM_SLIDER,			/*	@emem		Entity parameter is displayed as a slider.							*/
	FZ_FUIM_ITEM_SLIDER_TEXT,		/*	@emem		Entity parameter is displayed as a slider with a text edit field.	*/
	FZ_FUIM_ITEM_RADIO,				/*	@emem		Entity parameter is displayed as radios buttons.					*/
	FZ_FUIM_ITEM_CHECK,				/*	@emem		Entity parameter is displayed as a check box.						*/

	FZ_FUIM_ITEM_MAX
	
} fz_fuim_item_type_enum;


/************************************************************************

	@fsfunc_t

	@desc		Creates a preview item encosed in a border with an optional title.  Also contained within
				the border are tool icons for manipulating the view.  Other tool icons can be added by
				passing an array of tool command ids to fuim_pview_opts_set_cmds.
				
	@return		item id of the preview custom control

	@avail		7.0.0.0

	@see		fz_fuim_pview_opts_init, fz_fuim_pview_opts_finit, fuim_pview_opts_set_cmds

	@toc		fuim

*************************************************************************/
typedef fzrt_int (FZRT_SPEC *fz_fuim_new_preview_func)(
	fz_fuim_tmpl_ptr			fuim_tmpl,			/* @parm	<in> | fuim manager									*/
	short						parent,				/* @parm	<in> | parent group									*/
	short						cust_id,			/* @parm	<in> | custom item id								*/
	fzrt_int						fuim_flags,			/* @parm	<in> | construction flags
								  					   @rflag	fz_fuim_flag_enum									*/
	char						*title_str,			/* @parm	<in> | <in_opt> | custom item title
								  					   @default	a custom item item without a title is created		*/
	fz_fuim_pview_opts_ptr		pview_opts,			/* @parm	<in> | custom item options created by fz_fuim_pview_opts_init */
	void						*pview_data,		/* @parm	<in> | pointer to the data							*/
	fzrt_int						*grup_id			/* @parm	<out> | the id of the group conteining the preview item								*/
	);

/************************************************************************

	@fsfunc_t

	@desc		Sets the cursor for a preview item.

	@avail		7.0.0.0

	@see		fz_fuim_new_preview, fz_fuim_preview_get_cursor

	@toc		fuim

*************************************************************************/
typedef void (FZRT_SPEC *fz_fuim_preview_set_cursor_func)(
	fz_fuim_tmpl_ptr			fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short						item_id,		/* @parm	<in> | custom item id								*/
	fzrt_ptr					cursor			/* @parm	<in> | the cursor									*/
	);

/************************************************************************

	@fsfunc_t

	@desc		Gets the cursor of a preview item.
				
	@return		The cursor of the preview item.

	@avail		7.0.0.0

	@see		fz_fuim_new_preview, fz_fuim_preview_set_cursor

	@toc		fuim

*************************************************************************/
typedef fzrt_ptr (FZRT_SPEC *fz_fuim_preview_get_cursor_func)(
	fz_fuim_tmpl_ptr			fuim_tmpl,		/* @parm	<in> | fuim manager									*/
	short						item_id			/* @parm	<in> | custom item id								*/
	);

/************************************************************************

	@fsfunc_t

	@desc		Adds commands to the preview item.  This will also add the command's tool icons
				in the preview items border.

	@avail		7.0.0.0

	@see		fz_fuim_new_preview, fz_fuim_pview_opts_init, fz_fuim_pview_opts_finit,

	@toc		fuim

*************************************************************************/
typedef void (FZRT_SPEC *fz_fuim_pview_opts_set_cmds_func)(
	fz_fuim_pview_opts_ptr		pview_opts,		/* @parm	<in> | fuim manager									*/
	fzrt_UUID_td				*cmd_ids,		/* @parm	<in> | an array of command ids						*/
	fzrt_int						num_cmds,		/* @parm	<in> | the number of commands in the cmd_ids array	*/
	fzrt_int						default_indx	/* @parm	<in> | an index into the array for the initially selected tool.
												   @default	-1; initially selected tool will be an available view tool. */
	);


/************************************************************************

	@fsfunc_t

	@desc		Sets up the automatic procedures, which regenerate a parametric object
				when it is in the results buffer and the user changes an option in
				the Tool Options palette. Should be called in the fz_tool_cbak_opts_iface_tmpl
				function for a tool which creates a parametric object. See frame tool 
				for an example.

	@avail		7.0.0.0

	@see		

	@toc		fuim

*************************************************************************/
typedef fzrt_error_td	(FZRT_SPEC *fz_fuim_objt_parm_result_regen_func)(
	fz_fuim_tmpl_ptr 	fuim_tmpl,			/* @parm	<in> | fuim manager									*/
	short				parent,				/* @parm	<in> | the parent group								*/
	fzrt_UUID_td		parm_uuid,			/* @parm	<in> | 	The uuid for the parametric type */
	fz_fuim_item_func	parm_copy_func,		/* @parm	<in> | 	a fuim item callback function, which ios responsible for
																copying the global tool options parameters displayed in the
																Tool Options palette into the parameters of the object(s) in
																the result buffer. See frame tool for an example. */
	fz_objt_ptr			*res_obj,			/* @parm	<out_opt> | the object in the result buffer. (first object if more than one are 
																	in the result buffer */
	short				*gindx_out			/* @parm	<out_opt> | the fuim item which must be used as the parent for
																	all fuim items the tool wants to display in the tool options palette and
																	which trigger the object regeneration. */
	);

/************************************************************************

	@fsfunc_t

	@desc		Gets the currently acive project window index (windex).
				Returns -1, if no project is active. This function should
				only be called in fuim callback functions, where a windex
				is not passed in.

	@avail		7.0.0.0

	@see		

	@toc		fuim

*************************************************************************/
typedef fzrt_error_td	(FZRT_SPEC *fz_fuim_get_active_windex_func)(
	fzrt_int				*windex			/* @parm	<out> | the currently acive project window index (windex) */
	);

/************************************************************************

	@fsfunc_t

	@desc		Refreshes the state of a set of items in the Tool Options palette.
				This function is typicall called from the track function of a tool.
				During the execution of the track function, a tool options parameter
				may be updated to reflect the value generated by the dynamic action.
				For example, the star tool changes the radius parameter while tracking.
				Therefore the radius value in the Tool Options palette must be updated
				as the tracking occurs. See star sample plugin tool for details.

	@avail		7.0.0.0

	@see		

	@toc		fuim

*************************************************************************/
typedef fzrt_error_td (FZRT_SPEC *fz_fuim_tool_opts_update_items_func)(
	fzrt_int		nitems,			/* @parm	<in> | The number of fuim items to update */
	short		*item_ids		/* @parm	<in> | array of ids of the items to update */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new icon item.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				item_func is an optional function that is called to handle actions occurring to this item.

	@return		Icon id

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_icon2_func)(
	fz_fuim_tmpl_ptr	fuim_tmpl,			/* @parm	<in> | fuim manager									*/
	short				parent,				/* @parm	<in> | parent group									*/
	short				id,					/* @parm	<in> | icon item id									*/
	fzrt_int				flags,				/* @parm	<in> | construction flags
											   @rflag	fz_fuim_flag_enum									*/
	fzrt_floc_ptr 		floc,				/* @parm	<in> | file location of file which contains the icon. */
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function							*/
	void				*item_data			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored				*/
	);

/************************************************************************

	@fsfunc_t

	@desc		Creates an icon item which represents an entity parameter that can be animated.
				The animation item is shown as a small dot behind the icon, which
				pops a menu, when clicked on. The menu items allow the user to control the animation status of the parameter.
				See fz_fuim_new_icon for a full description of the icon item.
				
				If several icons are used to represent the state of a single pararameter, they must
				be set up like radio buttons. See fz_fuim_new_radio_anim for more details.

	@return		icon item id

	@avail		6.0.0.2

	@see		fz_fuim_new_radio_anim, fz_fuim_new_icon

	@toc		fuim

*************************************************************************/
typedef short (FZRT_SPEC *fz_fuim_new_icon_anim2_func) (
	fz_fuim_tmpl_ptr			fuim_tmpl,			/* @parm	<in> | fuim manager									*/
	short						parent,				/* @parm	<in> | parent group									*/
	short						id,					/* @parm	<in> | icon item id									*/
	fzrt_int						flags,				/* @parm	<in> | construction flags
											  		   @rflag	fz_fuim_flag_enum									*/
	fzrt_floc_ptr 				floc,				/* @parm	<in> | file location of file which contains the icon. */
	fz_fuim_item_func			item_func,			/* @parm	<in_opt> | item function							*/
	void						*item_data,			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored				*/
	fzrt_int						anim_flags, 		/* @parm	<in> | bit encoded flag, that determine the appearance of the animation item.
													   @rflag	The flags are defined by fz_fuim_anim_flags_enum. 		*/
	fzrt_int 						windex,				/* @parm	<in> | The project, in which the animated entity exists					*/
	fz_fuim_anim_item_type_enum	item_type, 			/* @parm	<in> | The type of entity that is animated								*/
	fz_tag_td					*item_tag,			/* @parm	<in> | The tag reference of the animated entity							*/
	fzrt_UUID_td				parm_uuid			/* @parm	<in> | The uuid of the track (entity parameter), which is animated		*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Gets the bounding rectangle of the selected fuim item.
				The rectangle is relative to the fuim item. In other words, 
				the top left corner is always at (0, 0).

	@return		None

	@avail		7.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_get_rect_local_func)(
	fz_fuim_tmpl_ptr fuim_tmpl,		/* @parm	<in> | fuim manager							*/
	short		item_index,			/* @parm	<in> | item id of item to get rect of		*/
	fzrt_rect	*rect				/* @parm	<out> | rectangle of the selected item		*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new icon item.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				Pass 0 for width and height to use the default icon size.<nl>
				item_func is an optional function that is called to handle actions occurring to this item.

	@return		Icon id

	@avail		8.0.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_icon3_func)(
	fz_fuim_tmpl_ptr	fuim_tmpl,			/* @parm	<in> | fuim manager									*/
	short				parent,				/* @parm	<in> | parent group									*/
	short				id,					/* @parm	<in> | icon item id									*/
	fzrt_int				flags,				/* @parm	<in> | construction flags
											   @rflag	fz_fuim_flag_enum									*/
	fzrt_floc_ptr 		floc,				/* @parm	<in> | file location of file which contains the icon. */
	short				width,				/* @parm	<in> | width of the icon. */
	short				height,				/* @parm	<in> | height of the icon. */
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function							*/
	void				*item_data			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored				*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Creates a new icon item with the base icon and optional select, dimmed and rollover graphics.<nl>
				Pass FZ_FUIM_NONE for id to not assign a specific item id. 
				An id will be created and assigned to the item.<nl>
				Pass FZ_FUIM_ROOT for parent if there is no parent group.<nl>
				Pass 0 for width and height to use the default icon size.<nl>
				item_func is an optional function that is called to handle actions occurring to this item.

	@return		Icon id

	@avail		8.7.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef short 	 (FZRT_SPEC *fz_fuim_new_icon_full_func)(
	fz_fuim_tmpl_ptr	fuim_tmpl,			/* @parm	<in> | fuim manager									*/
	short				parent,				/* @parm	<in> | parent group									*/
	short				id,					/* @parm	<in> | icon item id									*/
	fzrt_int			flags,				/* @parm	<in> | construction flags
											   @rflag	fz_fuim_flag_enum									*/
	fzrt_floc_ptr 		floc,				/* @parm	<in> | file location of file which contains the normal state iof the icon. */
	fzrt_floc_ptr		floc_select,		/* @parm	<in_opt> | file location of file which contains the selected (active) state iof the icon. */
	fzrt_floc_ptr 		floc_dimmed,		/* @parm	<in_opt> | file location of file which contains the dimmed state iof the icon. */
	fzrt_floc_ptr 		floc_rollover,		/* @parm	<in_opt> | file location of file which contains the rollover state iof the icon. */
	short				width,				/* @parm	<in> | width of the icon. */
	short				height,				/* @parm	<in> | height of the icon. */
	fz_fuim_item_func	item_func,			/* @parm	<in_opt> | item function							*/
	void				*item_data			/* @parm	<in_opt> | data to pass to item function<nl>
														if item_func is NULL, this is ignored				*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets the hint (poopup string) for name, actiona nd help.<nl>

	@return		Icon id

	@avail		8.7.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_item_set_hint_func)(
	 fz_fuim_tmpl_ptr	fuim_tmpl,			/* @parm	<in> | fuim manager									*/
	 short				id,					/* @parm	<in> | item id									*/
	 char *				name,				/* @parm	<in_opt> | name of the icon/tool. */
	 char *				actn,				/* @parm	<in_opt> | what will thsi do. */
	 char *				help				/* @parm	<in_opt> | how to get help. */
	 );

/********************************************************************************************************

	@fsfunc_t	

	@desc		Controls the display od a platte.<nl>

	@return		Icon id

	@avail		8.7.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_palt_hide_show_func)(
		fzrt_UUID_td		uuid, 			/* @parm	<in> | UUID for the palette */
		fzrt_int			hide_show		/* @parm	<in> | 1 to show, 0 to hide, -1 to toggle */
														  
	 );
/********************************************************************************************************

	@fsfunc_t	

	@desc		Controls the display od a platte.<nl>

	@return		Icon id

	@avail		8.7.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_palt_refresh_func)(
		fzrt_UUID_td		uuid 			/* @parm	<in> | UUID for the palette */
														  
	 );

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets teh item func for an item.<nl>

	@return		Icon id

	@avail		8.7.0.0

	@see		

	@exfile		

	@toc		fuim_tmpl

*********************************************************************************************************/
typedef void 	 (FZRT_SPEC *fz_fuim_tmpl_item_set_func_func)(
	  fz_fuim_tmpl_ptr			fuim_tmpl,			/* @parm	<in> | fuim manager									*/
	  short						id,					/* @parm	<in> | icon item id									*/
	  fz_fuim_item_func			item_func,			/* @parm	<in_opt> | item function							*/
	  void						*item_data			/* @parm	<in_opt> | data to pass to item function<nl>		*/
	);

/********************************************************************************************************
 
 @fsfunc_t
 
 @desc		Sets teh item func for an item.<nl>
 
 @return		Icon id
 
 @avail		8.7.0.1
 
 @see
 
 @exfile
 
 @toc		fuim_tmpl
 
 *********************************************************************************************************/
typedef fzrt_error_td (FZRT_SPEC *fuim_item_get_menu_ptr_func) (
			fz_fuim_tmpl_ptr	fuim_tmpl,		/* @parm	<in> | fuim manager			*/
			short				item_id,		/* @parm	<in> | item id				*/
			fzrt_menu_ptr		*menu			/* @parm	<out> | menu ptr<nl>		*/
		);

/************************************************************************

	@fset	fz_fuim_fset
	
	@desc	formZ fuim Function Set

	@avail	5.0.0.0

	@toc	fuim

*************************************************************************/

/********************************************************************************************************

	@fsdef	formZ fuim function set UUID.

*********************************************************************************************************/
/* UUID : {1384ffd2-05d7-4dd2-89d4-74966493001c} */
#define FZ_FUIM_FSET_TYPE		"\x13\x84\xff\xd2\x05\xd7\x4d\xd2\x89\xd4\x74\x96\x64\x93\x00\x1c"	/* Reference : 29 */

/********************************************************************************************************

	@fsdef	formZ fuim function set name.

*********************************************************************************************************/
#define FZ_FUIM_FSET_NAME		"formZ User Interface Manager (FUIM)"

/********************************************************************************************************

	@fsdef	formZ fuim function set version.

*********************************************************************************************************/
#define FZ_FUIM_FSET_VERSION	FZPL_VERS_MAKE(8,7,0,0)

typedef struct fz_fuim_fset
{
	fzpl_fset_prvt_data_td				prvt_data;

	/*** ALERT FUNCTIONS ***/
	fz_fuim_alrt_ptr_init_func						fz_fuim_alrt_ptr_init;							/* @fsfunc */
	fz_fuim_alrt_ptr_finit_func						fz_fuim_alrt_ptr_finit;							/* @fsfunc */
	fz_fuim_alrt_ptr_add_str_func					fz_fuim_alrt_ptr_add_str;						/* @fsfunc */
	fz_fuim_alrt_ptr_add_button_func				fz_fuim_alrt_ptr_add_button;					/* @fsfunc */
	fz_fuim_alrt_driver_func						fz_fuim_alrt_driver;							/* @fsfunc */
																				    				
	fz_fuim_alrt_std_confirm_func					fz_fuim_alrt_std_confirm;						/* @fsfunc */	
	fz_fuim_alrt_std_name_func						fz_fuim_alrt_std_name;							/* @fsfunc */
	fz_fuim_alrt_std_error_func						fz_fuim_alrt_std_error;							/* @fsfunc */	
																																																
	/*** DIALOG FUNCTIONS ***/																	
	fz_fuim_dlog_drive_func							fz_fuim_dlog_drive;								/* @fsfunc */
	fz_fuim_dlog_drive_data_func					fz_fuim_dlog_drive_data;						/* @fsfunc */
	fz_fuim_dlog_drive_windex_func					fz_fuim_dlog_drive_windex;						/* @fsfunc */

	/*** TEMPLATE FUNCTIONS ***/																	
	fz_fuim_tmpl_init_func							fz_fuim_tmpl_init;								/* @fsfunc */
	fz_fuim_tmpl_set_ok_func_func					fz_fuim_tmpl_set_ok_func;						/* @fsfunc */
	fz_fuim_tmpl_set_cancel_func_func				fz_fuim_tmpl_set_cancel_func;					/* @fsfunc */
	fz_fuim_tmpl_set_reset_func_func				fz_fuim_tmpl_set_reset_func;					/* @fsfunc */
	fz_fuim_tmpl_set_finit_func_func				fz_fuim_tmpl_set_finit_func;					/* @fsfunc */
	fz_fuim_tmpl_set_new_value_func_func			fz_fuim_tmpl_set_new_value_func;				/* @fsfunc */					
	fz_fuim_tmpl_set_std_titles_func				fz_fuim_tmpl_set_std_titles;					/* @fsfunc */
	fz_fuim_tmpl_get_wptr_func						fz_fuim_tmpl_get_wptr;							/* @fsfunc */
	fz_fuim_tmpl_update_state_func					fz_fuim_tmpl_update_state;						/* @fsfunc */
	fz_fuim_tmpl_update_value_func					fz_fuim_tmpl_update_value;						/* @fsfunc */
	fz_fuim_tmpl_in_dialog_func						fz_fuim_tmpl_in_dialog;							/* @fsfunc */
	fz_fuim_tmpl_in_palette_func					fz_fuim_tmpl_in_palette;						/* @fsfunc */
																									
	/* TEMPLATE - ITEM CREATION */
	fz_fuim_new_group_func							fz_fuim_new_group;								/* @fsfunc */
	fz_fuim_new_tab_group_func						fz_fuim_new_tab_group;							/* @fsfunc */
	fz_fuim_new_frame_group_func					fz_fuim_new_frame_group;						/* @fsfunc */
	fz_fuim_new_button_func							fz_fuim_new_button;								/* @fsfunc */
	fz_fuim_new_divider_func						fz_fuim_new_divider;							/* @fsfunc */
	fz_fuim_new_spacer_func							fz_fuim_new_spacer;								/* @fsfunc */
	fz_fuim_new_radio_func							fz_fuim_new_radio;								/* @fsfunc */
	fz_fuim_new_radio_text_static_func				fz_fuim_new_radio_text_static;					/* @fsfunc */
	fz_fuim_new_radio_text_edit_func				fz_fuim_new_radio_text_edit;					/* @fsfunc */																						
	fz_fuim_new_check_func							fz_fuim_new_check;								/* @fsfunc */
	fz_fuim_new_check_edit_func						fz_fuim_new_check_edit;							/* @fsfunc */
	fz_fuim_new_text_static_func					fz_fuim_new_text_static;						/* @fsfunc */
	fz_fuim_new_text_edit_func						fz_fuim_new_text_edit;							/* @fsfunc */
	fz_fuim_new_text_static_edit_func				fz_fuim_new_text_static_edit;					/* @fsfunc */
	fz_fuim_new_note_func							fz_fuim_new_note;								/* @fsfunc */
	fz_fuim_new_icon_func							fz_fuim_new_icon_obsolete;						/* @fsfunc */
	fz_fuim_new_menu_func							fz_fuim_new_menu;								/* @fsfunc */
	fz_fuim_new_image_func							fz_fuim_new_image;							/* @fsfunc */
	fz_fuim_new_custom_func							fz_fuim_new_custom;								/* @fsfunc */
	fz_fuim_new_scroll_bar_func						fz_fuim_new_scroll_bar;							/* @fsfunc */																																														
	fz_fuim_new_color_box_func						fz_fuim_new_color_box;							/* @fsfunc */
	
	fz_fuim_new_slider_func							fz_fuim_new_slider;								/* @fsfunc */
	fz_fuim_new_slid_edit_pcent_int_func			fz_fuim_new_slid_edit_pcent_int;				/* @fsfunc */
	fz_fuim_new_slid_edit_pcent_float_func			fz_fuim_new_slid_edit_pcent_float;				/* @fsfunc */
	fz_fuim_new_slid_edit_pcent_double_func			fz_fuim_new_slid_edit_pcent_double;				/* @fsfunc */
	fz_fuim_new_slid_edit_pcent_short_func			fz_fuim_new_slid_edit_pcent_short;				/* @fsfunc */
	fz_fuim_new_slid_edit_int_func					fz_fuim_new_slid_edit_int;						/* @fsfunc */
	fz_fuim_new_slid_edit_short_func				fz_fuim_new_slid_edit_short;					/* @fsfunc */
	fz_fuim_new_slid_edit_double_func				fz_fuim_new_slid_edit_double;					/* @fsfunc */
	fz_fuim_new_slid_edit_float_func				fz_fuim_new_slid_edit_float;					/* @fsfunc */

	fz_fuim_new_text_info_func						fz_fuim_new_text_info;							/* @fsfunc */
	fz_fuim_new_text_info_char_unused_func			fz_fuim_new_text_info_char_unused;
	fz_fuim_new_text_info_uchar_unused_func			fz_fuim_new_text_info_uchar_unused;		
	fz_fuim_new_text_info_short_unused_func			fz_fuim_new_text_info_short_unused;		
	fz_fuim_new_text_info_ushort_unused_func		fz_fuim_new_text_info_ushort_unused;	
	fz_fuim_new_text_info_int_unused_func			fz_fuim_new_text_info_int_unused;		
	fz_fuim_new_text_info_uint_unused_func			fz_fuim_new_text_info_uint_unused;		
	fz_fuim_new_text_info_float_unused_func			fz_fuim_new_text_info_float_unused;		
	fz_fuim_new_text_info_double_unused_func		fz_fuim_new_text_info_double_unused;	
		
	/* TEMPLATE - VARIABLE BINDING */																								
	fz_fuim_item_range_char_func					fz_fuim_item_range_char;						/* @fsfunc */
	fz_fuim_item_range_uchar_func					fz_fuim_item_range_uchar;						/* @fsfunc */
	fz_fuim_item_range_short_func					fz_fuim_item_range_short;						/* @fsfunc */
	fz_fuim_item_range_ushort_func					fz_fuim_item_range_ushort;						/* @fsfunc */
	fz_fuim_item_range_int_func						fz_fuim_item_range_int;						/* @fsfunc */
	fz_fuim_item_range_uint_func					fz_fuim_item_range_uint;						/* @fsfunc */
	fz_fuim_item_range_float_func					fz_fuim_item_range_float;						/* @fsfunc */
	fz_fuim_item_range_double_func					fz_fuim_item_range_double;						/* @fsfunc */
	fz_fuim_item_range_string_func					fz_fuim_item_range_string;						/* @fsfunc */
																									
	fz_fuim_item_encod_bool_func					fz_fuim_item_encod_bool;						/* @fsfunc */
	fz_fuim_item_encod_char_func					fz_fuim_item_encod_char;						/* @fsfunc */
	fz_fuim_item_encod_uchar_func					fz_fuim_item_encod_uchar;						/* @fsfunc */
	fz_fuim_item_encod_short_func					fz_fuim_item_encod_short;						/* @fsfunc */
	fz_fuim_item_encod_ushort_func					fz_fuim_item_encod_ushort;						/* @fsfunc */
	fz_fuim_item_encod_int_func						fz_fuim_item_encod_int;							/* @fsfunc */
	fz_fuim_item_encod_uint_func					fz_fuim_item_encod_uint;						/* @fsfunc */
																									
	fz_fuim_item_binary_bool_func					fz_fuim_item_binary_bool;						/* @fsfunc */
	fz_fuim_item_binary_char_func					fz_fuim_item_binary_char;						/* @fsfunc */
	fz_fuim_item_binary_uchar_func					fz_fuim_item_binary_uchar;						/* @fsfunc */
	fz_fuim_item_binary_short_func					fz_fuim_item_binary_short;						/* @fsfunc */
	fz_fuim_item_binary_ushort_func					fz_fuim_item_binary_ushort;						/* @fsfunc */
	fz_fuim_item_binary_int_func					fz_fuim_item_binary_int;						/* @fsfunc */
	fz_fuim_item_binary_uint_func					fz_fuim_item_binary_uint;						/* @fsfunc */
																									
	fz_fuim_item_unary_bool_func					fz_fuim_item_unary_bool;						/* @fsfunc */
	fz_fuim_item_unary_char_func					fz_fuim_item_unary_char;						/* @fsfunc */
	fz_fuim_item_unary_uchar_func					fz_fuim_item_unary_uchar;						/* @fsfunc */
	fz_fuim_item_unary_short_func					fz_fuim_item_unary_short;						/* @fsfunc */
	fz_fuim_item_unary_ushort_func					fz_fuim_item_unary_ushort;						/* @fsfunc */
	fz_fuim_item_unary_int_func						fz_fuim_item_unary_int;							/* @fsfunc */
	fz_fuim_item_unary_uint_func					fz_fuim_item_unary_uint;						/* @fsfunc */
																																																		
	/*** TEMPLATE - UTILITY ***/																		
	fz_fuim_item_cross_link_func					fz_fuim_item_cross_link;						/* @fsfunc */
	fz_fuim_item_align_func							fz_fuim_item_align;								/* @fsfunc */
	fz_fuim_item_get_rect_func						fz_fuim_item_get_rect;							/* @fsfunc */
	fz_fuim_item_set_string_func					fz_fuim_item_set_string;						/* @fsfunc */
	fz_fuim_item_set_dimns_func						fz_fuim_item_set_dimns;							/* @fsfunc */
																									
	fz_fuim_stack_get_func							fz_fuim_stack_get;								/* @fsfunc */
	fz_fuim_stack_get_ptr_func						fz_fuim_stack_get_ptr;							/* @fsfunc */
	fz_fuim_stack_get_size_func						fz_fuim_stack_get_size;							/* @fsfunc */
	fz_fuim_stack_put_func							fz_fuim_stack_put;								/* @fsfunc */
																								
																									
	/*** PREVIEW FUNCTIONS ***/																		
	fz_fuim_pview_opts_init_func					fz_fuim_pview_opts_init;						/* @fsfunc */
	fz_fuim_pview_opts_set_load_func_func			fz_fuim_pview_opts_set_load_func;				/* @fsfunc */
	fz_fuim_pview_opts_set_unload_func_func			fz_fuim_pview_opts_set_unload_func;				/* @fsfunc */
	fz_fuim_pview_opts_set_click_func_func			fz_fuim_pview_opts_set_click_func;				/* @fsfunc */
	fz_fuim_pview_opts_set_track_func_func			fz_fuim_pview_opts_set_track_func;				/* @fsfunc */
	fz_fuim_pview_opts_set_flags_func				fz_fuim_pview_opts_set_flags;					/* @fsfunc */
	fz_fuim_pview_create_func						fz_fuim_pview_create;							/* @fsfunc */
																										
	/*** PROGRESS BAR ***/
	fz_fuim_prog_init_func							fz_fuim_prog_init;								/* @fsfunc */
	fz_fuim_prog_finit_func							fz_fuim_prog_finit;								/* @fsfunc */
	fz_fuim_prog_set_delay_func						fz_fuim_prog_set_delay;							/* @fsfunc */
	fz_fuim_prog_get_delay_func						fz_fuim_prog_get_delay;							/* @fsfunc */
	fz_fuim_prog_update_func						fz_fuim_prog_update;							/* @fsfunc */
	fz_fuim_prog_enable_func						fz_fuim_prog_enable;							/* @fsfunc */
	fz_fuim_prog_hide_show_func						fz_fuim_prog_hide_show;							/* @fsfunc */
	fz_fuim_prog_stage_init_func					fz_fuim_prog_stage_init;						/* @fsfunc */
	fz_fuim_prog_stage_finit_func					fz_fuim_prog_stage_finit;						/* @fsfunc */
	fz_fuim_prog_stage_set_current_func				fz_fuim_prog_stage_set_current;    				/* @fsfunc */
	fz_fuim_prog_stage_get_current_func				fz_fuim_prog_stage_get_current;    				/* @fsfunc */
	fz_fuim_prog_stage_set_range_func				fz_fuim_prog_stage_set_range;					/* @fsfunc */
	fz_fuim_prog_stage_get_range_func				fz_fuim_prog_stage_get_range;					/* @fsfunc */
	fz_fuim_prog_stage_set_title_func				fz_fuim_prog_stage_set_title;					/* @fsfunc */
	fz_fuim_prog_stage_get_title_func				fz_fuim_prog_stage_get_title;					/* @fsfunc */
	fz_fuim_prog_stage_set_cancel_func				fz_fuim_prog_stage_set_cancel;					/* @fsfunc */
	fz_fuim_prog_stage_get_cancel_func				fz_fuim_prog_stage_get_cancel;					/* @fsfunc */
	fz_fuim_prog_stage_set_strings_func				fz_fuim_prog_stage_set_strings;    				/* @fsfunc */
	fz_fuim_prog_stage_get_strings_func				fz_fuim_prog_stage_get_strings;					/* @fsfunc */	
																									
	/*** EXTENSIOSN FUNCTIONS ***/																	
	fz_fuim_exts_menu_func							fz_fuim_exts_menu;								/* @fsfunc */
	fz_fuim_exts_icon_group_func					fz_fuim_exts_icon_group;						/* @fsfunc */
																									
	/*** PROMPT FUNCTIONS ***/																		
	fz_fuim_prompt_name_func						fz_fuim_prompt_name;							/* @fsfunc */
	fz_fuim_prompt_line_func						fz_fuim_prompt_line;							/* @fsfunc */
	fz_fuim_prompt_refresh_data_func				fz_fuim_prompt_refresh_data;					/* @fsfunc */
																									
	/*** GENERAL FUNCTIONS ***/																		
	fz_fuim_key_cancel_func							fz_fuim_key_cancel;								/* @fsfunc */
	fz_fuim_curs_wait_func							fz_fuim_curs_wait;								/* @fsfunc */
	fz_fuim_unit_convert_func						fz_fuim_unit_convert;							/* @fsfunc */
	
	fz_fuim_disp_res_surf_group_func				fz_fuim_disp_res_surf_group;					/* @fsfunc */
	fz_fuim_disp_res_curve_group_func				fz_fuim_disp_res_curve_group;					/* @fsfunc */
	fz_fuim_status_of_objt_group_func				fz_fuim_status_of_objt_group;					/* @fsfunc */
	fz_fuim_model_type_group_func					fz_fuim_model_type_group;						/* @fsfunc */

	/*** FUIM LIST ***/
	fz_fuim_new_list_func							fz_fuim_new_list;								/* @fsfunc */
	fz_fuim_list_set_colm_width_func				fz_fuim_list_set_colm_width;						/* @fsfunc */
	fz_fuim_list_get_colm_width_func				fz_fuim_list_get_colm_width;						/* @fsfunc */
	fz_fuim_list_set_colm_title_func				fz_fuim_list_set_colm_title;						/* @fsfunc */
	fz_fuim_list_get_colm_title_func				fz_fuim_list_get_colm_title;						/* @fsfunc */
	fz_fuim_list_set_colm_flags_func				fz_fuim_list_set_colm_flags;						/* @fsfunc */
	fz_fuim_list_get_colm_flags_func				fz_fuim_list_get_colm_flags;						/* @fsfunc */
	fz_fuim_list_set_colm_just_func					fz_fuim_list_set_colm_just;						/* @fsfunc */
	fz_fuim_list_get_nitems_func					fz_fuim_list_get_nitems;						/* @fsfunc */
	fz_fuim_list_set_auto_scroll_func				fz_fuim_list_set_auto_scroll;					/* @fsfunc */
	fz_fuim_list_get_auto_scroll_func				fz_fuim_list_get_auto_scroll;					/* @fsfunc */
	fz_fuim_list_regen_func							fz_fuim_list_regen;								/* @fsfunc */
	fz_fuim_list_inval_func							fz_fuim_list_inval;								/* @fsfunc */
	fz_fuim_list_get_picked_status_func				fz_fuim_list_get_picked_status;					/* @fsfunc */
	
	fz_fuim_list_set_get_string_func_func			fz_fuim_list_set_get_string_func;				/* @fsfunc */
	fz_fuim_list_set_draw_item_func_func			fz_fuim_list_set_draw_item_func;				/* @fsfunc */
	fz_fuim_list_set_click_func_func				fz_fuim_list_set_click_func;					/* @fsfunc */
	fz_fuim_list_set_click_dbl_func_func			fz_fuim_list_set_click_dbl_func;				/* @fsfunc */
	fz_fuim_list_set_drag_func_func					fz_fuim_list_set_drag_func;						/* @fsfunc */
	fz_fuim_list_set_get_picked_func_func			fz_fuim_list_set_get_picked_func;				/* @fsfunc */
	fz_fuim_list_set_get_num_items_func_func		fz_fuim_list_set_get_num_items_func;			/* @fsfunc */
	fz_fuim_list_set_init_func_func					fz_fuim_list_set_init_func;						/* @fsfunc */
	fz_fuim_list_set_finit_func_func				fz_fuim_list_set_finit_func;					/* @fsfunc */
	fz_fuim_list_set_click_edit_func_func			fz_fuim_list_set_click_edit_func;				/* @fsfunc */
	fz_fuim_list_set_set_string_func_func			fz_fuim_list_set_set_string_func;				/* @fsfunc */
	
	/************************************************************************************
	 *																					*
	 *		DO NOT MAKE ANY CHANGES TO THE ABOVE FUNCTIONS!!!							*
	 *		DO NOT ADD ANY FUNCTION ABOVE THIS LINE!!!									*
	 *		@comm  End of version 5.0.0.0 functions.									*
	 *																					*
	 ************************************************************************************/
	
	fz_fuim_get_date_time_func						fz_fuim_get_date_time;							/* @fsfunc */
	fz_fuim_date_time_get_month_func				fz_fuim_date_time_get_month;					/* @fsfunc */
	fz_fuim_date_time_get_day_func					fz_fuim_date_time_get_day;						/* @fsfunc */
	fz_fuim_date_time_get_year_func					fz_fuim_date_time_get_year;						/* @fsfunc */
	fz_fuim_date_time_get_hour_func					fz_fuim_date_time_get_hour;						/* @fsfunc */
	fz_fuim_date_time_get_minute_func				fz_fuim_date_time_get_minute;					/* @fsfunc */
	fz_fuim_date_time_get_second_func				fz_fuim_date_time_get_second;					/* @fsfunc */

	fz_fuim_tmpl_item_set_cust_func_func			fz_fuim_tmpl_item_set_cust_func;				/* @fsfunc */
	
	fz_fuim_new_anim_item_func						fz_fuim_new_anim_item;							/* @fsfunc */		
	fz_fuim_new_text_edit_anim_func					fz_fuim_new_text_edit_anim;						/* @fsfunc */			
	fz_fuim_new_text_static_edit_anim_func			fz_fuim_new_text_static_edit_anim;				/* @fsfunc */	
	fz_fuim_new_check_anim_func						fz_fuim_new_check_anim;							/* @fsfunc */				
	fz_fuim_new_menu_anim_func						fz_fuim_new_menu_anim;							/* @fsfunc */				
	fz_fuim_new_slider_anim_func					fz_fuim_new_slider_anim;						/* @fsfunc */				
	fz_fuim_new_radio_anim_func						fz_fuim_new_radio_anim;							/* @fsfunc */			
	fz_fuim_new_icon_anim_func						fz_fuim_new_icon_anim_obsolete;					/* @fsfunc */				
	fz_fuim_new_custom_anim_func					fz_fuim_new_custom_anim;						/* @fsfunc */			
	fz_fuim_new_slider_edit_pcent_float_anim_func   fz_fuim_new_slider_edit_pcent_float_anim;		/* @fsfunc */
	fz_fuim_new_slider_edit_pcent_double_anim_func  fz_fuim_new_slider_edit_pcent_double_anim;		/* @fsfunc */
	fz_fuim_new_color_box_anim_func					fz_fuim_new_color_box_anim;						/* @fsfunc */
	
	fz_fuim_new_text_info_char_func					fz_fuim_new_text_info_char;						/* @fsfunc */
	fz_fuim_new_text_info_uchar_func				fz_fuim_new_text_info_uchar;					/* @fsfunc */
	fz_fuim_new_text_info_short_func				fz_fuim_new_text_info_short;					/* @fsfunc */
	fz_fuim_new_text_info_ushort_func				fz_fuim_new_text_info_ushort;					/* @fsfunc */
	fz_fuim_new_text_info_int_func					fz_fuim_new_text_info_int;						/* @fsfunc */
	fz_fuim_new_text_info_uint_func				fz_fuim_new_text_info_uint;					/* @fsfunc */
	fz_fuim_new_text_info_float_func				fz_fuim_new_text_info_float;					/* @fsfunc */
	fz_fuim_new_text_info_double_func				fz_fuim_new_text_info_double;					/* @fsfunc */
	
	/************************************************************************************
	 *																					*
	 *		DO NOT MAKE ANY CHANGES TO THE ABOVE FUNCTIONS!!!							*
	 *		DO NOT ADD ANY FUNCTION ABOVE THIS LINE!!!									*
	 *		@comm  End of version 6.0.0.0 functions.									*
	 *																					*
	 ************************************************************************************/
	
	fz_fuim_new_color_box2_func						fz_fuim_new_color_box2;							/* @fsfunc */
	fz_fuim_new_color_box_anim2_func				fz_fuim_new_color_box_anim2;					/* @fsfunc */
	
	fz_fuim_stack_uuid_get_func						fz_fuim_stack_uuid_get;								/* @fsfunc */
	fz_fuim_stack_uuid_get_ptr_func					fz_fuim_stack_uuid_get_ptr;							/* @fsfunc */
	fz_fuim_stack_uuid_get_size_func				fz_fuim_stack_uuid_get_size;							/* @fsfunc */
	fz_fuim_stack_uuid_put_func						fz_fuim_stack_uuid_put;								/* @fsfunc */

	fz_fuim_item_redraw_now_func					fz_fuim_item_redraw_now;						/* @fsfunc */	/* SPG 09/23/09 */
	fz_fuim_item_inval_func							fz_fuim_item_inval;								/* @fsfunc */	/* MJB 10/05/09 */

	fz_fuim_new_preview_func						fz_fuim_new_preview;							/* @fsfunc */
	fz_fuim_preview_set_cursor_func					fz_fuim_preview_set_cursor;						/* @fsfunc */
	fz_fuim_preview_get_cursor_func					fz_fuim_preview_get_cursor;						/* @fsfunc */
	fz_fuim_pview_opts_set_cmds_func				fz_fuim_pview_opts_set_cmds;					/* @fsfunc */
	fz_fuim_pview_opts_finit_func					fz_fuim_pview_opts_finit;						/* @fsfunc */
	
	fz_fuim_objt_parm_result_regen_func				fz_fuim_objt_parm_result_regen;					/* @fsfunc */
	fz_fuim_get_active_windex_func					fz_fuim_get_active_windex;						/* @fsfunc */		
	
	fz_fuim_tool_opts_update_items_func				fz_fuim_tool_opts_update_items;					/* @fsfunc */

	fz_fuim_new_icon2_func							fz_fuim_new_icon2;								/* @fsfunc */
	fz_fuim_new_icon_anim2_func						fz_fuim_new_icon_anim2;							/* @fsfunc */

	fz_fuim_item_get_rect_local_func				fz_fuim_item_get_rect_local;					/* @fsfunc */

	/************************************************************************************
	 *																					*
	 *		DO NOT MAKE ANY CHANGES TO THE ABOVE FUNCTIONS!!!							*
	 *		DO NOT ADD ANY FUNCTION ABOVE THIS LINE!!!									*
	 *		@comm  End of version 8.0.0.0 functions.									*
	 *																					*
	 ************************************************************************************/
	fz_fuim_tmpl_get_windex_func					fz_fuim_tmpl_get_windex;							/* @fsfunc */
	fz_fuim_new_icon3_func							fz_fuim_new_icon3;									/* @fsfunc */

	/************************************************************************************
	 *																					*
	 *		DO NOT MAKE ANY CHANGES TO THE ABOVE FUNCTIONS!!!							*
	 *		DO NOT ADD ANY FUNCTION ABOVE THIS LINE!!!									*
	 *		@comm  End of version 8.7.0.0 functions.									*
	 *																					*
	 ************************************************************************************/
	fz_fuim_new_icon_full_func						fz_fuim_new_icon_full;								/* @fsfunc */
	fz_fuim_item_set_hint_func						fz_fuim_item_set_hint;								/* @fsfunc */
	fz_fuim_palt_hide_show_func						fz_fuim_palt_hide_show;								/* @fsfunc */
	fz_fuim_palt_refresh_func						fz_fuim_palt_refresh;								/* @fsfunc */
	fz_fuim_tmpl_item_set_func_func					fz_fuim_tmpl_item_set_func;							/* @fsfunc */

	fuim_item_get_menu_ptr_func						fuim_item_get_menu_ptr;								/* @fsfunc */
	
	/************************************************************************************
	 *																					*
	 *		DO NOT MAKE ANY CHANGES TO THE ABOVE FUNCTIONS!!!							*
	 *		DO NOT ADD ANY FUNCTION ABOVE THIS LINE!!!									*
	 *		@comm  End of version 8.7.0.1 functions.									*
	 *																					*
	 ************************************************************************************/


}  fz_fuim_fset;
																									

#define fz_fuim_new_slid_edit_pcent_long			fz_fuim_new_slid_edit_pcent_int		
#define fz_fuim_new_slid_edit_long					fz_fuim_new_slid_edit_int				
#define fz_fuim_item_range_long						fz_fuim_item_range_int			
#define fz_fuim_item_range_ulong					fz_fuim_item_range_uint			
#define fz_fuim_item_encod_long						fz_fuim_item_encod_int				
#define fz_fuim_item_encod_ulong					fz_fuim_item_encod_uint			
#define fz_fuim_item_binary_long					fz_fuim_item_binary_int			
#define fz_fuim_item_binary_ulong					fz_fuim_item_binary_uint				
#define fz_fuim_item_unary_long						fz_fuim_item_unary_int				
#define fz_fuim_item_unary_ulong					fz_fuim_item_unary_uint			
#define fz_fuim_new_text_info_long					fz_fuim_new_text_info_int		
#define fz_fuim_new_text_info_ulong					fz_fuim_new_text_info_uint		

#ifdef __cplusplus
}
#endif

#endif /* _FZ_FUIM_API */
