Patch title: Release 95 bulk changes
Abstract:
File: /pliant/graphic/layout/restyle.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"



method s draw d c
  oarg_rw LayoutRestyle s ; oarg_rw DrawPrototype d ; arg_rw
module "/pliant/language/compiler.pli"
module "/pliant/graphic/draw/prototype.pli"
module "prototype.pli"
module "helper/recurse.pli"
module "helper/position.pli"



method s draw d c
  oarg_rw LayoutRestyle s ; oarg_rw DrawPrototype d ; arg_rw
  if s:bbox:x0=undefined or (s:bbox intersects c:bbox)
  if s:bbox:x0=undefined or (s:bbox intersects_y c:bbox)
    var Pointer:LayoutStyle memo :> c style
    if (exists s:style)
      c style :> s style
    each attr s:attributes
      memory_swap ((addressof c:style) translate Byte attr:o
    s draw_recurse d c
    each attr s:attributes
      memory_swap ((addressof c:style) translate Byte attr:o
    c style :> memo


method s event c
  oarg_rw LayoutRestyle s ; arg_rw LayoutEC c
    var Pointer:LayoutStyle memo :> c style
    if (exists s:style)
      c style :> s style
    each attr s:attributes
      memory_swap ((addressof c:style) translate Byte attr:o
    s draw_recurse d c
    each attr s:attributes
      memory_swap ((addressof c:style) translate Byte attr:o
    c style :> memo


method s event c
  oarg_rw LayoutRestyle s ; arg_rw LayoutEC c
  if c:mode=layout_event_pointer and (s:bbox:x0=undefined or
  if c:mode=layout_event_pointer and (s:bbox:x0=undefined or s:bbox:y0<=c:y and s:bbox:y1>=c:y)
    var Pointer:LayoutStyle memo :> c style
    if (exists s:style)
      c style :> s style
    each attr s:attributes
      memory_swap ((addressof c:style) translate Byte attr:o
    s event_recurse c
    each attr s:attributes
      memory_swap ((addressof c:style) translate Byte attr:o
    c style :> memo



export memory_swap
export restyle_enter restyle_leave
    var Pointer:LayoutStyle memo :> c style
    if (exists s:style)
      c style :> s style
    each attr s:attributes
      memory_swap ((addressof c:style) translate Byte attr:o
    s event_recurse c
    each attr s:attributes
      memory_swap ((addressof c:style) translate Byte attr:o
    c style :> memo



export memory_swap
export restyle_enter restyle_leave