Patch title: Release 96 bulk changes
Abstract:
File: /pliant/graphic/layout/test.pli
Key:
    Removed line
    Added line
# pliant 'precompile /binary/browser.dump module /pliant/install/minimal.pli module /pliant/graphic/image/rip.pli' module /pliant/graphic/layout/test.pli
# pliant 'precompile /binary/ui.dump module /pliant/install/minimal.pli module /pliant/graphic/image/rip.pli' module /pliant/graphic/layout/test.pli

module "/pliant/language/unsafe.pli"
module "prototype.pli"
module "sequence.pli"
module "table.pli"
module "text.pli"
module "/pliant/graphic/color/gamut.pli"
module "/pliant/graphic/color/color.pli"
module "/pliant/graphic/image/pixmap.pli"
module "/pliant/graphic/vector/font.pli"
module "/pliant/graphic/draw/image.pli"
module "/pliant/graphic/image/antialiasing.pli"
module "/pliant/graphic/filter/io.pli"

constant resolution 100
constant antialiasing 4

function test
  var Link:LayoutStyle s :> new LayoutStyle
  s:text_font size := 4
  s:text_font 0 :> font "Free Sans"
  s:text_font 1 :> font "Free Sans Bold"
  s:text_font 2 :> font "Free Sans Oblique"
  s:text_font 3 :> font "Free Sans Bold Oblique"
  s text_scale := 12/72*25.4
  s text_color := color rgb 0 0 64
  s text_space := 6/72*25.4
  s text_justify := true
  s table_padding := 2
  s table_border := 1
  s table_border_color := color rgb 64 128 64
  var Link:LayoutSequence sq :> new LayoutSequence
  var Link:LayoutText t :> new LayoutText
  t para := true
  t style :> s
  t text "Hello word. "
  sq append t
  var Link:LayoutText t :> new LayoutText
  t para := true
  t style :> s
  t text "Welcome. "
  t text (repeat 50 "Hello ")
  t text "word."
  t text (repeat 50 " ")+"end of space foo "+(repeat 10 "abc")+" "+(repeat 50 "abc")+" end of all."
  sq append t
  var Link:LayoutTable tbl :> new LayoutTable
  tbl style :> s
  tbl resize 5 10
  for (var Int iy) 0 tbl:ny-1
    for (var Int ix) 0 tbl:nx-1
      var Link:LayoutText t :> new LayoutText
      t style :> s
      t text "cell "+string:ix+" "+string:iy
      if ix=1 and iy=2
        for (var Int k) 1 50
          t text " "+string:k
      (tbl ix iy) append addressof:t
  tbl:properties define (cast 1 Address) (cast 2 Address) addressof:(new LayoutColor (color rgb 224 208 192))
  sq append tbl
  var LayoutPC pc
  var LayoutArea a ; a x0 := 0 ; a y0 := 0 ; a x1 := 210 ; a y1 := 297
  pc all_areas += a
  pc current_area :> pc:all_areas first
  pc largest_area :> pc current_area
  pc area := a
  pc update := false
  sq position pc
  var Link:ImagePixmap pm :> new ImagePixmap
  console "page size is " (string pc:bbox:x1-pc:bbox:x0 "fixed 0") " x " (string pc:bbox:y1-pc:bbox:y0 "fixed 0") " mm" eol
  pm setup (image_prototype pc:bbox:x0 pc:bbox:y0 pc:bbox:x1 pc:bbox:y1 resolution*antialiasing resolution*antialiasing antialiasing antialiasing image_adjust_extend color_gamut:"rgb") ""
  for (var Int y) 0 pm:size_y-1
    var Int white := 0E0E0E0h
    pm fill 0 y pm:size_x addressof:white
  var Link:DrawImage d :> new DrawImage
  d bind pm ""
  var LayoutDC dc
  dc bbox := pc bbox
  dc gamut :> pm gamut
  sq draw d dc
  if antialiasing>1
    var Link:ImageAntiAliasing aa :> new ImageAntiAliasing
    aa bind pm antialiasing antialiasing
    pm :> addressof:aa map ImagePixmap
  pm save "file:/tmp/browser.png" ""
  pm save "file:/tmp/ui.png" ""

test