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

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


ui_path "/test"
  style_copy "" "title"
  style_copy "" "highlight"
  style_set "highlight" "standard/text/color" (color rgb 128 0 0)
  window left
    button "exit" key "alt x"
      url_return
    section "ts" dynamic
      text (string datetime:time)
  ui_thread
    while connection=success
      sleep 0.9
      section_replay "ts"
      flush
    console "done." eol
  window main
    title "Test page"
    header "Text demonstration"
    para
      text "Un petit texte en français."
    hook ssr
      section "p1"
        style set "standard/para/justify" true
          para cursor edit
            style use "highlight"
              text "A long text: "
            text "This is also very "
            style set "standard/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."
    clic
      console "got a clic" eol
    event
      console "got an event: event '" event "' key '" key "' buttons " buttons " pointer_section '" pointer_section "' pointer_index " pointer_index " x " pointer_x " y " pointer_y " focus_section '" focus_section "' focus_index " focus_index eol
      if event="press" and key="button1"
        focus_set "p1" 0
    over
      console "over is " key eol
    move
      console "at " pointer_x " " pointer_y "      [cr]"
    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
    hook
      para
        section "input1" inside
          input "" v1 help "Please enter the first number here"
          if false
            section_replay "result"
        input " + " v2 help "Please enter the second number here"
        section "result" dynamic inside
          if v1<>undefined and v2<>undefined
            text " = "
            bold 
              text (string v1+v2)
        text " "
        button "compute"
          section_replay "result"
    change
      console "change " key " (" event_options ")" eol
      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"
      ovar Str s2
      input " and text sample " s2 help "This is just a sample text field"
      text " "
      button "display it"
        section_overwrite "help"
          text "selected value is "+s1+" and text value is "+s2
        focus_set "input1" 0
    para
      ovar Str m3 := "abc[lf]def"
      input "Multiline input: " m3 multiline
    header
      text "Table demonstration"
    table
      row
        cell header
          text "A simple table"
        style set "table/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
              style set "table/border/size" 0.5 set "table/border/color" (color rgb 64 128 64) set "table/box/mode" 0 set "table/cell/r1/round" 2 set "table/cell/r2/round" 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