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_c'none
'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_c'none
'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_c'none
'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