%! %%BoundingBox: (atend) %%Pages: (atend) %%DocumentFonts: (atend) %%EndComments %%BeginProlog % % FrameMaker postscript_prolog 3.0, for use with FrameMaker 3.0 % This postscript_prolog file is Copyright (c) 1986-1991 Frame Technology % Corporation. All rights reserved. This postscript_prolog file may be % freely copied and distributed in conjunction with documents created using % FrameMaker. % NOTE % This file fixes the problem with NeWS printers dithering color output. % Any questions should be sent to mickey@magickingdom.eng.sun.com % % Known Problems: % Due to bugs in Transcript, the 'PS-Adobe-' is omitted from line 1 /FMversion (3.0) def % Set up Color vs. Black-and-White /FMPrintInColor { % once-thru loop gimmick % See if we're a NeWSprint printer /currentcanvas where { pop systemdict /separationdict known exit } if % originally had the following, which should always be false: % /currentcanvas where { % pop currentcanvas /Color known { % currentcanvas /Color get % exit % } if % } if systemdict /colorimage known systemdict /currentcolortransfer known and exit } loop def % Uncomment the following line to force b&w on color printer % /FMPrintInColor false def /FrameDict 195 dict def systemdict /errordict known not {/errordict 10 dict def errordict /rangecheck {stop} put} if % The readline in 23.0 doesn't recognize cr's as nl's on AppleTalk FrameDict /tmprangecheck errordict /rangecheck get put errordict /rangecheck {FrameDict /bug true put} put FrameDict /bug false put mark % Some PS machines read past the CR, so keep the following 3 lines together! currentfile 5 string readline 00 0000000000 cleartomark errordict /rangecheck FrameDict /tmprangecheck get put FrameDict /bug get { /readline { /gstring exch def /gfile exch def /gindex 0 def { gfile read pop dup 10 eq {exit} if dup 13 eq {exit} if gstring exch gindex exch put /gindex gindex 1 add def } loop pop gstring 0 gindex getinterval true } def } if /FMVERSION { FMversion ne { /Times-Roman findfont 18 scalefont setfont 100 100 moveto (FrameMaker version does not match postscript_prolog!) dup = show showpage } if } def /FMLOCAL { FrameDict begin 0 def end } def /gstring FMLOCAL /gfile FMLOCAL /gindex FMLOCAL /orgxfer FMLOCAL /orgproc FMLOCAL /organgle FMLOCAL /orgfreq FMLOCAL /yscale FMLOCAL /xscale FMLOCAL /manualfeed FMLOCAL /paperheight FMLOCAL /paperwidth FMLOCAL /FMDOCUMENT { array /FMfonts exch def /#copies exch def FrameDict begin 0 ne dup {setmanualfeed} if /manualfeed exch def /paperheight exch def /paperwidth exch def /yscale exch def /xscale exch def currenttransfer cvlit /orgxfer exch def currentscreen cvlit /orgproc exch def /organgle exch def /orgfreq exch def setpapername manualfeed {true} {papersize} ifelse {manualpapersize} {false} ifelse {desperatepapersize} if end } def /pagesave FMLOCAL /orgmatrix FMLOCAL /landscape FMLOCAL /FMBEGINPAGE { FrameDict begin /pagesave save def 3.86 setmiterlimit /landscape exch 0 ne def landscape { 90 rotate 0 exch neg translate pop } {pop pop} ifelse xscale yscale scale /orgmatrix matrix def gsave } def /FMENDPAGE { grestore pagesave restore end showpage } def /FMFONTDEFINE { FrameDict begin findfont ReEncode 1 index exch definefont FMfonts 3 1 roll put end } def /FMFILLS { FrameDict begin array /fillvals exch def end } def /FMFILL { FrameDict begin fillvals 3 1 roll put end } def /FMNORMALIZEGRAPHICS { newpath 0.0 0.0 moveto 1 setlinewidth 0 setlinecap 0 0 0 sethsbcolor 0 setgray } bind def /fx FMLOCAL /fy FMLOCAL /fh FMLOCAL /fw FMLOCAL /llx FMLOCAL /lly FMLOCAL /urx FMLOCAL /ury FMLOCAL /FMBEGINEPSF { end /FMEPSF save def /showpage {} def FMNORMALIZEGRAPHICS [/fy /fx /fh /fw /ury /urx /lly /llx] {exch def} forall fx fy translate rotate fw urx llx sub div fh ury lly sub div scale llx neg lly neg translate } bind def /FMENDEPSF { FMEPSF restore FrameDict begin } bind def FrameDict begin /setmanualfeed { %%BeginFeature *ManualFeed True statusdict /manualfeed true put %%EndFeature } def /max {2 copy lt {exch} if pop} bind def /min {2 copy gt {exch} if pop} bind def /inch {72 mul} def /pagedimen { paperheight sub abs 16 lt exch paperwidth sub abs 16 lt and {/papername exch def} {pop} ifelse } def /papersizedict FMLOCAL /setpapername { /papersizedict 14 dict def papersizedict begin /papername /unknown def /Letter 8.5 inch 11.0 inch pagedimen /LetterSmall 7.68 inch 10.16 inch pagedimen /Tabloid 11.0 inch 17.0 inch pagedimen /Ledger 17.0 inch 11.0 inch pagedimen /Legal 8.5 inch 14.0 inch pagedimen /Statement 5.5 inch 8.5 inch pagedimen /Executive 7.5 inch 10.0 inch pagedimen /A3 11.69 inch 16.5 inch pagedimen /A4 8.26 inch 11.69 inch pagedimen /A4Small 7.47 inch 10.85 inch pagedimen /B4 10.125 inch 14.33 inch pagedimen /B5 7.16 inch 10.125 inch pagedimen end } def /papersize { papersizedict begin /Letter {lettertray letter} def /LetterSmall {lettertray lettersmall} def /Tabloid {11x17tray 11x17} def /Ledger {ledgertray ledger} def /Legal {legaltray legal} def /Statement {statementtray statement} def /Executive {executivetray executive} def /A3 {a3tray a3} def /A4 {a4tray a4} def /A4Small {a4tray a4small} def /B4 {b4tray b4} def /B5 {b5tray b5} def /unknown {unknown} def papersizedict dup papername known {papername} {/unknown} ifelse get end /FMdicttop countdictstack 1 add def statusdict begin stopped end countdictstack -1 FMdicttop {pop end} for } def /manualpapersize { papersizedict begin /Letter {letter} def /LetterSmall {lettersmall} def /Tabloid {11x17} def /Ledger {ledger} def /Legal {legal} def /Statement {statement} def /Executive {executive} def /A3 {a3} def /A4 {a4} def /A4Small {a4small} def /B4 {b4} def /B5 {b5} def /unknown {unknown} def papersizedict dup papername known {papername} {/unknown} ifelse get end stopped } def /desperatepapersize { statusdict /setpageparams known { paperwidth paperheight 0 1 statusdict begin {setpageparams} stopped pop end } if } def /savematrix { orgmatrix currentmatrix pop } bind def /restorematrix { orgmatrix setmatrix } bind def /dmatrix matrix def /dpi 72 0 dmatrix defaultmatrix dtransform dup mul exch dup mul add sqrt def /freq dpi 18.75 div 8 div round dup 0 eq {pop 1} if 8 mul dpi exch div def /sangle 1 0 dmatrix defaultmatrix dtransform exch atan def /DiacriticEncoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /grave /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /Adieresis /Aring /Ccedilla /Eacute /Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis /atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis /iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve /ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex /udieresis /dagger /.notdef /cent /sterling /section /bullet /paragraph /germandbls /registered /copyright /trademark /acute /dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef /yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown /exclamdown /logicalnot /.notdef /florin /.notdef /.notdef /guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde /Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright /quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis /fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl /periodcentered /quotesinglbase /quotedblbase /perthousand /Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute /Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve /Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron ] def /ReEncode { dup length dict begin { 1 index /FID ne {def} {pop pop} ifelse } forall 0 eq {/Encoding DiacriticEncoding def} if currentdict end } bind def /graymode true def /bwidth FMLOCAL /bpside FMLOCAL /bstring FMLOCAL /onbits FMLOCAL /offbits FMLOCAL /xindex FMLOCAL /yindex FMLOCAL /x FMLOCAL /y FMLOCAL /setpattern { /bwidth exch def /bpside exch def /bstring exch def /onbits 0 def /offbits 0 def freq sangle landscape {90 add} if {/y exch def /x exch def /xindex x 1 add 2 div bpside mul cvi def /yindex y 1 add 2 div bpside mul cvi def bstring yindex bwidth mul xindex 8 idiv add get 1 7 xindex 8 mod sub bitshift and 0 ne {/onbits onbits 1 add def 1} {/offbits offbits 1 add def 0} ifelse } setscreen {} settransfer offbits offbits onbits add div FMsetgray /graymode false def } bind def /grayness { FMsetgray graymode not { /graymode true def orgxfer cvx settransfer orgfreq organgle orgproc cvx setscreen } if } bind def /HUE FMLOCAL /SAT FMLOCAL /BRIGHT FMLOCAL /Colors FMLOCAL FMPrintInColor { /HUE 0 def /SAT 0 def /BRIGHT 0 def % array of arrays Hue and Sat values for the separations [HUE BRIGHT] /Colors [[0 0 ] % black [0 0 ] % white [0.00 1.0] % red [0.37 1.0] % green [0.60 1.0] % blue [0.50 1.0] % cyan [0.83 1.0] % magenta [0.16 1.0] % comment / yellow ] def /BEGINBITMAPCOLOR { BITMAPCOLOR} def /BEGINBITMAPCOLORc { BITMAPCOLORc} def /BEGINBITMAPTRUECOLOR { BITMAPTRUECOLOR } def /BEGINBITMAPTRUECOLORc { BITMAPTRUECOLORc } def /K { Colors exch get dup 0 get /HUE exch store 1 get /BRIGHT exch store HUE 0 eq BRIGHT 0 eq and {1.0 SAT sub setgray} {HUE SAT BRIGHT sethsbcolor} ifelse } def /FMsetgray { /SAT exch 1.0 exch sub store HUE 0 eq BRIGHT 0 eq and {1.0 SAT sub setgray} {HUE SAT BRIGHT sethsbcolor} ifelse } bind def } { /BEGINBITMAPCOLOR { BITMAPGRAY} def /BEGINBITMAPCOLORc { BITMAPGRAYc} def /BEGINBITMAPTRUECOLOR { BITMAPTRUEGRAY } def /BEGINBITMAPTRUECOLORc { BITMAPTRUEGRAYc } def /FMsetgray {setgray} bind def /K { pop } def } ifelse /normalize { transform round exch round exch itransform } bind def /dnormalize { dtransform round exch round exch idtransform } bind def /lnormalize { 0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop } bind def /H { lnormalize setlinewidth } bind def /Z { setlinecap } bind def /fillvals FMLOCAL /X { fillvals exch get dup type /stringtype eq {8 1 setpattern} {grayness} ifelse } bind def /V { gsave eofill grestore } bind def /N { stroke } bind def /M {newpath moveto} bind def /E {lineto} bind def /D {curveto} bind def /O {closepath} bind def /n FMLOCAL /L { /n exch def newpath normalize moveto 2 1 n {pop normalize lineto} for } bind def /Y { L closepath } bind def /x1 FMLOCAL /x2 FMLOCAL /y1 FMLOCAL /y2 FMLOCAL /rad FMLOCAL /R { /y2 exch def /x2 exch def /y1 exch def /x1 exch def x1 y1 x2 y1 x2 y2 x1 y2 4 Y } bind def /RR { /rad exch def normalize /y2 exch def /x2 exch def normalize /y1 exch def /x1 exch def newpath x1 y1 rad add moveto x1 y2 x2 y2 rad arcto x2 y2 x2 y1 rad arcto x2 y1 x1 y1 rad arcto x1 y1 x1 y2 rad arcto closepath 16 {pop} repeat } bind def /C { grestore gsave R clip } bind def /FMpointsize FMLOCAL /F { FMfonts exch get FMpointsize scalefont setfont } bind def /Q { /FMpointsize exch def F } bind def /T { moveto show } bind def /RF { rotate 0 ne {-1 1 scale} if } bind def /TF { gsave moveto RF show grestore } bind def /P { moveto 0 32 3 2 roll widthshow } bind def /PF { gsave moveto RF 0 32 3 2 roll widthshow grestore } bind def /S { moveto 0 exch ashow } bind def /SF { gsave moveto RF 0 exch ashow grestore } bind def /B { moveto 0 32 4 2 roll 0 exch awidthshow } bind def /BF { gsave moveto RF 0 32 4 2 roll 0 exch awidthshow grestore } bind def /G { gsave newpath normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath fill grestore } bind def /A { gsave savematrix newpath 2 index 2 div add exch 3 index 2 div sub exch normalize 2 index 2 div sub exch 3 index 2 div add exch translate scale 0.0 0.0 1.0 5 3 roll arc restorematrix stroke grestore } bind def /x FMLOCAL /y FMLOCAL /w FMLOCAL /h FMLOCAL /xx FMLOCAL /yy FMLOCAL /ww FMLOCAL /hh FMLOCAL /FMsaveobject FMLOCAL /FMoptop FMLOCAL /FMdicttop FMLOCAL /BEGINPRINTCODE { /FMdicttop countdictstack 1 add def /FMoptop count 4 sub def /FMsaveobject save def userdict begin /showpage {} def FMNORMALIZEGRAPHICS 3 index neg 3 index neg translate } bind def /ENDPRINTCODE { count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for FMsaveobject restore } bind def /gn { 0 { 46 mul cf read pop 32 sub dup 46 lt {exit} if 46 sub add } loop add } bind def /str FMLOCAL /cfs { /str sl string def 0 1 sl 1 sub {str exch val put} for str def } bind def /ic [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 {0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx} {10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx} {19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12} {13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh} {4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh} {13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl} {7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl} {0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl} {10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl} ] def /sl FMLOCAL /val FMLOCAL /ws FMLOCAL /im FMLOCAL /bs FMLOCAL /cs FMLOCAL /len FMLOCAL /pos FMLOCAL /ms { /sl exch def /val 255 def /ws cfs /im cfs /val 0 def /bs cfs /cs cfs } bind def 400 ms /ip { is 0 cf cs readline pop { ic exch get exec add } forall pop } bind def /wh { /len exch def /pos exch def ws 0 len getinterval im pos len getinterval copy pop pos len } bind def /bl { /len exch def /pos exch def bs 0 len getinterval im pos len getinterval copy pop pos len } bind def /s1 1 string def /fl { /len exch def /pos exch def /val cf s1 readhexstring pop 0 get def pos 1 pos len add 1 sub {im exch val put} for pos len } bind def /hx { 3 copy getinterval cf exch readhexstring pop pop } bind def /h FMLOCAL /w FMLOCAL /d FMLOCAL /lb FMLOCAL /bitmapsave FMLOCAL /is FMLOCAL /cf FMLOCAL /wbytes { dup 8 eq {pop} {1 eq {7 add 8 idiv} {3 add 4 idiv} ifelse} ifelse } bind def /BEGINBITMAPBWc { 1 {} COMMONBITMAPc } bind def /BEGINBITMAPGRAYc { 8 {} COMMONBITMAPc } bind def /BEGINBITMAP2BITc { 2 {} COMMONBITMAPc } bind def /COMMONBITMAPc { /r exch def /d exch def gsave translate rotate scale /h exch def /w exch def /lb w d wbytes def sl lb lt {lb ms} if /bitmapsave save def r /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h d [w 0 0 h neg 0 h] {ip} image bitmapsave restore grestore } bind def /BEGINBITMAPBW { 1 {} COMMONBITMAP } bind def /BEGINBITMAPGRAY { 8 {} COMMONBITMAP } bind def /BEGINBITMAP2BIT { 2 {} COMMONBITMAP } bind def /COMMONBITMAP { /r exch def /d exch def gsave translate rotate scale /h exch def /w exch def /bitmapsave save def r /is w d wbytes string def /cf currentfile def w h d [w 0 0 h neg 0 h] {cf is readhexstring pop} image bitmapsave restore grestore } bind def /proc1 FMLOCAL /proc2 FMLOCAL /newproc FMLOCAL /Fmcc { /proc2 exch cvlit def /proc1 exch cvlit def /newproc proc1 length proc2 length add array def newproc 0 proc1 putinterval newproc proc1 length proc2 putinterval newproc cvx } bind def /ngrayt 256 array def /nredt 256 array def /nbluet 256 array def /ngreent 256 array def /gryt FMLOCAL /blut FMLOCAL /grnt FMLOCAL /redt FMLOCAL /indx FMLOCAL /cynu FMLOCAL /magu FMLOCAL /yelu FMLOCAL /k FMLOCAL /u FMLOCAL /colorsetup { currentcolortransfer /gryt exch def /blut exch def /grnt exch def /redt exch def 0 1 255 { /indx exch def /cynu 1 red indx get 255 div sub def /magu 1 green indx get 255 div sub def /yelu 1 blue indx get 255 div sub def /k cynu magu min yelu min def /u k currentundercolorremoval exec def nredt indx 1 0 cynu u sub max sub redt exec put ngreent indx 1 0 magu u sub max sub grnt exec put nbluet indx 1 0 yelu u sub max sub blut exec put ngrayt indx 1 k currentblackgeneration exec sub gryt exec put } for {255 mul cvi nredt exch get} {255 mul cvi ngreent exch get} {255 mul cvi nbluet exch get} {255 mul cvi ngrayt exch get} setcolortransfer {pop 0} setundercolorremoval {} setblackgeneration } bind def /tran FMLOCAL /fakecolorsetup { /tran 256 string def 0 1 255 {/indx exch def tran indx red indx get 77 mul green indx get 151 mul blue indx get 28 mul add add 256 idiv put} for currenttransfer {255 mul cvi tran exch get 255.0 div} exch Fmcc settransfer } bind def /BITMAPCOLOR { /d 8 def gsave translate rotate scale /h exch def /w exch def /bitmapsave save def colorsetup /is w d wbytes string def /cf currentfile def w h d [w 0 0 h neg 0 h] {cf is readhexstring pop} {is} {is} true 3 colorimage bitmapsave restore grestore } bind def /BITMAPCOLORc { /d 8 def gsave translate rotate scale /h exch def /w exch def /lb w d wbytes def sl lb lt {lb ms} if /bitmapsave save def colorsetup /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h d [w 0 0 h neg 0 h] {ip} {is} {is} true 3 colorimage bitmapsave restore grestore } bind def /BITMAPTRUECOLORc { gsave translate rotate scale /h exch def /w exch def /bitmapsave save def /is w string def ws 0 w getinterval is copy pop /cf currentfile def w h 8 [w 0 0 h neg 0 h] {ip} {gip} {bip} true 3 colorimage bitmapsave restore grestore } bind def /BITMAPTRUECOLOR { gsave translate rotate scale /h exch def /w exch def /bitmapsave save def /is w string def /gis w string def /bis w string def /cf currentfile def w h 8 [w 0 0 h neg 0 h] { cf is readhexstring pop } { cf gis readhexstring pop } { cf bis readhexstring pop } true 3 colorimage bitmapsave restore grestore } bind def /BITMAPTRUEGRAYc { gsave translate rotate scale /h exch def /w exch def /bitmapsave save def /is w string def ws 0 w getinterval is copy pop /cf currentfile def w h 8 [w 0 0 h neg 0 h] {ip gip bip w gray} image bitmapsave restore grestore } bind def /ww FMLOCAL /r FMLOCAL /g FMLOCAL /b FMLOCAL /i FMLOCAL /gray { /ww exch def /b exch def /g exch def /r exch def 0 1 ww 1 sub { /i exch def r i get .299 mul g i get .587 mul b i get .114 mul add add r i 3 -1 roll floor cvi put } for r } bind def /BITMAPTRUEGRAY { gsave translate rotate scale /h exch def /w exch def /bitmapsave save def /is w string def /gis w string def /bis w string def /cf currentfile def w h 8 [w 0 0 h neg 0 h] { cf is readhexstring pop cf gis readhexstring pop cf bis readhexstring pop w gray} image bitmapsave restore grestore } bind def /BITMAPGRAY { 8 {fakecolorsetup} COMMONBITMAP } bind def /BITMAPGRAYc { 8 {fakecolorsetup} COMMONBITMAPc } bind def /ENDBITMAP { } bind def end /ALDsave FMLOCAL /ALDmatrix matrix def ALDmatrix currentmatrix pop /StartALD { /ALDsave save def savematrix ALDmatrix setmatrix } bind def /InALD { restorematrix } bind def /DoneALD { ALDsave restore } bind def %%EndProlog %%BeginSetup (3.0) FMVERSION 1 1 612 792 0 1 6 FMDOCUMENT 0 0 /Helvetica FMFONTDEFINE 1 0 /Times-Roman FMFONTDEFINE 2 0 /Courier FMFONTDEFINE 3 0 /Times-Italic FMFONTDEFINE 4 0 /Helvetica-Bold FMFONTDEFINE 32 FMFILLS 0 0 FMFILL 1 0.1 FMFILL 2 0.3 FMFILL 3 0.5 FMFILL 4 0.7 FMFILL 5 0.9 FMFILL 6 0.97 FMFILL 7 1 FMFILL 8 <0f1e3c78f0e1c387> FMFILL 9 <0f87c3e1f0783c1e> FMFILL 10 FMFILL 11 FMFILL 12 <8142241818244281> FMFILL 13 <03060c183060c081> FMFILL 14 <8040201008040201> FMFILL 16 1 FMFILL 17 0.9 FMFILL 18 0.7 FMFILL 19 0.5 FMFILL 20 0.3 FMFILL 21 0.1 FMFILL 22 0.03 FMFILL 23 0 FMFILL 24 FMFILL 25 FMFILL 26 <3333333333333333> FMFILL 27 <0000ffff0000ffff> FMFILL 28 <7ebddbe7e7dbbd7e> FMFILL 29 FMFILL 30 <7fbfdfeff7fbfdfe> FMFILL %%EndSetup %%Page: "64" 6 %%BeginPaperSize: Letter %%EndPaperSize 612 792 0 FMBEGINPAGE 0 8 Q 0 X 0 K (SlingShot 2.0 Programmer\325s Handbook) 72 37.99 T (64) 531.11 37.99 T 0 10 Q (rectobj_toggle_event_proc\050\051) 72 713.33 T 1 F (Causes the object to act as a two state toggle. T) 108 697.33 T (o use this, set RECT) 296.34 697.33 T (OBJ_EVENT_PROC to this function.) 378.06 697.33 T 2 9 Q (void) 144 682 T (rectobj_toggle_event_proc\050) 180 682 T (Xv_window) 216 671 T (paint_window,) 288 671 T (Event) 216 660 T (*event,) 288 660 T (Canvas_shell) 216 649 T (canvas_shell,) 288 649 T (Rectobj) 216 638 T (rectobj\051;) 288 638 T 0 10 Q (rectobj_upsearch\050\051) 72 614.33 T 1 F (W) 108 598.33 T (alks up the rectobj hierarchy and calls xv_get with get_attribute and get_ar) 116.64 598.33 T (g. Returns the \336rst object that) 415.4 598.33 T -0.19 (the return value from xv_get is non-NULL and sets return_value to that value. If the canvas_shell is reached) 108 586.33 P (and no non-NULL value has been returned, rectobj_upsearch returns NULL.) 108 574.33 T 2 9 Q (Rectobj) 144 559 T ( rectobj_upsearch\050) 181.75 559 T (Rectobj) 216 548 T (rectobj,) 288 548 T (Xv_opaque) 216 537 T (*return_value,) 288 537 T (Attr_attribute) 216 526 T (get_attribute,) 291.49 526 T (int) 216 515 T (get_arg\051;) 288 515 T 0 10 Q (traverse_rectobj_tree\050\051) 72 491.33 T 1 F (Recursively walks down the rectobj tree calling function for each rectobj in the tree.) 108 475.33 T 2 9 Q (void) 144 460 T (*traverse_rectobj_tree\050) 180 460 T (Rectobj) 216 449 T (rectobj,) 288 449 T (void*\050*\051\050\051) 216 438 T (traverse_function_arg,) 288 438 T (void) 216 427 T (*call_data_arg\051;) 288 427 T 1 10 Q (Function has the following form:) 108 411.33 T 2 9 Q (void) 144 396 T (*traverse_function\050) 180 396 T (Rectobj) 216 385 T (rectobj,) 288 385 T (void) 216 374 T (*call_data\051;) 288 374 T 1 10 Q (The call_data_ar) 108 358.33 T (g is passed to the traversal callback function unchanged. If the traversal callback function) 174.7 358.33 T (ever returns non-NULL, the traversal is stopped and the return value is returned to the caller of) 108 346.33 T (traverse_rectobj_tree.) 108 334.33 T FMENDPAGE %%EndPage: "64" 5 %%Page: "63" 5 612 792 0 FMBEGINPAGE 0 8 Q 0 X 0 K (SlingShot 2.0 Programmer\325s Handbook) 72 37.99 T (63) 531.11 37.99 T 0 10 Q (rectobj_selection_event_proc\050\051) 72 713.33 T 1 F (Used as the default event_proc by many classes, it supports the single click, double click, menu, help,) 108 697.33 T -0.11 (start_drag callbacks and maintains the selected list. Applications may set the RECT) 108 685.33 P -0.11 (OBJ_EVENT_PROC to) 440.83 685.33 P (this function if the default is something else.) 108 673.33 T 2 9 Q (void) 144 658 T (rectobj_selection_event_proc\050) 180 658 T (Xv_window) 216 647 T (paint_window,) 288 647 T (Event) 216 636 T (*event,) 288 636 T (Canvas_shell) 216 625 T (canvas_shell,) 288 625 T (Rectobj) 216 614 T (rectobj\051;) 288 614 T 0 10 Q (rectobj_set_delay_repaint\050\051) 72 590.33 T 1 F (T) 108 574.33 T (urns on/of) 113.76 574.33 T (f immediate repaint for the canvas_shell that rectobj is on. Equivalent to) 154.38 574.33 T (CANV) 108 562.33 T (AS_SHELL_DELA) 135.02 562.33 T (Y_REP) 214.61 562.33 T (AINT) 244.24 562.33 T (.) 267.36 562.33 T 2 9 Q (void) 144 547 T (rectobj_set_delay_repaint\050) 180 547 T (Rectobj) 216 536 T (rectobj,) 288 536 T (int) 216 525 T (f) 288 525 T (lag\051;) 293.39 525 T 0 10 Q (rectobj_set_event_grab\050\051) 72 501.33 T 1 F (For event handlers only) 108 485.33 T (. Redirects all future events on the canvas_shell\325) 202.01 485.33 T (s paint windows to) 395.2 485.33 T (callback_function, regardless of what rectobj they map to. This is useful for focusing events while waiting) 108 473.33 T (for a speci\336c event. Setting the function to NULL restores the event processing to normal.) 108 461.33 T 2 9 Q (void) 144 446 T (rectobj_set_event_grab\050) 180 446 T (Canvas_shell) 216 435 T (canvas_shell,) 288 435 T (Rectobj) 216 424 T (rectobj,) 288 424 T (Proc_ptr) 216 413 T (callback_function,) 288 413 T (void) 216 402 T (*associated_data\051;) 288 402 T 0 10 Q (rectobj_set_geometry\050\051) 72 378.33 T 1 F -0.14 (For package implementors only) 108 362.33 P -0.14 (. Sets the size and position of rectobj to newrect. Usually used to manipulate) 233.8 362.33 P (children during geometry management.) 108 350.33 T 2 9 Q (void) 144 335 T (rectobj_set_geometry\050) 180 335 T (Rectobj) 216 324 T (rectobj,) 288 324 T (Rect) 216 313 T (*newrect\051;) 288 313 T 0 10 Q (rectobj_set_paint_style\050\051) 72 289.33 T 1 F (Set the paint style for an object.) 108 273.33 T 2 9 Q (void) 144 258 T (rectobj_set_paint_style\050) 180 258 T (Rectobj) 216 247 T (rectobj,) 288 247 T (Event) 216 236 T (*event,) 288 236 T (Attr_attribute) 216 225 T (new_style\051;) 291.49 225 T 0 10 Q (rectobj_set_stacking_position\050\051) 72 201.33 T 1 F (Sets the stacking position for an object.) 108 185.33 T 2 9 Q (void) 144 170 T (rectobj_set_stacking_position\050) 180 170 T (Rectobj) 216 159 T (rectobj,) 288 159 T (int) 216 148 T (new_pos\051;) 288 148 T FMENDPAGE %%EndPage: "63" 4 %%Page: "62" 4 612 792 0 FMBEGINPAGE 0 8 Q 0 X 0 K (SlingShot 2.0 Programmer\325s Handbook) 72 37.99 T (62) 531.11 37.99 T 0 10 Q (rectobj_move_children\050\051) 72 713.33 T 1 F (For package implementors only) 108 697.33 T (. Move children according to how the parent has been moved. This is) 234.21 697.33 T (generally used during a set_geometry_proc.) 108 685.33 T 2 9 Q (void) 144 670 T (rectobj_move_children\050) 180 670 T (Rectobj) 216 659 T (rectobj\051;) 288 659 T 0 10 Q (rectobj_paint_child\050\051) 72 635.33 T 1 F (Calls the paint_proc of the child if the damaged area intersect the child\325) 108 619.33 T (s rect.) 393.9 619.33 T 2 9 Q (void) 144 604 T (rectobj_paint_child\050) 180 604 T (Rectobj) 216 593 T (child,) 288 593 T (Display) 216 582 T (*display,) 288 582 T (Window) 216 571 T (window,) 288 571 T (Xv_xrectlist) 216 560 T (*damage\051;) 288 560 T 0 10 Q (rectobj_paint_children\050\051) 72 536.33 T 1 F (Calls the paint_procs of a rectobj\325) 108 520.33 T (s children when they intersect the damaged area.) 243.19 520.33 T 2 9 Q (void) 144 505 T (rectobj_paint_children\050) 180 505 T (Rectobj) 216 494 T (rectobj,) 288 494 T (Display) 216 483 T (*display,) 288 483 T (Window) 216 472 T (window,) 288 472 T (Xv_xrectlist) 216 461 T (*damage\051;) 288 461 T 0 10 Q (rectobj_process_drop_event\050\051) 72 437.33 T 1 F (For use by event handlers. Handles ACTION_DRAG events and calls the rectobj\325) 108 421.33 T (s drop_proc.) 435.54 421.33 T 2 9 Q (void) 144 406 T (rectobj_process_drop_event\050) 180 406 T (Xv_window) 216 395 T (paint_window,) 288 395 T (Event) 216 384 T (*event,) 288 384 T (Canvas_shell) 216 373 T (canvas_shell,) 288 373 T (Rectobj) 216 362 T (rectobj\051;) 288 362 T 0 10 Q (rectobj_repaint_rect\050\051) 72 338.33 T 1 F -0.3 (Marks a rect of the canvas_shell that rectobj is on as damaged. If clear is set, the area needs a full repaint and) 108 322.33 P (will be cleared to background color before repainting. If damaged_rect is NULL, the XV_RECT of the) 108 310.33 T (rectobj will be used as the damaged rect.) 108 298.33 T 2 9 Q (void) 144 283 T (rectobj_repaint_rect\050) 180 283 T (Rectobj) 216 272 T (rectobj,) 288 272 T (Rect) 216 261 T (*damaged_rect,) 288 261 T (int) 216 250 T (clear\051;) 288 250 T 0 10 Q (rectobj_reset_set_info\050\051) 72 226.33 T 1 F (For package implementors only) 108 210.33 T (. Resets internal rectobj data structures in case of error) 234.21 210.33 T (.) 451.26 210.33 T 2 9 Q (void) 144 195 T (rectobj_reset_set_info\050) 180 195 T (Rectobj) 216 184 T (rectobj\051;) 288 184 T FMENDPAGE %%EndPage: "62" 3 %%Page: "61" 3 612 792 0 FMBEGINPAGE 0 8 Q 0 X 0 K (SlingShot 2.0 Programmer\325s Handbook) 72 37.99 T (61) 531.11 37.99 T 0 10 Q (rectobj_get_selected_list\050\051) 72 713.33 T 1 F (Returns the list of selected objects. There is one list per application. It is advisable to use xv_destroy_safe\050\051) 108 697.33 T (rather than xv_destroy\050\051 if you are destroying objects on this list.) 108 685.33 T 2 9 Q (Rectobj_list *rectobj_get_selected_list\050void\051;) 144 670 T 1 10 Q (T) 108 654.33 T (o destroy all objects on a list:) 113.41 654.33 T 2 9 Q ({) 144 639 T (Rectobj_list *list;) 180 628 T (list = rectobj_get_selected_list\050\051;) 180 617 T (list_for\050list\051) 180 606 T (xv_destroy_safe\050RECTOBJ_LIST_HANDLE\050list\051\051;) 216 595 T (}) 144 584 T 0 10 Q (rectobj_help_show\050\051) 72 549.33 T 1 F (Displays help for an object. Help is associated with a rectobj with the XV_HELP_DA) 108 533.33 T (T) 450.54 533.33 T (A attribute. This) 455.85 533.33 T (function \336rst looks for help data in the rectobj \050ar) 108 521.33 T (gument\051, then checks it\325) 305.18 521.33 T (s owners until it \336nds help data.) 401.23 521.33 T (Usually applications don\325) 108 509.33 T (t need to call this function because displaying help is handled internally) 210.53 509.33 T (.) 496.09 509.33 T 2 9 Q (void) 144 494 T (rectobj_help_show\050) 180 494 T (Xv_Window) 216 483 T (paint_window,) 288 483 T (Event) 216 472 T (*event,) 288 472 T (Rectobj) 216 461 T (rectobj\051;) 288 461 T 0 10 Q (rectobj_invalidate_repaint\050\051) 72 437.33 T 1 F (This function cancels the repainting of any damaged areas. The area that needed to be repainted is returned) 108 421.33 T -0.17 (in the second ar) 108 409.33 P -0.17 (gument and the r_width and r_height \336elds of) 170.31 409.33 P 3 F -0.17 (r) 354.36 409.33 P -0.17 (epaint_ar) 357.88 409.33 P -0.17 (ea) 396.38 409.33 P 1 F -0.17 ( will be zero if there is nothing to) 405.81 409.33 P (be repainted. This is usually only useful if you have speci\336c knowledge of what needs to be repainted. This) 108 397.33 T (must be used carefully because if you do not manually repaint damaged areas with rectobj_repaint_rect\050\051) 108 385.33 T (and rectobj_\337ush_repaint\050\051 the state of the application may appear incorrect.) 108 373.33 T 2 9 Q (void) 144 358 T (rectobj_invalidate_repaint\050) 180 358 T (Rectobj) 216 347 T (rectobj,) 288 347 T (Rect) 216 336 T (*repaint_area\051;) 288 336 T 0 10 Q (rectobj_menu_show\050\051) 72 312.33 T 1 F (Displays the menu for an object. Menus are associated with a rectobj with the RECT) 108 296.33 T (OBJ_MENU attribute.) 446.19 296.33 T (This function \336rst looks for the menu in the rectobj \050ar) 108 284.33 T (gument\051, then looks in it\325) 326.01 284.33 T (s owners until it \336nds a) 426.8 284.33 T 0.01 (menu. Usually applications don\325) 108 272.33 P 0.01 (t need to call this function because displaying menus are handled internally) 237.69 272.33 P 0.01 (.) 537.5 272.33 P 2 9 Q (void) 144 257 T (rectobj_menu_show\050) 180 257 T (Xv_Window) 216 246 T (paint_window,) 288 246 T (Event) 216 235 T (*event,) 288 235 T (Rectobj) 216 224 T (rectobj\051;) 288 224 T 0 10 Q (rectobj_min_enclosing_rect\050\051) 72 200.33 T 1 F (Calculates the minimum enclosing rect for a list of rectobjs. See also rectobj_\336t\050\051.) 108 184.33 T 2 9 Q (void) 144 169 T (rectobj_min_enclosing_rect\050) 180 169 T (Rectobj_list) 216 158 T (*list,) 288 158 T (Rect*) 216 147 T (return_rect\051;) 288 147 T FMENDPAGE %%EndPage: "61" 2 %%Page: "60" 2 612 792 0 FMBEGINPAGE 0 8 Q 0 X 0 K (SlingShot 2.0 Programmer\325s Handbook) 72 37.99 T (60) 531.11 37.99 T 0 10 Q (rectobj_\336nish_set\050\051) 72 713.33 T 1 F -0.31 (For package implementors only) 108 697.33 P -0.31 (. Call at the end of the xv_set operation by subclasses of the rectobj to handle) 233.27 697.33 P (callbacks for geometry management and repainting.) 108 685.33 T 2 9 Q (void) 144 670 T (rectobj_f) 180 670 T (inish_set\050) 228.53 670 T (Rectobj) 216 659 T (rectobj\051;) 288 659 T 0 10 Q (rectobj_\336nish_set1\050\051) 72 635.33 T 1 F -0.31 (For package implementors only) 108 619.33 P -0.31 (. Call at the end of the xv_set operation by subclasses of the rectobj to handle) 233.27 619.33 P (callbacks for managing children \050add_child_proc and del_child_proc\051. This gives a \336ner grain of control) 108 607.33 T (than rectobj_\336nish_set\050\051. This detects when xv_set\050\051 has been called recursively and returns TRUE if it is) 108 595.33 T (actually the last xv_set. If TRUE is returned, rectobj_\336nish_set2\050\051 should be called.) 108 583.33 T 2 9 Q (int) 144 568 T (rectobj_f) 180 568 T (inish_set1\050) 228.53 568 T (Rectobj) 216 557 T (rectobj\051;) 288 557 T 0 10 Q (rectobj_\336nish_set2\050\051) 72 533.33 T 1 F (For package implementors only) 108 517.33 T (. Call when rectobj_\336nish_set1\050\051 returns TRUE. This invokes geometry) 234.21 517.33 T (management functions if the object\325) 108 505.33 T (s dimensions have changed and invokes repaint functions for damaged) 251.79 505.33 T (areas.) 108 493.33 T 2 9 Q (void) 144 478 T (rectobj_f) 180 478 T (inish_set2\050) 228.53 478 T (Rectobj) 216 467 T (rectobj\051;) 288 467 T 0 10 Q (rectobj_\336t\050\051) 72 443.33 T 1 F (Calculates the minimum rect that contains an objects children and sets the objects XV_WIDTH and) 108 427.33 T (XV_HEIGHT accordingly) 108 415.33 T (.) 213.65 415.33 T 2 9 Q (void) 144 400 T (rectobj_f) 180 400 T (it\050) 228.53 400 T (Rectobj) 216 389 T (rectobj\051;) 288 389 T 0 10 Q (rectobj_\337ush_repaint\050\051) 72 365.33 T 1 F 0.04 (Calls the repaint functions of objects that need repainting in all canvas_shells in the application. If the force) 108 349.33 P (ar) 108 337.33 T (gument is F) 115.59 337.33 T (ALSE, repainting may not occur if CANV) 162.05 337.33 T (AS_SHELL_DELA) 330.37 337.33 T (Y_REP) 409.95 337.33 T (AINT is set to TRUE. If) 439.58 337.33 T (force is TRUE, the repainting will happen regardlessly) 108 325.33 T (.) 326.08 325.33 T 2 9 Q (void) 144 310 T (rectobj_f) 180 310 T (lush_repaint\050) 228.53 310 T (int) 216 299 T (force\051;) 288 299 T 0 10 Q (rectobj_geometry_manage\050\051) 72 275.33 T 1 F (For package implementors only) 108 259.33 T (. Requests a change in geometry by calling the object\325) 234.21 259.33 T (s parent\325) 450.17 259.33 T (s) 484.31 259.33 T (geometry_manage_proc. rectobj_\336nish_set2\050\051 calls this automatically if the geometry has changed during) 108 247.33 T (the xv_set operation, it may also be called by a geometry_manage_proc to request a new size. This returns) 108 235.33 T (TRUE if the desired_rect was set exactly as requested.) 108 223.33 T 2 9 Q (int) 144 208 T (rectobj_geometry_manage\050) 180 208 T (Rectobj) 216 197 T (rectobj,) 288 197 T (Rect) 216 186 T (*desired_rect\051;) 288 186 T FMENDPAGE %%EndPage: "60" 1 %%Page: "59" 1 612 792 0 FMBEGINPAGE 0 8 Q 0 X 0 K (SlingShot 2.0 Programmer\325s Handbook) 72 37.99 T (59) 531.11 37.99 T 72 710 540 720 C 72 719 540 719 2 L 1 H 2 Z 0 X 0 K N 0 0 612 792 C 4 14 Q 0 X 0 K (Appendix B: Functions) 72 700.67 T 0 10 Q (canvas_shell_split_proc\050\051) 72 679.33 T 1 F (This is the default OPENWIN_SPLIT_INIT_PROC for a canvas_shell. If your application has its own split) 108 663.33 T (init proc, make sure the split init proc calls this function.) 108 651.33 T 2 9 Q (void canvas_shell_split_proc\050) 144 636 T (Xv_window) 180 625 T (origview,) 252 625 T (Xv_window) 180 614 T (newview,) 252 614 T (int) 180 603 T (pos\051) 252 603 T 0 10 Q (event_to_rectobj\050\051) 72 579.33 T 1 F (Given an event and a rectobj to identify the canvas shell that the event occured in, this function will return) 108 563.33 T (the rectobj that the event occured on.) 108 551.33 T 2 9 Q (Rectobj) 144 536 T ( event_to_rectobj\050) 181.75 536 T (Rectobj) 180 525 T (rectobj,) 252 525 T (Event) 180 514 T (*event\051;) 252 514 T 0 10 Q (rectobj_add_to_selected_list\050\051) 72 490.33 T 2 9 Q (void) 144 479 T (rectobj_add_to_selected_list\050) 180 479 T (Rectobj) 180 468 T (rectobj,) 252 468 T (int) 180 457 T (exclusive,) 252 457 T (Event) 180 446 T (*event\051;) 252 446 T 0 10 Q (rectobj_button_event_proc\050\051) 72 422.33 T 2 9 Q (void) 144 411 T (rectobj_button_event_proc\050) 180 411 T (Xv_window) 180 400 T (paint_window,) 252 400 T (Event) 180 389 T (*event,) 252 389 T (Canvas_shell) 180 378 T (canvas_shell,) 252 378 T (Rectobj) 180 367 T (rectobj\051;) 252 367 T 0 10 Q (rectobj_del_from_selected_list\050\051) 72 343.33 T 2 9 Q (void) 144 332 T (rectobj_del_from_selected_list\050) 180 332 T (Rectobj) 180 321 T (rectobj,) 252 321 T (Event) 180 310 T (*event\051;) 252 310 T 0 10 Q (rectobj_delta_move_children\050\051) 72 286.33 T 1 F (Moves all the children of a rectobj by calculating the new position using the delta_x and delta_y and then) 108 270.33 T (calling the child\325) 108 258.33 T (s set_geometry_proc. T) 175.18 258.33 T (ypically used by classes that manage geometry of children.) 268.58 258.33 T 2 9 Q (void) 144 243 T (rectobj_delta_move_children\050) 180 243 T (Rectobj) 180 232 T (rectobj,) 252 232 T (int) 180 221 T (delta_x,) 252 221 T (int) 180 210 T (delta_y\051;) 252 210 T 0 10 Q (rectobj_destroy_children\050\051) 72 186.33 T 1 F (Calls xv_destroy on all the children of a rectobj.) 108 170.33 T 2 9 Q (void) 144 155 T (rectobj_destroy_children\050) 180 155 T (Rectobj) 216 144 T (rectobj\051;) 288 144 T FMENDPAGE %%EndPage: "59" 0 %%Trailer %%BoundingBox: 0 0 612 792 %%Pages: 6 -1 %%DocumentFonts: Helvetica %%+ Times-Roman %%+ Courier %%+ Times-Italic %%+ Helvetica-Bold