home *** CD-ROM | disk | FTP | other *** search
/ C!T ROM 2 / ctrom_ii_b.zip / ctrom_ii_b / PROGRAM / FOXPRO / VEDIT060 / SOURCE / KEYBOARD.PRG < prev    next >
Text File  |  1992-04-01  |  6KB  |  168 lines

  1. #INCLUDE KEYS.HDR
  2. #INCLUDE vlist.hdr
  3. #INCLUDE vmouse.hdr
  4. #INCLUDE vedit.hdr
  5. #INCLUDE STRING.HDR
  6.  
  7. FUNCTION INT VEdit_Key_Handler
  8.   PARAMETERS VALUE LONG    list_handle,;
  9.                    UINT    list_element,;
  10.                    UINT    list_column,;
  11.                    UINT    mouse_stat,;
  12.              VALUE UINT    mrow,;
  13.              VALUE UINT    mcol,;
  14.                     INT    pick_key,;
  15.                    UINT    top_element,;
  16.              VALUE UINT    last_element,;
  17.                    UINT    ur,;
  18.                    UINT    uc,;
  19.                    UINT    lr,;
  20.                    UINT    lc,;
  21.                    UINT    stat_row,;
  22.                    UINT    stat_col,;
  23.              VALUE LOGICAL display_only,;
  24.                    LOGICAL refresh
  25.  
  26.   VARDEF
  27.     INT  list_return
  28.   ENDDEF
  29.  
  30.   list_return = &jl_continue
  31.  
  32.   DO CASE
  33.     CASE mouse_stat = &jl_mouse_ignore
  34.     CASE mouse_stat = &jl_mouse_right    && right button pressed
  35.       list_return = &jl_ignore
  36.     CASE mouse_stat = &jl_mouse_xright   && right button released
  37.       IF mrow = stat_col .AND.;
  38.          (mcol>=(stat_col+30)) .and. (mcol<=(stat_col+34))
  39.          pick_key = 32846
  40.       ELSE
  41.         list_return = &jl_save_exit
  42.       ENDIF
  43.  
  44.  
  45.     CASE mouse_stat = &jl_mouse_up       && left button + top scroll-bar tab
  46.       pick_key = &k_up
  47.     CASE mouse_stat = &jl_mouse_xup      && left button release "     "
  48.       list_return = &jl_ignore
  49.     CASE mouse_stat = &jl_mouse_down     && left button + bottom scroll tab
  50.       pick_key = &k_down
  51.     CASE mouse_stat = &jl_mouse_xdown    && left button release "     "
  52.       list_return = &jl_ignore
  53.     CASE mouse_stat = &jl_mouse_xscroll
  54.       list_return = &jl_ignore
  55.     CASE mouse_stat = &jl_mouse_scroll
  56.     *- the values of 'pick_key' are set based upon the position of the
  57.       *  mouse cursor relative to the scroll bar marker.
  58.       *
  59.       DO CASE
  60.         CASE pick_key = &k_pg_down     && mouse below current position
  61.           pick_key = &k_pg_down
  62.         CASE pick_key = &k_pg_up       && mouse above current position
  63.           pick_key = &k_pg_up
  64.         CASE pick_key = &k_c_pg_down   && mouse at bottom ░ on scroll bar
  65.           pick_key = &k_pg_down
  66.         CASE pick_key = &k_c_pg_up     && mouse at top ░ on scroll bar
  67.           pick_key = &k_pg_up
  68.       ENDCASE
  69.  
  70.     CASE mouse_stat = &jl_mouse_xnew   && left released + mouse on new
  71.       list_return = &jl_goto_mouse
  72.     CASE mouse_stat = &jl_mouse_new    && left + mouse on new element
  73.       list_return = &jl_ignore
  74.  
  75.     CASE mouse_stat = &jl_mouse_select  && left + mouse on current element
  76.       list_return = &jl_ignore
  77.     CASE mouse_stat = &jl_mouse_xselect && left released + mouse on current
  78.       list_return = &jl_goto_mouse
  79.  
  80.     CASE mouse_stat = &jl_mouse_left    && left + mouse outside of pick area
  81.       list_return = &jl_continue
  82.       IF mrow=ur-1
  83.         pick_key = &k_up
  84.       ELSE
  85.         IF mrow=lr+1
  86.           pick_key = &k_down
  87.         ELSE
  88.           list_return = &jl_ignore
  89.         ENDIF
  90.  
  91.       ENDIF
  92.  
  93.     CASE mouse_stat = &jl_mouse_xleft   && left released + "         "
  94.       IF mrow = stat_row .AND.;
  95.                ( mcol >= ( stat_col + 30 ) ) .AND. ( mcol <= ( stat_col + 34 ) )
  96.         pick_key = 32842 && ALT- delete line from scrap
  97.       ELSE
  98.         list_return = &jl_ignore
  99.       ENDIF
  100.     CASE mouse_stat = &jl_mouse_both    && left & right button hit
  101.       list_return = &jl_ignore
  102.   ENDCASE
  103.  
  104.   DO CASE
  105.     CASE pick_key = &k_esc
  106.       list_return = &jl_ignore
  107.     CASE pick_key = &k_alt_x   && exit
  108.       list_return = &jl_save_exit
  109.     CASE pick_key = &k_alt_w   && save
  110.       list_return = &jl_save_continue
  111.     CASE pick_key = &k_alt_s   && save as new filename
  112.       list_return = &jl_save_as_new
  113.     CASE pick_key = &k_alt_n   && save and rename
  114.       list_return = &jl_save_rename
  115.     CASE pick_key = 18         && read scrap ctrl-r
  116.       list_return = &jl_read_scrap
  117.     CASE pick_key = 23         && write scrap ctrl-w
  118.       list_return = &jl_save_scrap
  119.     CASE pick_key = 25 .OR.;   && ctrl-y
  120.                pick_key = &k_alt_d
  121.       list_return = &jl_delete_line
  122.     CASE pick_key = &k_alt_u
  123.       list_return = &jl_undelete_line
  124.     CASE pick_key = 32842  .OR.;
  125.       pick_key = 32898          && ALT- delete line to scrap
  126.       list_return = &jl_delete_to_scrap
  127.  
  128.     CASE pick_key = 32846  .OR.;
  129.       pick_key = 32899          && ALT+ insert last line from scrap
  130.       list_return = &jl_copy_bottom_scrap
  131.  
  132.     CASE pick_key = 32823  .OR.;
  133.       pick_key = 32895          && ALT* insert all of scrap
  134.       list_return = &jl_copy_all_scrap
  135.  
  136.     CASE pick_key = 32932  .OR.;
  137.       pick_key = 32821          && ALT/ insert all of scrap and delete scrap
  138.       list_return = &jl_copy_all_scrap_delete
  139.  
  140.     CASE pick_key = 32931  && ALT-DEL clear scrap
  141.       list_return = &jl_delete_scrap
  142.     CASE pick_key = &k_alt_t   && ALT-T toggle word wrap
  143.       list_return = &jl_toggle_wrap
  144.     CASE pick_key = &k_down .AND. display_only
  145.       pick_key = 32913   &&  k_c_down
  146.     CASE pick_key = &k_up .AND. display_only
  147.       pick_key = 32909   &&  k_c_up
  148.   ENDCASE
  149.  
  150.   **** NOTE!!
  151.   *
  152.   *  If you change any of the following, then set REFRESH=.T.
  153.   *
  154.   *    list_element
  155.   *    list_column
  156.   *    top_element
  157.   *    ur
  158.   *    uc
  159.   *    lr
  160.   *    lc
  161.   *    stat_row
  162.   *    stat_col
  163.   *
  164.   ****
  165.  
  166.   RETURN list_return
  167. ENDPRO
  168.