home *** CD-ROM | disk | FTP | other *** search
- **********************
-
- FUNCTION Keystroke
-
- PARAMETERS _mode, _line, _col
-
- PRIVATE _key, _cliphelp, _merge, _read, _byts, _bff
- PRIVATE _back, _search, _l2go, _c2go
- PRIVATE _posit, _color, _tut, _ncolor
- PRIVATE _pmt, _header
-
- PUBLIC _fhandle, _times
-
- _key = LASTKEY()
-
- IF TYPE("_cliphelp") = "U" && For the Word-processor
- _cliphelp = ""
- ENDIF
- IF TYPE("_merge") = "U"
- _merge = .F.
- ENDIF
-
- _addstr = ""
-
- IF _key = 96
- _addstr = CHR(13) + CHR(10)
- Readit()
- RETURN(1)
- ENDIF
-
- DO CASE
- CASE _mode = 0
- IF _col = 0 && Clear the line and column message areas
- @ 22,07 SAY " "
- @ 22,25 SAY " "
- @ 22,50 SAY " "
- ENDIF
- @ 22, 7 SAY TRANSFORM(_line, "@B")
- @ 22,25 SAY TRANSFORM(_col, "@B")
- IF TYPE("document") <> "U"
- @ 22,50 SAY LTRIM(TRIM(STR(LEN(document))))
- ENDIF
- IF _key = 23 .OR. _key = 273 && the saving keys
- @ 22,00 CLEAR
- @ 22,00 SAY "Saving File...."
- INKEY(1)
- RID(22,00, "Saving file....")
- SET_WORD()
- RETURN(23)
- ELSE
- RETURN(0)
- ENDIF
- CASE _mode = 3
- IF _key = 23 .OR. _key = 273 .OR. _key = 27
- RETURN(0)
- ELSE
- SET_WORD()
- RETURN(32)
- ENDIF
- OTHERWISE
- DO CASE
- CASE _key = 7
- RETURN(7)
- CASE _key = 23 .OR. _key = 273 .OR. _key = -9 && the saving keys
- @ 22,00 CLEAR
- @ 22,00 SAY "Saving File...."
- INKEY(1)
- RID(22,00, "Saving file....")
- SET_WORD()
- KEYBOARD "S"+CHR(5)+CHR(5)
- RETURN(23)
- CASE _key = 22 && the insert key
- INSERT_TOG(22,65)
- CASE _key = 300
- IF MEMORY(0) > 40
- _ccolor = IF(TYPE("word_color") = "U", SETCOLOR(), word_color)
- SETCOLOR("")
- Pushscreen()
- @ 0,0 CLEAR
- @ 1,0 SAY "Enter 'EXIT' to Return to Program Control...."
- RUN Command
- Popscreen()
- SETCOLOR(_ccolor)
- ENDIF
-
- CASE _key = 20
- RETURN(20)
-
- CASE _key = 2
- RETURN(2)
-
- CASE _key = 27 .OR. _key = 301 && the escape key
- DO CASE
- CASE _mode = 2
- dbrief_stat = 1
- @ 22,00 CLEAR
- @ 22,00 SAY "Buffer has not been saved! Exit? [ynw] "
- DO WHILE DBRIEF(@dbrief_stat)
- ENDDO
- RID(22,00, "Buffer has not been saved! Exit? [ynw] ")
- SET_WORD()
- DO CASE
- CASE dbrief_stat = 1 && Exit Anyway
- RETURN(27)
- CASE dbrief_stat = 2 && No Exit
- RETURN(32)
- OTHERWISE
- KEYBOARD CHR(27)
- RETURN(23)
- ENDCASE
- CASE _mode = 1
- @ 22,00 CLEAR
- @ 22,00 SAY "Are you sure you want to exit? [yn] "
- IF Prompt()
- Rid(22,00, "Are you sure you want to exit? [yn] ")
- SET_WORD()
- RETURN(27)
- ELSE
- Rid(22,00, "Are you sure you want to exit? [yn] ")
- SET_WORD()
- RETURN(32)
- ENDIF
- ENDCASE
- CASE _key = 291 .OR. _key = 28 && Alt-H Keystroke
- _cccolor = SETCOLOR()
- _ncolor = REVERSE(_cccolor)
- SETCOLOR(_ncolor)
- Wpush(2,5,17,75,3,.T.)
- WSAYGET( 1, 3, " ESC => Exits ║ ALT E => Search/Replace")
- WSAYGET( 2, 3, " F1 => This Screen ║ ALT Y => Delete Line")
- WSAYGET( 3, 3, " F2 => Show Macros ║ ALT Z => DOS Gateway")
- WSAYGET( 4, 3, " F5 => Show Fields ║ ALT P => Procedure Header")
- WSAYGET( 5, 3, " F10 => Saves File ║ ALT U => Function Header")
- WSAYGET( 6, 3, "ALT H => This Screen ║ Home => Beginning of Line")
- WSAYGET( 7, 3, "ALT M => Set Macro Keys ║ End => End of Line")
- WSAYGET( 8, 3, "ALT R => Read in Another File ║ Ctrl PgUp => Top of File")
- WSAYGET( 9, 3, "ALT S => Search for String ║ Ctrl PgDn => End of File")
- WSAYGET(10, 3, "ALT W => Saves File ║ Ctrl RArrow => Right One Word")
- WSAYGET(11, 3, "ALT X => Exits ║ Ctrl LArrow => Left One Word")
- WSAYGET(12, 3, "ALT F => File Header ║ Ctrl B => Reform Paragraph")
- @ 16,RIGHT_JUST("Press Any Key to Return to Edit", 75) SAY "Press Any Key to Return to Edit"
- INKEY(0)
- Wpop()
- SETCOLOR(_cccolor)
- RETURN(32)
- CASE _key = 25 .OR. _key = 277
- RETURN(25)
- CASE _key = 281
- KEYBOARD CHR(31) + " *******************" + CHR(13) + CHR(10) + CHR(13) + CHR(10) + " PROCEDURE"
-
- CASE _key = 278
- KEYBOARD CHR(31) + " *******************" + CHR(13) + CHR(10) + CHR(13) + CHR(10) + " FUNCTION"
-
- CASE _key = 289
- _header = CHR(31) + "********************" + CHR(13) + CHR(10) + "* Name " + CHR(13) + CHR(10) + "** Author " + CHR(13) + CHR(10)
- _header = _header + "** Notice " + "Copyright (c) " + STR(YEAR(DATE())) + CHR(13) + CHR(10) + "** Date " + DTOC(DATE()) + CHR(13) + CHR(10)
- _header = _header + "** Compile " + "Clipper " + CHR(13) + CHR(10) + "** Link " + "Tlink ,,,extend + clipper,," + CHR(59) + CHR(13) + CHR(10)
- _header = _header + "** Note " + CHR(13) + CHR(10) + "** " + CHR(13) + CHR(10) + "** " + CHR(13) + CHR(10)
- _header = _header + "********************" + CHR(13) + CHR(10)
- SET TYPEAHEAD TO LEN(_header)
- KEYBOARD _header
-
- CASE _key = 276 .AND. !EMPTY(_cliphelp)
- _color = SETCOLOR()
- _ncolor = REVERSE(_color)
- WINDOWPUSH(2,5,20,75,"","","","","","",.T.)
- _pmt = LTRIM(TRIM(STR(SHOWPROMPT(word_pmts))))
- SETCOLOR(_ncolor)
- IF VAL(_pmt) <> 0
- IF FILE(_cliphelp + _pmt + ".DIC")
- DECLARE _tut[DEC_ARRAY(_cliphelp + _pmt + ".DIC")]
- IF RESTARRAY(_cliphelp + _pmt + ".DIC", _tut)
- APOP(2,5,18,70,_tut,.F.," " + LTRIM(TRIM(word_pmts[VAL(_pmt)])) + " " )
- ENDIF
- ENDIF
- ENDIF
- WINDOWPOP()
- SETCOLOR(_color)
- RETURN(32)
- CASE _key = 2 && Reformat the screen
- RETURN(100)
-
- CASE _key = 287 && Search for text
- _search = SPACE(125)
- PUSHSCREEN(22,00,24,60)
- @ 22,00 CLEAR
- @ 23,02 SAY "Search for = " GET _search PICT "@X@S20"
- READ
- @ 23,00 CLEAR
- @ 23,01 SAY "Searching..."
- IF TYPE("document") <> "U"
- _posit = AT(LTRIM(TRIM(_search)), document )
- IF _posit = 0
- @ 23,01 SAY "Text String NOT found!!!"
- INKEY(1)
- ELSE
- _theinsert = READINSERT()
- IF READINSERT()
- READINSERT(.F.)
- ENDIF
- SET TYPEAHEAD TO 16000
- @ 23,01 SAY "Text String Found!"
- _l2go = OCCURENCE(CHR(10), SUBSTR(document, 1, _posit))
- _c2go = lEN(OCCUR_AT( CHR(10), SUBSTR(document, 1, _posit), _l2go))-2
- _c2go = LEN( OCCUR_AT( CHR(10), SUBSTR(document, 1, _posit), _l2go))-2
- IF _c2go > right_mar && this is an adjustment
- _c2go = 0
- ENDIF
- KEYBOARD CHR(1) + REPLICATE(CHR(24), _l2go) + REPLICATE(CHR(4), _c2go)
- @ 22,00 CLEAR
- READINSERT(_theinsert)
- ENDIF
- ENDIF
- POPSCREEN(22,00,24,60)
- SET_WORD()
- RETURN(1)
-
- CASE _key = 274
- _search = SPACE(125)
- _repl = SPACE(125)
- PUSHSCREEN(22,00,24,60)
- @ 22,00 CLEAR
- @ 23,02 SAY "Search for = " GET _search PICT "@X@S20"
- READ
- @ 23,00 CLEAR
- @ 23,02 SAY "Replace With = " GET _repl PICT "@X@S20"
- READ
- @ 23,01 SAY "Searching..."
- IF TYPE("document") <> "U"
- _posit = AT(LTRIM(TRIM(_search)), document )
- IF _posit = 0
- @ 23,01 SAY "Text String NOT found!!!"
- INKEY(1)
- ELSE
- _tfront = ""
- _theinsert = READINSERT()
- IF READINSERT()
- _tfront = CHR(22)
- ENDIF
- SET TYPEAHEAD TO 16000
- @ 23,01 SAY "Text String Found!"
- _l2go = OCCURENCE(CHR(10), SUBSTR(document, 1, _posit))
- _c2go = lEN(OCCUR_AT( CHR(10), SUBSTR(document, 1, _posit), _l2go))-2
- _c2go = LEN( OCCUR_AT( CHR(10), SUBSTR(document, 1, _posit), _l2go))-2
- IF _c2go > right_mar && this is an adjustment
- _c2go = 0
- ENDIF
- KEYBOARD _tfront + CHR(1) + REPLICATE(CHR(24), _l2go) + REPLICATE(CHR(4), _c2go) + ;
- REPLICATE (CHR(7), LEN(LTRIM(TRIM(_search)))) + LTRIM(TRIM(_repl))
- @ 22,00 CLEAR
- READINSERT(_theinsert)
- ENDIF
- ENDIF
- POPSCREEN(22,00,24,60)
- SET_WORD()
- RETURN(1)
-
- CASE _key = 275 && Read in a file!!
- _search = SPACE(25)
- _fhandle = 0
- _times = 0
- PUSHSCREEN(23,00,24,60)
- @ 22,00 CLEAR
- @ 23,01 SAY "Enter Name of File = " GET _search PICT "XXXXXXXXXXXXXXXXXXXXXXXXX" VALID TRY2OPEN(_search, @_fhandle)
- READ
- @ 22,00 CLEAR
- @ 23,01 SAY "Loading File Into Buffer..."
- IF TYPE("document") = "U" .OR. EMPTY(_search) .OR. LASTKEY() = 27
- POPSCREEN(23,00,24,60)
- SET_WORD()
- RETURN(32)
- ENDIF
- IF FILESIZE(_search) > 10000
- @ 23,00 CLEAR
- @ 23,01 SAY "File TOO large to bring into system. Any Key to Continue"
- INKEY(0)
- POPSCREEN(23,00,24,60)
- SET_WORD()
- RETURN(0)
- ENDIF
- SET TYPEAHEAD TO 1024
- REWIND(_fhandle) && reset the pointer position!
- INSERT_TOG(22,65,.T.)
- POPSCREEN(23,00,24,60)
- SET_WORD()
- Readit()
- RETURN(1)
-
- OTHERWISE
- @ 24,50 SAY "Key Undefined"
- ?? _key
- INKEY(.5)
- @ 24,50 SAY " "
- ENDCASE
- RETURN(32)
- ENDCASE
-
- ********************
-
- FUNCTION Dbrief
-
- PARAMETERS _tstat
-
- PRIVATE _dbkey
-
- _dbkey = INKEY(0)
- IF CHR(_dbkey)$"YyNnWw"
- DO CASE
- CASE CHR(_dbkey)$"Yy"
- _tstat = 1
- CASE CHR(_dbkey)$"Nn"
- _tstat = 2
- OTHERWISE
- _tstat = 3
- ENDCASE
- RETURN(.F.)
- ENDIF
- RETURN(.T.)
-
- ********************
-
- PROCEDURE Set_word
-
- @ 22,07 SAY " "
- @ 22,25 SAY " "
- @ 22,50 SAY " "
- @ 22,01 SAY "Line:"
- @ 22,20 SAY "Col:"
- INSERT_TOG(22,65)
- @ 22, 7 SAY LTRIM(TRIM(STR(_line)))
- @ 22,25 SAY LTRIM(TRIM(STR(_col)))
- IF TYPE("document") <> "U"
- @ 22,40 SAY "File SIze:"
- @ 22,50 SAY LTRIM(TRIM(STR(LEN(document))))
- ENDIF
-
- ********************
-
- PROCEDURE Readit
-
- _byts = 1
- _bff = SPACE(1)
- _back = ""
- _byts = FREAD(_fhandle, @_bff, 1)
- _bff = STRTRAN(STRTRAN(LTRIM(TRIM(_bff)), CHR(252), CHR(13)), CHR(251), CHR(13))
- _back = _back + STRTRAN(STRTRAN(_bff, CHR(219), ""), CHR(13), CHR(13)+CHR(10)) + CHR(96)
-
- * may have to skip the next character
-
- _bff = SPACE(1)
- _times = _times + 1
-
- IF _times > 1
- _back = CHR(8) + CHR(13) + CHR(10) + _back
- ENDIF
-
- IF FEOF(_fhandle)
- FCLOSE(_fhandle)
- ENDIF
-
- KEYBOARD _back
-
- ********************
-
- FUNCTION Showprompt
-
- PARAMETER show_array
-
- PRIVATE _kount, _srow, _scol, _pchoice
-
- PUSHSCREEN(3,10,15,70)
- @ 4,12 SAY "Pick the Topic... / ESC to Exit"
- _kount = 1
- _srow = 6
- _scol = 15
- _pchoice = 1
- FOR _kount = 1 TO LEN(show_array)
- @ _srow, _scol PROMPT " " + show_array[_kount] + " "
- _srow = _srow + 1
- IF _srow >= 15
- _scol = _scol + 14
- _srow = 6
- ENDIF
- NEXT
- MENU TO _pchoice
- POPSCREEN(3,10,15,70)
- RETURN(_pchoice)
-
- * End of File
-