intro_tv_windows


	These are a set of routines that manage the TV I/O for an
	applications program.  This management permits the use of
	multiple tiled or overlapping windows.  It also allows these
	windows to be moved, resized, or restacked under program
	control or under user control.

	The Window Manager treats everything as a window, including the
	entire TV screen.  This is considered to be the background or
	root window.  This window does not have to be explicitly created
	by the programmer, but it can be referenced by using the defined
	constant WMNGR_BACKGROUND.  Additional windows can be created by
	calls to window_construct(_c) or window_create(_c).  These
	routines have a similar calling sequence to "wmake(_c)" with
	additional optional arguments to specify window clipping, scroll
	bars, window movement, screen repainting mode, and border type.

	For those programmers who are not immediately in need of windows
	created within their program, but who would like to take advantage
	of fixed menus, menu bars, etc, there are replacement routines
	for the TVx routines which allow the use of Window Manager I/O
	with little change in source code.  These routines have the
	same names as their TVx counterparts, but have a prefix of "b".

		TV version		Window Manager version
		----------		----------------------
		 tvm(_c)			btvm(_c)
		 tvmx(_c)			btvmx(_c)
		 tvblnk(_c)			btvblnk(_c)
		 tvfill(_c)			btvfill(_c)
		 tvcolr(_c)			btvcolr(_c)
		 tvdisp(_c)			btvdisp(_c)
		 tvceol(_c)			btvceol(_c)
		 tvceop				btvceop(_c)
		 infld(_c)			binfld(_c)
		 inbox(_c)			binbox(_c)

	These routines also have the same argument lists as their
	TVx counterparts except for the format of the color arguments
	of FORTRAN-style calls which specify a background color.

	If one chooses to use the full Window Manager set of I/O
	routines, the first call should be made to window_construct(_c),
	window_enable_interrupts, window_set_background_size(_c), or
	window_init.  This initializes the underlying Window Manager data
	structures.  A basic set of "window_xxx" routines to use would
	probably include the following:

	window_intype - retrieves program event or interrupt information
	window_set_background_size(_c) - set background window size
	window_enable_interrupts - enables automatic scrolling, moving,
				     and resizing of windows
	window_restore_hint_c - requests restore mode for windows created by
				  CLIB routines
	window_construct(_c) - creates a new window
	window_delete(_c) - deletes a window
	window_tvm(_c) - draws a simple text string in a window
	window_draw_char_c - draws a single character in a window
	window_tvmx(_c) - draws a color encoded text string in a window
	window_display_value(_c) - displays values of different data types
	window_input_value(_c) - inputs values of different data types
	window_enable_scroll_io(_c) - allows I/O to a window's scroll buffer
	'window_entry_to_row(_c)' - calculates proper row for window I/O in
				    a scrolling window
	in_window_c - determines if the TV cursor was in a given window
			at the time of the last interrupt
	in_window_field(_c) - determines if the TV cursor was in a given field
				in a window at the time of the last interrupt
	in_window_box(_c) - determines if the TV cursor was in a given region
			      in a window at the time of the last interrupt

	It is important to note that calls to Window Manager routines
	and TVx routines should not be intermingled in a program.
	Only one TV I/O system should be used within a program.
	Otherwise, unexpected results will occur.

	A test program exists that allows the user to try out the various
	Window Manager calls interactively.  It is called 'Window Manager Tst',
	and it can presently be found on console page D133.

	Another test program, called CLIB Peeker (D22), can be used to
	look at internal Window Manager values in order to debug programming
	problems.

	The following is a list of Window Manager routines along
	with their TVx counterparts, if any exist.


		Window Manager			TVx
		--------------			---
		hilite_create_c		none
		hilite_delete_c		none
		hilite_resume_c		none
		hilite_suspend_c		none
		hilite_update_c		none
		hilite_window_delete_c	none
		interrupt_window		none
		in_window_c			none
		in_window_box(_c)		inbox(_c)
		in_window_field(_c)		infld(_c)
		in_window_line(_c)		none
		menu_bar_change_entry_c	none
		menu_bar_create		none
		menu_bar_delete		none
		menu_bar_disable_c		none
		menu_bar_dncase_entry_c	none
		menu_bar_enable_c		none
		menu_bar_upcase_entry_c	none
		menu_bar_update		none
		screen_column(_c)		none
		screen_row(_c)		none
		select_field_delete_c		none
		select_field_init_c		none
		select_field_read_c		none
		select_field_register_c	none
		select_field_set_c		none
		select_field_update_c		none
		slider_create_c		none
		slider_delete_c		none
		slider_get_values_c		none
		slider_read_c			none
		slider_set_c			none
		slider_set_values_c		none
		slider_update_c		none
		slider_was_moved		none
		switch_change_case_c		none
		switch_create_c		none
		switch_create_radio_c		none
		switch_delete_c		none
		switch_pressed		none
		switch_read_c			none
		switch_relabel_c		none
		switch_set_flash_c		none
		switch_window_delete_c	none
		window_background_color_c	none
		window_blank(_c)		tvblnk(_c)
		window_border_button_c	none
		window_box_c			tvbox_c
		window_callback_init		none
		window_callback_term		none
		window_center_text(_c)	none
		window_column(_c)		none
		window_construct(_c)		none (similar to wmake(_c))
		'window_coords'			none
		window_copy(_c)		none
		window_create(_c)		wmake(_c)
		window_delete(_c)		wdelet(_c)
		window_delete_border_button_c	none
		window_delete_char_c		none
		window_delete_line_c		none
		window_delete_scroll_buffer_c	none
		window_disable_interrupts	none
		window_disable_move_c		none
		window_disable_occluded_ints_cnone
		window_disable_resize_c	none
		window_disable_restack_c	none
		window_disable_scroll_io_c	none
		window_disable_scroll_save_c	none
		window_disable_scroll_slider_cnone
		window_display_value(_c)	display_value(_c)
		window_down_case_c		none
		window_draw_char_c		none
		window_enable_interrupts	none
		window_enable_move_c		none
		window_enable_occluded_ints_c	none
		window_enable_resize_c	none
		window_enable_restack_c	none
		window_enable_scroll_io(_c)	none
		window_enable_scroll_save_c	none
		window_enable_scroll_slider_c	none
		window_enable_scroll_status_c	none
		window_entry_to_row_c		none
		window_erase_c		none
		window_erase_line(_c)		none
		window_erase_to_eol_c		tvceol_c
		window_exposed_region_c	none
		'window_fit_window'		none
		window_freeze_c		none
		window_gap_c			none
		window_handle_to_id		none
		window_has_feature_c		none
		window_has_menu_bar_c		none
		window_has_switch_c		none
		window_hilite_c		hilite_c
		window_hilite_line_c		none
		window_hline_c		tvhlin_c
		window_hole_c			none
		window_hscroll_c		none
		window_hscroll_offset_c	none
		window_init			none
		window_init_sequential_write_cnone
		window_input_value(_c)	input_value(_c)
		window_insert_char_c		none
		window_insert_line_c		none
		'window_interrupt_cursor'	none
		window_intersect_c		none
		window_intype			none
		window_intype_again		none
		'window_intype_put_data'	none
		window_is_frozen_c		none
		window_is_occluding_c		none
		window_justify_text_c		none
		window_key_case_c		tvcase
		window_key_color_c		tvkbat
		window_last_io_location_c	none
		window_last_scroll		none
		window_last_horizontal_scroll	none
		window_manager_initialized	none
		window_menu_bar_create_c	none
		window_menu_bar_delete_c	none
		window_menu_bar_update_c	none
		window_move			none
		window_move_disable		none
		window_move_enable		none
		window_next_scroll_row_c	none
		window_occluded_by_c		none
		window_occluded_c		none
		window_occluding_c		none
		window_physical_column_c	none
		window_printf_at_c		none
		window_printf_c		none
		window_printf_noscroll_c	none
		'window_query_scroll'		none
		window_read_color_text_c	none
		'window_read_cursor'		rdcurs
		'window_read_handle'		none
		window_read_menu_bar_info	none
		window_read_text_c		none
		window_reborder_c		none
		window_rectangle_c		tvbox(_c)
		window_refresh_c		none
		window_refresh_all_c		none
		window_register_function_c	none
		window_resize			none
		window_restore_hint_c		none
		window_retitle_c		none
		window_row(_c)		none
		window_row_to_entry_c		none
		window_scroll(_c)		tvwndo and tvscrl
		window_scroll_block_c		tvwndo and tvscrl
		window_scroll_offset_c	none
		window_scroll_page_c		none
		window_scroll_to_bottom_c	none
		window_scroll_to_top_c	none
		window_select_copy_c		none
		window_select_pop_c		none
		window_select_push_c		none
		window_select_stack_c		none
		window_sequential_write_c	none
		window_set_background_size(_c)tvsfmt
		window_set_clip_c		none
		window_set_cursor(_c)		tvscrs
		window_set_handle_c		none
		window_set_parameter_c	none
		window_set_popup_c		none
		'window_set_position'		none
		window_set_resize_mode_c	none
		window_set_scroll_colors_c	none
		window_set_scroll_limit_c	none
		window_set_scroll_region_c	tvwndo
		'window_set_size'		none
		window_set_size_limit_c	none
		'window_size'			tvrfmt
		window_text_block(_c)		none
		window_text_color(_c)		tvcolr(_c)
		window_text_fill(_c)		tvfill(_c)
		'window_title'			none
		window_topmost_c		none
		window_total_lines_c		none
		window_to_back		none
		window_to_front		none
		window_to_graphic_screen_c	none
		window_to_printer_c		none
		window_tvdisp(_c)		tvdisp(_c)
		window_tvm(_c)		tvm(_c)
		window_tvmx(_c)		tvmx(_c)
		window_tvsave_c		none
		window_unfit_window		none
		window_unfreeze_c		none
		window_unregister_function_c	none
		window_up_case_c		none
		window_vertical_text(_c)	none
		window_virtual_column_c	none
		window_vline_c		tvvlin_c
		window_write_line_c		none
		window_write_scroll_c		none
		window_write_xchar_line_c	none

	Program control routines:

	window_intype
	window_intype_again
	window_intype_put_data_c
	in_window_c
	in_window_box(_c)
	in_window_field(_c)
	in_window_line(_c)
	interrupt_window

	Window creation/deletion routines:

	window_construct(_c)
	window_create(_c)
	window_delete(_c)

	Drawing routines:

	window_blank(_c)
	window_border_button_c
	window_box_c
	window_center_text(_c)
	window_display_value(_c)
	window_down_case_c
	window_erase_c
	window_erase_line(_c)
	window_erase_to_eol_c
	window_hilite_c
	window_hilite_line_c
	window_hline_c
	window_init_sequential_write_c
	window_justify_text_c
	window_rectangle_c
	window_sequential_write_c
	window_text_color(_c)
	window_text_fill(_c)
	window_tvdisp(_c)
	window_tvm(_c)
	window_tvmx(_c)
	window_up_case_c
	window_vertical_text(_c)
	window_vline_c
	window_write_line_c
	window_write_scroll_c
	window_write_xchar_line_c

	Input routines:

	window_input_value(_c)
	window_read_color_text_c
	'window_read_cursor'
	window_read_text_c
	window_tvm(_c)
	window_tvmx(_c)

	Coordinate handling routines:

	screen_column(_c)
	screen_row(_c)
	window_column(_c)
	'window_coords'
	window_entry_to_row_c
	window_physical_column_c
	window_row(_c)
	window_row_to_entry_c
	window_virtual_column_c

	Scroll routines:

	window_delete_line_c
	window_delete_scroll_buffer_c
	window_disable_scroll_io_c
	window_disable_scroll_save_c
	window_disable_scroll_slider_c
	window_enable_scroll_io(_c)
	window_enable_scroll_save_c
	window_enable_scroll_slider_c
	window_enable_scroll_status_c
	window_entry_to_row_c
	window_hscroll_c
	window_hscroll_offset_c
	window_last_scroll
	window_last_horizontal_scroll
	window_physical_column_c
	'window_query_scroll'
	window_row_to_entry_c
	window_scroll(_c)
	window_scroll_block_c
	window_scroll_offset_c
	window_scroll_page_c
	window_scroll_to_bottom_c
	window_scroll_to_top_c
	window_sequential_write_c
	window_set_parameter_c
	window_set_scroll_colors_c
	window_set_scroll_limit_c
	window_set_scroll_region_c
	window_total_lines_c
	window_virtual_column_c
	window_write_line_c
	window_write_scroll_c
	window_write_xchar_line_c

	Window moving, resizing, and restacking routines:

	window_disable_move_c
	window_disable_resize_c
	window_disable_restack_c
	window_enable_move_c
	window_enable_resize_c
	window_enable_restack_c
	window_intersect_c
	window_move
	window_occluded_by_c
	window_occluded_c
	window_occluding_c
	window_resize
	window_set_background_size(_c)
	'window_set_position'
	'window_set_size'
	window_set_size_limit_c
	window_to_back
	window_to_front
	window_topmost_c

	Window action control routines:

	window_disable_interrupts
	window_disable_move_c
	window_disable_resize_c
	window_disable_restack_c
	window_enable_interrupts
	window_enable_move_c
	window_enable_resize_c
	window_enable_restack_c
	window_freeze_c
	window_is_frozen_c
	window_move_disable
	window_move_enable
	window_set_popup_c
	window_unfreeze_c

	Window miscellaneous routines:

	window_has_feature_c
	window_set_parameter_c

	Highlighting routines:

	hilite_create_c
	hilite_delete_c
	hilite_resume_c
	hilite_suspend_c
	hilite_update_c
	hilite_window_delete_c
	window_hilite_c
	window_hilite_line_c

	Menu bar routines:

	menu_bar_change_entry_c
	menu_bar_create
	menu_bar_delete
	menu_bar_disable_c
	menu_bar_dncase_entry_c
	menu_bar_enable_c
	menu_bar_upcase_entry_c
	menu_bar_update
	window_has_menu_bar_c
	window_menu_bar_create_c
	window_menu_bar_delete_c
	window_menu_bar_update_c

	Switch routines:

	switch_change_case_c
	switch_create_c
	switch_create_radio_c
	switch_delete_c
	switch_pressed
	switch_read_c
	switch_relabel_c
	switch_set_flash_c
	switch_window_delete_c
	window_has_switch_c

	Slider routines:

	slider_create_c
	slider_delete_c
	slider_get_values_c
	slider_read_c
	slider_set_c
	slider_set_values_c
	slider_update_c
	slider_was_moved

	Select field routines:

	select_field_delete_c
	select_field_init_c
	select_field_read_c
	select_field_register_c
	select_field_set_c
	select_field_update_c

	These functions require the following include files:

	cbslib_h

	Related functions:

	hilite_create_c, hilite_delete_c, hilite_resume_c,
	hilite_simple_row_create_c, hilite_suspend_c, hilite_update_c,
	hilite_window_delete_c, input_field_create_c, input_field_delete_c,
	input_field_disable_c, input_field_enable_c, input_field_read_c,
	input_field_set_c, input_field_set_id_type_c,
	input_field_window_delete_c, interrupt_window, in_window_c,
	in_window_box(_c), in_window_field(_c), in_window_line(_c),
	list_field_create_c, list_field_delete_c, list_field_disable_c,
	list_field_enable_c, list_field_read_c, list_field_set_c,
	list_field_set_id_type_c, list_field_window_delete_c,
	menu_bar_change_entry_c, menu_bar_create, menu_bar_delete,
	menu_bar_disable_c, menu_bar_dncase_entry_c, menu_bar_enable_c,
	menu_bar_field_coordinates_c, menu_bar_min_width_c,
	menu_bar_upcase_entry_c, menu_bar_update, screen_column(_c),
	screen_row(_c), select_field_delete_c, select_field_disable_c,
	select_field_enable_c, select_field_init_c, select_field_read_c,
	select_field_register_c, select_field_set_c, select_field_text_to_id_c,
	select_field_update_c, slider_create_c, slider_delete_c,
	slider_get_values_c, slider_read_c, slider_set_c, slider_set_values_c,
	slider_update_c, slider_was_moved, switch_change_case_c,
	switch_create_c, switch_create_radio_c, switch_delete_c,
	switch_disable_c, switch_enable_c, switch_pressed, switch_read_c,
	switch_relabel_c, switch_set_flash_c, switch_set_state_c,
	switch_text_to_id_c, switch_window_delete_c, window_add_callback_c,
	window_align_to_window_c, window_background_color_c, window_blank(_c),
	window_border_button_c, window_box_c, window_button_create_c,
	window_button_delete_c, window_button_disable_c, window_button_enable_c,
	window_button_set_id_type_c, window_button_text_to_id_c,
	window_callback_init, window_callback_term, window_center_text(_c),
	window_column(_c), window_construct(_c), window_coords(_c),
	window_copy(_c), window_create(_c), window_delete(_c),
	window_delete_border_button_c, window_delete_char_c,
	window_delete_line_c, window_delete_scroll_buffer_c,
	window_disable_interrupts, window_disable_move_c,
	window_disable_occluded_ints_c, window_disable_resize_c,
	window_disable_restack_c, window_disable_scroll_io_c,
	window_disable_scroll_save_c, window_disable_scroll_slider_c,
	window_disable_scroll_status_c, window_display_value(_c),
	window_down_case_c, window_draw_char_c, window_enable_interrupts,
	window_enable_move_c, window_enable_occluded_ints_c,
	window_enable_resize_c, window_enable_restack_c,
	window_enable_scroll_io(_c), window_enable_scroll_save_c,
	window_enable_scroll_slider_c, window_enable_scroll_status_c,
	window_end_intype_loop, window_entry_to_row_c, window_erase_c,
	window_erase_line(_c), window_erase_to_eol_c, window_exposed_region_c,
	window_field_add_callback_c, window_field_create_c,
	window_field_delete_c, window_field_delete_callback_c,
	window_field_disable_c, window_field_enable_c, window_field_init_c,
	window_fit_window, window_flush_text_region_c,
	window_flush_typed_text_c, window_freeze_c, window_gap_c,
	window_gap_length_c, window_get_parameter_c, window_handle_to_id,
	window_has_feature_c, window_has_menu_bar_c, window_has_switch_c,
	window_hilite_c, window_hilite_line_c, window_hline_c, window_hole_c,
	window_hscroll_c, window_hscroll_offset_c, window_hscroll_page_c,
	window_init, window_init_sequential_write_c, window_input_value(_c),
	window_insert_char_c, window_insert_line_c, window_interrupt_cursor(_c),
	window_intersect_c, window_intype, window_intype_again,
	window_intype_loop_c, window_intype_put_data, window_is_frozen_c,
	window_is_occluding_c, window_justify_text_c, window_key_case_c,
	window_key_color_c, window_key_echo_c, window_last_io_location_c,
	window_last_scroll, window_last_horizontal_scroll,
	window_manager_initialized, window_menu_bar_create_c,
	window_menu_bar_delete_c, window_menu_bar_update_c, window_move,
	window_move_disable, window_move_enable, window_next_scroll_row_c,
	window_num_popup_windows, window_occluded_by_c, window_occluded_c,
	window_occluding_c, window_physical_column_c, window_printf_at_c,
	window_printf_c, window_printf_noscroll_c, window_query_scroll(_c),
	window_read_background_size, window_read_color_text_c,
	window_read_cursor(_c), window_read_handle, window_read_menu_bar_info,
	window_read_text_c, window_reborder_c, window_rectangle_c,
	window_refresh_c, window_refresh_all_c, window_register_function_c,
	window_remove_callback_c, window_resize, window_restore_hint_c,
	window_retitle_c, window_row(_c), window_row_to_entry_c,
	window_scroll(_c), window_scroll_block_c, window_scroll_offset_c,
	window_scroll_page_c, window_scroll_to_bottom_c,
	window_scroll_to_left_c, window_scroll_to_right_c,
	window_scroll_to_top_c, window_select_copy_c, window_select_pop_c,
	window_select_push_c, window_select_stack_c, window_sequential_write_c,
	window_set_background_size(_c), window_set_clip_c,
	window_set_cursor(_c), window_set_handle_c, window_set_parameter_c,
	window_set_popup_c, window_set_position(_c), window_set_resize_mode_c,
	window_set_scroll_colors_c, window_set_scroll_limit_c,
	window_set_scroll_region_c, window_set_size(_c),
	window_set_size_limit_c, window_size(_c), window_text_block(_c),
	window_text_color(_c), window_text_fill(_c), window_title(_c),
	window_title_to_id, window_topmost_c, window_total_lines_c,
	window_to_back, window_to_front, window_to_graphic_screen_c,
	window_to_printer_c, window_tvdisp(_c), window_tvm(_c),
	window_tvmx(_c), window_tvsave_c, window_unfit_window,
	window_unfreeze_c, window_unregister_function_c,
	window_update_background_c, window_up_case_c, window_vertical_text(_c),
	window_virtual_column_c, window_vline_c, window_write_line_c,
	window_write_scroll_c, window_write_string_c, window_write_xchar_line_c