Patch title: Release 94 bulk changes
Abstract:
File: /pliant/protocol/http/default.page
Key:
    Removed line
    Added line
   
module "/pliant/language/context.pli"
module "/pliant/language/unsafe.pli"
module "/pliant/language/stream.pli"
module "/pliant/admin/file.pli"
module "/pliant/graphic/image/prototype.pli"
module "/pliant/graphic/image/pixmap.pli"
module "/pliant/graphic/image/resampling.pli"
module "/pliant/graphic/image/sharpening.pli"
module "/pliant/graphic/image/antialiasing.pli"
module "/pliant/graphic/color/gamut.pli"
module "/pliant/graphic/filter/io.pli"
module "/pliant/math/transform.pli"
module "/pliant/graphic/vector/outline.pli"
module "/pliant/graphic/vector/font.pli"
module "/pliant/graphic/misc/float.pli"
module "/pliant/util/encoding/http.pli"
module "/pliant/util/encoding/date.pli"
module "/pliant/protocol/http/style/common.pli"
module "cache.pli"


function draw_text label options style_options aa -> img
  arg Str label options style_options ; arg Int aa ; arg Lin
  if not ((options (options option_position "font" options:l
    face := ""
  var Link:Font f :> font face
  if not exists:f
    img :> null map ImagePixmap
    return
  var CBool shaded := ((options (options option_position "sh
  if not shaded
    tx := 0 ; ty := 0
  img :> new ImagePixmap
module "/pliant/language/context.pli"
module "/pliant/language/unsafe.pli"
module "/pliant/language/stream.pli"
module "/pliant/admin/file.pli"
module "/pliant/graphic/image/prototype.pli"
module "/pliant/graphic/image/pixmap.pli"
module "/pliant/graphic/image/resampling.pli"
module "/pliant/graphic/image/sharpening.pli"
module "/pliant/graphic/image/antialiasing.pli"
module "/pliant/graphic/color/gamut.pli"
module "/pliant/graphic/filter/io.pli"
module "/pliant/math/transform.pli"
module "/pliant/graphic/vector/outline.pli"
module "/pliant/graphic/vector/font.pli"
module "/pliant/graphic/misc/float.pli"
module "/pliant/util/encoding/http.pli"
module "/pliant/util/encoding/date.pli"
module "/pliant/protocol/http/style/common.pli"
module "cache.pli"


function draw_text label options style_options aa -> img
  arg Str label options style_options ; arg Int aa ; arg Lin
  if not ((options (options option_position "font" options:l
    face := ""
  var Link:Font f :> font face
  if not exists:f
    img :> null map ImagePixmap
    return
  var CBool shaded := ((options (options option_position "sh
  if not shaded
    tx := 0 ; ty := 0
  img :> new ImagePixmap
  f bbox label null undefined (var Float x0) (var Float y0) 
  f bbox label null (var Float x0) (var Float y0) (var Float x1) (var Float y1) ; x0 *= size ; y0 *= size ; x1 *= size ; y1 *= size
  var ImagePrototype proto := image_prototype x0+(min tx 0) 
  if 1n*proto:size_x*proto:size_y>=pixel_limit
    img :> null map ImagePixmap
    return
  img setup proto ""
  var ColorRGB888 bgcolor := color hexa (options option "bgc
  img clear bgcolor
  var ColorRGB888 color := color hexa (options option "color
  var ImagePrototype proto := image_prototype x0+(min tx 0) 
  if 1n*proto:size_x*proto:size_y>=pixel_limit
    img :> null map ImagePixmap
    return
  img setup proto ""
  var ColorRGB888 bgcolor := color hexa (options option "bgc
  img clear bgcolor
  var ColorRGB888 color := color hexa (options option "color
  img text label f null undefined (transform 0 0 size size 0
  img text label f null (transform 0 0 size size 0 0) addressof:color
  if shaded 
    shade img (color hexa scolor) blur tx ty bgcolor

function draw_button label options style_options aa -> img
  arg Str label ; arg Str options style_options ; arg Int aa
  if not ((options (options option_position "font" options:l
    face := ""
  var Link:Font f :> font face
  if not exists:f
    img :> null map ImagePixmap
    return
  if shaded 
    shade img (color hexa scolor) blur tx ty bgcolor

function draw_button label options style_options aa -> img
  arg Str label ; arg Str options style_options ; arg Int aa
  if not ((options (options option_position "font" options:l
    face := ""
  var Link:Font f :> font face
  if not exists:f
    img :> null map ImagePixmap
    return
  f bbox label null undefined (var Float x0) (var Float y0) 
  f bbox label null (var Float x0) (var Float y0) (var Float x1) (var Float y1) ; x0 *= size ; y0 *= size ; x1 *= size ; y1 *= size
  var Float extend := options option "extend" Float
  var Float shift := 0
  if extend=defined and x1-x0<extend
    if (options option "center")
      shift := (extend-(x1-x0))/2
    x1 := x0+extend
  var Float dx := x1-x0
  var Float dy := y1-y0
  var Link:ImagePixmap b :> new ImagePixmap
  if (b load icon_file:(options option "button" Str "button.
    img :> null map ImagePixmap
    return
  if not ((options (options option_position "bsize" options:
    size_x := b:x1-b:x0
    size_y := b:y1-b:y0
  b x0 := 0 ; b x1 := size_x
  b y0 := 0 ; b y1 := size_y
  if not ((options (options option_position "margin" options
    left := 0.25*size_x
    top := 0.25*size_y
    right := 0.25*size_x
    bottom := 0.25*size_y
  var Float sx := size_x-left-right
  var Float sy := size_y-top-bottom
  img :> new ImagePixmap
  var ImagePrototype proto := image_prototype 0 0 left+dx+ri
  if 1n*proto:size_x*proto:size_y>=pixel_limit
    img :> null map ImagePixmap
    return
  img setup proto ""
  img clear (color hexa (options option "bgcolor" Str "FFFFF
  var ColorRGB888 bcolor := color hexa (options option "bcol
  for (var Int iy) 0 2
    for (var Int ix) 0 2
      past b (shunt ix=0 0 ix=1 left left+sx) (shunt iy=0 0 
  var ColorRGB888 tcolor := color hexa (options option "tcol
  var Float extend := options option "extend" Float
  var Float shift := 0
  if extend=defined and x1-x0<extend
    if (options option "center")
      shift := (extend-(x1-x0))/2
    x1 := x0+extend
  var Float dx := x1-x0
  var Float dy := y1-y0
  var Link:ImagePixmap b :> new ImagePixmap
  if (b load icon_file:(options option "button" Str "button.
    img :> null map ImagePixmap
    return
  if not ((options (options option_position "bsize" options:
    size_x := b:x1-b:x0
    size_y := b:y1-b:y0
  b x0 := 0 ; b x1 := size_x
  b y0 := 0 ; b y1 := size_y
  if not ((options (options option_position "margin" options
    left := 0.25*size_x
    top := 0.25*size_y
    right := 0.25*size_x
    bottom := 0.25*size_y
  var Float sx := size_x-left-right
  var Float sy := size_y-top-bottom
  img :> new ImagePixmap
  var ImagePrototype proto := image_prototype 0 0 left+dx+ri
  if 1n*proto:size_x*proto:size_y>=pixel_limit
    img :> null map ImagePixmap
    return
  img setup proto ""
  img clear (color hexa (options option "bgcolor" Str "FFFFF
  var ColorRGB888 bcolor := color hexa (options option "bcol
  for (var Int iy) 0 2
    for (var Int ix) 0 2
      past b (shunt ix=0 0 ix=1 left left+sx) (shunt iy=0 0 
  var ColorRGB888 tcolor := color hexa (options option "tcol
  img text label f null undefined (transform left-x0+shift t
  img text label f null (transform left-x0+shift top-y0 size size 0 0) addressof:tcolor