! LSE$EVE_DECWINDOWS.TPU !************************************************************************* ! * ! © Copyright 2005 Hewlett-Packard Development Company, L.P. * ! * ! Confidential computer software. Valid license from HP required for * ! possession, use or copying. Consistent with FAR 12.211 and 12.212, * ! Commercial Computer Software, Computer Software Documentation, and * ! Technical Data for Commercial Items are licensed to the U.S. * ! Government under vendor's standard commercial license. * ! * !************************************************************************* !++ ! FACILITY: ! VAX Language-Sensitive Editor ! ! ABSTRACT: ! This file contains superceded EVE procedures that are located in the ! file EVE$DECWINDOWS.TPU. ! ! ENVIRONMENT: ! VAX/VMS ! ! CREATION DATE: 21-DEC-1989 ! ! MODIFIED BY: ! ! X3.1-1 DAS 21-Dec-89 First pass. ! X3.1-2 DAS 06-Apr-90 Changed top calls to LSE_TOP ! X3.2 DAS 25-May-90 Supercede save/restore widget arrays in CCT mode ! X3.2-1 WC3 22-Aug-90 Remove: lse$$gz_screen_height ! lse$$gz_screen_width ! X3.2-2 DAS 31-Aug-90 Fix calculation of choices window ! X3.2-3 WC3 01-Oct-90 Change GET_INFO( SYSTEM, 'lse$width' ) to ! GET_INFO( lse$window, 'lse$width' ) ! X3.2-4 DAS 23-Oct-90 Changed LSE_TOP calls to LSE$TOP ! X3.2-5 SAA 28-Nov-90 Undefined unneeded EVE widgets ! X3.2-6 GJJ 22-Jan-91 Conditionalize .UID file name based on platform. ! X4.0 GJJ 25-Mar-91 Changed the name of the DRM file to lse on ! Ultrix. ! X4.0-1 DAS 14-May-91 Updated list of widgets being UNDEFINED ! X4.0-2 SHE 04-Jun-91 Motif conversion. ! X4.0-3 WC3 13-Jun-91 Prompting consistency ! X4.0-4 AVH 24-Jun-91 Fix a typo in procedure eve$scroll_dispatch. ! X4.0-5 SHE 02-Jul-91 Removed set of ICONIFY_PIXMAP, since Motif doesn't ! use it. ! X4.0-6 SHE 30-Jul-91 Modified eve$create_menu_bar to use the correct ! parent for popups, and to use SET (MENU_POSITION). ! X4.0-7 SHE 08-Aug-91 Fixed eve$scroll_dispatch to use reason_code in ! place of widget_reason ! Superseded eve$$resize_handler. ! Modified eve$$resize_system_windows to set the width ! of lse$command_window and lse$prompt_window. ! X4.0-8 SHE 09-Aug-91 Fixed incorrect reference to eve$message_window to ! refer to message_window. ! X4.0-9 SHE 14-Aug-91 Changed call to eve$$resize_action within CTRL/C ! error trap of eve$$resize_handler to be ! lse$$resize_action. ! X4.0-10 SHE 18-Aug-91 Removed EVE's old menu customization stuff ! X4.0-11 SHE 25-Sep-91 Restored eve$$$save_widget_arrays and ! eve$$$restore_widget_arrays. ! Added parameters to eve_define_menu_entry and ! eve_undefine_menu_entry ! X4.0-12 DAS 26-Oct-91 Added declaration of LSE$COMMAND_WINDOW and ! LSE$PROMPT_WINDOW ! X4.0-13 DAS 14-Nov-91 Remove module/endmodule structure ! X4.0-14 WC3 28-Jan-92 Add LSE$POST_COMMAND_PROC call to scroll bar ! processing ! X4.0-15 SHE 29-Apr-92 Trap TPU$_UIDICONERR in eve$create_menu_bar ! X4.0-16 WC3 08-May-92 Added missing local declarations !- procedure lse$eve_decwindows_module_ident return "4.7-3"; endprocedure; ! EVE$DECWINDOWS.TPU Page 12 procedure eve$$resize_system_windows ! Re-size/position system windows ! This procedure must be synchronized with attribute setting of system windows ! that occurs in both eve$windows.tpu and eve$terminals.tpu local overhead, command_row, message_row, choice_row, prompt_row, show_len, ruler_row, ! ! ### LSE added ! learn_window_row, show_window_height; on_error [TPU$_CONTROLC]: eve$$resize_system_windows; [OTHERWISE]: endon_error; ! Delete all of the eve system windows. delete (eve$command_window); delete (message_window); delete (eve$choice_window); delete (eve$prompt_window); delete (tpu$x_show_window); delete (eve$$x_ruler_window); ! ! ### LSE added to delete the learn ! delete (lse$$learn_window); ! ! The overhead is the size of the command windows and messages window combined. overhead := eve$$x_message_window_size + eve$$x_command_window_size; ! Compute the height of the show window show_len := eve$$x_resize_new_length - overhead; ! Recompute the choices window length eve$x_choice_window_length := ((eve$$x_resize_new_length - overhead) / 4) + 1; if eve$x_choice_window_length < 3 then eve$x_choice_window_length := 3; endif; ! Compute the top positions of the following windows (show is 1) command_row := eve$$x_resize_new_length - overhead + 1; message_row := eve$$x_resize_new_length - eve$$x_message_window_size + 1; choice_row := eve$$x_resize_new_length - (eve$x_choice_window_length + overhead) + 1; prompt_row := command_row; ruler_row := eve$$x_resize_new_length - overhead - 1; ! ! ### LSE CHANGE ! learn_window_row := get_info( screen, 'visible_length' ) - eve$get_message_window_size; ! Create and map the following system windows eve$$map_window (eve$command_window, eve$command_buffer, command_row, eve$$x_command_window_size, OFF); eve$$map_window (message_window, tpu$x_message_buffer, message_row, eve$$x_message_window_size, OFF); ! Create but don't map the following system windows eve$choice_window := create_window (choice_row, eve$x_choice_window_length, ON); eve$prompt_window := create_window (prompt_row, 1, OFF); ! !### LSE CHANGED ! Create the show window starting at line 1 through the command window ! ! tpu$x_show_window := create_window (1, show_len, ON); ! show_window_height := learn_window_row - eve$get_command_window_size; tpu$x_show_window := CREATE_WINDOW (1, show_window_height, OFF); SET(WIDTH, tpu$x_show_window, GET_INFO( lse$window, 'lse$width' )); ! eve$$x_ruler_window := create_window (ruler_row, 2, ON); ! !### LSE adds to create the learn window. ! lse$$learn_window := CREATE_WINDOW (learn_window_row, 1, OFF); SET(VIDEO, lse$$learn_window, REVERSE); SET(WIDTH, lse$$learn_window, GET_INFO( lse$window, 'lse$width' )); ! Set scroll bars on the show window, the prompt area, and video on the prompt ! window. ! ! eve$$set_scroll_bars (tpu$x_show_window); set (PROMPT_AREA, prompt_row, 1, REVERSE); set (VIDEO, eve$prompt_window, REVERSE); ! Set the key map lists set (KEY_MAP_LIST, eve$x_mouse_list, eve$choice_window); set (KEY_MAP_LIST, eve$x_mouse_list, eve$prompt_window); set (KEY_MAP_LIST, eve$x_mouse_list, tpu$x_show_window); ! !### LSE adds reset the prompt window ! lse$$reset_lse$prompt_window; ! Set all of the window widths set (WIDTH, eve$command_window, eve$$x_resize_new_width); set (WIDTH, message_window, eve$$x_resize_new_width); set (WIDTH, eve$choice_window, eve$$x_resize_new_width); set (WIDTH, eve$prompt_window, eve$$x_resize_new_width); set (WIDTH, tpu$x_show_window, eve$$x_resize_new_width); set (WIDTH, eve$$x_ruler_window, eve$$x_resize_new_width); set (WIDTH, lse$command_window, eve$$x_resize_new_width); set (WIDTH, lse$prompt_window, eve$$x_resize_new_width); endprocedure; ! eve$$resize_system_windows ! EVE$DECWINDOWS.TPU Page 18 procedure eve$scroll_dispatch ! Widget callback routine for scroll bars local saved_window, saved_mark, status, widget_called, ! The widget called widget_tag, widget_reason, reason_code, scroll_bar_values, derived_line, temp_array, saved_scrolls, ! Boolean set if saved_scroll_xxx valid saved_scroll_top, ! Original value of scroll_top saved_scroll_bottom, ! Original value of scroll_bottom saved_scroll_amount, ! Original value of scroll_amount window_length; ! For finding bottom of scroll region on_error [TPU$_CONTROLC]: if saved_scrolls then set (SCROLLING, eve$$x_scroll_bar_window {widget_called}, ON, saved_scroll_top, saved_scroll_bottom, saved_scroll_amount); update (eve$$x_scroll_bar_window {widget_called}); endif; if eve$$x_scroll_bar_window {widget_called} <> saved_window then eve$$restore_position (saved_window, saved_mark); endif; lse$post_command_proc; eve$learn_abort; abort; [OTHERWISE]: if saved_scrolls then set (SCROLLING, eve$$x_scroll_bar_window {widget_called}, ON, saved_scroll_top, saved_scroll_bottom, saved_scroll_amount); update (eve$$x_scroll_bar_window {widget_called}); endif; if eve$$x_scroll_bar_window {widget_called} <> saved_window then eve$$restore_position (saved_window, saved_mark); endif; endon_error saved_mark := mark (FREE_CURSOR); saved_window := current_window; ! Standard widget dispatch logic - get our "parameters" status := get_info (WIDGET, "CALLBACK_PARAMETERS", temp_array); widget_called := temp_array {eve$k_widget}; widget_tag := temp_array {eve$k_closure}; reason_code := temp_array {eve$k_reason_code}; position (eve$$x_scroll_bar_window {widget_called}); status := get_info (widget_called, "WIDGET_INFO", eve$$x_scroll_bar_values); if reason_code = eve$x_callback_array {eve$k_cr_decrement} then widget_reason := 0; endif; if reason_code = eve$x_callback_array {eve$k_cr_increment} then widget_reason := 1; endif; if reason_code = eve$x_callback_array {eve$k_cr_page_increment} then widget_reason := 2; endif; if reason_code = eve$x_callback_array {eve$k_cr_page_decrement} then widget_reason := 3; endif; if reason_code = eve$x_callback_array {eve$k_cr_value_changed} then widget_reason := 4; endif; if (widget_reason = eve$x_callback_array {eve$k_cr_to_top}) or (widget_reason = eve$x_callback_array {eve$k_cr_to_bottom}) then widget_reason := 5; endif; if widget_tag = 'v' then ! Scroll window based on our callback reason case widget_reason [0]: scroll (eve$$x_scroll_bar_window {widget_called}, -1); ! !### LSE adds to make sure the cursor is on the visible record. ! position(lse$find_visible(mark(free_cursor), FORWARD, 0)); [1]: scroll (eve$$x_scroll_bar_window {widget_called}, 1); ! !### LSE adds to make sure the cursor is on the visible record. ! position(lse$find_visible(mark(free_cursor), REVERSE, 0)); [2]: scroll (eve$$x_scroll_bar_window {widget_called}, eve$$x_scroll_bar_values {eve$x_resource_array {eve$k_nscroll_page_inc}}); ! !### LSE adds to make sure the cursor is on the visible record. ! position(lse$find_visible(mark(free_cursor), REVERSE, 0)); [3]: scroll (eve$$x_scroll_bar_window {widget_called}, -eve$$x_scroll_bar_values {eve$x_resource_array {eve$k_nscroll_page_inc}}); ! !### LSE adds to make sure the cursor is on the visible record. ! position(lse$find_visible(mark(free_cursor), FORWARD, 0)); [4]: if (eve$$x_scroll_bar_values {eve$x_resource_array {eve$k_nvalue}} = (eve$$x_scroll_bar_values {eve$x_resource_array {eve$k_nmax_value}} - eve$$x_scroll_bar_values {eve$x_resource_array {eve$k_nslider_size}})) then position (end_of (current_buffer)); else if (eve$$x_scroll_bar_values {eve$x_resource_array {eve$k_nvalue}} = eve$$x_scroll_bar_values {eve$x_resource_array {eve$k_nmin_value}}) then ! ! ### LSE change ! Skip invisible record at the beginning of the buffer. ! lse$top; ! position (beginning_of (current_buffer)); else position (eve$$x_scroll_bar_values {eve$x_resource_array {eve$k_nvalue}}); ! !### LSE adds to make sure the cursor is on the visible ! record. ! position(lse$find_visible(mark(free_cursor), FORWARD, 0)); ! save old scrolling region saved_scroll_amount := get_info (eve$$x_scroll_bar_window {widget_called}, "scroll_amount"); saved_scroll_bottom := get_info (eve$$x_scroll_bar_window {widget_called}, "scroll_bottom"); saved_scroll_top := get_info (eve$$x_scroll_bar_window {widget_called}, "scroll_top"); saved_scrolls := TRUE; ! for error handler window_length := get_info (eve$$x_scroll_bar_window {widget_called}, "visible_bottom") - get_info (eve$$x_scroll_bar_window {widget_called}, "visible_top"); ! find # of lines from bottom to place cursor window_length := window_length - saved_scroll_top; ! quickly force cursor to top of screen set (SCROLLING, eve$$x_scroll_bar_window {widget_called}, ON, saved_scroll_top, window_length, 0); if get_info (mark (FREE_CURSOR), "display_value") >= get_info (eve$$x_scroll_bar_window {widget_called}, "display_value") then update (eve$$x_scroll_bar_window {widget_called}); else ! record is invisible, go to previous visible record scroll (eve$$x_scroll_bar_window {widget_called}, -1); endif; ! reset old scrolling region set (SCROLLING, eve$$x_scroll_bar_window {widget_called}, ON, saved_scroll_top, saved_scroll_bottom, saved_scroll_amount); endif; endif; [5]: ! ignore these until we can handle them endcase; if eve$x_bound_cursor then ! snap to text if bound cursor position (TEXT); endif; else ! Scroll window based on our callback reason case widget_reason [0]: shift (eve$$x_scroll_bar_window {widget_called}, -1); [1]: shift (eve$$x_scroll_bar_window {widget_called}, 1); [2]: shift (eve$$x_scroll_bar_window {widget_called}, eve$$x_scroll_bar_values {eve$x_resource_array {eve$k_nscroll_page_inc}}); [3]: shift (eve$$x_scroll_bar_window {widget_called}, -eve$$x_scroll_bar_values {eve$x_resource_array {eve$k_nscroll_page_inc}}); [4]: if (eve$$x_scroll_bar_values {eve$x_resource_array {eve$k_nvalue}} = (eve$$x_scroll_bar_values {eve$x_resource_array {eve$k_nmax_value}} - eve$$x_scroll_bar_values {eve$x_resource_array {eve$k_nslider_size}})) then shift (eve$$x_scroll_bar_window {widget_called}, eve$$x_scroll_bar_values {eve$x_resource_array {eve$k_nmax_value}} - (eve$$x_scroll_bar_values {eve$x_resource_array {eve$k_nslider_size}} + get_info (eve$$x_scroll_bar_window {widget_called}, "shift_amount"))); else shift (eve$$x_scroll_bar_window {widget_called}, (eve$$x_scroll_bar_values {eve$x_resource_array {eve$k_nvalue}} - get_info (eve$$x_scroll_bar_window {widget_called}, "shift_amount"))); endif; [5]: ! ignore these until we can handle them endcase; endif; ! In case the cursor left a select range eve$$found_post_filter; if eve$$x_scroll_bar_window {widget_called} <> saved_window then eve$$restore_position (saved_window, saved_mark); endif; lse$post_command_proc; endprocedure; ! eve$scroll_dispatch procedure eve$$resize_handler ! Guts of resize ! ! This procedure (EVE$$RESIZE_HANDLER) is called to implement a change in the ! current window layout. It is called when the user directly changes the size ! of the DECwindows window, whenever the user issues a SET WIDTH command, or ! whenever EVE$SET_MESSAGE_WINDOW_SIZE or EVE$SET_COMMAND_WINDOW_SIZE is ! called after the windows were created. ! ! Position into a user text window and maintain that window as the ! current window thru-out the resize. Delete windows from the bottom ! of the screen, adjusting the top of current_window upwards, and ! finally the bottom of the bottom-most window to the screen bottom. ! ! When the screen is made too small, unmap all windows. If there's at least ! one line, then map the message window and buffer. Regardless, put up the ! dialog box with the error message. ! ! Callers of this procedure are required to set the following four variables: ! ! eve$$x_resize_new_length ! eve$$x_resize_old_length ! eve$$x_resize_new_width ! eve$$x_resize_old_width ! ! The old and new length or width can be equal in the case of changing the ! message or command window heights. ! local difference, the_count, total_length, number, did_one_window, a_length, a_window, saved_window, saved_mark, new_top, old_bottom, top_adjust, bottom_adjust, bottom_window, do_normal_restore, top_buffer, new_overhead, old_overhead, minimum_height, message_window_vis_length, command_window_vis_length; on_error [TPU$_CONTROLC]: lse$$resize_action; eve$learn_abort; abort; [OTHERWISE]: lse$$unexpected_error( ERROR, ERROR_TEXT, ERROR_LINE, "eve$$resize_handler"); if get_info (saved_window, "type") = WINDOW then eve$$restore_position (saved_window, saved_mark); endif; endon_error; ! ! The new and old overhead values are the sum of the message window and command ! window heights. The new values are in variables, while the old values can ! be obtained from the existing windows themselves. ! new_overhead := eve$$x_message_window_size + eve$$x_command_window_size; ! ! ## LSE Change ! ! The visible_length of eve$command_window is 0 if our lse$command_window is ! occluding it. ! if get_info (lse$command_window, "visible") then command_window_vis_length := get_info (lse$command_window, "visible_length"); else command_window_vis_length := get_info (eve$command_window, "visible_length"); endif; message_window_vis_length := get_info (message_window, "visible_length"); old_overhead := command_window_vis_length + message_window_vis_length; ! ! Set the flag to do a normal restoration. It will be set false in the ! appropriate code paths. ! do_normal_restore := TRUE; ! ! Set the width of the windows before anything else, so that any update call ! in eve$check_bad_window does not cause an infinite loop. ! if (eve$$x_resize_old_width <> eve$$x_resize_new_width) and (eve$$x_resize_new_width <> 0) then eve$set_width (eve$$x_resize_new_width); endif; ! ! Unmap the choices window if present ! eve$unmap_if_mapped (eve$choice_window); ! ! Ensure that the cursor is positioned in a user window. The check bad window ! call will return true if we were in a system window. It will not return true ! if we are in help's prompt. We must recall check bad window in case help ! returns us to a system window. ! ! ! Added for bug 2206 because eve$check_bad_window does not ! deal with lse$command_window. ! if (current_window = lse$command_window) then if get_info (eve$main_window, "type") = WINDOW then if get_info (eve$main_window, "buffer") <> 0 then position (eve$main_window); endif; endif; endif; if eve$check_bad_window then if (current_window = eve$prompt_window) then if (get_info (tpu$x_show_window, "buffer") = help_buffer) then eve$help_cleanup; eve$check_bad_window; endif; endif; endif; ! ! If the screen length has not changed and the message and command window ! heights have not chaned, then leave this routine because we have already ! dealt with the widths... ! if (eve$$x_resize_old_length = eve$$x_resize_new_length) then if (new_overhead = old_overhead) then return (TRUE); endif; endif; ! ! Calculate the mininum screen height needed by EVE. If we are using the ! DECwindows interface then take the scroll bars for the user window and ! the choices window into account. The scroll bars may not even be there, ! but the user could turn them on after the resize operation. ! ! Also take into account the new overhead value. ! if eve$x_decwindows_active then minimum_height := eve$$k_minimum_cct_height + 2 + new_overhead; else minimum_height := eve$$k_minimum_cct_height + new_overhead; endif; ! ! If the screen is now smaller, then see if it is too small. ! if ((eve$$x_resize_old_length > eve$$x_resize_new_length) or (new_overhead > old_overhead)) and (eve$x_number_of_windows > 0) ! no user windows if only msg window then ! ! If the new height is 1, but the old height was okay, then remember ! the users position. (The smallest DECterm length is 1 line.) ! if eve$$x_resize_new_length = 1 then if eve$$x_resize_old_length > minimum_height then eve$$x_state_array {eve$$k_saved_resize_mark} := mark (FREE_CURSOR); endif; eve$teardown_windows; eve$$resize_too_small; return; endif; ! ! Ensure that the new height is large enough for EVE to work. Note that we ! also must detect if this is the second attempt for a user to make it big ! enough. If it is the second attempt, then the windows have already been ! torn down. ! if eve$$x_resize_new_length < minimum_height then if eve$$x_resize_old_length >= minimum_height then eve$$x_state_array {eve$$k_saved_resize_mark} := mark (FREE_CURSOR); eve$teardown_windows; delete (message_window); eve$$map_window (message_window, tpu$x_message_buffer, 1, eve$$x_resize_new_length, OFF); endif; eve$$resize_too_small; return; endif; endif; ! ! Get into a user text window. ! if eve$$x_resize_old_length <> 1 then saved_window := current_window; saved_mark := mark (FREE_CURSOR); endif; ! ! If the real estate used by the user buffers has gotten smaller ! if ((eve$$x_resize_old_length > eve$$x_resize_new_length) or (new_overhead > old_overhead)) and (eve$x_number_of_windows > 0) ! no user windows if only msg window then ! ! The current window will not occupy the entire space. We must delete some ! other window. Add up the total lengths of all of the current windows and ! the command and message window lengths. ! total_length := new_overhead; the_count := eve$x_number_of_windows; loop exitif the_count < 1; a_window := eve$get_window (the_count); total_length := total_length + get_info (a_window, "length", VISIBLE_WINDOW); the_count := the_count - 1; endloop; if eve$$x_resize_new_length < total_length then ! ! Delete one window at a time from bottom until the total number of ! lines needed is less that or equal to the screen height. ! new_top := 0; number := eve$$get_window_number; the_count := eve$x_number_of_windows; loop exitif the_count < 1; a_window := eve$get_window (the_count); if number > the_count then new_top := get_info (a_window, "top", WINDOW); endif; if number <> the_count then a_length := get_info (a_window, "length", VISIBLE_WINDOW); total_length := total_length - a_length; eve$$remove_window (the_count); exitif total_length <= eve$$x_resize_new_length; endif; the_count := the_count - 1; endloop; ! ! If we are left with only one window then adjust the current window ! as if we are doing a ONE WINDOW command. ! if eve$x_number_of_windows = 1 then top_adjust := 1 - get_info (saved_window, "top", WINDOW); bottom_adjust := eve$$x_resize_new_length - new_overhead - get_info (saved_window, "bottom", WINDOW); adjust_window (saved_window, top_adjust, bottom_adjust); ! ! If we are left with more than one window, then we must adjust the ! current window and bottom window if necessary. ! ! Algorithm: ! ! 1. Adjust top of current_window to top of the last deleted window ! that was above current (if there was one deleted) using ! variable new_top ! ! 2. Adjust bottom of bottom window to bottom of screen ! else if new_top <> 0 then top_adjust := new_top - get_info (saved_window, "top", WINDOW); adjust_window (saved_window, top_adjust, 0); endif; bottom_window := eve$get_window (eve$x_number_of_windows); bottom_adjust := eve$$x_resize_new_length - new_overhead - get_info (bottom_window, "bottom", WINDOW); adjust_window (bottom_window, 0, bottom_adjust); endif; endif; ! ! The real estate used by user buffer windows has grown. ! else ! ! Handle old screens of length = 1. If the new screen height is ! smaller than the minimum height, then map the message window and leave. ! if eve$$x_resize_old_length = 1 then delete (message_window); if eve$$x_resize_new_length < minimum_height then eve$$map_window (message_window, tpu$x_message_buffer, 1, eve$$x_resize_new_length, OFF); eve$$resize_too_small; return; else delete (eve$command_window); eve$setup_windows (get_info (eve$$x_state_array {eve$$k_saved_resize_mark}, "buffer")); do_normal_restore := FALSE; endif; ! ! The old screen height was > 1, and now we have more space. ! else ! ! Handle new screen too short for EVE to use ! if eve$$x_resize_new_length < minimum_height then eve$$map_window (message_window, tpu$x_message_buffer, 1, eve$$x_resize_new_length, OFF); eve$$resize_too_small; return; else ! ! The screen height may have just become acceptable ! if eve$$x_resize_old_length < minimum_height then delete (message_window); delete (eve$command_window); eve$setup_windows (get_info (eve$$x_state_array {eve$$k_saved_resize_mark}, "buffer")); do_normal_restore := FALSE; ! ! Give all of the new real estate to the last window ! else difference := (eve$$x_resize_new_length - eve$$x_resize_old_length) + (old_overhead - new_overhead); a_window := eve$get_window (eve$x_number_of_windows); adjust_window (a_window, 0, difference); endif; endif; endif; endif; ! ! Redo the scroll_margins if we had them already ! if (eve$x_scroll_top <> 0) or (eve$x_scroll_bottom <> 0) then the_count := eve$x_number_of_windows; loop exitif the_count < 1; a_window := eve$get_window (the_count); eve$set_scroll_margins (a_window, eve$x_scroll_top, eve$x_scroll_bottom); the_count := the_count - 1; endloop; endif; ! ! redo the EVE system windows (cmd, msg, prompt, ...) ! eve$$resize_system_windows; ! ! restore the last position ! if do_normal_restore then eve$$restore_position (saved_window, saved_mark); else eve$$restore_position (eve$$x_windows {1}, eve$$x_state_array {eve$$k_saved_resize_mark}); endif; endprocedure; ! eve$$resize_handler ! ! THESE SUPERCEDED PROCEDURES HAVE BEEN GIVEN BACK TO EVE FOR THEM TO PICK UP. ! ! ! This procedure (EVE$$RESIZE_ACTION) is called for a DECwindows RESIZE event. ! The SET WIDTH command indirectly uses this routine since it forces a RESIZE ! event to be dispatched. ! ! This procedure's role is to set the old width, the old height, the new width, ! and the new height into four eve variables used by the resize window handling ! procedure. It then calls this handling procedure. ! procedure eve$$resize_action ! DECWindows resize action ! ! Set the EVE variables based on get_info's about the screen state. ! eve$$x_resize_new_length := get_info (SCREEN, "new_length"); eve$$x_resize_old_length := get_info (SCREEN, "old_length"); eve$$x_resize_new_width := get_info (SCREEN, "new_width"); eve$$x_resize_old_width := get_info (SCREEN, "old_width"); ! For bug 2270 if (eve$$x_resize_new_length = 1) or (eve$$x_resize_old_length = 1) then return; endif; ! ! Call the lower level procedure to do the work. ! eve$$resize_handler; endprocedure; procedure eve$$resize_too_small ! Severe resize error on_error [OTHERWISE]: eve$message (EVE$_SCREENTOOSMALL); eve$$x_state_array {eve$$k_command_line_flag} := eve$k_invoked_by_key; endon_error; eve$$x_state_array {eve$$k_command_line_flag} := eve$k_invoked_by_menu; lse$$popup_message (message_text (EVE$_SCREENTOOSMALL, 1) + ' (' + str(eve$$x_resize_new_length) + ',' + str(eve$$x_resize_new_width) + ')'); eve$$x_state_array {eve$$k_command_line_flag} := eve$k_invoked_by_key; endprocedure; ! eve$$resize_too_small ! EVE$DECWINDOWS.TPU Page 14 ! If we are in DECwindows then we want to CUT/COPY to the clipboard unless ! otherwise specified. Want to make this separate from EVE$$STORE_REMOVE because ! the clipboard functionality may change in future releases. ! ! Input: ! delete_range - boolean TRUE for CUT, FALSE for COPY procedure eve$$cut_copy (delete_range) local remove_range, ! Range being removed done_message; ! Success message on_error [TPU$_CLIPBOARDLOCKED]: eve$message (EVE$_CLIPBDWRITLOCK); eve$learn_abort; return (FALSE); [OTHERWISE]: eve$learn_abort; ! !### LSE CHANGE (1) ! return (FALSE); endon_error; remove_range := eve$selection (TRUE,,, eve$x_select_remove_flag); ! ! ### LSE change here ! ! if remove_range = 0, (No selection), then we just return. ! if remove_range = NONE, it means that there is NULL range created ! (EX.[SELECT][REMOVE], then we need to clear the paste buffer. ! if remove_range = 0 then eve$learn_abort; return (FALSE); endif; if ( remove_range <> NONE ) then write_clipboard ("", remove_range); else write_clipboard ("", ""); endif; ! ! ### end of LSE change ! if delete_range then ! ! ### LSE change to remove the existing range if any ! done_message := EVE$_REMCOMPL; if ( remove_range <> 0 ) and ( remove_range <> NONE ) then erase (remove_range); endif; ! !### end of LSE change ! else done_message := EVE$_COPYCOMPL; endif; remove_range := 0; eve$message (done_message); return (TRUE); ! !### END OF LSE CHANGE (1) ! endprocedure; ! EVE$DECWINDOWS.TPU Page 20 procedure eve$create_menu_bar ! Create menu_bar, popups, UID ! Set UID, create menu_bar (and ALL its children), create popups local status, temp_array, popup_parent; on_error [TPU$_UIDICONERR]: ! if this fails, we may be on non-Motif window manager [OTHERWISE]: endon_error; %if eve$x_option_decwindows %then if not eve$x_decwindows_active then return (FALSE); endif; ! For the CREATE_WIDGET builtin- If you would like to use your own ! hierarchy file or logical name, place it in eve$x_widget_hierarchy_string ! during module pre-initialization if get_info (eve$x_widget_hierarchy_string, "type") = STRING then eve$x_widget_hierarchy := set (UID, eve$x_widget_hierarchy_string); else ! ! ### LSE change ! if not eve$x_ultrix_active then eve$x_widget_hierarchy := set (UID, "LSE$WIDGETS") else eve$x_widget_hierarchy := set (UID, "lse") endif; ! ! endif; ! set the EVE icon for application title bar and application iconified ! ! ### LSE Change ! ! status := set (ICON_PIXMAP, eve$x_widget_hierarchy, "ICON_BOX_ICON"); !if not status !then ! ! this will fail on the Motif window manager ! status := set (ICON_PIXMAP, eve$x_widget_hierarchy, "ICON_BOX_ICON_32X32"); ! if not status ! then ! eve$message (TPU$_UIDICONERR, 0, "EVE_ICON_32X32"); ! endif; !endif; ! this one gets us the menu bar and all the menu sub-widgets eve$x_menu_bar := create_widget ("EVE_MENU_BAR", eve$x_widget_hierarchy, SCREEN, eve$kt_callback_routine); ! ! ### LSE change here ! ! create the two popup menus here - they should not have been created yet ! ! !eve$x_select_popup := create_widget ("SELECT_POPUP", ! eve$x_widget_hierarchy, ! SCREEN, ! eve$kt_callback_routine); ! ! ! ### LSE change ! ! Create Motif popups as children of the 'pop_up_parent_widget' ! popup_parent := get_info (SCREEN, "pop_up_parent_widget"); eve$x_no_select_popup := create_widget ("NO_SELECT_POPUP", eve$x_widget_hierarchy, popup_parent, eve$kt_callback_routine); lse$$x_query_buffer_popup := create_widget ("QUERY_POPUP", eve$x_widget_hierarchy, popup_parent, eve$kt_callback_routine); lse$$x_review_buffer_popup := create_widget ("REVIEW_POPUP", eve$x_widget_hierarchy, popup_parent, eve$kt_callback_routine); temp_array := create_array; temp_array {1} := eve$x_no_select_popup; temp_array {2} := lse$$x_query_buffer_popup; temp_array {3} := lse$$x_review_buffer_popup; set (MENU_POSITION, M3DOWN, temp_array); return (TRUE); %endif endprocedure; ! ! This routine is superceded to only save the widget array into the keymap if ! the widget array exists. ! ! In DECwindows mode, the array will always exist due to the call to restore ! happening in startup. ! ! In CCT mode, the array will only exist if a call was made to the procedure ! EVE$DEFINE_WIDGET. This happens only during EVE$BUILD in which case the ! old widgets in the array will be lost. In a real build, this presents no ! problem. ! ! ! The method for saving the initial setting of informationals was changed too. ! ! EVE$DECWINDOWS.TPU Page 6 ! ! This routine is superceded to only save the widget array into the keymap if ! the widget array exists. ! ! In DECwindows mode, the array will always exist due to the call to restore ! happening in startup. ! ! In CCT mode, the array will only exist if a call was made to the procedure ! EVE$DEFINE_WIDGET. This happens only during EVE$BUILD in which case the ! old widgets in the array will be lost. In a real build, this presents no ! problem. ! ! ! The method for saving the initial setting of informationals was changed too. ! ! EVE$DECWINDOWS.TPU Page 6 procedure eve$$$save_widget_arrays ! Save arrays as key_maps ! Save widget arrays in section file key_maps !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! NOTE: The following use of key_maps to save widget definitions in ! the section file is not recommended coding practice. ! All variables, procedures and key-maps flagged with three ! consecutive dollar signs should not be used by anyone. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! local saved_informational, the_list, ! The key-map list that we save it in the_index, the_map, the_key, last_index, the_array, the_help_array, widget_base, widget_offset, widget_identifier; on_error [TPU$_NODEFINITION]: [TPU$_CONTROLC]: set (INFORMATIONAL, saved_informational); eve$learn_abort; abort; [OTHERWISE]: set (INFORMATIONAL, saved_informational); endon_error if get_info (eve$$x_widget_arrays, "type") <> ARRAY then return true; endif; saved_informational := set (INFORMATIONAL, OFF); if not eve$key_map_exists ("EVE$$$WIDGET_ARRAY_548") then the_map := create_key_map ("EVE$$$WIDGET_ARRAY_548"); endif; if not eve$key_map_list_exists ("EVE$$$WIDGET_ARRAY_LIST") then the_list := create_key_map_list ("EVE$$$WIDGET_ARRAY_LIST", "EVE$$$WIDGET_ARRAY_548"); remove_key_map (the_list, "EVE$$$WIDGET_ARRAY_548"); else the_list := "EVE$$$WIDGET_ARRAY_LIST"; loop the_map := get_info (KEY_MAP, "first", the_list); exitif the_map = 0; remove_key_map (the_list, the_map); endloop; endif; the_index := get_info (eve$$x_widget_arrays, "first"); loop exitif the_index = tpu$k_unspecified; the_array := eve$$x_widget_arrays {the_index}; ! get widget array if the_array <> tpu$k_unspecified then ! get the corresponding help topic array the_help_array := eve$$x_widget_help_arrays {the_index}; widget_base := get_info (the_array, "first"); last_index := get_info (the_array, "last"); if ((get_info (widget_base, "type") <> INTEGER) or (get_info (last_index, "type") <> INTEGER)) then eve$message (EVE$_EVEINTERROR); return FALSE; endif; the_map := fao ("EVE$$$WIDGET_ARRAY_!UL", (widget_base / 65536) and 65535); if not eve$key_map_exists (the_map) then the_map := create_key_map (the_map); endif; add_key_map (the_list, "last", the_map); define_key (fao ("return !SL", widget_base), key_name (E1, SHIFT_MODIFIED), "widget base", the_map); define_key (fao ("return !SL", last_index + 1 - widget_base), key_name (E2, SHIFT_MODIFIED), "widget count", the_map); widget_offset := 0; loop widget_identifier := widget_base + widget_offset; exitif widget_identifier > last_index; the_key := eve$$$get_key_name (widget_identifier, widget_base); case get_info (the_array {widget_identifier}, "type") [UNSPECIFIED, OTHERWISE]: if lookup_key (the_key, COMMENT, the_map) <> 0 then undefine_key (the_key, the_map); endif; [PROGRAM, LEARN]: define_key (the_array {widget_identifier}, the_key, the_help_array {widget_identifier}, the_map); endcase; widget_offset := widget_offset + 1; endloop; endif; the_index := get_info (eve$$x_widget_arrays, "next"); endloop; set (INFORMATIONAL, saved_informational); endprocedure; ! eve$$$save_widget_arrays ! ! This procedure no longer restores in CCT mode. ! ! EVE$DECWINDOWS.TPU Page 7 procedure eve$$$restore_widget_arrays ! Restore widgets from key-maps !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! NOTE: The following use of key_maps to save widget definitions in ! the section file is not recommended coding practice. ! All variables, procedures and key-maps flagged with three ! consecutive dollar signs should not be used by anyone. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! local the_map, the_key, widget_base, the_index, last_index, the_code, array_count, code_array, help_array, code_arrays, help_arrays; on_error [OTHERWISE]: ; endon_error; if not eve$x_decwindows_active then return; endif; if eve$key_map_exists ("EVE$$$WIDGET_ARRAY_LIST") then code_arrays := create_array; help_arrays := create_array; array_count := 0; the_map := get_info (KEY_MAP, "first", "EVE$$$WIDGET_ARRAY_LIST"); loop exitif the_map = 0; widget_base := execute (lookup_key (key_name (E1, SHIFT_MODIFIED), PROGRAM, the_map)); last_index := execute (lookup_key (key_name (E2, SHIFT_MODIFIED), PROGRAM, the_map)); code_array := create_array (last_index, widget_base); help_array := create_array (last_index, widget_base); array_count := array_count + 1; code_arrays {array_count} := code_array; help_arrays {array_count} := help_array; last_index := widget_base + last_index - 1; the_index := widget_base; loop the_key := eve$$$get_key_name (the_index, widget_base); the_code := lookup_key (the_key, PROGRAM, the_map); if the_code <> 0 then code_array {the_index} := the_code; help_array {the_index} := lookup_key (the_key, COMMENT, the_map); endif; the_index := the_index + 1; exitif the_index > last_index; endloop; the_map := get_info (KEY_MAP, "next", "EVE$$$WIDGET_ARRAY_LIST"); endloop; endif; eve$$x_widget_arrays := code_arrays; eve$$x_widget_help_arrays := help_arrays; endprocedure; ! eve$$$restore_widget_arrays ! LSE has its own menu customization facility. We can't support EVE's as well. ! EVE's won't work with ours in place. ! procedure eve_define_menu_entry (the_menu, the_command, the_label, the_separator) eve$message (lse$_noevemenucust); return false; endprocedure; procedure eve_undefine_menu_entry (the_menu, the_label) eve$message (lse$_noevemenucust); return false; endprocedure; ! ! This procedure is superceded in order to allow it to be called from ! character cell. This has *not* been reported to EVE. ! procedure eve_set_noclipboard ! disable use of the clipboard (default) if eve$x_decwindows_active then eve$$x_state_array {eve$$k_clipboard} := FALSE; eve$message (EVE$_NOWPASTE); return (eve$define_attr ("eve_set_clipboard", "eve_set_noclipboard;", message_text (EVE$_NOWPASTE, 0))); !LSE else !LSE eve$message (EVE$_NOCCTCLIPBD); !LSE return (FALSE); endif; endprocedure; ! eve_set_noclipboard ! ! This procedure is superceded to fix a bug. It is impossible that this ! procedure ever worked. ! procedure eve$undefine_widget (widget_identifier) ! Undefine, too local the_index, high_word, code_array, help_array; on_error [OTHERWISE]: endon_error; high_word := (widget_identifier / 65536) and 65535; the_index := 1; loop code_array := eve$$x_widget_arrays {the_index}; exitif code_array = tpu$k_unspecified; ! ! The bug is that there is one too many indirections into the code_array ! ! exitif high_word = ((code_array {get_info (code_array, ! "first")} / 65536) ! and 65535); exitif high_word = ((get_info (code_array,"first") / 65536) and 65535); ! ! End of changes ! the_index := the_index + 1; endloop; if code_array = tpu$k_unspecified then return (FALSE); else help_array := eve$$x_widget_help_arrays {the_index}; endif; code_array {widget_identifier} := tpu$k_unspecified; help_array {widget_identifier} := tpu$k_unspecified; return (TRUE); endprocedure; ! eve$undefine_widget !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Any widgets defined in EVE$DECWINDOWS.TPU, and not actually USED ! in LSE, are undefined here (at section-build time). ! ! The status of each widget is encoded below as follows: ! * If the call is INDENTED, it means the K_CONSTANT is referenced ! in LSE$WIDGETS.UIL, but mapped to eve$null (and is therefore just ! a "placeholder" for the help frame. ! ! * If the call is NOT INDENTED, it means the K_CONSTANT is NOT ! referenced in LSE$WIDGETS.UIL ! ! * If the call is COMMENTED OUT, it means the K_CONSTANT is referenced ! in LSE$WIDGETS.UIL, and mapped to live, useful code. ! Currently it is mapped using the K_CONSTANT and WIDGET_INTEGER_CALLBACK. ! Ultimately, all these should be mapped with WIDGET_STRING_CALLBACK, ! and the corresponding widgets undefined as well. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! eve$undefine_widget ( eve$$k_file_pulldown ); eve$undefine_widget ( eve$$k_new ); eve$undefine_widget ( eve$$k_new_dialog ); eve$undefine_widget ( eve$$k_new_label ); eve$undefine_widget ( eve$$k_new_text ); eve$undefine_widget ( eve$$k_new_ok ); eve$undefine_widget ( eve$$k_new_apply ); eve$undefine_widget ( eve$$k_new_cancel ); eve$undefine_widget ( eve$$k_new_help ); eve$undefine_widget ( eve$$k_open ); eve$undefine_widget ( eve$$k_open_file_selection ); eve$undefine_widget ( eve$$k_open_selected ); eve$undefine_widget ( eve$$k_openbuffer_dialog ); eve$undefine_widget ( eve$$k_openbuffer_label ); eve$undefine_widget ( eve$$k_openbuffer_text ); eve$undefine_widget ( eve$$k_openbuffer_ok ); eve$undefine_widget ( eve$$k_openbuffer_apply ); eve$undefine_widget ( eve$$k_openbuffer_cancel ); eve$undefine_widget ( eve$$k_openbuffer_help ); ! "INCLUDE FILE" is a UIL keyword eve$undefine_widget ( eve$$k_include_fil ); eve$undefine_widget ( eve$$k_include_file_selection ); eve$undefine_widget ( eve$$k_save_file ); eve$undefine_widget ( eve$$k_save_file_as ); eve$undefine_widget ( eve$$k_save_file_as_dialog ); eve$undefine_widget ( eve$$k_save_file_as_label ); eve$undefine_widget ( eve$$k_save_file_as_text ); eve$undefine_widget ( eve$$k_save_file_as_ok ); eve$undefine_widget ( eve$$k_save_file_as_apply ); eve$undefine_widget ( eve$$k_save_file_as_cancel ); eve$undefine_widget ( eve$$k_save_file_as_help ); eve$undefine_widget ( eve$$k_exit ); eve$undefine_widget ( eve$$k_exit_dialog ); eve$undefine_widget ( eve$$k_exit_label ); eve$undefine_widget ( eve$$k_exit_ok ); eve$undefine_widget ( eve$$k_exit_cancel ); eve$undefine_widget ( eve$$k_quit ); ! EVE$DECWINDOWS.TPU Page 26 ! EDIT eve$undefine_widget ( eve$$k_edit_pulldown ); eve$undefine_widget ( eve$$k_restore_pullright ); eve$undefine_widget ( eve$$k_replace ); eve$undefine_widget ( eve$$k_replace_dialog ); eve$undefine_widget ( eve$$k_replace_old_label ); eve$undefine_widget ( eve$$k_replace_old_text ); eve$undefine_widget ( eve$$k_replace_new_label ); eve$undefine_widget ( eve$$k_replace_new_text ); eve$undefine_widget ( eve$$k_replace_ok ); eve$undefine_widget ( eve$$k_replace_cancel ); eve$undefine_widget ( eve$$k_replace_all ); eve$undefine_widget ( eve$$k_replace_help ); eve$undefine_widget ( eve$$k_replace_each_dialog ); eve$undefine_widget ( eve$$k_replace_each_label ); eve$undefine_widget ( eve$$k_replace_each_text ); !eve$undefine_widget ("eve$$widget_replace_each_ok", ! eve$$k_replace_each_ok, ! "replace"); !eve$undefine_widget ("eve$$widget_replace_each_no", ! eve$$k_replace_each_no, ! "replace"); !eve$undefine_widget ("eve$$widget_replace_each_last", ! eve$$k_replace_each_last, ! "replace"); !eve$undefine_widget ("eve$$widget_replace_each_all", ! eve$$k_replace_each_all, ! "replace"); !eve$undefine_widget ("eve$$widget_replace_each_quit", ! eve$$k_replace_each_quit, ! "replace"); eve$undefine_widget ( eve$$k_replace_go_each_dialog ); eve$undefine_widget ( eve$$k_replace_go_each_label ); !eve$undefine_widget ( "eve$$widget_replace_go_each_ok", ! eve$$k_replace_go_each_ok, ! "replace"); !eve$undefine_widget ( "eve$$widget_replace_go_each_no", ! eve$$k_replace_go_each_no, ! "replace"); eve$undefine_widget ( eve$$k_select_all ); eve$undefine_widget ( eve$$k_paste ); eve$undefine_widget ( eve$$k_copy ); eve$undefine_widget ( eve$$k_cut ); eve$undefine_widget ( eve$$k_restore_word ); eve$undefine_widget ( eve$$k_restore_sentence ); eve$undefine_widget ( eve$$k_restore_line ); eve$undefine_widget ( eve$$k_restore_character ); eve$undefine_widget ( eve$$k_restore_selection ); ! EVE$DECWINDOWS.TPU Page 27 ! SEARCH eve$undefine_widget ( eve$$k_search_pulldown ); eve$undefine_widget ( eve$$k_whitespace_pullright ); eve$undefine_widget ( eve$$k_wildcard_pullright ); eve$undefine_widget ( eve$$k_find ); eve$undefine_widget ( eve$$k_find_dialog ); eve$undefine_widget ( eve$$k_find_label ); eve$undefine_widget ( eve$$k_find_text ); eve$undefine_widget ( eve$$k_find_ok ); eve$undefine_widget ( eve$$k_find_cancel ); eve$undefine_widget ( eve$$k_find_help ); eve$undefine_widget ( eve$$k_find_selected ); eve$undefine_widget ( eve$$k_find_next ); eve$undefine_widget ( eve$$k_wildcard_find ); eve$undefine_widget ( eve$$k_wildcard_find_dialog ); eve$undefine_widget ( eve$$k_wildcard_find_label ); eve$undefine_widget ( eve$$k_wildcard_find_text ); eve$undefine_widget ( eve$$k_wildcard_find_label1 ); eve$undefine_widget ( eve$$k_wildcard_find_ok ); eve$undefine_widget ( eve$$k_wildcard_find_cancel ); eve$undefine_widget ( eve$$k_wildcard_find_help ); eve$undefine_widget ( eve$$k_show_wildcards ); eve$undefine_widget ( eve$$k_set_wildcard_vms ); eve$undefine_widget ( eve$$k_set_wildcard_ultrix ); ! EVE$DECWINDOWS.TPU Page 28 ! FORMAT eve$undefine_widget ( eve$$k_format_pulldown ); eve$undefine_widget ( eve$$k_case_pullright ); eve$undefine_widget ( eve$$k_set_margins ); eve$undefine_widget ( eve$$k_set_margins_dialog ); eve$undefine_widget ( eve$$k_set_margins_llabel ); eve$undefine_widget ( eve$$k_set_margins_rlabel ); eve$undefine_widget ( eve$$k_set_margins_l_text ); eve$undefine_widget ( eve$$k_set_margins_r_text ); eve$undefine_widget ( eve$$k_set_margins_ok ); eve$undefine_widget ( eve$$k_set_margins_apply ); eve$undefine_widget ( eve$$k_set_margins_cancel ); eve$undefine_widget ( eve$$k_set_margins_help ); eve$undefine_widget ( eve$$k_set_paragraf_indent ); eve$undefine_widget ( eve$$k_set_para_indent_dialog ); eve$undefine_widget ( eve$$k_set_para_indent_label ); eve$undefine_widget ( eve$$k_set_para_indent_text ); eve$undefine_widget ( eve$$k_set_para_indent_ok ); eve$undefine_widget ( eve$$k_set_para_indent_apply ); eve$undefine_widget ( eve$$k_set_para_indent_cancel ); eve$undefine_widget ( eve$$k_set_para_indent_help ); eve$undefine_widget ( eve$$k_paginate ); eve$undefine_widget ( eve$$k_lowercase_word ); eve$undefine_widget ( eve$$k_uppercase_word ); eve$undefine_widget ( eve$$k_capitalize_word ); eve$undefine_widget ( eve$$k_center_line ); eve$undefine_widget ( eve$$k_fill_range ); eve$undefine_widget ( eve$$k_fill_paragraph ); ! EVE$DECWINDOWS.TPU Page 29 ! DISPLAY eve$undefine_widget ( eve$$k_display_pulldown ); eve$undefine_widget ( eve$$k_set_width ); eve$undefine_widget ( eve$$k_set_width_dialog ); eve$undefine_widget ( eve$$k_set_width_label ); eve$undefine_widget ( eve$$k_set_width_text ); eve$undefine_widget ( eve$$k_set_width_ok ); eve$undefine_widget ( eve$$k_set_width_apply ); eve$undefine_widget ( eve$$k_set_width_cancel ); eve$undefine_widget ( eve$$k_set_width_help ); eve$undefine_widget ( eve$$k_show_buffers ); eve$undefine_widget ( eve$$k_delete_window ); eve$undefine_widget ( eve$$k_split_window ); eve$undefine_widget ( eve$$k_split_window_dialog ); eve$undefine_widget ( eve$$k_split_window_label ); eve$undefine_widget ( eve$$k_split_window_text ); eve$undefine_widget ( eve$$k_split_window_ok ); eve$undefine_widget ( eve$$k_split_window_apply ); eve$undefine_widget ( eve$$k_split_window_cancel ); eve$undefine_widget ( eve$$k_split_window_help ); eve$undefine_widget ( eve$$k_one_window ); eve$undefine_widget ( eve$$k_two_windows ); ! EVE$DECWINDOWS.TPU Page 30 ! CUSTOMIZE eve$undefine_widget ( eve$$k_customize_pulldown ); eve$undefine_widget ( eve$$k_extend_pullright ); eve$undefine_widget ( eve$$k_search_attr_pullright ); eve$undefine_widget ( eve$$k_set_find_whitespace ); eve$undefine_widget ( eve$$k_set_find_nowhitespace ); eve$undefine_widget ( eve$$k_buffer_attr ); eve$undefine_widget ( eve$$k_buffer_dialog ); eve$undefine_widget ( eve$$k_buffer_label ); eve$undefine_widget ( eve$$k_buf_left_margin_label ); eve$undefine_widget ( eve$$k_buf_right_margin_label ); eve$undefine_widget ( eve$$k_buf_left_margin_text ); eve$undefine_widget ( eve$$k_buf_right_margin_text ); eve$undefine_widget ( eve$$k_buffer_para_indent_label ); eve$undefine_widget ( eve$$k_buffer_para_indent_text ); eve$undefine_widget ( eve$$k_buffer_word_wrap ); eve$undefine_widget ( eve$$k_buffer_modifiable ); eve$undefine_widget ( eve$$k_buffer_readonly ); eve$undefine_widget ( eve$$k_buffer_set_tabs_at ); eve$undefine_widget ( eve$$k_buffer_set_tabs_every ); eve$undefine_widget ( eve$$k_buffer_set_tabs_text ); eve$undefine_widget ( eve$$k_buffer_apply ); eve$undefine_widget ( eve$$k_buffer_ok ); eve$undefine_widget ( eve$$k_buffer_cancel ); eve$undefine_widget ( eve$$k_buffer_help ); eve$undefine_widget ( eve$$k_global_attr ); eve$undefine_widget ( eve$$k_global_dialog ); eve$undefine_widget ( eve$$k_global_cursor ); eve$undefine_widget ( eve$$k_global_tabs ); eve$undefine_widget ( eve$$k_global_tab_mode ); eve$undefine_widget ( eve$$k_global_search ); eve$undefine_widget ( eve$$k_global_clipboard ); eve$undefine_widget ( eve$$k_global_pending_delete ); eve$undefine_widget ( eve$$k_global_box_select ); eve$undefine_widget ( eve$$k_global_box_pad ); eve$undefine_widget ( eve$$k_global_ok ); eve$undefine_widget ( eve$$k_global_cancel ); eve$undefine_widget ( eve$$k_global_help ); eve$undefine_widget ( eve$$k_cursor_label ); eve$undefine_widget ( eve$$k_tabs_label ); eve$undefine_widget ( eve$$k_tab_mode_label ); eve$undefine_widget ( eve$$k_search_label ); eve$undefine_widget ( eve$$k_free_cursor ); eve$undefine_widget ( eve$$k_bound_cursor ); eve$undefine_widget ( eve$$k_tab_spaces ); eve$undefine_widget ( eve$$k_tab_movement ); eve$undefine_widget ( eve$$k_tab_insert ); eve$undefine_widget ( eve$$k_set_keypad ); eve$undefine_widget ( eve$$k_set_interface ); !eve$undefine_widget ( "eve$$widget_at_eve_file", ! eve$$k_execute_eve_file, ! "@" ); !eve$undefine_widget ("eve$$widget_save_extended", ! eve$$k_save_extended_eve, ! "save_extended_eve"); !eve$undefine_widget ("eve_extend_all", ! eve$$k_extend_all, ! "extend_all"); !eve$undefine_widget ("eve_extend_this", ! eve$$k_extend_this, ! "extend_this"); !eve$undefine_widget ("eve$$widget_extend", ! eve$$k_extend_eve, ! "extend_eve"); eve$undefine_widget ( eve$$k_learn ); !eve$undefine_widget ("eve$$widget_attr", ! eve$$k_attr_dialog, ! "attributes_box"); !eve$undefine_widget ("eve$$widget_attr_ok (1)", ! eve$$k_attr_ok, ! "attributes_box"); !eve$undefine_widget ("eve$$widget_attr_ok (0)", ! eve$$k_attr_cancel, ! "attributes_box"); eve$undefine_widget ( eve$$k_save_attributes ); eve$undefine_widget ( eve$$k_save_sys_attributes ); eve$undefine_widget ( eve$$k_attr_section ); eve$undefine_widget ( eve$$k_attr_command ); eve$undefine_widget ( eve$$k_attr_dont_save ); eve$undefine_widget ( eve$$k_current_attr_list ); eve$undefine_widget ( eve$$k_attr_help ); ! EVE$DECWINDOWS.TPU Page 31 ! help eve$undefine_widget ( eve$$k_help_pulldown ); eve$undefine_widget ( eve$$k_help_on_context ); eve$undefine_widget ( eve$$k_help_new_user ); eve$undefine_widget ( eve$$k_help_topics ); eve$undefine_widget ( eve$$k_help_keypad ); eve$undefine_widget ( eve$$k_help_keys ); eve$undefine_widget ( eve$$k_help_menus ); eve$undefine_widget ( eve$$k_help_about ); ! EVE$DECWINDOWS.TPU Page 32 ! dialog boxes in lieu of eve$prompt_line eve$undefine_widget ( eve$$k_reallydelbuf_dialog ); eve$undefine_widget ( eve$$k_reallydelbuf_label ); eve$undefine_widget ( eve$$k_reallydelbuf_delete ); eve$undefine_widget ( eve$$k_reallydelbuf_write ); !eve$undefine_widget ("eve$unmanage_widget(eve$x_reallydelbuf_dialog)", ! eve$$k_reallydelbuf_quit, ! "reallydelbuf"); eve$undefine_widget ( eve$$k_writedelprompt_dialog ); eve$undefine_widget ( eve$$k_writedelprompt_label ); eve$undefine_widget ( eve$$k_writedelprompt_text ); !eve$undefine_widget ("eve$$widget_writedelprompt_ok", ! eve$$k_writedelprompt_ok, ! "writedelprompt"); eve$undefine_widget ( eve$$k_writedelprompt_cancel ); !eve$undefine_widget ("eve$$widget_reallyquit_dialog", ! eve$$k_reallyquit_dialog, ! "quit"); eve$undefine_widget ( eve$$k_writefileprompt_dialog ); eve$undefine_widget ( eve$$k_writefileprompt_label ); eve$undefine_widget ( eve$$k_writefileprompt_text ); eve$undefine_widget ( eve$$k_writefileprompt_ok ); eve$undefine_widget ( eve$$k_writefileprompt_help ); !eve$undefine_widget ("eve$$widget_writefileprompt_cancel", ! eve$$k_writefileprompt_cancel, ! "writefileprompt"); eve$undefine_widget ( eve$$k_needfilename_dialog ); eve$undefine_widget ( eve$$k_needfilename_label ); eve$undefine_widget ( eve$$k_needfilename_text ); eve$undefine_widget ( eve$$k_needfilename_ok ); eve$undefine_widget ( eve$$k_needfilename_cancel ); eve$undefine_widget ( eve$$k_needfilename_help ); eve$undefine_widget ( eve$$k_writebuf_dialog ); eve$undefine_widget ( eve$$k_writebuf_label ); !eve$undefine_widget ("eve$$widget_writebuf_yes", ! eve$$k_writebuf_ok, ! "exit"); !eve$undefine_widget ("eve$$widget_writebuf_no", ! eve$$k_writebuf_cancel, ! "exit"); eve$undefine_widget ( eve$$k_find_each_dialog ); eve$undefine_widget ( eve$$k_find_each_label ); eve$undefine_widget ( eve$$k_find_each_yes ); eve$undefine_widget ( eve$$k_find_each_cancel ); eve$undefine_widget ( eve$$k_extend_dialog ); eve$undefine_widget ( eve$$k_extend_label ); eve$undefine_widget ( eve$$k_extend_text ); eve$undefine_widget ( eve$$k_extend_ok ); eve$undefine_widget ( eve$$k_extend_apply ); eve$undefine_widget ( eve$$k_extend_cancel ); eve$undefine_widget ( eve$$k_extend_help ); eve$undefine_widget ( eve$$k_save_extended_dialog ); eve$undefine_widget ( eve$$k_save_extended_label ); eve$undefine_widget ( eve$$k_save_extended_text ); eve$undefine_widget ( eve$$k_save_extended_ok ); eve$undefine_widget ( eve$$k_save_extended_apply ); eve$undefine_widget ( eve$$k_save_extended_cancel ); eve$undefine_widget ( eve$$k_save_extended_help ); eve$undefine_widget ( eve$$k_at_eve_file_dialog ); eve$undefine_widget ( eve$$k_at_eve_file_label ); eve$undefine_widget ( eve$$k_at_eve_file_text ); eve$undefine_widget ( eve$$k_at_eve_file_ok ); eve$undefine_widget ( eve$$k_at_eve_file_apply ); eve$undefine_widget ( eve$$k_at_eve_file_cancel ); eve$undefine_widget ( eve$$k_at_eve_file_help ); eve$undefine_widget ( eve$$k_mark_dialog ); eve$undefine_widget ( eve$$k_mark_label ); eve$undefine_widget ( eve$$k_mark_text ); eve$undefine_widget ( eve$$k_mark_ok ); eve$undefine_widget ( eve$$k_mark_cancel ); eve$undefine_widget ( eve$$k_goto_dialog ); eve$undefine_widget ( eve$$k_goto_label ); eve$undefine_widget ( eve$$k_goto_text ); eve$undefine_widget ( eve$$k_goto_ok ); eve$undefine_widget ( eve$$k_goto_cancel ); eve$undefine_widget ( eve$$k_message_dialog ); eve$undefine_widget ( eve$$k_message_label1 ); eve$undefine_widget ( eve$$k_message_label2 ); !eve$undefine_widget ("eve$unmanage_widget(eve$x_message_dialog)", ! eve$$k_message_ok, ! "message_box"); eve$undefine_widget ( eve$$k_no_select_popup ); eve$undefine_widget ( eve$$k_select ); eve$undefine_widget ( eve$$k_goto ); eve$undefine_widget ( eve$$k_mark ); eve$undefine_widget ( eve$$k_select_popup ); eve$undefine_widget ( eve$$k_reset ); eve$undefine_widget ( eve$$k_show_buffers_popup ); eve$undefine_widget ( eve$$k_delete_buffer ); eve$undefine_widget ( eve$$k_write_then_delete ); eve$undefine_widget ( eve$$k_write_buffer ); eve$undefine_widget ( eve$$k_visit_buffer ); eve$undefine_widget ( eve$$k_help_dialog ); !eve$undefine_widget ("eve$$widget_extend_menu", ! eve$$k_extend_popup, ! "extend menu"); eve$undefine_widget ( eve$$k_extmenu_dialog ); eve$undefine_widget ( eve$$k_extmenu_popup_label ); !eve$undefine_widget ("eve$$widget_extmenu_list_popups", ! eve$$k_extmenu_list_popups, ! "available menus"); eve$undefine_widget ( eve$$k_extmenu_list_cmd_label ); !eve$undefine_widget ("eve$$widget_extmenu_list_commands", ! eve$$k_extmenu_list_commands, ! "available entries"); eve$undefine_widget ( eve$$k_extmenu_user_hint_label1 ); eve$undefine_widget ( eve$$k_extmenu_user_hint_label2 ); eve$undefine_widget ( eve$$k_extmenu_user_hint_label3 ); eve$undefine_widget ( eve$$k_extmenu_user_hint_label4 ); eve$undefine_widget ( eve$$k_extmenu_command_label ); eve$undefine_widget ( eve$$k_extmenu_command_text ); eve$undefine_widget ( eve$$k_extmenu_label_label ); eve$undefine_widget ( eve$$k_extmenu_label_text ); eve$undefine_widget ( eve$$k_extmenu_contents_label ); eve$undefine_widget ( eve$$k_extmenu_list_contents ); eve$undefine_widget ( eve$$k_extmenu_separator ); !eve$undefine_widget ("eve$$widget_extmenu_enter", ! eve$$k_extmenu_enter, ! "available entries"); !eve$undefine_widget ("eve$$widget_extmenu_delete", ! eve$$k_extmenu_delete, ! "available entries"); !eve$undefine_widget ("eve$$widget_extmenu_add", ! eve$$k_extmenu_add, ! "entries menus"); !eve$undefine_widget ("eve$$widget_extmenu_remove", ! eve$$k_extmenu_remove, ! "entries menus"); !eve$undefine_widget ("eve$unmanage_widget(eve$x_extend_menu_dialog);", ! eve$$k_extmenu_dismiss, ! "extend menu");