Patch title: Release 94 bulk changes
Abstract:
File: /pliant/graphic/browser/sample/test.pli
Key:
    Removed line
    Added line
module "/pliant/language/unsafe.pli"
module "/pliant/language/stream.pli"
module "/pliant/graphic/browser/server/api.pli"
module "/pliant/graphic/browser/server/image.pli"
module "/pliant/graphic/browser/server/draw.pli"

module "/pliant/graphic/color/gamut.pli"
module "/pliant/graphic/image/prototype.pli"
module "/pliant/graphic/image/pixmap.pli"


browser_page "/test"
  style_copy "" "title"
  style_copy "" "highlight"
  style_set "highlight" text color (color rgb 128 0 0)
  window left
    button "exit" key "alt x"
      url_return
    section "ts" dynamic
      text (string datetime:time)
  browser_thread
    while connection=success
      sleep 0.9
      section_replay "ts"
      flush
    console "done." eol
  window main
    title "Test page"
    header "Text demonstration"
    hook
      section "p1"
        style (text justify true)
          para cursor edit
            style use "highlight"
              text "A long text: "
            text "This is also very "
            style (text color (color rgb 0 255 0))
              text "productive"
            text " at company or organization level because the ability to write all code using a single language, means better internal communication and load sharing since more people (I mean advanced end users, not only dedicated programmers) will be able to read, and submit small but very time saving improvements in the code."
            eol
            text "Basically, it enables any organization to internally switch from a closed softwares like model (a huge closed and over-helmeted computing department handles everything) to an open software like model where some advanced users may contribute to the software development, and it is possible because Pliant is a reasonable tool for both professional programmers and advanced end users."
    event
      console "got an event: event '" event "' key '" key "' pointer_section '" pointer_section "' pointer_index " pointer_index " x " pointer_x " y " pointer_y " focus_section '" focus_section "' focus_index " focus_index eol
    para
      text "This is "
      bold
        text "bold"
      text " attribute."
      eol
      text "This is "
      italic
        text "italic"
      text " attribute."
      eol
      text "This is "
      fixed
        text "fixed"
      text " attribute."
    header
      text "Sections demonstration"
    section "dt"
      para stick
        text "- empty -"
    para
      button "before"
        section_before "dt"
          para stick
            text string:datetime
      button "head"
        section_head "dt"
          para stick
            text string:datetime
      button "over"
        section_overwrite "dt"
          para stick
            text string:datetime
      button "tail"
        section_tail "dt"
          para stick
            text string:datetime
      button "after"
        section_after "dt"
          para stick
            text string:datetime
    header
      text "Input demonstration"
    para
      text "Another sample button "
      link "foo"
        section_overwrite "help"
          text "clic"
      text " that did behave poorly beeeeeeeeeeeeeeeeeeeeecause of the justification."
    ovar Int v1 := undefined ; ovar Int v2 := undefined
    para
      section "input1" inside
        input "" v1 help "Please enter the first number here"
          section_replay "result"
      input " + " v2 over
        if over_on
          section_overwrite "help"
            text "Please enter the second number here"
        eif over_off
          section_overwrite "help"
            void
        else
          section_replay "result"
      section "result" dynamic inside
        if v1<>undefined and v2<>undefined
          text " = "+(string v1+v2)
      text " "
      button "compute"
        section_replay "result"
    para
      ovar Str s1 := "p2"
      select "Select sample: " s1 help "This is just a sample select field"
        option "Proposition 1" "p1"
        option "Proposition 2" "p2"
        option "Proposition 3" "p3"
        option "Proposition 4" "p4"
      text " "
      button "display it"
        section_overwrite "help"
          text "selected value is : "+s1
        focus_set "input1" 0
    para
      ovar Str s2 := "abc[lf]def"
      input "Multiline input: " s2 multiline
    header
      text "Table demonstration"
    table
      row
        cell header
          text "A simple table"
        style (cell bg_color (color rgb 224 224 192))
          cell
            text "With 2 columns"
      for (var Int r) 1 3
        row
          cell
            text "A"+string:r
          cell
            if r=2
              table
                row
                  cell
                    text "C1"
                  cell
                    text "C2"
                row
                  cell
                    text "D1"
                  cell
                    text "D2"
            else
              text "B"+string:r
    header
      text "Image demonstration"
    var Link:ImagePrototype img :> new ImagePixmap
    img setup (image_prototype -10 -10 10 10 256 256 color_gamut:"rgb") ""
    for (var Int y) 0 255
      for (var Int x) 0 255
        var Int v := x+y*256
        img write x y 1 addressof:v
    para
      text "An image "
      image_define "img1" img
      image_copy "img1" 200 200 250 250 "img1" 100 100
      image_inline "img1"
      text " in the middle of a text"
    header
      text "Drawing demonstration"
    para
      text "A drawing "
      draw -10 -10 10 10
        fill (color rgb 255 0 0)
          curve
            angle -10 -10
            point 2 -2 tg_in 0 -1 auto_out
            point -2 2 in 5 0 out -10 0
          curve
            through 0 -1
            through 1 0
            through 0 1
            through -1 0
      text " in the middle of a text"
  window bottom
    section "help"
      void