Patch title: Release 94 bulk changes
Abstract:
File: /pliant/graphic/layout/sequence.pli
Key:
    Removed line
    Added line
   
module "/pliant/language/compiler.pli"
module "/pliant/graphic/draw/prototype.pli"
module "prototype.pli"
module "helper/recurse.pli"
module "helper/position.pli"


public
  type LayoutSequence
    field Link:LayoutPrototype next
    field Int parent_and_flags <- 0
    field LayoutArea bbox
    field Link:LayoutPrototype first_son

  type LayoutSection
    field Link:LayoutPrototype next
    field Int parent_and_flags <- 0
    field LayoutArea bbox
    field Link:LayoutPrototype first_son
    field Str section

  LayoutPrototype maybe LayoutSequence
  LayoutPrototype maybe LayoutSection


function build s
  arg_w LayoutSequence s
  s:bbox x0 := undefined

function build s
  arg_w LayoutSection s
  s:bbox x0 := undefined


method s position c -> b
  oarg_rw LayoutSequence s ; arg_rw LayoutPC c ; arg LayoutArea b
  b := s position_recurse c
  s set_position b


method s draw d c
  oarg_rw LayoutSequence s ; oarg_rw DrawPrototype d ; arg_rw LayoutDC c
  if s:bbox:x0=undefined or (s:bbox intersects c:bbox)
    s draw_recurse d c


method s event c
  oarg_rw LayoutSequence s ; arg_rw LayoutEC c
  if c:mode=layout_event_pointer and (s:bbox:x0=undefined or s:bbox:x0<=c:x and s:bbox:y0<=c:y and s:bbox:x1>=c:x and s:bbox:y1>=c:y)
    s event_recurse c


method s first -> p
  oarg_rw LayoutSequence s ; arg_C Link:LayoutPrototype p
  p :>> s first_son


method s position c -> b
  oarg_rw LayoutSection s ; arg_rw LayoutPC c ; arg LayoutArea b
  b := s position_recurse c
  s set_position b


method s draw d c
  oarg_rw LayoutSection s ; oarg_rw DrawPrototype d ; arg_rw LayoutDC c
  if s:bbox:x0=undefined or (s:bbox intersects c:bbox)
    s draw_recurse d c


method s event c
  oarg_rw LayoutSection s ; arg_rw LayoutEC c
  if c:mode=layout_event_pointer and (s:bbox:x0=undefined or s:bbox:x0<=c:x and s:bbox:y0<=c:y and s:bbox:x1>=c:x and s:bbox:y1>=c:y)
    s event_recurse c


method s first -> p
  oarg_rw LayoutSection s ; arg_C Link:LayoutPrototype p
  p :>> s first_son