<<>> <> <> <> <> DIRECTORY IO, Rope, Imager, ImagerBackdoor, ImagerSample, Random, Process, SF, X11, XlBitmapWindow; XlBMWTestsImpl2: CEDAR PROGRAM IMPORTS Imager, ImagerSample, ImagerBackdoor, Random, Process, X11, XlBitmapWindow ~ BEGIN ROPE: TYPE ~ Rope.ROPE; DetachStart: PROC [] = { TRUSTED{Process.Detach[FORK Start[]]} }; DetachStop: PROC [] = { TRUSTED{Process.Detach[FORK Stop[]]} }; sm: ImagerSample.SampleMap ¬ NIL; handle: XlBitmapWindow.Handle ¬ NIL; sz: INT ¬ 15; fork: INT ¬ 3; connection: X11.Connection ¬ NIL; Run: PROC [] = { h1: XlBitmapWindow.Handle ¬ handle; ct: Imager.Context ¬ XlBitmapWindow.CreateContext[handle]; dx: REAL ¬ Random.ChooseInt[min: -100, max: 100]/20.0; dy: REAL ¬ Random.ChooseInt[min: -100, max: 100]/20.0; IF ct#NIL THEN { oldBox, newBox: Imager.Box ¬ [1, 1, 0, 0]; r: Imager.Rectangle ¬ ImagerBackdoor.GetBounds[ct]; x: REAL ¬ r.x+ r.w/2; y: REAL ¬ r.y+ r.h/2; Imager.MaskBox[ct, oldBox]; WHILE h1=handle DO x ¬ x+dx; IF dx>0 THEN {IF x>r.x+r.w THEN {dx¬-dx; x ¬ x+2*dx}} ELSE {IF x0 THEN {IF y>r.y+r.h THEN {dy¬-dy; y ¬ y+2*dy}} ELSE {IF y