Category : Dbase (Clipper, FoxBase, etc) Languages Source Code
Archive   : PROEDIT.ZIP
Filename : PROEDIT.PRG

 
Output of file : PROEDIT.PRG contained in archive : PROEDIT.ZIP

* ÖÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ·
* º º
* º 07/04/91 PROEDIT.PRG 17:36:53 º
* º º
* ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
* º º
* º J. Randolph Brown º
* º º
* º Copyright (c) 1991 Ernst & Young º
* º 1 Sansome St., Suite 3200 º
* º San Francisco, CA 94104 º
* º º
* º Description: º
* º This program was automatically generated by GENMENU. º
* º º
* ÓÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĽ

IF SET("TALK") = "ON"
SET TALK OFF
talkstate = "ON"
ELSE
talkstate = "OFF"
ENDIF
IF !FILE(SYS(2004)+'PROEDIT.PRG')
WAIT WINDOW 'PROEDIT.PRG not installed in FoxPro root directory.'
RETURN
ENDIF
IF !FILE(SYS(2004)+'PEMacros.fky')
DO makepemc && Function courtesy of Steve Freides
ENDIF
PUSH MENU _MSYSMENU
RESTORE MACROS FROM SYS(2004)+'PEMACROS.FKY'
IF talkstate = "ON"
SET TALK ON
ENDIF


* ÖÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ·
* º º
* º Menu Definition º
* º º
* ÓÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĽ
*

SET SYSMENU AUTOMATIC



* ÖÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ·
* º º
* º Cleanup Code & Procedures º
* º º
* ÓÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĽ
*

DEFINE BAR 11 OF _msystem AFTER _mLAST PROMPT "Pro\ ON BAR 11 OF _msystem ACTIVATE POPUP proedit
DEFINE POPUP proedit MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF proedit PROMPT "\ DEFINE BAR 2 OF proedit PROMPT "\ DEFINE BAR 3 OF proedit PROMPT "\ DEFINE BAR 4 OF proedit PROMPT "\-"
DEFINE BAR 5 OF proedit PROMPT "\ DEFINE BAR 6 OF proedit PROMPT "\-"
DEFINE BAR 7 OF proedit PROMPT "\ DEFINE BAR 8 OF proedit PROMPT "\ ON SELECTION POPUP proedit DO prmenu IN SYS(2004)+'proedit.prg' WITH PROMPT()
WAIT WINDOW 'ProEdit now installed in system menu.' NOWAIT

PROCEDURE prmenu
PARAMETER mprompt
DO CASE
CASE mprompt = 'Open File...'
DO pemain
CASE mprompt = 'Show Popup'
DO pepop
CASE mprompt = 'Release Popup'
DO peclean
CASE mprompt = 'Import File...'
DO primport
CASE mprompt = 'About ProEdit...'
DO peabout
CASE mprompt = 'Close ProEdit'
DO peclose
OTHERWISE
WAIT WINDOW 'Feature not available yet' NOWAIT
ENDCASE
RETURN


PROCEDURE pemain
IF SET("TALK") = "ON"
SET TALK OFF
talkstate = "ON"
ELSE
talkstate = "OFF"
ENDIF
STORE 1 TO arraycnt
STORE GETFILE('PRG;?PR','Open file:') TO thefile
IF LEN(thefile)=0
RETURN
ENDIF
IF 'PROEDIT.PRG'$thefile
WAIT WINDOW 'ProEdit file in use.'NOWAIT
RETURN
ENDIF
IF '\'$thefile
shortname = SUBSTR(thefile, RAT('\', thefile)+1)
ENDIF
STORE LEFT(shortname,LEN(shortname)-4) TO leafname,tempname
mfile=FOPEN(thefile)
IF mfile=-1
WAIT+'Error opening file. File may already be open.' WINDOW
RETURN
ENDIF
STORE FSEEK(mfile,0,2) TO maxpos
=FSEEK(mfile,0)
PUBLIC &leafname
DIMENSION &leafname(1)
STORE tempname TO &leafname(1)
DO WHILE !FEOF(mfile)
mline=FGETS(mfile)
STORE ALLTRIM(mline) TO mline
STORE 0 TO procpos
DO CASE
CASE 'PROC' $ UPPER(mline)
STORE ATC('PROC',mline) TO procpos
CASE 'FUNC' $ UPPER(mline)
STORE ATC('FUNC',mline) TO procpos
ENDCASE
IF procpos = 1
STORE ATC(' ',mline,1) TO sp1
STORE ATC(' ',mline,2) TO sp2
IF sp2 = 0
STORE LEN(mline) TO sp2
ENDIF
STORE SUBST(mline,1,sp2) TO mproc
arraycnt=arraycnt+1
DIMENSION &leafname(arraycnt)
STORE mproc to &leafname(arraycnt)
ENDIF
ENDDO
=FCLOSE(mfile)
IF talkstate = "ON"
SET TALK ON
ENDIF
MODI COMM (thefile) NOWAIT
RETURN

PROCEDURE pepop
ON KEY LABEL F11
IF SET("TALK") = "ON"
SET TALK OFF
talkstate = "ON"
ELSE
talkstate = "OFF"
ENDIF
STORE WONTOP() TO topwind
STORE LEFT(topwind,len(topwind)-4) to topwind
IF TYPE(topwind)#'C'
RETURN
ENDIF
DEFINE POPUP (topwind) from 1,60
STORE ALEN(&topwind) TO arraycnt
FOR i = 1 TO arraycnt
DEFINE BAR i OF (topwind) PROMPT &topwind(i)
ENDFOR
ON SELECTION POPUP (topwind) DEAC POPUP
STORE PROMPT() to oldprompt
ACTIVATE POPUP (topwind)
IF BAR()#0 AND oldprompt#PROMPT()
IF BAR()=1
STORE INKEY(.1) TO pause
PLAY MACRO gototop
ELSE
STORE &topwind(BAR()) TO goproc
_CLIPTEXT=goproc
STORE INKEY(.2) TO pause
PLAY MACRO gotoline
ENDIF
ENDIF
IF talkstate = "ON"
SET TALK ON
ENDIF
RELEASE POPUP (topwind)
ON KEY LABEL F11 DO pepop IN SYS(2004)+'ProEdit.prg'
RETURN

PROCEDURE peclean
STORE LEFT(WONTOP(),len(WONTOP())-4) to topwind
IF TYPE(topwind)='C'
RELEASE &topwind
ENDIF
RETURN

PROCEDURE peabout
DEFINE WINDOW peabout ;
FROM INT((SROW()-18)/2),INT((SCOL()-64)/2) ;
TO INT((SROW()-18)/2)+18,INT((SCOL()-64)/2)+63 ;
FLOAT NOCLOSE SHADOW DOUBLE COLOR SCHEME 5
ACTIVATE WINDOW peabout NOSHOW
@ 0,24 SAY "ProEdit 1.1"
@ 1,24 TO 1,34
@ 2,2 SAY "This menu goodie supplements the FoxPro editor by adding"
@ 3,2 SAY "the ability to navigate directy via popup to various "
@ 4,2 SAY "procedures and functions in your program files."
@ 6,2 SAY " Open File... - opens the file to be edited."
@ 7,2 SAY " Show Popup - activates the proc/func popup."
@ 8,2 SAY " Release Popup - releases popup array for file."
@ 9,2 SAY " Import File... - imports file directly into doc."
@ 11,2 SAY "Note: New procs/funcs added to file will not appear in"
@ 12,2 SAY "popup until you reload file through Open File... menu."
@ 14,2 SAY " Enjoy.....Randy Brown [CIS 71141,3014]"
@ 16,29 GET mDONE PICTURE "@*HNT OK" SIZE 1,4,1 DEFAULT 0
ACTIVATE WINDOW peabout
READ CYCLE MODAL
RELEASE WINDOW peabout
RETURN

PROCEDURE peclose
CLEAR MEMORY
POP MENU _MSYSMENU
WAIT WINDOW 'ProEdit removed from system menu.' NOWAIT
RETURN

PROCEDURE primport
IF SET("TALK") = "ON"
SET TALK OFF
talkstate = "ON"
ELSE
talkstate = "OFF"
ENDIF
STORE GETFILE('PRG;?PR','Select file to import:') TO thefile
IF LEN(thefile)=0
RETURN
ENDIF
IF 'PROEDIT.PRG'$thefile
WAIT WINDOW 'ProEdit file in use.'NOWAIT
RETURN
ENDIF
IF '\'$thefile
shortname = SUBSTR(thefile, RAT('\', thefile)+1)
ENDIF
STORE LEFT(shortname,LEN(shortname)-4) TO leafname,tempname
file_handle=FOPEN(thefile)
IF file_handle=-1
WAIT+'Error opening file. File may already be open.' WINDOW
RETURN
ENDIF
STORE FSEEK(file_handle, 0, 2) TO ifp_size
=FSEEK(file_handle, 0) TO ifp_top
IF ifp_size <= 0 &&file is empty
WAIT WINDOW 'This file is empty!' NOWAIT
ELSE
_CLIPTEXT = FREAD(file_handle, ifp_size)
KEYBOARD CHR(22) && CTRL V - pastes clipboard
KEYBOARD CHR(13) && adds return
ENDIF
=FCLOSE(file_handle)
IF talkstate = "ON"
SET TALK ON
ENDIF
RETURN

PROCEDURE makepemc && Courtesy of Steve Freides
* Source code generated by W R I T E (c) 1991, Friday's Computer, NYC
handle=FCREATE(SYS(2004)+'PEMacros.fky')
IF handle = -1
WAIT "Could not create SYS(2004)+'PEMacros.fky'. Press any key."
RETURN
ENDIF
null=FWRITE(handle,CHR(255)+"y"+REPL(" ",13)+CHR(0)+CHR(2)+CHR(0)+"GOTOLINE"+REPL(CHR(0),12)+CHR(5)+CHR(0)+CHR(24)+"qw!"+CHR(18)+"A"+CHR(6)+" "+CHR(22)+" "+CHR(10)+" GOTOTOP"+REPL(CHR(0),13)+CHR(1)+CHR(0)+CHR(25)+"qw!"+CHR(26))
null=FCLOSE(handle)
RETURN