home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a067 / 1.img / GRUMP501.EXE / GKSTEP.PRG < prev    next >
Encoding:
Text File  |  1991-07-17  |  2.2 KB  |  94 lines

  1. /*
  2.     Function: GKeyStep()
  3.     Purpose:  Alternate for GetApplyKey() for step entry (dates and numerics)
  4.     Author:   Greg Lief
  5.     Copyright (c) 1991 Greg Lief
  6.     Dialect:  Clipper 5.01
  7. */
  8.  
  9. #include "inkey.ch"
  10. #include "getexit.ch"
  11.  
  12. procedure gkeystep(get, key)
  13. local cKey
  14. local oldvalue
  15.  
  16. //───── check for SET KEY and basic movement keys
  17. if ! GKeyBasic(get, key)
  18.    do case
  19.  
  20.       case (key == K_INS)
  21.          Set( _SET_INSERT, ! Set(_SET_INSERT) )
  22.          setcursor( if(set(_SET_INSERT), 3, 1) )
  23.  
  24.       case (key == K_CTRL_U)
  25.          get:Undo()
  26.  
  27.       case (key == K_HOME)
  28.          get:Home()
  29.  
  30.       case (key == K_END)
  31.          get:End()
  32.  
  33.       case (key == K_RIGHT)
  34.          get:Right()
  35.  
  36.       case (key == K_LEFT)
  37.          get:Left()
  38.  
  39.       case (key == K_CTRL_RIGHT)
  40.          get:WordRight()
  41.  
  42.       case (key == K_CTRL_LEFT)
  43.          get:WordLeft()
  44.  
  45.       case (key == K_BS)
  46.          get:BackSpace()
  47.  
  48.       case (key == K_DEL)
  49.          get:Delete()
  50.  
  51.       case (key == K_CTRL_T)
  52.          get:DelWordRight()
  53.  
  54.       case (key == K_CTRL_Y)
  55.          get:DelEnd()
  56.  
  57.       case (key == K_CTRL_BS)
  58.          get:DelWordLeft()
  59.  
  60.       otherwise
  61.  
  62.          if (key >= 32 .and. key <= 255)
  63.             cKey := chr(key)
  64.             //───── test for step entry on numerics and dates
  65.             if cKey $ '-+' .and. get:type $ "ND"
  66.                oldvalue := get:varGet()
  67.                get:changed := .t.
  68.                if cKey == "-"
  69.                   get:varPut(get:varGet() - 1)
  70.                else
  71.                   get:varPut(get:varGet() + 1)
  72.                endif
  73.                if get:postBlock != NIL .and. ! eval(get:postBlock, get)
  74.                   get:varPut(oldvalue)
  75.                endif
  76.                get:updateBuffer()
  77.             else
  78.                if ( Set(_SET_INSERT) )
  79.                   get:Insert(cKey)
  80.                else
  81.                   get:Overstrike(cKey)
  82.                endif
  83.                if (get:typeOut .and. !Set(_SET_CONFIRM) )
  84.                   if ( Set(_SET_BELL) )
  85.                      ?? Chr(7)
  86.                   endif
  87.                   get:exitState := GE_ENTER
  88.                endif
  89.             endif
  90.          endif
  91.    endcase
  92. endif
  93. return
  94.