9.39 hyperref

<..config hyperref form 4..>
 \Configure{Form}
    {\IgnorePar\EndP\leavevmode \Tg<form \Hnewline \Attributes>}
    {\IgnorePar\EndP\Tg</form>}
-_-_-

<..configure html4 hyperref..>
 <.config hyperref form 4.>
 <.hyperref shared.>
 <.hyperref TextField.>
 <.hyperref multiline.>
 <.hyperref password.>
 <.hyperref radio.>
 <.hyperref on....>
 \NewConfigure{::action}{1}
 \Configure{::action}
    {\edef\Attributes{\Attributes\space action="\AttributeVal"}}
 \NewConfigure{::method}{1}
 \Configure{::method}
    {\edef\Attributes{\Attributes\space method="\AttributeVal"}}
 \NewConfigure{PushButton::}{1}
 \Configure{PushButton::}
    {\leavevmode\Tg<input type="button" \Attributes\space/>}
 \NewConfigure{Reset::}{1}
 \Configure{Reset::}
   {\leavevmode\Tg<input type="reset" \Attributes\space/>}
 \NewConfigure{Submit::}{1}
 \Configure{Submit::}
   {\leavevmode\Tg<input type="submit" \Attributes\space/>}
 \NewConfigure{CheckBox::}{2}
 \Configure{CheckBox::}
   {\leavevmode\Tg<input type="checkbox" \Attributes\space/>}{}
 \NewConfigure{CheckBox::checked}{2}
 \Configure{CheckBox::checked}
   {\leavevmode\Tg<input type="checkbox" checked="checked"
       \Attributes\space/>}{}
 \HAssign\form:id=0
-_-_-

<..hyperref shared..>
 \NewConfigure{::value}{1}
 \Configure{::value}
    {\edef\Attributes{\Attributes\space value="\AttributeVal"}}
 \NewConfigure{::name}{1}
 \Configure{::name}
    {\edef\Attributes{\Attributes\space name="\AttributeVal"}}
 \NewConfigure{::default}{1}
 \Configure{::default}
    {\let\::default=\AttributeVal}
 \def\get:int#1.#2//{\tmp:cnt=#1 }
-_-_-

 
 \NewConfigure{::borderwidth}{1}
 \Configure{::borderwidth}
    {\Css{div\#form-\form:id {border-width: \AttributeVal;
                               border-style:solid;}}}
 \NewConfigure{::bordercolor}{1}
 \Configure{::bordercolor}
    {\expandafter\get:colors\AttributeVal//%
       \Css{div\#form-\form:id {border-color:\AttributeVal}}}
 \def\get:colors#1 #2 #3//{%
    \get:color{#1}\edef\AttributeVal{\the\tmp:cnt\%}%
    \get:color{#2}\edef\AttributeVal{\AttributeVal,
         \the\tmp:cnt\%}%
    \get:color{#3}\edef\AttributeVal{rgb(\AttributeVal,
         \the\tmp:cnt\%)}%
 }
 \def\get:color#1{%
    \tmp:dim=#1pt \multiply\tmp:dim by 100
    \expandafter\get:int\the\tmp:dim//}

<..hyperref on.....>
 \def\:tempc#1{%
   \NewConfigure{::#1}{1}%
   \Configure{::#1}%
     {\edef\Attributes{\Attributes\space #1="\AttributeVal"}}}
 \:tempc{onclick}
 \:tempc{onblur}
 \:tempc{onchange}
 \:tempc{onclick}
 \:tempc{ondblclick}
 \:tempc{onfocus}
 \:tempc{onkeydown}
 \:tempc{onkeypress}
 \:tempc{onkeyup}
 \:tempc{onmousedown}
 \:tempc{onmousemove}
 \:tempc{onmouseout}
 \:tempc{onmouseover}
 \:tempc{onmouseup}
 \:tempc{onselect}
-_-_-

<..hyperref TextField..>
 \NewConfigure{TextField::}{2}
 \Configure{TextField::}{}{ \Tg<input type="text" \Attributes />}
 \NewConfigure{TextField::width}{1}
 \Configure{TextField::width}
    {\tmp:dim=\AttributeVal   \divide\tmp:dim by 6
     \expandafter\get:int\the\tmp:dim//%
     \edef\Attributes{\Attributes\space size="\the\tmp:cnt"}}
 \NewConfigure{TextField::default}{1}
 \Configure{TextField::default}
    {\edef\Attributes{\Attributes\space value="\AttributeVal"}}
-_-_-

<..hyperref multiline..>
 \NewConfigure{TextField::multiline}{2}
 \Configure{TextField::multiline}
   {}
   { \Tg<textarea
         \Attributes>\expandafter\set:ln\multiline:value,<.par del.>%
   \global\let\multiline:value=\empty \Tg</textarea>}
 
 \let\multiline:value=\empty
 \def\set:ln#1,#2<.par del.>{#1%
   \def\:temp{#2}\ifx \:temp\empty \else
      \hfil\break  \def\:temp{\set:ln#2<.par del.>}%
   \fi \:temp}
 
 \NewConfigure{multiline::value}{1}
 \Configure{multiline::value}
   {\let\multiline:value=\AttributeVal}
 
 \NewConfigure{multiline::width}{1}
 \Configure{multiline::width}
    {\tmp:dim=\AttributeVal   \divide\tmp:dim by 6
     \expandafter\get:int\the\tmp:dim//%
     \edef\Attributes{\Attributes\space cols="\the\tmp:cnt"}}
 
 \NewConfigure{multiline::height}{1}
 \Configure{multiline::height}
    {\tmp:dim=\AttributeVal   \divide\tmp:dim by 6
     \expandafter\get:int\the\tmp:dim//%
     \edef\Attributes{\Attributes\space rows="\the\tmp:cnt"}}
-_-_-

<..hyperref password..>
 \NewConfigure{TextField::password}{2}
 \Configure{TextField::password}
   {}{\Tg<input type="password" \Attributes />}
-_-_-

<..hyperref shared..>+
 \def\Default:Checked#1{%
    \ifx #1\Un:Def \let\:temp=\empty \else
       \let\:temp=\relax
       \let\:tempa=\relax
       \edef\:temp{\def\:temp####1#1#1####2//{\def\:temp{####2}}%
                       \:temp \AttributeVal #1=#1#1//%
           \def\:tempa####1=####2//{\def\noexpand\AttributeVal{####1}}%
               \:tempa\AttributeVal=//}%
       \:temp
    \fi
 }
-_-_-

<..hyperref radio..>
 \NewConfigure{ChoiceMenu::radio}{5}
 \Configure{ChoiceMenu::radio}
    {\IgnorePar\EndP\leavevmode
       \Tg<div id="form-\form:id">\gHAdvance\form:id by 1 }
    { }{\IgnorePar\EndP\Tg</div>}
    {\Default:Checked\radio::default
     \Tg<input\Hnewline type="radio"
             \ifx \:temp\empty\else checked="checked" \fi
             \Attributes\space />}
    {}
 \NewConfigure{radio::default}{1}
 \Configure{radio::default}
    {\let\radio::default=\AttributeVal}
-_-_-

<..hyperref radio..>+
 \NewConfigure{ChoiceMenu::combo}{5}
 \Configure{ChoiceMenu::combo}
    {}
    {~\Tg<select\Hnewline \Attributes \Hnewline size="1">}
    {\Tg</select>}
    {\Tg<option \ifx\::default\AttributeVal selected="selected"\fi
         \Hnewline>}
    {\Tg</option>}
 \NewConfigure{combo::default}{1}
 \Configure{combo::default}
    {\let\combo::default=\AttributeVal}
-_-_-

<..hyperref radio..>+
 \NewConfigure{ChoiceMenu::popdown}{5}
 \Configure{ChoiceMenu::popdown}
    {}{\HCode{\Hnewline <select \Attributes \Hnewline size="1">}}
    {\Tg</select>}
    {\Tg<option \ifx\::default\AttributeVal selected="selected"\fi
         \Hnewline>} {\Tg</option>}
-_-_-

The size="1" makes the select a popout memnu

<..hyperref radio..>+
 \NewConfigure{ChoiceMenu::}{5}
 \Configure{ChoiceMenu::}
    {}{\HCode{\Hnewline <select\Hnewline \Attributes>}}{\Tg</select>}
    {\Tg<option \ifx\::default\AttributeVal selected="selected"\fi
         \Hnewline>}  {\Tg</option>}
 \NewConfigure{::menulength}{1}
 \Configure{::menulength}
    {\edef\Attributes{\Attributes\space size="\AttributeVal"}}
-_-_-

<..configure html4 hyperref..>+
 \ifx \@baseurl\@empty \else
    \Configure{@HEAD}
       {\HCode{<base href="\:baseurl" />}}
    \let\:baseurl\@baseurl
    \let\@baseurl=\@empty
 \fi
-_-_-