Patch title: Release 96 bulk changes
Abstract:
File: /pliant/graphic/layout/helper/position.pli
Key:
    Removed line
    Added line
   
module "/pliant/language/unsafe.pli"
module "/pliant/language/compiler.pli"
module "/pliant/graphic/layout/prototype.pli"
module "/pliant/graphic/layout/prototype.pli"
module "/pliant/graphic/browser/client/context.pli"
module "/pliant/graphic/ui/client/context.pli"
module "/pliant/graphic/vector/font.pli"






method s reposition start
  arg_rw UISession s ; oarg_rw LayoutPrototype start
  var Pointer:LayoutPrototype p :> start
  var Str all := ""
  part scan
    all += " "+string:(cast addressof:p Int)
    all += ":"+(entry_type addressof:p):name
    p reset_position
    var Pointer:LayoutPrototype q :> p parent
    if exists:q
      p :> q
      restart scan
  each w s:windows
    if (addressof w:root)=addressof:p
      w refresh := true
    if (addressof w:overlay)=addressof:p
      w orefresh := true
  start reset_http_proxy_flags


method c setup w s x0 y0 x1 y1 flags
method c setup w s x0 y0 x1 y1 flags
  arg_rw LayoutPC c ; arg BrowserWindow w ; arg LayoutStyle 
  arg_rw LayoutPC c ; arg UIWindow w ; arg LayoutStyle s ; arg Float x0 y0 x1 y1 ; arg Int flags
  c window :> w
  c style :> s
  c:area x0 := x0
  c:area y0 := y0
  c:area x1 := x1
  c:area y1 := y1
  c all_areas := var List:LayoutArea empty_list
  c all_areas += c area
  c current_area :> c:all_areas first
  c flags := flags

method c setup w s bl flags
  c window :> w
  c style :> s
  c:area x0 := x0
  c:area y0 := y0
  c:area x1 := x1
  c:area y1 := y1
  c all_areas := var List:LayoutArea empty_list
  c all_areas += c area
  c current_area :> c:all_areas first
  c flags := flags

method c setup w s bl flags
  arg_rw LayoutPC c ; arg BrowserWindow w ; arg LayoutStyle 
  arg_rw LayoutPC c ; arg UIWindow w ; arg LayoutStyle s ; arg List:LayoutArea bl ; arg Int flags
  c window :> w
  c style :> s
  c all_areas := bl
  c current_area :> c:all_areas first
  c area := c current_area
  c flags := flags


  c window :> w
  c style :> s
  c all_areas := bl
  c current_area :> c:all_areas first
  c area := c current_area
  c flags := flags


export '. set_position'
export '. set_position' '. reposition'
export '. setup'
export '. setup'


function area x0 y0 x1 y1 -> a
  arg Float x0 y0 x1 y1 ; arg LayoutArea a
  a x0 := x0 ; a y0 := y0 ; a x1 := x1 ; a y1 := y1

function content_position label style -> bbox
  arg Str label ; arg LayoutStyleLabel style ; arg LayoutArea bbox
  style:font bbox label null 0 style:size bbox:x0 bbox:y0 bbox:x1 bbox:y1

function box_position content style -> bbox
  arg LayoutArea content ; arg LayoutStyleBox style ; arg LayoutArea bbox
  bbox x0 := content:x0-style:padding:x0
  bbox y0 := content:y0-style:padding:y0
  bbox x1 := content:x1+style:padding:x1
  bbox y1 := content:y1+style:padding:y1

export area content_position box_position