!Last Modified: 14-JUN-1989 09:45:56.01, By: FLEMING procedure eveplus_define_keys_module_ident return "V50.001"; endprocedure; procedure eveplus_define_keys_module_init eve$x_map_locked := 0; white_map := "WHITE_MAP"; yellow_map := "YELLOW_MAP"; red_map := "RED_MAP"; blue_map := "BLUE_MAP"; eveplus_define_keys; eve_toggle_white_map; endprocedure; ! are we using a keypad key procedure eve_keypad_check(number) if ((number = PF2) or (number = PF3) or(number = PF4) or (number = KP0) or (number = KP1) or(number = KP2) or (number = KP3) or (number = KP4) or(number = KP5) or (number = KP6) or (number = KP7) or(number = KP8) or (number = KP9) or (number = ENTER) or(number = MINUS) or (number = COMMA) or (number = PERIOD)) then return(1); else return(0); endif; endprocedure procedure eve_create_maps white_map := create_key_map("white_map"); blue_map := create_key_map("blue_map"); red_map := create_key_map("red_map"); yellow_map := create_key_map("yellow_map"); endprocedure !Last Modified: 17-JUN-1988 09:50:50.07, By: FLEMING procedure eve_set_defined_shift local this_map,flagname,buffer_name; ! this_map := " "; buffer_name := " "; flagname := " "; flagname := get_info(current_buffer,"key_map_list"); buffer_name := get_info(current_buffer,"name"); this_map := get_info(key_map,"first",flagname); if (this_map = "WHITE_MAP") then remove_key_map(flagname,this_map,ALL); add_key_map(flagname,"first","yellow_map"); else if (this_map = "YELLOW_MAP") then remove_key_map(flagname,this_map,ALL); add_key_map(flagname,"first","red_map"); else if (this_map = "RED_MAP") then remove_key_map(flagname,this_map,ALL); add_key_map(flagname,"first","blue_map"); else if (this_map = "BLUE_MAP") then remove_key_map(flagname,this_map,ALL); add_key_map(flagname,"first","white_map"); else ! not one of the correct maps at the top of the list eve_toggle_white_map; endif; endif; endif; endif; eve$update_status_lines; endprocedure procedure eve_toggle_white_map local this_map,flagname,buffer_name; ! buffer_name := " "; ! if locked don't toggle if (eve$x_map_locked) then message("Map locked"); return; endif; flagname := get_info(current_buffer,"key_map_list"); buffer_name := get_info(current_buffer,"name"); if flagname <> "TPU$KEY_MAP_LIST" then eve$update_status_lines; ! update it the first time endif; ! loop through this, since may have more than one of these added ! maps in the key_map list... loop; this_map := " "; this_map := get_info(key_map,"first",flagname); if ((this_map = "WHITE_MAP") or (this_map = "YELLOW_MAP") or (this_map = "RED_MAP") or (this_map = "BLUE_MAP")) then remove_key_map(flagname,this_map,ALL); else !not one of the correct maps at the top of the list exitif 1; !exit the loop endif; endloop; add_key_map(flagname,"first","white_map"); eve$update_status_lines; endprocedure ! procedure to toggle between movement and other tab modes procedure rtp$toggle_tab_mode case eve$x_tab_mode [2] : eve$x_tab_mode := 0; !return to insert mode [OUTRANGE] : eve$x_tab_mode := 2; !else assume movement mode endcase; endprocedure; procedure eveplus_define_keys local check_map; eve$x_bound_cursor := TRUE; ! bind the cursor to text check_map := get_info(key_map,"first","tpu$key_map_list"); if (check_map <> "WHITE_MAP") and (check_map <> "YELLOW_MAP") and (check_map <> "RED_MAP") and (check_map <> "BLUE_MAP") then set (shift_key,key_name(pf1,shift_key),"tpu$key_map_list"); eve_create_maps; add_key_map("tpu$key_map_list","first",white_map); else return; endif; ! Keypad shift key needs to be below keymaps...duplicate on all other keymaps ! just to be safe... define_key("eve_set_defined_shift",pf1,"Keymap", "eve$user_keys"); define_key("eve_set_defined_shift",pf1,"Keymap","white_map"); define_key("eve_set_defined_shift",pf1,"Keymap","yellow_map"); define_key("eve_set_defined_shift",pf1,"Keymap","red_map"); define_key("eve_set_defined_shift",pf1,"Keymap","blue_map"); ! White Keypad define_key("eve_help('keypad')",pf2,"EVE_WHITE_YELLOW", white_map); define_key("eve_find('')",pf3,"find",white_map); define_key("eve$edt_delete_line",key_name(pf4), "Erase_line",white_map); define_key("eve_page",kp7,"page",white_map); define_key("eveplus_section",kp8,"Section",white_map); define_key("eve_spawn",kp9,"Spawn",white_map); define_key("eve$edt_delete_word",key_name(minus),"Erase_word", white_map); define_key("eve_forward",kp4,"forward",white_map); define_key("eve_reverse",kp5,"reverse",white_map); define_key("eve_remove",kp6,"cut_select",white_map); define_key("eve$edt_delete_char",key_name(comma), "Erase_character",white_map); define_key("eve_move_by_word",key_name(kp1), "move_by_word",white_map); define_key("eve_other_window;eve_toggle_white_map",kp3,"Other_Window", white_map); define_key("eve_end_of_line",kp2,"EOL",white_map); define_key("eve_next_line",kp0,"Next_line",white_map); define_key("eve_select",period,"select",white_map); define_key("eve_buffer(eve$x_null)",key_name(enter), "Buffer",white_map); !!!!!! ! Yellow Keypad define_key("eve_help('keypad');eve_toggle_white_map",pf2, "EVE_YELLOW_RED",yellow_map); define_key("eve_user_define_key;eve_toggle_white_map",pf3, "define_key",yellow_map); define_key("eve_restore_line;eve_toggle_white_map",pf4, "Restore line ",yellow_map); define_key("eve_toggle_white_map;eve_do('')",kp7,"do", yellow_map); define_key("eve_fill_paragraph;eve_toggle_white_map",kp8, "Fill_paragraph",yellow_map); define_key("eve_spawn_mail;eve_toggle_white_map",kp9, "Spawn_mail",yellow_map); define_key("eve_restore_word;eve_toggle_white_map", minus,"Restore_word",yellow_map); define_key("eve_bottom;eve_toggle_white_map",kp4,"Bottom", yellow_map); define_key("eve_top;eve_toggle_white_map",kp5,"Top", yellow_map); define_key("eve_insert_here;eve_toggle_white_map",kp6, "paste_select",yellow_map); define_key("eve_restore_character;eve_toggle_white_map",comma, "Restore_character",yellow_map); define_key("eve_delete_to_eol;eve_toggle_white_map",kp2, "Delete_to_EOL",yellow_map); define_key("eve_change_case;eve_toggle_white_map",kp1, "Change_case",yellow_map); define_key( "eve_toggle_number_of_windows;eve_toggle_white_map",kp3, "Two_windows",yellow_map); define_key("eve_line('');eve_toggle_white_map",kp0, "line_number",yellow_map); define_key("eve_pscreen;eve_toggle_white_map",period, "Print_Current_Buffer",yellow_map); define_key("eveplus_write_file;eve_toggle_white_map",enter, "Write_file",yellow_map); !!!!!!!!!!!!!!!! Red Keypad define_key("eve_help('keypad');eve_toggle_white_map",pf2, "EVE_RED_BLUE",red_map); define_key("eve_mark('');eve_toggle_white_map",pf3,"Mark", red_map); define_key("eve_number_lines;eve_toggle_white_map",pf4, "Number_lines",red_map); define_key("eve_extend_tpu('');eve_toggle_white_map",kp7, "Extend TPU",red_map); define_key("eve_list_commands;eve_toggle_white_map",kp8, "List_commands",red_map); define_key("eve_dcl('');eve_toggle_white_map",kp9,"DCL", red_map); define_key("eve_journal_close;eve_toggle_white_map",minus, "Close_journal",red_map); define_key("eve_enlarge_window(-1);eve_toggle_white_map",kp4, "Shrink_screen",red_map); define_key("eve_enlarge_window(1);eve_toggle_white_map",kp5, "Grow_screen",red_map); define_key("eve_rectangular_remove;eve_toggle_white_map", kp6, "Cut_Rectangle",red_map); define_key("eve_controls;eve_toggle_white_map",comma, "Translate_ascii",red_map); define_key("eve_replace('','');eve_toggle_white_map",kp1, "Replace",red_map); define_key("eag_get_file;eve_toggle_white_map", kp2, "Get_file",red_map ); define_key("eve_split_window;eve_toggle_white_map", kp3, "Split_screen",red_map ); define_key("eve$trim_line;eve_toggle_white_map",kp0, "Trim_line",red_map); define_key("eve_rectangular_select;eve_toggle_white_map", period,"Select_Rectangle",red_map); define_key("eve_include_buffer_file;eve_toggle_white_map", enter,"Include_Buffer_file",red_map); !!!!!!!!!!!!!!!! Blue Keypad define_key("eve_help('keypad');eve_toggle_white_map",pf2, "EVE_BLUE_WHITE",blue_map); define_key("eve_go_to(eve$x_null);eve_toggle_white_map",pf3, "Goto_Mark",blue_map); define_key("eve_unumber_lines;eve_toggle_white_map",pf4, "Un_number_lines",blue_map); define_key("eve_save_extended_tpu('');eve_toggle_white_map", kp7,"Save TPU",blue_map); define_key("eve_list_all_buffers;eve_toggle_white_map",kp8, "List_buffers",blue_map); define_key("eve_set_journal;eve_toggle_white_map",kp9, "Set_journal",blue_map); define_key("eve_open_journal;eve_toggle_white_map",minus, "Open_journal",blue_map); define_key("eveplus_set_left_margin;eve_toggle_white_map",kp4, "set_left_margin",blue_map); define_key("eveplus_set_right_margin;eve_toggle_white_map",kp5, "set_right_margin",blue_map); define_key("eve_rectangular_insert_here;eve_toggle_white_map", kp6,"Paste_Rectangle",blue_map); define_key("eve_display_character;eve_toggle_white_map",comma, "Display_Ascii_Character",blue_map); define_key("eve_set_width('');eve_toggle_white_map",kp3, "Set_width",blue_map); define_key("eve_center_line;eve_toggle_white_map",kp2, "Center_line",blue_map); define_key("eve_draw_box;eve_toggle_white_map", kp1, "Draw_a_Box",blue_map); define_key("eve_trim_buffer;eve_toggle_white_map",kp0, "Trim_buffer",blue_map); define_key("eve_ascii;eve_toggle_white_map",period, "Insert_Ascii_Character",blue_map); define_key("eve_destroy_buffer('');eve_toggle_white_map",enter, "Destroy_current_buffer",blue_map); !!!!!!!!!!!!!!!!!!! VT200 center keypad keys !!!!!!!!!!!!!!!!!!!!!!!!! define_key("eve_find ('')", e1, " find", eve$x_standard_keys); define_key("eve_insert_here", e2, " insert_here", eve$x_standard_keys); define_key("eve_remove", e3, " remove", eve$x_standard_keys); define_key("eve_select", e4, " select", eve$x_standard_keys); define_key("eve_previous_screen", e5, " previous_screen", eve$x_standard_keys); define_key("eve_next_screen", e6, " next_screen", eve$x_standard_keys); !!!!!!!!!!!!!!!!!!!!! VT200 function keys !!!!!!!!!!!!!!!!!!!!!!!!!! define_key("eve_spawn_mail;eve_toggle_white_map",f8, "Spawn_mail",yellow_map); define_key("eve_spawn",f8,"Spawn",white_map); define_key("eve_dcl('')",F8,"Spawn DCL","red_map"); define_key("eve_lse;eve_toggle_white_map",F9,"Eve_lse", "white_map"); define_key("eve_spell;eve_toggle_white_map",F9,"Eve_spell", "yellow_map"); define_key("eve_fix_crlfs",F9,"Fix_crlfs","red_map"); define_key("eve_describe_key",f10,"Describe_key", eve$x_numeric_keys); define_key("eve_change_direction", f11, " change_direction", eve$x_numeric_keys); define_key("eve_move_by_line", f12, " move_by_line", eve$x_numeric_keys); define_key("eve_erase_previous_word",f13,"Erase Previous Word", eve$x_numeric_keys); define_key("eve_change_mode", f14, " change_mode", eve$x_numeric_keys); define_key("eve_help ('keypad')", help, " help", eve$x_numeric_keys); define_key("eve_do ('')", do, " do", eve$x_numeric_keys); define_key("eve_copy_buffer;eve_toggle_white_map",f17, "Copy_buffer","white_map"); define_key("rtp$erase_current_buffer;eve_toggle_white_map",f17, "Erase_buffer","yellow_map"); define_key("eve$next_buffer;eve_toggle_white_map",f17, "Next_buffer","red_map"); define_key("eve_move_column;eve_toggle_white_map",f18, "Move_column","white_map"); define_key("eve_rectangular_pad;eve_toggle_white_map",f18, "Rectangular_pad","yellow_map"); define_key("eve_pscreen;eve_toggle_white_map",f18, "Print_screen","red_map"); define_key("eve_ruler;eve_toggle_white_map",f19,"Ruler", "white_map"); define_key("rtp$unmap_window;eve_toggle_white_map",f19,"Unmap_window", "white_map"); define_key("eve_toggle_number_of_windows",f20,"Two_windows", eve$x_numeric_keys); !!!!!!!!!!!!!!!!!!!!!! MAIN KEYBOARD !!!!!!!!!!!!!!!!!!!!!! define_key("eve_quit",ctrl_a_key,"Quit TPU", eve$x_standard_keys); define_key("eve_change_mode",ctrl_v_key,"Change_mode", "eve$user_keys"); define_key("eve_change_direction",ctrl_f_key, "Change_Direction","eve$user_keys"); define_key("eve_what_line",ctrl_l_key,"What_line", "eve$user_keys"); define_key("eve_lock_map",US_KEY,"Lock_map", "eve$user_keys"); define_key("eve_exit", ctrl_z_key, " exit", eve$x_standard_keys); define_key("rtp$toggle_tab_mode",NULL_KEY,"Toggle tab movement", "eve$user_keys"); define_key("eve$rtp_interactive_get_file('')",ctrl_d_key,"Interact_getfile", "eve$user_keys"); endprocedure eveplus_define_keys_module_init;