link graphics,printf procedure main() # generalized colour bars DrawTestCard(Simple_TestCard()) WDone() end procedure DrawTestCard(TC) size := sprintf("size=%d,%d",TC.width,TC.height) &window := TC.window := open(TC.id,"g","bg=black",size) | stop("Unable to open window") every R := TC.bands[r := 1 to *TC.bands -1] do every C := R.bars[c := 1 to *R.bars - 1] do { Fg(R.bars[c].colour) FillRectangle( C.left, R.top, R.bars[c+1].left-C.left, TC.bands[r+1].top-R.top ) } return TC end record testcard(window,id,width,height,bands) record band(top,bars) record bar(left,colour) procedure Simple_TestCard() #: return structure simple testcard return testcard(,"Simple Test Card",width := 800,height := 600, [ band( 1, [ bar( 1, "black"), bar(114, "red"), bar(228, "green"), bar(342, "blue"), bar(456, "magenta"), bar(570, "cyan"), bar(684, "yellow"), bar(width) ] ), band(height) ]) end