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/ins
# pliant 'precompile /binary/ui.dump module /pliant/install/minimal.pli module /pliant/graphic/image/rip.pli' module /pliant/graphic/layout/test.pli


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
  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) ad
  sq append tbl
  var LayoutPC pc
  var LayoutArea a ; a x0 := 0 ; a y0 := 0 ; a x1 := 210 ; a
  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 "fix
  pm setup (image_prototype pc:bbox:x0 pc:bbox:y0 pc:bbox:x1
  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


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
  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) ad
  sq append tbl
  var LayoutPC pc
  var LayoutArea a ; a x0 := 0 ; a y0 := 0 ; a x1 := 210 ; a
  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 "fix
  pm setup (image_prototype pc:bbox:x0 pc:bbox:y0 pc:bbox:x1
  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

test