toggle_switch_matrix_c

	status.i4.v = toggle_switch_matrix_c(top_row.i4.v, left_column.i4.v,
					     title.i1a.r, row_prompts.i1a.r,
					     row_num_chars.i4.v,
					     row_num_entries.i4.v,
					     col_prompts.i1a.r,
					     col_num_chars.i4.v,
					     col_num_entries.i4.v,
					     logical_values.i1a.r,
					     switch_present.i1a.r,
					     enabled_entries.i1a.r,
					     options.u4.v, exit_switches.i4.v,
					     num_lines.i4.v, num_columns.i4.v,
					     padding_chars.i4.v,
					     help_info.sa.r)

	This routine will display a toggle switch matrix on the TV screen
	having its upper left hand corner at ("top_row", "left_column").
	"logical_values" is an array of the logical status values to be
	modified by clicking on the toggle switches.

	top_row		top row of window (use WMNGR_CENTER for centering
			or WINDOW_xxx_COORD macros in macro for special
			positioning)
	left_column	left column of window (use WMNGR_CENTER for centering
			or WINDOW_xxx_COORD macros in macro for special
			positioning)
	title		null terminated window title
	row_prompts	row prompt text strings
	row_num_chars	length of a row prompt entry
			(If a value of zero is passed for this argument,
			 the routine will assume that all of the prompt text is
			 contained in a single null terminated or descriptor
			 described string and will automatically determine the
			 length of a single prompt entry by dividing the total
			 string length by the number of row entries.)
	row_num_entries	number of row entries
	col_prompts	column prompt text strings
	col_num_chars	length of a column prompt entry
			(If a value of zero is passed for this argument,
			 the routine will assume that all of the prompt text is
			 contained in a single null terminated or descriptor
			 described string and will automatically determine the
			 length of a single prompt entry by dividing the total
			 string length by the number of column entries.)
	col_num_entries	number of column entries
	logical_values	two dimensional array of logical values to be modified
	switch_present	two dimensional array of logical values
			indicating which switches should actually
			be displayed  (If a value of NULL is passed for
			this argument, all possible switches will be
			displayed.)
	enabled_entries	two dimensional array of logical flags indicating
			which switches are enabled/active (Passing a value of
			NULL will result in all switches being enabled.)
			(MENU_ENABLED_ENTRY -> enabled entry,
			 MENU_DISABLED_ENTRY -> disabled entry,
			 MENU_SEPARATOR -> separator entry)
	options		dialog options (not used)
	exit_switches	determine whether or not to display exit switches
			(TRUE -> display exit ("OK" and "Cancel") switches,
			 FALSE -> no exit switches)
	num_lines	number of lines to display at a time
	num_columns	number of columns to display at a time (not used)
	padding_chars	number of blank characters to insert before and
			after every dialog row (must be >= 1)
	help_info	two dimensional array of help callback information
			(array of HELP_CALLBACK_DATA structures)
			(Pass a value of NULL if no help is to be provided.)

	This function returns status values as follows:

	CBS_INVARG		invalid number of entries or
				padding characters
	CBS_WINDOW_TOO_BIG	window won't fit on screen
	CBS_MEMFAIL		dynamic memory allocation failure
	TRUE			value(s) have been changed
	FALSE			no values were changed

	This function requires the following include files:

	cnsparam_h, cbslib_h, macro_h, acnet_errors_h

	Related functions:

	toggle_switch_create_c, toggle_switch_read, toggle_switch_set_c,
	toggle_switch_enable, toggle_switch_disable, toggle_switch_delete,
	toggle_switch_window_delete_c, toggle_switch_set_id_type_c,
	menu_setup_c, build_menu_text, logical_scroll_menu(_c),
	logical_combo_menu_c, window_restore_hint_c

	C/C++ usage:

	static const char	title[] = "Title";
	static const char	row_prompts[ROW_NUM_ENTRIES][ROW_NUM_CHARS] =
	{"Row 1", "Row 2", "Row 3", "Row 4"};
	static const char	col_prompts[COL_NUM_ENTRIES][COL_NUM_CHARS] =
	{"Column 1", "Column 2"};
	static char	logical_values[ROW_NUM_ENTRIES][COL_NUM_ENTRIES] =
	{{TRUE, TRUE}, {TRUE, TRUE}, {TRUE, TRUE}, {TRUE, TRUE}};
	static char	switch_present[ROW_NUM_ENTRIES][COL_NUM_ENTRIES] =
	{{TRUE, TRUE}, {TRUE, TRUE}, {TRUE, TRUE}, {TRUE, TRUE}};
	char	*enabled_entries = (char *) NULL;
	int	status;
	int	top_row = WMNGR_CENTER;
	int	left_column = WMNGR_CENTER;
	int	row_num_chars = ROW_NUM_CHARS;
	int	row_num_entries = ROW_NUM_ENTRIES;
	int	col_num_chars = COL_NUM_CHARS;
	int	col_num_entries = COL_NUM_ENTRIES;
	int	exit_switches = TRUE;
	int	num_lines = ROW_NUM_ENTRIES;
	int	num_columns = COL_NUM_ENTRIES;
	int	padding_chars = 1;
	unsigned int	options = 0;
	HELP_CALLBACK_DATA	*help_info = (HELP_CALLBACK_DATA *) NULL;

	status.i4.v = toggle_switch_matrix_c(top_row,left_column,title,
					     (char *) row_prompts,
					     row_num_chars,row_num_entries,
					     (char *) col_prompts,
					     col_num_chars,col_num_entries,
					     logical_values,switch_present,
					     enabled_entries,options,
					     exit_switches,num_lines,
					     num_columns,padding_chars,
					     help_info);