From: SMTP%"DSJ@WKUVX1.WKU.EDU" 7-FEB-1995 12:27:43.89 To: EVERHART CC: Subj: DECEMBER94.DRAWX X-FileServer: Digital Systems Journal File Server Date: Tue, 07 Feb 1995 11:25:07 CST Sender: DSJ-Mgr@WKUVX1.WKU.EDU Errors-To: DSJ-Mgr@WKUVX1.WKU.EDU Warnings-To: <> From: DSJ-Mgr@WKUVX1.WKU.EDU Reply-To: DSJ@WKUVX1.WKU.EDU Subject: DECEMBER94.DRAWX To: EVERHART@arisia.gce.com $! ------------------ CUT HERE ----------------------- $ v='f$verify(f$trnlnm("SHARE_UNPACK_VERIFY"))' $! $! This archive created: $! Name : DRAWX $! By : Hunter Goatley $! Date : 4-JAN-1995 09:15:59.73 $! Using: VMS_SHARE 8.5-1, (C) 1993 Andy Harper, Kings College London UK $! $! Credit is due to these people for their original ideas: $! James Gray, Michael Bednarek $! $! To unpack this archive: $! Minimum of VMS 4.4 (VAX) / OpenVMS 1.0 (Alpha) is required. $! Remove the headers of the first part, up to `cut here' line. $! Execute file as a command procedure. $! $! The following file(s) will be created after unpacking: $! 1. DRAWX.DSJ;1 $! $ set="set" $ set symbol/scope=(nolocal,noglobal) $ f="SYS$SCRATCH:."+f$getjpi("","PID")+";" $ if f$trnlnm("SHARE_UNPACK") .nes. "" then $ - f=f$parse("SHARE_UNPACK_TEMP",f) $ e="write sys$error ""%UNPACK"", " $ w="write sys$output ""%UNPACK"", " $ if .not. f$trnlnm("SHARE_UNPACK_LOG") then $ w = "!" $ if f$getsyi("CPU") .gt. 127 then $ goto start $ ve=f$getsyi("version") $ if ve-f$extract(0,1,ve) .ges. "4.4" then $ goto start $ e "-E-OLDVER, Must run at least VMS 4.4" $ v=f$verify(v) $ exit 44 $unpack:subroutine!P1=file,P2=chksum,P3=attrib,P4=size,P5=fileno,P6=filetotal $ if f$parse(P1) .nes. "" then $ goto dirok $ dn=f$parse(P1,,,"DIRECTORY") $ w "-I-CREDIR, Creating directory ''dn'" $ create/dir 'dn' $ if $status then $ goto dirok $ e "-E-CREDIRFAIL, Unable to create ''dn' File skipped" $ delete 'f'* $ exit $dirok: $ x=f$search(P1) $ if x .eqs. "" then $ goto file_absent $ e "-W-EXISTS, File ''P1' exists. Skipped" $ delete 'f'* $ exit $file_absent: $ w "-I-UNPACK, Unpacking ", P5, " of ", P6, " - ", P1, " - ", P4, " Blocks" $ n=P1 $ if P3 .nes. "" then $ n=f $ if .not. f$verify() then $ define/user sys$output nl: $ EDIT/TPU/NOSEC/NODIS/COM=SYS$INPUT/NOJOURNAL 'f'/OUT='n' PROCEDURE GetHex(s,p)LOCAL x1,x2;x1:=INDEX(t,SUBSTR(s,p,1))-1;x2:=INDEX(t, SUBSTR(s,p+1,1))-1;RETURN 16*x1+x2;ENDPROCEDURE;PROCEDURE SkipPartsep LOCAL m; LOOP m:=MARK(NONE);EXITIF m=END_OF(CURRENT_BUFFER);DELETE(m);EXITIF INDEX( ERASE_LINE,"-+-+-+-+-+-+-+-+")=1;ENDLOOP;ENDPROCEDURE; PROCEDURE ProcessLine LOCAL c,s,l,b,n,p;s := ERASE_LINE;c := SUBSTR(s,1,1);s := s-c;IF c = "X" THEN SPLIT_LINE; ENDIF;MOVE_HORIZONTAL(-1);l := LENGTH(s);p := 1;LOOP EXITIF p > l;c := SUBSTR(s,p,1);p := p+1;CASE c FROM ' ' TO '`' ['`'] : COPY_TEXT(ASCII(GetHex(s,p))); p:=p+2;[' ']: p:=p+1;[INRANGE,OUTRANGE] : COPY_TEXT(c);ENDCASE;ENDLOOP;ENDPROCEDURE;PROCEDURE Decode(b)LOCAL m; POSITION(BEGINNING_OF(b));LOOP m:=MARK(NONE);EXITIF m=END_OF(b);DELETE(m); IF INDEX(CURRENT_LINE,"+-+-+-+-+-+-+-+-")=1 THEN SkipPartSep;ELSE ProcessLine; MOVE_HORIZONTAL(1);ENDIF;ENDLOOP;ENDPROCEDURE;SET(FACILITY_NAME,"UNPACK");SET( SUCCESS,OFF);SET(INFORMATIONAL,OFF);t:="0123456789ABCDEF";f:=GET_INFO( COMMAND_LINE,"file_name");o:=CREATE_BUFFER(f,f);Decode(o);WRITE_FILE(o, GET_INFO(COMMAND_LINE,"output_file"));QUIT; $ if p3 .eqs. "" then $ goto dl $ open/write fdl &f $ write fdl "RECORD" $ write fdl P3 $ close fdl $ w "-I-CONVRFM, Converting record format to ", P3 $ convert/fdl='f' 'f'-1 'f' $ fa=f$getdvi(f$parse(f),"ALLDEVNAM") $ Pa=f$getdvi(f$parse(P1),"ALLDEVNAM") $ if fa .eqs. Pa then $ rename &f 'f$parse(P1)' $ if fa .nes. Pa then $ copy &f 'f$parse(P1)' $dl: delete 'f'* $ checksum 'P1' $ if checksum$checksum .nes. P2 then $ - e "-E-CHKSMFAIL, Checksum of ''P1' failed." $ exit $ endsubroutine $start: $! $ create 'f' X Xstatic`20Display`20*display`20=`20NULL; Xstatic`20Window`20window`20=`20NULL; Xstatic`20GC`20drawingAreaGC`20=`20NULL; Xstatic`20GC`20inverseDrawingGC`20=`20NULL; Xstatic`20Pixmap`20pixmapid`20=`20NULL; Xstatic`20unsigned`20long`20screen_width,`20screen_height; XXFontStruct`20*fontInfo; Xchar`20fontList`5B`5D`20=`20"-*-courier-*-*-normal--12-120-*-*-*-*-iso8859-1"; V X X....... X X/* X**++ X**`20`20FUNCTIONAL`20DESCRIPTION: X** X**`20`20`20`20`20`20initXDrawingInfo`20-`20This`20routine`20fetches`20all`20of V`20the`20extra X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20i Vnformation`20needed`20to`20use`20the`20Xlib`20routines. X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20I Vt`20also`20builds`20two`20Graphics`20Contexts`20(GCs)`20and X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20c Vreates`20a`20pixmap`20which`20will`20be`20used`20throughout X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20t Vhe`20program. X** X**`20`20FORMAL`20PARAMETERS: X** X**`20`20`20`20`20`20None X** X**`20`20RETURN`20VALUE: X** X**`20`20`20`20`20`20None X** X**`20`20SIDE`20EFFECTS: X** X**`20`20`20`20`20`20The`20following`20global`20variables`20are`20filled`20in: V X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20display X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20window X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20drawingAreaGC X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20inverseDrawingGC X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20pixmapid X** X**`20`20DESIGN: X** X**`20`20`20`20`20`20None X** X**-- X*/ Xvoid`20initXDrawingInfo`20(`20void`20) X`7B X`20`20`20`20`20`20`20`20XGCValues`20drawingAreaGCValues;`20`20/*`20Hold`20repl Vacement`20values`20for`20GC`20*/ X`20`20`20`20`20`20`20`20XtGCMask`20drawingAreaValueMask;`20`20/*`20Mask:`20whi Vch`20GC`20values`20to`20replace`20 X*/ X`20`20`20`20`20`20`20`20Pixel`20foreground,`20background;`20`20`20/*`20Color V`20*/ X`20`20`20`20`20`20`20`20int`20depth;`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20/*`20#`20of`20bits`20in`20index`20into`20Colormap`20*/ V X`20`20`20`20`20`20`20`20Screen`20*drawingScreen;`20`20`20`20`20`20`20`20`20`20 V/*`20Screen`20assoc`20with`20drawingArea`20*/ X X X`20`20`20`20`20`20`20`20/* X`20`20`20`20`20`20`20`20`20*`20Fetch`20the`20display`20and`20the`20window`20as Vsociated`20with`20drawingArea. X`20`20`20`20`20`20`20`20`20*/ X`201`20`20`20`20`20`20display`20=`20XtDisplay`20(`20widgetList`5B`20k_drawingA Vrea`20`5D`20); X`202`20`20`20`20`20`20window`20=`20XtWindow`20(`20widgetList`5B`20k_drawingAre Va`20`5D`20); X X`20`20`20`20`20`20`20`20/* X`20`20`20`20`20`20`20`20`20*`20Grab`20other`20values`20associated`20with`20the V`20drawingArea`20widget. X`20`20`20`20`20`20`20`20`20*`20First`20arg`20is`20the`20widget`20id.`20`20Each V`20pair`20after`20that`20indicates X`20`20`20`20`20`20`20`20`20*`20the`20Motif`20resource`20name`20followed`20by V`20a`20pointer`20to`20storage`20for X`20`20`20`20`20`20`20`20`20*`20the`20returned`20value.`20`20NULL`20arg`20termi Vnates`20the`20list. X`20`20`20`20`20`20`20`20`20*/ X`203`20`20`20`20`20`20XtVaGetValues`20(`20widgetList`5B`20k_drawingArea`20`5D, V X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 VXmNscreen,`20`26drawingScreen,`20`20`20`20/*`20Screen`20info`20 Xstructure`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 VXmNdepth,`20`26depth,`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20Depth`20of`20 Vcolormap`20 Xidx`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 VXmNforeground,`20`26foreground,`20`20`20/*`20Foreground`20color`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 VXmNbackground,`20`26background,`20`20`20/*`20Background`20color`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 VNULL`20);`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V/*`20End`20or`20arg`20list`20*/ X X`20`20`20`20`20`20`20`20/*`20Fetch`20the`20font`20information`20structure`20fo Vr`20the`20font(s)`20in`20fontList.`20*/ X`204`20`20`20`20`20`20fontInfo`20=`20XLoadQueryFont`20(`20display,`20fontList V`20); X X`20`20`20`20`20`20`20`20/* X`20`20`20`20`20`20`20`20`20*`20Fill`20in`20the`20mask`20with`20the`20values`20 Vwe`20will`20be`20changing`20(Foreground, X`20`20`20`20`20`20`20`20`20*`20Background,`20LineWidth,`20and`20Font).`20Then V`20move`20those`20values`20into X`20`20`20`20`20`20`20`20`20*`20The`20XGCValues`20structure.`20`20Call`20XtGetG VC`20to`20have`20the`20server`20find`20or X`20`20`20`20`20`20`20`20`20*`20create`20a`20shared`20GC`20for`20us. X`20`20`20`20`20`20`20`20`20*/ X`205`20`20`20`20`20`20drawingAreaValueMask`20=`20GCForeground`20`7C`20GCBackgr Vound`20`7C`20GCLineWidth`20 X`7C`20GCFont; X`206`20`20`20`20`20`20drawingAreaGCValues.foreground`20=`20foreground; X`207`20`20`20`20`20`20drawingAreaGCValues.background`20=`20background; X`208`20`20`20`20`20`20drawingAreaGCValues.line_width`20=`201; X`209`20`20`20`20`20`20drawingAreaGCValues.font`20=`20fontInfo->fid; X10`20`20`20`20`20`20drawingAreaGC`20=`20XtGetGC`20(`20widgetList`5B`20k_drawin VgArea`20`5D,`20`20/*`20Widget`20id`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20drawingAreaValueMask,`20`20`20`20`20`20`20`20`20/*`20V Values`20to`20 Xchange*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`26drawingAreaGCValues`20);`20`20`20`20`20`20`20/*`20X VGCValues`20 Xstruct*/ X X`20`20`20`20`20`20`20`20/* X`20`20`20`20`20`20`20`20`20*`20Now,`20fill`20in`20the`20mask`20to`20indicate V`20we`20are`20altering`20the`20defaults X`20`20`20`20`20`20`20`20`20*`20for`20Foreground,`20Background,`20and`20Font. V`20`20Then`20move`20the`20new`20values X`20`20`20`20`20`20`20`20`20*`20into`20the`20XGCValues`20structure`20(note`20th Ve`20swap`20of`20Foreground`20and X`20`20`20`20`20`20`20`20`20*`20Background`20color).`20`20Then`20call`20XtGetGC V`20to`20have`20the`20server`20find`20or X`20`20`20`20`20`20`20`20`20*`20create`20a`20second`20shared`20GC`20for`20us. X`20`20`20`20`20`20`20`20`20*/ X11`20`20`20`20`20`20drawingAreaValueMask`20=`20GCForeground`20`7C`20GCBackgrou Vnd`20`7C`20GCFont; X12`20`20`20`20`20`20drawingAreaGCValues.foreground`20=`20background; X13`20`20`20`20`20`20drawingAreaGCValues.background`20=`20foreground; X14`20`20`20`20`20`20drawingAreaGCValues.font`20=`20fontInfo->fid; X15`20`20`20`20`20`20inverseDrawingGC`20=`20XtGetGC`20(`20widgetList`5B`20k_dra VwingArea`20`5D,`20`20/*`20Widget`20 Xid`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20drawingAreaValueMask,`20`20/*`20Values`20to V`20change`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`26drawingAreaGCValues`20);`20/*`20XGCValues V`20 Xstruct`20*/ X X`20`20`20`20`20`20`20`20/*`20Use`20Xlib`20macros`20to`20find`20the`20width`20a Vnd`20height`20of`20the`20screen.`20*/ X16`20`20`20`20`20`20screenWidth`20=`20WidthOfScreen`20(`20drawingScreen`20); X17`20`20`20`20`20`20screenHeight`20=`20HeightOfScreen`20(`20drawingScreen`20); V X X`20`20`20`20`20`20`20`20/* X`20`20`20`20`20`20`20`20`20*`20Create`20a`20pixmap`20to`20be`20used`20by`20the V`20Xlib`20drawing`20routines. X`20`20`20`20`20`20`20`20`20*/ X18`20`20`20`20`20`20pixmapid`20=`20XCreatePixmap`20(`20display,`20`20`20`20/* V`20Display`20info`20struct*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20RootWindowOfScreen`20(`20drawingScreen`20), X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20Window`20t Vo`20assoc`20pixmap`20with`20`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20screenWidth,`20/*`20Max`20width`20of`20pixmap`20`20 V`20`20`20`20`20`20`20`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20screenHeight,`20/*`20Max`20height`20of`20pixmap`20* V/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20depth`20);`20`20`20`20`20`20/*`20#`20of`20bits`20in V`20colormap`20index`20 X`20*/ X19`20`20`20`20`20`20XFillRectangle`20(`20display,`20`20`20`20`20`20`20`20`20 V`20`20`20/*`20Display`20information`20structure`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20pix Vmapid,`20`20`20`20`20`20`20`20`20`20`20/*`20Drawable`20(use`20the`20pixmap)`20 V*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20inv VerseDrawingGC,`20/*`20GC`20(use`20inverseDrawingGC`20to`20 Xerase)`20`20`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`200, V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20X`20Ori Vgin`20coordinate*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`200, V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20Y`20Ori Vgin`20coordinate*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20scr VeenWidth,`20`20`20`20`20`20`20`20`20`20`20`20/*`20Width`20of`20rectangle`20*/ V X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20scr VeenHeight`20);`20`20`20`20`20`20`20`20`20/*`20Height`20of`20rectangle`20*/ X`7D X X== X Xtypedef`20struct`20`7B X`20`20`20`20`20`20`20`20char`20*chars;`20`20`20`20/*`20Pointer`20to`20string V`20*/ X`20`20`20`20`20`20`20`20int`20nchars;`20`20`20`20`20/*`20Number`20of`20charact Vers`20in`20string`20*/ X`20`20`20`20`20`20`20`20int`20delta;`20`20`20/*`20Offset`20from`20previous`20e Vnding`20position`20to`20print`20this`20 Xstring*/ X`20`20`20`20`20`20`20`20Font`20font;`20`20`20`20`20`20/*`20Font`20to`20use.`20 VNone`20=`20use`20previous`20*/ X`7D`20XTextItem; X Xtypedef`20struct`20`7B X`20`20`20`20`20`20`20`20XChar2b`20*chars;`20/*`20Pointer`20to`20double`20byte V`20characters`20*/ X`20`20`20`20`20`20`20`20int`20nchars;`20`20`20`20`20/*`20number`20of`20charact Vers`20*/ X`20`20`20`20`20`20`20`20int`20delta;`20`20`20/*`20Offset`20from`20previous`20e Vnding`20position`20to`20print`20this`20 Xstring`20*/ X`20`20`20`20`20`20`20`20Font`20font;`20`20`20`20`20`20/*`20Font`20to`20use.`20 VNone`20=`20use`20previous`20*/ X`7D`20XTextItem16; X Xtypedef`20struct`20`7B`20`20`20`20`20`20`20`20/*`20Structure`20to`20represent V`2016-bit`20(double`20byte)`20 Xcharacters`20*/ X`20`20`20`20`20`20`20`20unsigned`20char`20byte1; X`20`20`20`20`20`20`20`20unsigned`20char`20byte2; X`7D`20XChar2b; X X== X Xunsigned`20int`20interLineGap`20=`202;`20`20`20`20`20`20`20`20`20`20/*`20Small V`20vertical`20gaps`20between`20text`20 Xlines`20 X*/ X X/* X**++ X**`20`20FUNCTIONAL`20DESCRIPTION: X** X**`20`20`20`20`20`20drawLineDesign`20-`20This`20routine`20does`20the`20work`20 Vof`20drawing`20the X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20spirograph-like`20design.`20`20The`20design`20drawn X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20uses`20all`20straight-line`20graphics.`20`20The`20image X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20is`20drawn`20in`20both`20the`20DrawingArea`20window`20and X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20the`20pixmap. X** X**`20`20FORMAL`20PARAMETERS: X** X**`20`20`20`20`20`20radians: X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20Number`20of`20radians`20to`20do`20 Vcomputation`20for X** X**`20`20`20`20`20`20step: X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20Interval`20at`20which`20to`20compu Vte`20functions X** X**`20`20`20`20`20`20scaleFactor: X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20Factor`20for`20sizing`20the`20desi Vgn X** X**`20`20`20`20`20`20maxVarianceX: X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20Maximum`20amount`20to`20add`20or V`20subtract`20to/from`20scaleFactor X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20on`20computations`20for`20x`20coor Vdinate. X** X**`20`20`20`20`20`20maxVarianceY: X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20Maximum`20amount`20to`20add`20or V`20subtract`20to/from`20scaleFactor X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20on`20computations`20for`20y`20coor Vdinate. X** X**`20`20`20`20`20`20deltaVarianceX: X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20Amount`20to`20add`20or`20subtract V`20to/from`20current`20x`20variance`20on X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20each`20iteration. X** X**`20`20`20`20`20`20deltaVarianceY: X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20Amount`20to`20add`20or`20subtract V`20to/from`20current`20y`20variance`20on X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20each`20iteration. X** X**`20`20RETURN`20VALUE: X** X**`20`20`20`20`20`20None X** X**`20`20SIDE`20EFFECTS: X** X**`20`20`20`20`20`20Image`20is`20drawn`20in`20DrawingArea`20and`20off-screen V`20pixmap. X** X**`20`20DESIGN: X** X**`20`20`20`20`20`20None X** X** X** X**-- X*/ Xvoid`20drawLineDesign`20(`20long`20radians, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20long`20step, V X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20long`20scale VFactor, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20long`20maxVa VrianceX, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20long`20maxVa VrianceY, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20long`20delta VVarianceX, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20long`20delta VVarianceY`20) X`7B X`20`20`20`20`20`20`20`20int`20currentRadian; X`20`20`20`20`20`20`20`20int`20previousX, X`20`20`20`20`20`20`20`20`20`20`20`20previousY, X`20`20`20`20`20`20`20`20`20`20`20`20currentX, X`20`20`20`20`20`20`20`20`20`20`20`20currentY; X`20`20`20`20`20`20`20`20Dimension`20width, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20height; X`20`20`20`20`20`20`20`20unsigned`20long`20localWidth, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20localHeight; V X`20`20`20`20`20`20`20`20long`20currentVarianceX; X`20`20`20`20`20`20`20`20long`20currentVarianceY; X`20`20`20`20`20`20`20`20/* X`20`20`20`20`20`20`20`20`20*`20Temporary`20string`20storage`20for`20descriptiv Ve`20strings`20to`20be X`20`20`20`20`20`20`20`20`20*`20printed`20above`20design. X`20`20`20`20`20`20`20`20`20*/ X`20`20`20`20`20`20`20`20char`20tempString1`5B`20LARGE_BUF_SIZE`20`5D, X`20`20`20`20`20`20`20`20`20`20`20`20`20tempString2`5B`20LARGE_BUF_SIZE`20`5D, V X`20`20`20`20`20`20`20`20`20`20`20`20`20tempString3`5B`20LARGE_BUF_SIZE`20`5D; V X`20`20`20`20`20`20`20`20/* X`20`20`20`20`20`20`20`20`20*`20Text`20length`20variables`20to`20compute`20x`20 Voffset`20for`20centering`20of`20the X`20`20`20`20`20`20`20`20`20*`20descriptive`20text`20strings. X`20`20`20`20`20`20`20`20`20*/ X`20`20`20`20`20`20`20`20unsigned`20int`20textLength, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20textLength1, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20textLength2, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20textLength3, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20textHeight; X`20`20`20`20`20`20`20`20unsigned`20int`20tempYTextPos`20=`200; X X....... X X`20`20`20`20`20`20`20`20/* X`20`20`20`20`20`20`20`20`20*`20Drop`20the`20parameters`20entered`20by`20the`20 Vuser`20into`203`20strings X`20`20`20`20`20`20`20`20`20*`20to`20be`20printed`20on`20the`20Drawing`20Area V`20above`20the`20design. X`20`20`20`20`20`20`20`20`20*/ X27`20`20`20`20`20`20sprintf`20(`20tempString1, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20"Radians:`20%d,`20Step: V`20%d,`20Size:`20%d", X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20radians, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20step, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20scaleFactor`20); X28`20`20`20`20`20`20sprintf`20(`20tempString2, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20"Variance`20X:`20%d,`20X V`20Step:`20%d", X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20maxVarianceX, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20abs`20(`20deltaVarianceX V`20)`20); X29`20`20`20`20`20`20sprintf`20(`20tempString3, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20"Variance`20Y:`20%d,`20Y V`20Step:`20%d", X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20maxVarianceY, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20abs`20(`20deltaVarianceY V`20)`20); X X`20`20`20`20`20`20`20`20/* X`20`20`20`20`20`20`20`20`20*`20Determine`20the`20length`20of`20each`20line`20o Vf`20text`20so`20we`20can`20center X`20`20`20`20`20`20`20`20`20*`20it`20on`20the`20DrawingArea. X`20`20`20`20`20`20`20`20`20*/ X30`20`20`20`20`20`20textLength`20=`20XTextWidth`20(`20fontInfo,`20`20`20`20`20 V/*`20Font`20information`20`20`20`20`20`20`20`20`20`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20"Line`20Design",/*`20String`20to`20measure`20`20`20`20 V`20`20`20`20`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20strlen`20(`20"Line`20Design"`20)`20);`20/*`20Char`20le Vngth`20*/ X31`20`20`20`20`20`20textLength1`20=`20XTextWidth`20(`20fontInfo,`20`20`20`20/* V`20Font`20information`20`20`20`20`20`20`20`20`20`20`20`20`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20tempString1,`20/*`20String`20to`20measure`20`20`20 V`20`20`20`20`20`20`20`20`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20strlen`20(`20tempString1`20)`20);`20`20/*`20Char`20 Vlength`20`20 X*/ X32`20`20`20`20`20`20textLength2`20=`20XTextWidth`20(`20fontInfo,`20`20`20`20/* V`20Font`20information`20`20`20`20`20`20`20`20`20`20`20`20`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20tempString2,`20/*`20String`20to`20measure`20`20`20 V`20`20`20`20`20`20`20`20`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20strlen`20(`20tempString2`20)`20);`20`20`20`20/*`20C Vhar`20length`20 X*/ X33`20`20`20`20`20`20textLength3`20=`20XTextWidth`20(`20fontInfo,`20`20`20`20/* V`20Font`20information`20`20`20`20`20`20`20`20`20`20`20`20`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20tempString3,`20/*`20String`20to`20measure`20`20`20 V`20`20`20`20`20`20`20`20`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20strlen`20(`20tempString3`20)`20);`20/*`20Char`20len Vgth`20`20*/ X34`20`20`20`20`20`20textHeight`20=`20fontInfo->ascent`20+`20fontInfo->descent V`20+`20interLineGap; X X`20`20`20`20`20`20`20`20/* X`20`20`20`20`20`20`20`20`20*`20Draw`20the`20four`20strings`20on`20both`20the V`20window`20and`20the`20off-screen`20pixmap. X`20`20`20`20`20`20`20`20`20*/ X35`20`20`20`20`20`20tempYTextPos`20=`20textHeight; X36`20`20`20`20`20`20XDrawImageString`20(`20display,`20`20`20`20`20`20/*`20Disp Vlay`20info`20structure`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20window,`20`20`20`20`20`20`20/*`20Window`20in`20which`20to`20draw`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20inverseDrawingGC,`20`20`20`20`20`20`20`20`20`20`20`20/*`20GC`20to`20use`20* V/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20(`20(`20localWidth`20/`202`20)`20- X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20(`20textLength`20/`202`20)`20),`20/*`20X:`20left`20end`20of`20baselin Ve`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 VtempYTextPos,`20`20`20`20`20`20`20`20`20`20`20`20/*`20Y:`20left`20end`20of`20b Vaseline`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V"Line`20Design",`20`20`20`20`20`20`20`20`20`20`20/*`20String`20to`20draw`20`20 V*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 Vstrlen`20(`20"Line`20Design"`20)`20);`20`20`20/*`20Length`20of`20string`20`20* V/ X X37`20`20`20`20`20`20XDrawImageString`20(`20display,`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20/*`20Display`20info`20structure`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20pixmapid,`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20Pixmap`20in`20wh Vich`20to`20draw`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20inverseDrawingGC,`20`20`20`20`20`20`20/*`20GC`20to`20use`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20(`20(`20localWidth`20/`202`20)`20- X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20(`20textLength`20/`202`20)`20),`20`20/*`20X:`20left`20end`20of`20base Vline`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20tempYTextPos,`20`20`20`20`20`20`20`20`20`20`20`20/*`20Y:`20left`20end`20of V`20baseline`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20"Line`20Design",`20`20`20`20`20`20`20`20`20`20`20/*`20String`20to`20draw`20 V*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20strlen`20(`20"Line`20Design"`20)`20);`20`20/*`20Length`20of`20string`20*/ X X38`20`20`20`20`20`20tempYTextPos`20+=`20textHeight; X39`20`20`20`20`20`20XDrawString`20(`20display,`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20/*`20Display`20info`20structure`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20window,`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20Window V`20in`20which`20to`20draw`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20drawingAreaG VC,`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20GC`20to`20use`20*/ X X X X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20(`20(`20loca VlWidth`20/`202`20)`20- X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20(`20te VxtLength1`20/`202`20)`20),`20`20`20`20`20`20/*`20X:`20left`20end`20of`20baseli Vne`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20tempYTextPos V,`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20Y:`20left`20end`20of V`20baseline`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20tempString1, V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20String`20to`20draw V`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20strlen`20( V`20tempString1`20)`20);`20`20`20`20`20/*`20Length`20of`20string`20*/ X X40`20`20`20`20`20`20XDrawString`20(`20display,`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20/*`20Display`20info`20structure`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20pixmapid,`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20Pixmap`20in V`20which`20to`20draw`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20drawingAreaG VC,`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20GC`20to`20use`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20(`20(`20loca VlWidth`20/`202`20)`20- X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20(`20te VxtLength1`20/`202`20)`20),`20`20`20`20`20`20/*`20X:`20left`20end`20of`20baseli Vne`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20tempYTextPos V,`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20Y:`20left`20end`20of V`20baseline`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20tempString1, V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20String`20to`20draw V`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20strlen`20( V`20tempString1`20)`20);`20`20`20`20`20/*`20Length`20of`20string`20*/ X X41`20`20`20`20`20`20tempYTextPos`20+=`20textHeight; X42`20`20`20`20`20`20XDrawString`20(`20display,`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20/*`20Display`20info`20structure`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20window,`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20Window V`20in`20which`20to`20draw`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20drawingAreaG VC,`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20GC`20to`20use`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20(`20(`20loca VlWidth`20/`202`20)`20- X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20(`20te VxtLength2`20/`202`20)`20),`20`20`20`20`20`20/*`20X:`20left`20end`20of`20baseli Vne`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20tempYTextPos V,`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20Y:`20left`20end`20of V`20baseline`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20tempString2, V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20String`20to`20draw V`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20strlen`20( V`20tempString2`20)`20);`20`20`20`20`20/*`20Length`20of`20string`20*/ X X43`20`20`20`20`20`20XDrawString`20(`20display,`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20/*`20Display`20info`20structure`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20pixmapid,`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20Pixmap`20in V`20which`20to`20draw`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20drawingAreaG VC,`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20GC`20to`20use`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20(`20(`20loca VlWidth`20/`202`20)`20- X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20(`20te VxtLength2`20/`202`20)`20),`20`20`20`20`20`20/*`20X:`20left`20end`20of`20baseli Vne`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20tempYTextPos V,`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20Y:`20left`20end`20of V`20baseline`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20tempString2, V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20String`20to`20draw V`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20strlen`20( V`20tempString2`20)`20);`20`20`20`20`20/*`20Length`20of`20string`20*/ X X44`20`20`20`20`20`20tempYTextPos`20+=`20textHeight; X45`20`20`20`20`20`20XDrawString`20(`20display,`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20/*`20Display`20info`20structure`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20window,`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20Window V`20in`20which`20to`20draw`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20drawingAreaG VC,`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20GC`20to`20use`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20(`20(`20loca VlWidth`20/`202`20)`20- X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20(`20te VxtLength3`20/`202`20)`20),`20`20`20`20`20`20/*`20X:`20left`20end`20of`20baseli Vne`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20tempYTextPos V,`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20Y:`20left`20end`20of V`20baseline`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20tempString3, V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20String`20to`20draw V`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20strlen`20( V`20tempString3`20)`20);`20`20`20`20`20/*`20Length`20of`20string`20*/ X X46`20`20`20`20`20`20XDrawString`20(`20display,`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20/*`20Display`20info`20structure`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20pixmapid,`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20Pixmap`20in V`20which`20to`20draw`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20drawingAreaG VC,`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20GC`20to`20use`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20(`20(`20loca VlWidth`20/`202`20)`20- X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20(`20te VxtLength3`20/`202`20)`20),`20`20`20`20`20`20/*`20X:`20left`20end`20of`20baseli Vne`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20tempYTextPos V,`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20Y:`20left`20end`20of V`20baseline`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20tempString3, V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20String`20to`20draw V X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20strlen`20( V`20tempString3`20)`20);`20`20`20`20`20/*`20Length`20of`20string`20*/ X`20`20`20`20`20`20`20`20/* X`20`20`20`20`20`20`20`20`20*`20Flush`20all`20queued`20requests`20so`20the`20gr Vaphics`20are`20updated. X`20`20`20`20`20`20`20`20`20*/ X47`20`20`20`20`20`20XFlush`20(`20display`20); X`7D X X/* X**++ X**`20`20FUNCTIONAL`20DESCRIPTION: X** X**`20`20`20`20`20`20drawArcDesign`20-`20This`20routine`20does`20the`20work`20o Vf`20drawing`20the X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20spirograph-like`20design.`20`20The`20design`20drawn X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20uses`20all`20arcs`20to`20form`20the`20image.`20`20The`20image X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20is`20drawn`20in`20both`20the`20DrawingArea`20window`20and X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20the`20pixmap. X** X**`20`20FORMAL`20PARAMETERS: X** X**`20`20`20`20`20`20radians: X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20Number`20of`20radians`20to`20do`20 Vcomputation`20for X** X**`20`20`20`20`20`20step: X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20Interval`20at`20which`20to`20compu Vte`20functions X** X**`20`20`20`20`20`20scaleFactor: X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20Factor`20for`20sizing`20the`20desi Vgn X** X**`20`20`20`20`20`20maxVarianceX: X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20Maximum`20amount`20to`20add`20or V`20subtract`20to/from`20scaleFactor X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20on`20computations`20for`20x`20coor Vdinate. X** X**`20`20`20`20`20`20maxVarianceY: X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20Maximum`20amount`20to`20add`20or V`20subtract`20to/from`20scaleFactor X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20on`20computations`20for`20y`20coor Vdinate. X** X**`20`20`20`20`20`20deltaVarianceX: X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20Amount`20to`20add`20or`20subtract V`20to/from`20current`20x`20variance`20on X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20each`20iteration. X** X**`20`20`20`20`20`20deltaVarianceY: X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20Amount`20to`20add`20or`20subtract V`20to/from`20current`20y`20variance`20on X**`20`20`20`20`20`20`20`20`20`20`20`20`20`20each`20iteration. X** X**`20`20RETURN`20VALUE: X** X**`20`20`20`20`20`20None X** X**`20`20SIDE`20EFFECTS: X** X**`20`20`20`20`20`20The`20image`20is`20drawn`20in`20both`20the`20DrawingArea V`20and`20the`20off-screen`20 Xpixmap. X** X**`20`20DESIGN: X** X**`20`20`20`20`20`20None X** X**-- X*/ Xvoid`20drawArcDesign`20(`20long`20radians, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20long`20step, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20long`20scaleFac Vtor, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20long`20maxVaria VnceX, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20long`20maxVaria VnceY, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20long`20deltaVar VianceX, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20long`20deltaVar VianceY`20) X`7B X`20`20`20`20`20`20`20`20int`20currentRadian; X`20`20`20`20`20`20`20`20int`20currentX,`20currentY; X`20`20`20`20`20`20`20`20Dimension`20width,`20height; X`20`20`20`20`20`20`20`20unsigned`20long`20localWidth,`20localHeight; X`20`20`20`20`20`20`20`20unsigned`20long`20halfWidth,`20halfHeight; X`20`20`20`20`20`20`20`20long`20currentVarianceX; X`20`20`20`20`20`20`20`20long`20currentVarianceY; X`20`20`20`20`20`20`20`20long`20startAngle, X`20`20`20`20`20`20`20`20`20`20`20`20`20incrAngle`20=`205760;`20`20/*`20Always V`20use`2090`20degrees`20of`20Arc`20*/ X`20`20`20`20`20`20`20`20const`20static`20long`20angle90`20=`205760,`20`20`20 V`20`20`20`20/*`2090`20degrees`20*`2064`20`20`20`20`20`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 Vangle180`20=`2011520,`20`20`20`20`20/*`20180`20degrees`20*`2064`20`20`20`20`20 V*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 Vangle270`20=`2017280;`20`20`20`20`20/*`20270`20degrees`20*`2064`20`20`20`20`20 V*/ X`20`20`20`20`20`20`20`20/* X`20`20`20`20`20`20`20`20`20*`20Temporary`20string`20storage`20for`20descriptiv Ve`20strings`20to`20be X`20`20`20`20`20`20`20`20`20*`20printed`20above`20design. X`20`20`20`20`20`20`20`20`20*/ X`20`20`20`20`20`20`20`20char`20tempString1`5B`20LARGE_BUF_SIZE`20`5D, X`20`20`20`20`20`20`20`20`20`20`20`20`20tempString2`5B`20LARGE_BUF_SIZE`20`5D, V X`20`20`20`20`20`20`20`20`20`20`20`20`20tempString3`5B`20LARGE_BUF_SIZE`20`5D; V X`20`20`20`20`20`20`20`20/* X`20`20`20`20`20`20`20`20`20*`20Text`20length`20variables`20to`20compute`20x`20 Voffset`20for`20centering`20of`20the X`20`20`20`20`20`20`20`20`20*`20descriptive`20text`20strings. X`20`20`20`20`20`20`20`20`20*/ X`20`20`20`20`20`20`20`20unsigned`20int`20textLength, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20textLength1, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20textLength2, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20textLength3, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20textHeight; X`20`20`20`20`20`20`20`20unsigned`20int`20tempYTextPos`20=`200; X X....... X X`20`20`20`20`20`20`20`20/* X`20`20`20`20`20`20`20`20`20*`20Drop`20the`20parameters`20entered`20by`20the`20 Vuser`20into`203`20strings X`20`20`20`20`20`20`20`20`20*`20to`20be`20printed`20on`20the`20Drawing`20Area V`20above`20the`20design. X`20`20`20`20`20`20`20`20`20*/ X80`20`20`20`20`20`20sprintf`20(`20tempString1, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20"Radians:`20%d,`20Step: V`20%d,`20Size:`20%d", X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20radians, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20step, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20scaleFactor`20); X81`20`20`20`20`20`20sprintf`20(`20tempString2, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20"Variance`20X:`20%d,`20X V`20Step:`20%d", X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20maxVarianceX, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20abs`20(`20deltaVarianceX V`20)`20); X82`20`20`20`20`20`20sprintf`20(`20tempString3, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20"Variance`20Y:`20%d,`20Y V`20Step:`20%d", X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20maxVarianceY, X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20abs`20(`20deltaVarianceY V`20)`20); X X`20`20`20`20`20`20`20`20/* X`20`20`20`20`20`20`20`20`20*`20Determine`20the`20length`20of`20each`20line`20o Vf`20text`20so`20we`20can`20center X`20`20`20`20`20`20`20`20`20*`20it`20on`20the`20DrawingArea. X`20`20`20`20`20`20`20`20`20*/ X83`20`20`20`20`20`20textLength`20=`20XTextWidth`20(`20fontInfo,`20`20`20`20`20 V`20`20`20`20`20/*`20Font`20information`20`20`20`20`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20"Arc`20Design",`20`20`20`20`20`20/*`20String`20to`20me Vasure`20`20`20`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20strlen`20(`20"Arc`20Design"`20)`20);`20/*`20Char`20len Vgth`20*/ X84`20`20`20`20`20`20textLength1`20=`20XTextWidth`20(`20fontInfo,`20`20`20`20 V`20`20`20`20`20/*`20Font`20information`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20tempString1,`20`20`20`20`20`20/*`20String`20to`20me Vasure`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20strlen`20(`20tempString1`20)`20);`20/*`20Char`20len Vgth`20*/ X85`20`20`20`20`20`20textLength2`20=`20XTextWidth`20(`20fontInfo,`20`20`20`20 V`20`20`20`20`20/*`20Font`20information`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20tempString2,`20`20`20`20`20`20/*`20String`20to`20me Vasure`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20strlen`20(`20tempString2`20)`20);`20/*`20Char`20len Vgth`20*/ X86`20`20`20`20`20`20textLength3`20=`20XTextWidth`20(`20fontInfo,`20`20`20`20 V`20`20`20`20`20/*`20Font`20information`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20tempString3,`20`20`20`20`20`20/*`20String`20to`20me Vasure`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20strlen`20(`20tempString3`20)`20);`20/*`20Char`20len Vgth`20*/ X87`20`20`20`20`20`20textHeight`20=`20fontInfo->ascent`20+`20fontInfo->descent V`20+`20interLineGap; X X`20`20`20`20`20`20`20`20/* X`20`20`20`20`20`20`20`20`20*`20Draw`20the`20four`20strings`20on`20both`20the V`20window`20and`20the`20off-screen`20pixmap. X`20`20`20`20`20`20`20`20`20*/ X88`20`20`20`20`20`20tempYTextPos`20=`20textHeight; X89`20`20`20`20`20`20XDrawImageString`20(`20display,`20`20`20`20`20`20`20`20/* V`20Display`20info`20structure`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20window,`20`20`20`20`20`20`20`20`20/*`20Window`20in`20which`20to`20draw`20*/ V X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20inverseDrawingGC,`20`20`20`20/*`20GC`20to`20use`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20(`20(`20localWidth`20/`202`20)`20- X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20(`20textLength`20/`202`20)`20),`20/*`20X:`20left`20end`20of`20baselin Ve`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20tempYTextPos,`20`20`20`20`20`20`20`20/*`20Y:`20left`20end`20of`20baseline V`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20"Arc`20Design",`20`20`20`20`20`20`20`20/*`20String`20to`20draw`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20strlen`20(`20"Arc`20Design"`20)`20);`20/*`20Length`20of`20string`20*/ X X90`20`20`20`20`20`20XDrawImageString`20(`20display,`20`20`20`20`20`20`20`20`20 V`20`20`20`20/*`20Display`20info`20structure`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20pixmapid,`20`20`20`20`20`20`20`20`20`20`20`20/*`20Pixmap`20in`20which`20to V`20draw`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20inverseDrawingGC,`20`20`20`20/*`20GC`20to`20use`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20(`20(`20localWidth`20/`202`20)`20- X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20(`20textLength`20/`202`20)`20),`20/*`20X:`20left`20end`20of`20baselin Ve`20 X*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20tempYTextPos,`20`20`20`20`20`20`20`20/*`20Y:`20left`20end`20of`20baseline V`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20"Arc`20Design",`20`20`20`20`20`20`20`20/*`20String`20to`20draw`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20strlen`20(`20"Arc`20Design"`20)`20);`20/*`20Length`20of`20string`20*/ X X91`20`20`20`20`20`20tempYTextPos`20+=`20textHeight; X92`20`20`20`20`20`20XDrawString`20(`20display,`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20/*`20Display`20info`20structure`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20window,`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20Window`20in`20which V`20to`20draw`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20drawingAreaG VC,`20`20`20`20`20`20`20`20`20`20`20`20/*`20GC`20to`20use`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20(`20(`20loca VlWidth`20/`202`20)`20- X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20( V`20textLength1`20/`202`20)`20),`20/*`20X:`20left`20end`20of`20baseline`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20tempYTextPos V,`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20Y:`20left`20end`20of`20baseline V`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20tempString1, V`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20String`20to`20draw`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20strlen`20( V`20tempString1`20)`20);`20/*`20Length`20of`20string`20*/ X X93`20`20`20`20`20`20XDrawString`20(`20display,`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20/*`20Display`20info`20structure`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20pixmapid,`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20Pixmap`20in`20which`20to V`20draw`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20drawingAreaG VC,`20`20`20`20`20`20`20`20`20`20`20`20/*`20GC`20to`20use`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20(`20(`20loca VlWidth`20/`202`20)`20- X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20( V`20textLength1`20/`202`20)`20),`20/*`20X:`20left`20end`20of`20baseline`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20tempYTextPos V,`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20Y:`20left`20end`20of`20baseline V`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20tempString1, V`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20String`20to`20draw`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20strlen`20( V`20tempString1`20)`20);`20/*`20Length`20of`20string`20*/ X X94`20`20`20`20`20`20tempYTextPos`20+=`20textHeight; X95`20`20`20`20`20`20XDrawString`20(`20display,`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20/*`20Display`20info`20structure`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20window,`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20Window`20in`20which V`20to`20draw`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20drawingAreaG VC,`20`20`20`20`20`20`20`20`20`20`20`20/*`20GC`20to`20use`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20(`20(`20loca VlWidth`20/`202`20)`20- X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20( V`20textLength2`20/`202`20)`20),`20/*`20X:`20left`20end`20of`20baseline`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20tempYTextPos V,`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20Y:`20left`20end`20of`20baseline V`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20tempString2, V`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20String`20to`20draw`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20strlen`20( V`20tempString2`20)`20);`20/*`20Length`20of`20string`20*/ X X96`20`20`20`20`20`20XDrawString`20(`20display,`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20/*`20Display`20info`20structure`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20pixmapid,`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20Pixmap`20in`20which`20to V`20draw`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20drawingAreaG VC,`20`20`20`20`20`20`20`20`20`20`20`20/*`20GC`20to`20use`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20(`20(`20loca VlWidth`20/`202`20)`20- X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20( V`20textLength2`20/`202`20)`20),`20/*`20X:`20left`20end`20of`20baseline`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20tempYTextPos V,`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20Y:`20left`20end`20of`20baseline V`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20tempString2, V`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20String`20to`20draw`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20strlen`20( V`20tempString2`20)`20);`20/*`20Length`20of`20string`20*/ X X97`20`20`20`20`20`20tempYTextPos`20+=`20textHeight; X98`20`20`20`20`20`20XDrawString`20(`20display,`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20/*`20Display`20info`20structure`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20window,`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20Window`20in`20which V`20to`20draw`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20drawingAreaG VC,`20`20`20`20`20`20`20`20`20`20`20`20/*`20GC`20to`20use`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20(`20(`20loca VlWidth`20/`202`20)`20- X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20( V`20textLength3`20/`202`20)`20),`20/*`20X:`20left`20end`20of`20baseline`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20tempYTextPos V,`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20Y:`20left`20end`20of`20baseline V`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20tempString3, V`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20String`20to`20draw`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20strlen`20( V`20tempString3`20)`20);`20/*`20Length`20of`20string`20*/ X X99`20`20`20`20`20`20XDrawString`20(`20display,`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20/*`20Display`20info`20structure`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20pixmapid,`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20Pixmap`20in`20which`20to V`20draw`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20drawingAreaG VC,`20`20`20`20`20`20`20`20`20`20`20`20/*`20GC`20to`20use`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20(`20(`20loca VlWidth`20/`202`20)`20- X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20( V`20textLength3`20/`202`20)`20),`20/*`20X:`20left`20end`20of`20baseline`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20tempYTextPos V,`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20Y:`20left`20end`20of`20baseline V`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20tempString3, V`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20String`20to`20draw`20*/ X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20strlen`20( V`20tempString3`20)`20);`20/*`20Length`20of`20string`20*/ X X`20`20`20`20`20`20`20`20/* X`20`20`20`20`20`20`20`20`20*`20Flush`20all`20queued`20requests`20so`20the`20gr Vaphics`20are`20updated. X`20`20`20`20`20`20`20`20`20*/ X100`20`20`20`20`20XFlush`20(`20display`20); X X`7D X X $ call unpack DRAWX.DSJ;1 470934695 "" 52 1 1 $ v=f$verify(v) $ exit