\Configure{Form}
{\IgnorePar\EndP\leavevmode \Tg<form \Hnewline \Attributes>}
{\IgnorePar\EndP\Tg</form>}
-_-_-
<.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 -_-_-
\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//}
\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}
-_-_-
\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"}}
-_-_-
\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"}} -_-_-
\NewConfigure{TextField::password}{2}
\Configure{TextField::password}
{}{\Tg<input type="password" \Attributes />}
-_-_-
\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
}
-_-_-
\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}
-_-_-
\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}
-_-_-
\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
\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"}}
-_-_-
\ifx \@baseurl\@empty \else
\Configure{@HEAD}
{\HCode{<base href="\:baseurl" />}}
\let\:baseurl\@baseurl
\let\@baseurl=\@empty
\fi
-_-_-