massive reorganization
This commit is contained in:
439
library/TEDITCHAT
Normal file
439
library/TEDITCHAT
Normal file
@@ -0,0 +1,439 @@
|
||||
(DEFINE-FILE-INFO PACKAGE "LISP" READTABLE "XCL" BASE 10)
|
||||
(IL:FILECREATED "28-Mar-94 16:05:24" IL:|{PELE:MV:ENVOS}<LISPCORE>LIBRARY>TEDITCHAT.;3| 31193
|
||||
|
||||
IL:|changes| IL:|to:| (IL:FNS IL:\\TEXTSTREAMBOUT)
|
||||
|
||||
IL:|previous| IL:|date:| "12-Jun-90 18:01:39" IL:|{PELE:MV:ENVOS}<LISPCORE>LIBRARY>TEDITCHAT.;2|
|
||||
)
|
||||
|
||||
|
||||
; Copyright (c) 1985, 1986, 1990, 1994 by Venue & Xerox Corporation. All rights reserved.
|
||||
|
||||
(IL:PRETTYCOMPRINT IL:TEDITCHATCOMS)
|
||||
|
||||
(IL:RPAQQ IL:TEDITCHATCOMS
|
||||
((IL:COMS (IL:* IL:\; "character routines")
|
||||
(IL:FNS IL:TEDITCHAT.CHARFN IL:\\TEXTSTREAMBOUT))
|
||||
(IL:COMS (IL:FNS IL:TEDITSTREAM.INIT IL:TEDITCHAT.MENUFN))
|
||||
(IL:COMS (IL:* IL:\; "TEDIT update routines")
|
||||
(IL:FNS IL:TEDIT.DISPLAYTEXT))
|
||||
(IL:GLOBALVARS IL:TEDITCHAT.MENU IL:CHAT.DRIVERTYPES IL:CHAT.DISPLAYTYPES)
|
||||
(IL:VARS IL:TEDITCHAT.MENUITEMS (IL:TEDITCHAT.MENU))
|
||||
(IL:ADDVARS (IL:CHAT.DRIVERTYPES (IL:TEDIT IL:TEDITCHAT.CHARFN IL:NILL)))
|
||||
(IL:DECLARE\: IL:EVAL@COMPILE IL:DONTCOPY (IL:FILES (IL:SOURCE)
|
||||
IL:CHATDECLS))))
|
||||
|
||||
|
||||
|
||||
(IL:* IL:\; "character routines")
|
||||
|
||||
(IL:DEFINEQ
|
||||
|
||||
(IL:TEDITCHAT.CHARFN
|
||||
(IL:LAMBDA (IL:CH IL:CHAT.STATE) (IL:* IL:\; "Edited 12-Jun-90 18:00 by mitani")
|
||||
(LET* ((IL:TEXTSTREAM (IL:|fetch| (IL:CHAT.STATE IL:TEXTSTREAM) IL:|of| IL:CHAT.STATE))
|
||||
(IL:SEL (IL:|fetch| (IL:TEXTOBJ IL:SEL) IL:|of| (IL:TEXTOBJ IL:TEXTSTREAM))))
|
||||
(IL:\\CARET.DOWN (IL:|fetch| (IL:TEXTOBJ IL:DS) IL:|of| (IL:TEXTOBJ IL:TEXTSTREAM))
|
||||
)
|
||||
(IL:SELCHARQ IL:CH
|
||||
(IL:BS (IL:\\TEDIT.CHARDELETE IL:TEXTSTREAM "" IL:SEL)
|
||||
(IL:MOVETO (IL:|fetch| IL:X0 IL:|of| IL:SEL)
|
||||
(IL:|fetch| IL:Y0 IL:|of| IL:SEL)
|
||||
(CAR (IL:|fetch| (IL:TEXTOBJ IL:\\WINDOW) IL:|of| (IL:TEXTOBJ
|
||||
|
||||
IL:TEXTSTREAM
|
||||
)))))
|
||||
(IL:LF NIL)
|
||||
(IL:BOUT IL:TEXTSTREAM IL:CH)))))
|
||||
|
||||
(IL:\\TEXTSTREAMBOUT
|
||||
(IL:LAMBDA (STREAM BYTE) (IL:* IL:\; "Edited 28-Mar-94 15:29 by jds")
|
||||
|
||||
(IL:* IL:|;;| "Do BOUT to a text stream, which is an insertion at the caret.")
|
||||
|
||||
(PROG ((IL:TEXTOBJ (IL:|fetch| (IL:TEXTSTREAM IL:TEXTOBJ) IL:|of| STREAM))
|
||||
IL:CH# IL:WINDOW IL:TEXTLEN IL:PS IL:PC IL:PSTR IL:OFFST IL:SEL)
|
||||
(IL:SETQ IL:TEXTLEN (IL:|fetch| (IL:TEXTOBJ IL:TEXTLEN) IL:|of| IL:TEXTOBJ))
|
||||
(IL:SETQ IL:WINDOW (IL:|fetch| (IL:TEXTOBJ IL:\\WINDOW) IL:|of| IL:TEXTOBJ))
|
||||
(IL:SETQ IL:SEL (IL:|fetch| (IL:TEXTOBJ IL:SEL) IL:|of| IL:TEXTOBJ))
|
||||
(COND
|
||||
((NOT (CAR (IL:|fetch| IL:L1 IL:|of| IL:SEL)))
|
||||
(RETURN))) (IL:* IL:\;
|
||||
"Return if caret out of bounds, ie, user scrolls past end of text")
|
||||
(IL:SETQ IL:CH# (IL:|fetch| IL:CH# IL:|of| IL:SEL))
|
||||
(AND IL:WINDOW (IL:\\TEDIT.MARK.LINES.DIRTY IL:TEXTOBJ IL:CH# IL:CH#))
|
||||
(COND
|
||||
((IL:IEQP BYTE 13)
|
||||
(IL:\\INSERTCR BYTE IL:CH# IL:TEXTOBJ))
|
||||
(T (IL:\\INSERTCH BYTE IL:CH# IL:TEXTOBJ)))
|
||||
(AND IL:WINDOW
|
||||
(PROG ((IL:THISLINE (IL:|fetch| (IL:TEXTOBJ IL:THISLINE) IL:|of| IL:TEXTOBJ))
|
||||
IL:EOLFLAG IL:CHORIG IL:CHWIDTH IL:OXLIM IL:OCHLIM IL:OCR\\END IL:PREVSPACE
|
||||
IL:FIXEDLINE IL:NEXTLINE IL:LINES IL:NEWLINEFLG IL:DX IL:PREVLINE IL:SAVEWIDTH
|
||||
IL:OFLOWFN IL:OLHEIGHT IL:DY IL:TABSEEN IL:IMAGECACHE IL:CURLINE IL:FONT
|
||||
(IL:L1 (CAR (IL:|fetch| IL:L1 IL:|of| IL:SEL)))
|
||||
(IL:LN (CAR (IL:|fetch| IL:LN IL:|of| IL:SEL)))
|
||||
(IL:LOOKS (IL:\\TEDIT.APPLY.STYLES (IL:|fetch| (IL:TEXTOBJ IL:CARETLOOKS)
|
||||
IL:|of| IL:TEXTOBJ)
|
||||
(IL:|fetch| (IL:TEXTOBJ IL:\\INSERTPC) IL:|of|
|
||||
IL:TEXTOBJ)
|
||||
IL:TEXTOBJ)))
|
||||
(IL:|add| (IL:|fetch| IL:CH# IL:|of| IL:SEL)
|
||||
1) (IL:* IL:\;
|
||||
"These must be here, since SELs are valid even without a window.")
|
||||
(IL:|replace| IL:CHLIM IL:|of| IL:SEL IL:|with| (IL:|fetch|
|
||||
IL:CH# IL:|of|
|
||||
IL:SEL))
|
||||
(IL:|replace| IL:POINT IL:|of| IL:SEL IL:|with| 'IL:LEFT)
|
||||
(IL:|replace| IL:DCH IL:|of| IL:SEL IL:|with| 0)
|
||||
(IL:|replace| IL:SELKIND IL:|of| IL:SEL IL:|with| 'IL:CHAR)
|
||||
(IL:SETQ IL:CURLINE IL:L1)
|
||||
(IL:|add| (IL:|fetch| IL:CHARLIM IL:|of| IL:CURLINE)
|
||||
1)
|
||||
(IL:|add| (IL:|fetch| IL:CHARTOP IL:|of| IL:CURLINE)
|
||||
1)
|
||||
(IL:SETQ IL:FONT (IL:|fetch| IL:CLFONT IL:|of| IL:LOOKS))
|
||||
(IL:DSPFONT IL:FONT (CAR IL:WINDOW))
|
||||
(COND
|
||||
((OR (IL:IGREATERP (IL:PLUS (IL:|fetch| IL:X0 IL:|of| IL:SEL)
|
||||
(IL:CHARWIDTH BYTE IL:FONT))
|
||||
(IL:IDIFFERENCE (IL:|fetch| (IL:TEXTOBJ IL:WRIGHT)
|
||||
IL:|of| IL:TEXTOBJ)
|
||||
8))
|
||||
(IL:IEQP BYTE (IL:CHARCODE IL:CR)))
|
||||
(IL:* IL:\;
|
||||
"gone off the edge of the line reformat and add new line")
|
||||
(IL:TEDIT.UPDATE.SCREEN IL:TEXTOBJ)
|
||||
(IL:\\FIXSEL IL:SEL IL:TEXTOBJ (CAR IL:WINDOW))
|
||||
(IL:SETQ IL:L1 (CAR (IL:|fetch| IL:L1 IL:|of| IL:SEL)))
|
||||
(IL:SETQ IL:LN (CAR (IL:|fetch| IL:LN IL:|of| IL:SEL)))
|
||||
(COND
|
||||
((OR (NULL (IL:SELECTQ (IL:|fetch| IL:POINT IL:|of| IL:SEL)
|
||||
(IL:LEFT IL:L1)
|
||||
(IL:RIGHT IL:LN)
|
||||
NIL))
|
||||
(IL:ILEQ (IL:SELECTQ (IL:|fetch| IL:POINT IL:|of| IL:SEL)
|
||||
(IL:LEFT (IL:|fetch| IL:YBOT IL:|of| IL:L1))
|
||||
(IL:RIGHT (IL:|fetch| IL:YBOT IL:|of| IL:LN))
|
||||
0)
|
||||
(IL:|fetch| (IL:REGION IL:BOTTOM)
|
||||
IL:|of| (IL:DSPCLIPPINGREGION NIL (CAR IL:WINDOW)))))
|
||||
(IL:* IL:\;
|
||||
"The caret is off-window in the selection window. Need to scroll it up so the caret is visible.")
|
||||
(IL:|while| (IL:ILESSP (IL:|fetch| IL:Y0 IL:|of| IL:SEL)
|
||||
(IL:|fetch| (IL:TEXTOBJ IL:WBOTTOM)
|
||||
IL:|of| IL:TEXTOBJ))
|
||||
IL:|do| (IL:* IL:\;
|
||||
"The caret just went off-screen. Move it up some.")
|
||||
(IL:|replace| (IL:TEXTOBJ IL:EDITOPACTIVE) IL:|of|
|
||||
IL:TEXTOBJ
|
||||
IL:|with| NIL)
|
||||
(IL:SCROLLW (CAR IL:WINDOW)
|
||||
0
|
||||
(IL:LLSH (COND
|
||||
((IL:SELECTQ (IL:|fetch| IL:POINT
|
||||
IL:|of| IL:SEL)
|
||||
(IL:LEFT IL:L1)
|
||||
(IL:RIGHT IL:LN)
|
||||
NIL)
|
||||
(IL:|fetch| IL:LHEIGHT
|
||||
IL:|of| (IL:SELECTQ (IL:|fetch|
|
||||
IL:POINT
|
||||
IL:|of|
|
||||
IL:SEL)
|
||||
(IL:LEFT IL:L1)
|
||||
(IL:RIGHT IL:LN)
|
||||
(IL:SHOULDNT))))
|
||||
(T 12))
|
||||
1))))))
|
||||
(T (IL:TEDIT.DISPLAYTEXT IL:TEXTOBJ BYTE (IL:CHARWIDTH BYTE IL:FONT)
|
||||
IL:CURLINE
|
||||
(IL:|fetch| IL:X0 IL:|of| IL:SEL)
|
||||
(CAR IL:WINDOW)
|
||||
IL:SEL) (IL:* IL:\;
|
||||
"Print out the character on the screen")
|
||||
(IL:|add| (IL:|fetch| IL:X0 IL:|of| IL:SEL)
|
||||
(IL:CHARWIDTH BYTE IL:FONT))
|
||||
|
||||
(IL:* IL:|;;| "And move the selection's notion of our X position to the right to account for that character's width.")
|
||||
|
||||
(IL:|replace| IL:XLIM IL:|of| IL:SEL IL:|with| (IL:|fetch|
|
||||
IL:X0
|
||||
IL:|of|
|
||||
IL:SEL))))
|
||||
|
||||
(IL:* IL:|;;;| "Fix up the TEXTSTREAM so that the FILEPTR looks like it ought to after the BOUT, even though we've been updating the screen (which usually moves the fileptr....)")
|
||||
|
||||
(IL:SETQ IL:PS (IL:|ffetch| (IL:PIECE IL:PSTR) IL:|of|
|
||||
(IL:SETQ IL:PC
|
||||
(IL:|fetch| (IL:TEXTOBJ
|
||||
|
||||
IL:\\INSERTPC
|
||||
)
|
||||
IL:|of| IL:TEXTOBJ)))
|
||||
) (IL:* IL:\;
|
||||
"This piece resides in a STRING. Because it's newly 'typed' material.")
|
||||
(IL:|replace| (IL:TEXTSTREAM IL:PIECE) IL:|of| STREAM IL:|with|
|
||||
IL:PC)
|
||||
(IL:* IL:\;
|
||||
"Remember the current piece for others.")
|
||||
(IL:* IL:\;
|
||||
"And which number piece this is.")
|
||||
(IL:|freplace| (STREAM IL:CPPTR) IL:|of| STREAM
|
||||
IL:|with| (IL:ADDBASE (IL:|ffetch| (IL:STRINGP IL:BASE) IL:|of|
|
||||
IL:PS)
|
||||
(IL:LRSH (IL:SETQ IL:OFFST (IL:|ffetch| (IL:STRINGP
|
||||
IL:OFFST)
|
||||
IL:|of| IL:PS))
|
||||
1))) (IL:* IL:\;
|
||||
"Pointer to the actual characters in the string (allowing for substrings.)")
|
||||
(IL:|freplace| (STREAM IL:CPAGE) IL:|of| STREAM IL:|with| 0)
|
||||
(IL:|freplace| (STREAM IL:COFFSET) IL:|of| STREAM
|
||||
IL:|with| (IL:IPLUS (IL:|freplace| (IL:TEXTSTREAM IL:PCSTARTCH)
|
||||
IL:|of| STREAM IL:|with| (LOGAND 1
|
||||
IL:OFFST))
|
||||
(IL:|fetch| (IL:TEXTOBJ IL:\\INSERTLEN) IL:|of|
|
||||
IL:TEXTOBJ))
|
||||
)
|
||||
(IL:|freplace| (IL:TEXTSTREAM IL:PCSTARTPG) IL:|of| STREAM IL:|with|
|
||||
0)
|
||||
(IL:* IL:\;
|
||||
"Page # within the 'file' where this piece starts")
|
||||
(IL:|freplace| (STREAM IL:CBUFSIZE) IL:|of| STREAM
|
||||
IL:|with| (IL:|fetch| (STREAM IL:COFFSET) IL:|of| STREAM))
|
||||
(IL:|freplace| (STREAM IL:EPAGE) IL:|of| STREAM IL:|with| 1)
|
||||
(IL:|freplace| (IL:TEXTSTREAM IL:CHARSLEFT) IL:|of| STREAM IL:|with|
|
||||
0)
|
||||
(IL:* IL:\;
|
||||
"We're, perforce, at the end of the piece.")
|
||||
(IL:|freplace| (IL:TEXTSTREAM IL:REALFILE) IL:|of| STREAM IL:|with|
|
||||
NIL)
|
||||
(IL:* IL:\; "We're not on a file....")
|
||||
)))))
|
||||
)
|
||||
(IL:DEFINEQ
|
||||
|
||||
(IL:TEDITSTREAM.INIT
|
||||
(IL:LAMBDA (IL:WINDOW IL:MENUFN) (IL:* IL:\; "Edited 12-Jun-90 18:01 by mitani")
|
||||
|
||||
(IL:* IL:|;;| "Initialize and return TEDIT TEXTSTREAM")
|
||||
|
||||
(PROG* ((IL:TEXTSTREAM (IL:OPENTEXTSTREAM NIL IL:WINDOW NIL NIL))
|
||||
(IL:TEXTOBJ (IL:TEXTOBJ IL:TEXTSTREAM))) (IL:* IL:\;
|
||||
"force shift select typein to be put in keyboard buffer")
|
||||
(IL:TEXTPROP IL:TEXTSTREAM 'IL:COPYBYBKSYSBUF T)
|
||||
(IL:|replace| (STREAM IL:STRMBOUTFN) IL:|of| IL:TEXTSTREAM IL:|with|
|
||||
'IL:\\TEXTSTREAMBOUT)
|
||||
(IL:|replace| SET IL:|of| (IL:|fetch| (IL:TEXTOBJ IL:SEL) IL:|of|
|
||||
IL:TEXTOBJ)
|
||||
IL:|with| T)
|
||||
(IL:|replace| IL:L1 IL:|of| (IL:|fetch| (IL:TEXTOBJ IL:SEL) IL:|of|
|
||||
IL:TEXTOBJ)
|
||||
IL:|with| (LIST (IL:|fetch| IL:DESC IL:|of| (IL:|fetch| (IL:TEXTOBJ
|
||||
IL:THISLINE)
|
||||
IL:|of| IL:TEXTOBJ))))
|
||||
(IL:* IL:\;
|
||||
"hookup middle button menu instead of TEDIT menu")
|
||||
(IL:WINDOWPROP IL:WINDOW 'IL:TEDIT.TITLEMENUFN IL:MENUFN)
|
||||
(RETURN IL:TEXTSTREAM))))
|
||||
|
||||
(IL:TEDITCHAT.MENUFN
|
||||
(IL:LAMBDA (IL:WINDOW) (IL:* IL:|| "20-Oct-86 15:03")
|
||||
(DECLARE (IL:GLOBALVARS IL:TEDITCHAT.MENU)
|
||||
(IL:SPECVARS IL:WINDOW IL:STATE)) (IL:* IL:MIDDLEBUTTON)
|
||||
(PROG ((IL:STATE (IL:WINDOWPROP IL:WINDOW 'IL:CHATSTATE))
|
||||
IL:COMMAND)
|
||||
(COND
|
||||
((NOT IL:STATE) (IL:* IL:N\o IL:|Connection|
|
||||
IL:|here;| IL:|try| IL:|to|
|
||||
IL:|reestablish|)
|
||||
(RETURN (COND
|
||||
((IL:LASTMOUSESTATE IL:MIDDLE)
|
||||
(IL:CHAT.RECONNECT IL:WINDOW))
|
||||
(T (IL:TOTOPW IL:WINDOW))))))
|
||||
(IL:|replace| (IL:CHAT.STATE IL:HELD) IL:|of| IL:STATE IL:|with| T)
|
||||
(IL:\\CHECKCARET IL:WINDOW)
|
||||
(IL:SELECTQ (IL:SETQ IL:COMMAND (IL:MENU (OR IL:TEDITCHAT.MENU (IL:SETQ IL:TEDITCHAT.MENU
|
||||
(IL:|create| IL:MENU
|
||||
IL:ITEMS IL:_
|
||||
IL:TEDITCHAT.MENUITEMS
|
||||
)))))
|
||||
(IL:|Close| (IL:|replace| (IL:CHAT.STATE IL:RUNNING?) IL:|of| IL:STATE
|
||||
IL:|with| 'IL:CLOSE) (IL:* IL:|Ask| IL:CHAT.TYPEIN IL:|to|
|
||||
IL:|shut| IL:|things| IL:|down.|)
|
||||
)
|
||||
(IL:|New| (IL:|replace| (IL:CHAT.STATE IL:RUNNING?) IL:|of| IL:STATE
|
||||
IL:|with| 'IL:CLOSE)
|
||||
(IL:WINDOWPROP IL:WINDOW 'IL:KEEPCHAT 'IL:NEW))
|
||||
(IL:|Suspend| (IL:|replace| (IL:CHAT.STATE IL:RUNNING?) IL:|of| IL:STATE
|
||||
IL:|with| 'IL:CLOSE)
|
||||
(IL:WINDOWPROP IL:WINDOW 'IL:KEEPCHAT T))
|
||||
(IL:|Freeze| (IL:* IL:|Leave| IL:|in| IL:HELD
|
||||
IL:|state|)
|
||||
(RETURN))
|
||||
(NIL)
|
||||
(IL:APPLY* IL:COMMAND IL:STATE IL:WINDOW))
|
||||
(IL:|replace| (IL:CHAT.STATE IL:HELD) IL:|of| IL:STATE IL:|with| NIL))))
|
||||
)
|
||||
|
||||
|
||||
|
||||
(IL:* IL:\; "TEDIT update routines")
|
||||
|
||||
(IL:DEFINEQ
|
||||
|
||||
(IL:TEDIT.DISPLAYTEXT
|
||||
(IL:LAMBDA (IL:TEXTOBJ IL:CH IL:CHWIDTH IL:LINE IL:XPOINT IL:DS IL:SEL)
|
||||
(IL:* IL:\; "Edited 12-Jun-90 18:01 by mitani")
|
||||
(IL:* IL:|This| IL:|function|
|
||||
IL:|does| IL:|the| IL:|actual|
|
||||
IL:|displaying| IL:|of|
|
||||
IL:|typed-in| IL:|text| IL:|on|
|
||||
IL:|the| IL:|edit| IL:|window.|)
|
||||
(PROG ((IL:LOOKS (IL:\\TEDIT.APPLY.STYLES (IL:|fetch| (IL:TEXTOBJ IL:CARETLOOKS) IL:|of|
|
||||
IL:TEXTOBJ)
|
||||
(IL:|fetch| (IL:TEXTOBJ IL:\\INSERTPC) IL:|of| IL:TEXTOBJ)
|
||||
IL:TEXTOBJ))
|
||||
(IL:TERMSA (IL:|fetch| (IL:TEXTOBJ IL:TXTTERMSA) IL:|of| IL:TEXTOBJ))
|
||||
IL:DY IL:FONT)
|
||||
(IL:MOVETO IL:XPOINT (IL:IPLUS (IL:|fetch| IL:YBASE IL:|of| IL:LINE)
|
||||
(OR (IL:|fetch| IL:CLOFFSET IL:|of| IL:LOOKS)
|
||||
0))
|
||||
IL:DS) (IL:* IL:|Set| IL:|the| IL:|display|
|
||||
IL:|stream| IL:|position|)
|
||||
(COND
|
||||
(IL:TERMSA (IL:* IL:|Special| IL:|terminal|
|
||||
IL:|table| IL:|for| IL:|controlling|
|
||||
IL:|character| IL:|display.|
|
||||
IL:|Use| IL:|it.|)
|
||||
(IL:RESETLST
|
||||
(IL:RESETSAVE IL:\\PRIMTERMSA IL:TERMSA)
|
||||
(IL:|replace| (IL:TEXTSTREAM IL:REALFILE) IL:|of| (IL:|fetch|
|
||||
(IL:TEXTOBJ
|
||||
IL:STREAMHINT
|
||||
)
|
||||
IL:|of|
|
||||
IL:TEXTOBJ)
|
||||
IL:|with| IL:DS)
|
||||
(COND
|
||||
((IL:STRINGP IL:CH)
|
||||
(IL:|for| IL:CHAR IL:|instring| IL:CH
|
||||
IL:|do| (IL:SELCHARQ IL:CHAR
|
||||
(IL:TAB (IL:* IL:|Put| IL:|down| IL:|white|)
|
||||
(IL:BITBLT NIL 0 0 IL:DS IL:XPOINT
|
||||
(IL:|fetch| IL:YBOT IL:|of|
|
||||
IL:LINE)
|
||||
36
|
||||
(IL:|fetch| IL:LHEIGHT
|
||||
IL:|of| IL:LINE)
|
||||
'IL:TEXTURE
|
||||
'IL:REPLACE IL:WHITESHADE)
|
||||
(IL:RELMOVETO 36 0 IL:DS))
|
||||
(IL:CR (IL:BITBLT NIL 0 0 IL:DS IL:XPOINT
|
||||
(IL:|fetch| IL:YBOT IL:|of|
|
||||
IL:LINE)
|
||||
(IL:IMAX 6 (IL:CHARWIDTH IL:CHAR
|
||||
IL:FONT))
|
||||
(IL:|fetch| IL:LHEIGHT
|
||||
IL:|of| IL:LINE)
|
||||
'IL:TEXTURE
|
||||
'IL:REPLACE IL:WHITESHADE))
|
||||
(IL:\\DSPPRINTCHAR (IL:|fetch| (IL:TEXTOBJ
|
||||
IL:STREAMHINT)
|
||||
IL:|of| IL:TEXTOBJ)
|
||||
IL:CHAR))))
|
||||
(T (IL:SELCHARQ IL:CH
|
||||
(IL:TAB (IL:* IL:|Put| IL:|down| IL:|white|)
|
||||
(IL:BITBLT NIL 0 0 IL:DS IL:XPOINT (IL:|fetch|
|
||||
IL:YBOT
|
||||
IL:|of| IL:LINE
|
||||
)
|
||||
36
|
||||
(IL:|fetch| IL:LHEIGHT IL:|of| IL:LINE)
|
||||
'IL:TEXTURE
|
||||
'IL:REPLACE IL:WHITESHADE)
|
||||
(IL:RELMOVETO 36 0 IL:DS))
|
||||
(IL:CR (IL:BITBLT NIL 0 0 IL:DS IL:XPOINT (IL:|fetch| IL:YBOT
|
||||
IL:|of| IL:LINE)
|
||||
(IL:IMAX 6 (IL:CHARWIDTH IL:CH IL:FONT))
|
||||
(IL:|fetch| IL:LHEIGHT IL:|of| IL:LINE)
|
||||
'IL:TEXTURE
|
||||
'IL:REPLACE IL:WHITESHADE))
|
||||
(IL:\\DSPPRINTCHAR (IL:|fetch| (IL:TEXTOBJ IL:STREAMHINT)
|
||||
IL:|of| IL:TEXTOBJ)
|
||||
IL:CH))))))
|
||||
(T (IL:* IL:N\o IL:|special|
|
||||
IL:|handling;| IL:|just| IL:|use|
|
||||
IL:|native| IL:|character|
|
||||
IL:|codes|)
|
||||
(COND
|
||||
((IL:STRINGP IL:CH)
|
||||
(IL:|for| IL:CHAR IL:|instring| IL:CH
|
||||
IL:|do| (IL:SELCHARQ IL:CHAR
|
||||
(IL:TAB (IL:* IL:|Put| IL:|down| IL:|white|)
|
||||
(IL:BITBLT NIL 0 0 IL:DS (IL:DSPXPOSITION NIL IL:DS)
|
||||
(IL:|fetch| IL:YBOT IL:|of| IL:LINE)
|
||||
36
|
||||
(IL:|fetch| IL:LHEIGHT IL:|of|
|
||||
IL:LINE)
|
||||
'IL:TEXTURE
|
||||
'IL:REPLACE IL:WHITESHADE)
|
||||
(IL:RELMOVETO 36 0 IL:DS))
|
||||
(IL:CR (IL:BITBLT NIL 0 0 IL:DS (IL:DSPXPOSITION NIL IL:DS)
|
||||
(IL:|fetch| IL:YBOT IL:|of| IL:LINE)
|
||||
(IL:IMAX 6 (IL:CHARWIDTH IL:CHAR IL:FONT))
|
||||
(IL:|fetch| IL:LHEIGHT IL:|of| IL:LINE
|
||||
)
|
||||
'IL:TEXTURE
|
||||
'IL:REPLACE IL:WHITESHADE))
|
||||
(IL:BLTCHAR IL:CHAR IL:DS))))
|
||||
(T (IL:SELCHARQ IL:CH
|
||||
(IL:TAB (IL:* IL:|Put| IL:|down| IL:|white|)
|
||||
(IL:BITBLT NIL 0 0 IL:DS (IL:DSPXPOSITION NIL IL:DS)
|
||||
(IL:|fetch| IL:YBOT IL:|of| IL:LINE)
|
||||
36
|
||||
(IL:|fetch| IL:LHEIGHT IL:|of| IL:LINE)
|
||||
'IL:TEXTURE
|
||||
'IL:REPLACE IL:WHITESHADE)
|
||||
(IL:RELMOVETO 36 0 IL:DS))
|
||||
(IL:CR (IL:* IL:|Blank| IL:|out| IL:|the|
|
||||
IL:|CR's| IL:|width.|)
|
||||
(IL:BITBLT NIL 0 0 IL:DS (IL:DSPXPOSITION NIL IL:DS)
|
||||
(IL:|fetch| IL:YBOT IL:|of| IL:LINE)
|
||||
(IL:IMAX 6 (IL:CHARWIDTH IL:CH IL:FONT))
|
||||
(IL:|fetch| IL:LHEIGHT IL:|of| IL:LINE)
|
||||
'IL:TEXTURE
|
||||
'IL:REPLACE IL:WHITESHADE))
|
||||
(IL:BLTCHAR IL:CH IL:DS)))))))))
|
||||
)
|
||||
(IL:DECLARE\: IL:DOEVAL@COMPILE IL:DONTCOPY
|
||||
|
||||
(IL:GLOBALVARS IL:TEDITCHAT.MENU IL:CHAT.DRIVERTYPES IL:CHAT.DISPLAYTYPES)
|
||||
)
|
||||
|
||||
(IL:RPAQQ IL:TEDITCHAT.MENUITEMS
|
||||
((IL:|Close| 'IL:|Close| "Closes the connection and returns")
|
||||
(IL:|Suspend| 'IL:|Suspend| "Closes the connection but leaves window up")
|
||||
(IL:|New| 'IL:|New| "Closes this connection and prompts for a new host")
|
||||
(IL:|Freeze| 'IL:|Freeze| "Holds typeout in this window until you bug it again")
|
||||
("Dribble" (IL:FUNCTION IL:CHAT.TYPESCRIPT)
|
||||
"Starts a typescript of window typeout")
|
||||
("Input" (IL:FUNCTION IL:CHAT.TAKE.INPUT)
|
||||
"Allows input from a file")
|
||||
("Option" (IL:FUNCTION IL:DO.CHAT.OPTION)
|
||||
"Do protocol specific option")))
|
||||
|
||||
(IL:RPAQQ IL:TEDITCHAT.MENU NIL)
|
||||
|
||||
(IL:ADDTOVAR IL:CHAT.DRIVERTYPES (IL:TEDIT IL:TEDITCHAT.CHARFN IL:NILL))
|
||||
(IL:DECLARE\: IL:EVAL@COMPILE IL:DONTCOPY
|
||||
|
||||
(IL:FILESLOAD (IL:SOURCE)
|
||||
IL:CHATDECLS)
|
||||
)
|
||||
(IL:PUTPROPS IL:TEDITCHAT IL:COPYRIGHT ("Venue & Xerox Corporation" 1985 1986 1990 1994))
|
||||
(IL:DECLARE\: IL:DONTCOPY
|
||||
(IL:FILEMAP (NIL (1308 15667 (IL:TEDITCHAT.CHARFN 1321 . 2481) (IL:\\TEXTSTREAMBOUT 2483 . 15665)) (
|
||||
15668 20008 (IL:TEDITSTREAM.INIT 15681 . 17389) (IL:TEDITCHAT.MENUFN 17391 . 20006)) (20054 30055 (
|
||||
IL:TEDIT.DISPLAYTEXT 20067 . 30053)))))
|
||||
IL:STOP
|
||||
Reference in New Issue
Block a user