123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- % GEVCRT.SL.9 07 April 83
- % derived from <NOVAK>GEVCRT.PSL.1 20-Mar-83 12:41:24
- % Written by Gordon Novak Jr.
- % Copyright (c) Hewlett-Packard 1983
- (fluid '(n p))
- (GLOBAL '(GEVMENUWINDOW GEVSAVEESC GEVSAVEGLQUIET GEVSAVEGCGAG GEVMOUSEAREA
- glquietflg gllispdialect gevtypenames gluserstrnames mouse terminal
- ))
- (DE GEVENTER NIL
- (setq gevsavegcgag !*GC)
- (setq !*GC nil)
- (SETQ GEVSAVEGLQUIET GLQUIETFLG)
- (SETQ GLQUIETFLG T)
- (echooff))
- (DE GEVEXIT NIL
- (setq !*GC gevsavegcgag)
- (SETQ GLQUIETFLG GEVSAVEGLQUIET)
- (echoon))
- % edited: 19-Mar-83 22:41
- (DG GEVINITEDITWINDOW NIL
- (PROG NIL (GEVWINDOW _ (A WINDOW WITH START =
- (A VECTOR WITH X = 0 Y = 3)
- SIZE =
- (A VECTOR WITH X = 46 Y = 20)
- TITLE = "GEV Structure Inspector"))
- (RETURN GEVWINDOW)))
- % edited: 19-Mar-83 21:12
- % Wait in a loop for mouse actions within the edit window.
- (DG GEVMOUSELOOP NIL
- (PROG (INP N TMP)
- LP
- (SEND GEVWINDOW MOVETOXY 0 -1)
- (SEND TERMINAL ERASEEOL)
- (SEND GEVWINDOW MOVETOXY 0 -1)
- (SEND TERMINAL PRINTSTRING "GEV: ")
- (echoon)
- (INP _ (READ))
- (echooff)
- (SEND TERMINAL ERASEEOL)
- (IF INP=T AND (N _ (READ))
- IS NUMERIC THEN (GEVNSELECT N NIL)
- (GO LP)
- ELSEIF INP IS NUMERIC THEN (GEVNSELECT INP T)
- (GO LP)
- ELSEIF
- (TMP _ (ASSOC INP '((Q QUIT)
- (POP POP)
- (E EDIT)
- (PR PROGRAM)
- (P PROP)
- (A ADJ)
- (I ISA)
- (M MSG))))
- THEN
- (GEVCOMMANDFN (CADR TMP))
- (IF (CADR TMP)
- ='QUIT OR ~GEVACTIVEFLG THEN (SEND GEVWINDOW MOVETOXY 0 -1)
- (SEND TERMINAL ERASEEOL)
- (RETURN NIL)
- ELSE
- (GO LP))
- ELSEIF INP = 'R
- THEN
- (SEND GEVWINDOW OPEN)
- (GEVFILLWINDOW)
- (GO LP)
- ELSE
- (PRIN1 "? Quit POP Edit PRogram Prop Adj Isa Msg Redraw")
- (TERPRI)
- (GO LP))))
- % edited: 19-Mar-83 21:42
- % Select the Nth item in the display and push down to zoom in on it.
- (DG GEVNSELECT (N:INTEGER FLAG:BOOLEAN)
- (PROG (L TOP SUBLIST GROUP ITEM)
- (GROUP _ 0)
- (TOP _ GEVEDITCHAIN:TOPFRAME)
- LP
- (IF ~TOP THEN (RETURN NIL))
- (SUBLIST -_ TOP)
- (GROUP _+ 1)
- (IF GROUP=1 AND (L _ (LENGTH SUBLIST))
- >=N THEN (ITEM _ (CAR (PNth SUBLIST (L + 1 - N))))
- ELSEIF ~ (ITEM _ (GEVNTHITEM SUBLIST))
- THEN
- (GO LP))
- (IF ITEM:NODETYPE <= '(STRUCTURE SUBTREE LISTOF)
- THEN
- (RETURN NIL)
- ELSE
- (RETURN (GEVITEMEVENTFN ITEM GROUP FLAG)))))
- % edited: 19-Mar-83 22:15
- % Find the Nth item in a tree structure of items.
- (DG GEVNTHITEM (L: (LISTOF GSEITEM))
- (GLOBAL N:INTEGER)(PROG (TMP RES)
- (IF N<=0 THEN (ERROR 0 NIL)
- ELSEIF ~L THEN (RETURN NIL)
- ELSEIF N=1 THEN (RETURN (CAR L))
- ELSE
- (N _- 1)
- (TMP -_ L)
- (IF TMP:NODETYPE <= '(STRUCTURE SUBTREE LISTOF)
- AND
- (RES _ (GEVNTHITEM TMP:SUBVALUES))
- THEN
- (RETURN RES)
- ELSE
- (RETURN (GEVNTHITEM L))))))
- (GLISPCONSTANTS
- (GEVNUMBERCHARS 2 INTEGER)
- (GEVNUMBERPOS 1 INTEGER)
- )
- (SETQ GEVMENUWINDOW NIL)
- (SETQ GEVMOUSEAREA NIL)
|