%%
%% This is file `uieforms.def',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% eforms.dtx  (with options: `copyright,userinterface')
%% 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% eForms package,                                      %%
%% Copyright (C) 2002-2019  D. P. Story                 %%
%%   dpstory@uakron.edu                                 %%
%%                                                      %%
%% This program can redistributed and/or modified under %%
%% the terms of the LaTeX Project Public License        %%
%% Distributed from CTAN archives in directory          %%
%% macros/latex/base/lppl.txt; either version 1 of the  %%
%% License, or (at your option) any later version.      %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\@equi#1{}
\ifHy@colorlinks\def\eq@bordervisibledefault{0}\@eqW{}\else
\def\eq@bordervisibledefault{1}\@eqW{1}\fi
\def\getargs#1#2{\def\aeb@argi{#1}\def\aeb@argii{#2}}
\def\labelRef#1{\@ifundefined{r@#1}{Doc-Start}
    {\aeb@exiii\@fourthoffive\csname r@#1\endcsname}}
\def\aeb@exiii{\expandafter\expandafter\expandafter}
\newtoks\ef@flagtoks
\newtoks\ef@jstoks
\def\noexpandiii{\noexpand\noexpand\noexpand}
\define@choicekey{eforms}{border}[\val\nr]{visible,invisible}
{%
    \ifcase\nr
        \def\eq@visibleborder{1}%
        \ifx\eq@W\@empty
            \ifx\eq@W@buffered\@empty\@eqW{1}\else
            \@eqW{\eq@W@buffered}\fi
        \else
            \ifnum\eq@W@value=0 \@eqW{1}\fi
            \ifx\eq@W@buffered\@empty\else
            \@eqW{\eq@W@buffered}\fi
        \fi
        \@eqBorder{0 0 \eq@W@value}%
    \or
        % author has chosen invisible border
        \def\eq@visibleborder{0}\@eqW{}%
        \@eqBorder{0 0 0}\@eqBC{}%
    \fi
}
\define@choicekey{eforms}{linewidth}[\val\nr]{thin,medium,thick}
{%
    \ifx\annot@type\annot@type@link
        \ifx\eq@visibleborder\@empty
            \ifnum\eq@bordervisibledefault=0
                \edef\eq@W@buffered{\ifcase\nr 1\or2\or3\fi}%
                \@eqW{}%
            \else
                \ifcase\nr \@eqW{1}\or\@eqW{2}\or
                \@eqW{3}\else\@eqW{1}\fi\@eqBorder{0 0 \eq@W@value}%
            \fi
        \else
            \ifnum\eq@visibleborder=1 % visible border
                \ifcase\nr \@eqW{1}\or\@eqW{2}\or
                \@eqW{3}\else\@eqW{1}\fi\@eqBorder{0 0 \eq@W@value}%
            \fi
        \fi
    \else
        \ifx\eq@visibleborder\@empty
            \ifcase\nr \@eqW{1}\or\@eqW{2}\or
            \@eqW{3}\else\@eqW{1}\fi\@eqBorder{0 0 \eq@W@value}%
            \edef\eq@W@buffered{\ifcase\nr 1\or2\or3\fi}%
        \else
            \ifnum\eq@visibleborder>0
                \ifcase\nr \@eqW{1}\or\@eqW{2}\or
                \@eqW{3}\else\@eqW{1}\fi\@eqBorder{0 0 \eq@W@value}%
            \fi
        \fi
    \fi
}
\let\eq@visibleborder\@empty
\let\eq@W@buffered\@empty
\define@choicekey{eforms}{highlight}[\val\nr]{none,invert,outline,%
    inset,push}
{%
    \ifcase\nr
      \@eqH{}\or\@eqH{I}\or\@eqH{O}\or\@eqH{P}\or\@eqH{P}\fi
}{}
\define@key{eforms}{bordercolor}[]{%
    \ifx\annot@type\annot@type@link\@eqColor{#1}\else
    \ifx\eq@visibleborder\@empty\@eqBC{#1}\else
        \ifnum\eq@visibleborder>0\relax\@eqBC{#1}\fi\fi\fi
}
\define@choicekey{eforms}{linestyle}[\val\nr]{solid,dashed,underlined,%
    beveled,inset}
{%
    \ifcase\nr\relax
        \@eqS{S}\or\@eqS{D}\or\@eqS{U}%
        \or\@eqS{B}\or\@eqS{I}\else\@eqS{S}%
    \fi
}
\define@key{eforms}{dasharray}[3]{\@eqD{#1}}
\define@key{eforms}{linktxtcolor}[]{%
    \let\ef@linktxtcolor@set=1\@eqlinktxtcolor{#1}}
\let\ef@linktxtcolor@set=0
\define@key{eforms}{annotflags}[]{\ef@flagtoks={}%
    \setkeys{annotflags}{#1}}
\@tfor\ef@flagopts:={{hidden}{FHidden}}{{print}{FPrint}}{{noprint}%
    {FNoPrint}}{{-print}{FNoPrint}}{{noview}{FNoView}}{{lock}{FLock}}%
    \do{\expandafter\getargs\ef@flagopts
    \edef\temp@expand@def{%
        \noexpand\define@key{annotflags}{\aeb@argi}[true]{%
            \noexpand\ef@flagtoks=%
                \noexpand\expandafter{\noexpand\ef@passedArgs}%
            \noexpand\edef\noexpand\ef@passedArgs{\noexpandiii%
                \F{\noexpandiii\csname\aeb@argii\noexpandiii\endcsname}%
                \noexpand\the\noexpand\ef@flagtoks}%
        }%
    }\temp@expand@def
}
\define@key{eforms}{fieldflags}[]{\ef@flagtoks={}%
    \setkeys{fieldflags}{#1}}
\@tfor\ef@flagopts:={{readonly}{FfReadOnly}}{{required}{FfRequired}}%
    {{noexport}{FfNoExport}}{{multiline}{FfMultiline}}%
    {{password}{FfPassword}}{{notoggleoff}{FfNoToggleToOff}}%
    {{radio}{FfRadio}}{{pushbutton}{FfPushButton}}{{combo}{FfCombo}}%
    {{edit}{FfEdit}}{{sort}{FfSort}}{{fileselect}{FfFileSelect}}%
    {{multiselect}{FfMultiSelect}}{{nospellcheck}{FfDoNotSpellCheck}}%
    {{noscrolling}{FfDoNotScroll}}{{comb}{FfComb}}%
    {{radiosinunison}{FfRadiosInUnison}}%
    {{commitonchange}{FfCommitOnSelChange}}{{richtext}{FfRichText}}\do{%
    \expandafter\getargs\ef@flagopts
    \edef\temp@expand@def{%
        \noexpand\define@key{fieldflags}{\aeb@argi}[true]%
        {%
            \noexpand\ef@flagtoks=\noexpand\expandafter{%
                \noexpand\ef@passedArgs}%
            \noexpand\edef\noexpand\ef@passedArgs{\noexpandiii%
               \Ff{\noexpandiii\csname\aeb@argii\noexpandiii\endcsname}%
               \noexpand\the\noexpand\ef@flagtoks}%
        }%
    }\temp@expand@def
}
\define@key{eforms}{tooltip}{\@eqTU{#1}}
\define@key{eforms}{default}{\@eqDV{#1}}
\define@key{eforms}{defaultstyle}{\@eqDS{#1}}
\define@key{eforms}{value}{\@eqV{#1}}
\define@key{eforms}{richvalue}{\@eqRV{#1}}
\define@key{eforms}{apprD}{\@eqAP{#1}}
\define@choicekey{eforms}{rotate}[\val\nr]{0,90,180,270}
    {\expandafter\@eqR\expandafter{\val}}{}
\define@key{eforms}{bgcolor}[]{\@eqBG{#1}}
\define@key{eforms}{uptxt}{\@eqCA{#1}}
\define@key{eforms}{downtxt}{\@eqAC{#1}}
\define@key{eforms}{rollovertxt}{\@eqRC{#1}}
\define@choicekey{eforms}{align}[\val\nr]{left,centered,right}{%
    \ifx\annot@type\annot@type@text
        \expandafter\@eqQ\expandafter{\nr}\fi}{}
\define@key{eforms}{textfont}{\@eqtextFont{#1}}
\define@key{eforms}{textsize}{\@eqtextSize{#1}}
\define@key{eforms}{textcolor}{%
    \@eqtextColor{#1}%
}
\define@key{eforms}{maxlength}{\@eqMaxLen{#1}}
\define@key{eforms}{normappr}{\@eqI{#1}}
\define@key{eforms}{rollappr}{\@eqRI{#1}}
\define@key{eforms}{downappr}{\@eqIX{#1}}
\define@choicekey{eforms}{layout}[\val\nr]{labelonly,icononly,%
    icontop,iconbottom,iconleft,iconright,labelover}{%
    \ifx\annot@type\annot@type@button
        \expandafter\@eqTP\expandafter{\nr}\fi}{}
\define@choicekey{eforms}{scalewhen}[\val\nr]{always,never,%
    iconbig,iconsmall}{%
    \ifx\annot@type\annot@type@button
    \ifcase\nr\relax
        \def\eq@@SW{A}\or
        \def\eq@@SW{N}\or
        \def\eq@@SW{B}\or
        \def\eq@@SW{S}\else
        \def\eq@@SW{A}\fi
    \expandafter\@eqSW\expandafter{\eq@@SW}\fi}{}
\define@choicekey{eforms}{scale}[\val\nr]{proportional,%
    nonproportional}{%
    \ifx\annot@type\annot@type@button
    \ifcase\nr\relax
        \def\eq@@ST{P}\or
        \def\eq@@ST{A}\else
        \def\eq@@ST{P}\fi
    \expandafter\@eqST\expandafter{\eq@@ST}\fi}{}
\define@key{eforms}{position}{\@eqPA{#1}}
\define@choicekey{eforms}{fitbounds}[\val\nr]{true,false}[true]{%
    \ifx\annot@type\annot@type@button
    \ifcase\nr\relax
        \def\eq@@FB{true}\or
        \def\eq@@FB{false}\else
        \def\eq@@FB{false}\fi
    \expandafter\@eqFB\expandafter{\eq@@FB}\fi}{}
\define@key{efappr}{norm}[]{\def\efappr@norm{#1}}
\define@key{efappr}{roll}[]{\def\efappr@roll{#1}}
\define@key{efappr}{down}[]{\def\efappr@down{#1}}
\setkeys{efappr}{norm,roll,down}
\define@key{efappr@state}{on}[]{%
    \expandafter\def\csname \ef@state @on\endcsname{#1}}
\define@key{efappr@state}{off}[]{%
    \expandafter\def\csname \ef@state @off\endcsname{#1}}
\let\norm@on\@empty\let\norm@off\@empty
\let\roll@on\@empty\let\roll@off\@empty
\let\down@on\@empty\let\down@off\@empty
\define@key{eforms}{appr}{\setkeys{efappr}{#1}%
    \def\ef@state{norm}%
    \edef\ef@edef@tmp{\noexpand\setkeys{efappr@state}{\efappr@norm}}%
    \ef@edef@tmp\def\ef@state{roll}%
    \edef\ef@edef@tmp{\noexpand\setkeys{efappr@state}{\efappr@roll}}%
    \ef@edef@tmp\def\ef@state{down}%
    \edef\ef@edef@tmp{\noexpand\setkeys{efappr@state}{\efappr@down}}%
    \ef@edef@tmp\def\eq@AP{%
        /AP<<
            \ifx\efappr@norm\@empty\else/N <<
                \eq@On\space{\norm@on}/Off {\norm@off}>>\fi
            \ifx\efappr@roll\@empty\else/R <<
                \eq@On\space{\roll@on}/Off {\roll@off}>>\fi
            \ifx\efappr@down\@empty\else/D <<
                \eq@On\space{\down@on}/Off {\down@off}>>\fi
        \space>>
    }%
}
\define@choicekey{eforms}{autocenter}[\val\nr]{yes,no}
{%
    \ifcase\nr\relax\@eqautoCenter{y}\or
    \@eqautoCenter{n}\fi
}{}
\define@choicekey{eforms}{inline}[\val\nr]{yes,no}
{%
    \ifcase\nr\relax\@eqinline{y}\or
    \@eqinline{n}\fi
}{}
\define@choicekey{eforms}{mlfix}[\val\nr]{yes,no}
{%
    \ifcase\nr\relax\@eqmlfix{y}\or
    \@eqmlfix{n}\fi
}{}
\define@choicekey{eforms}{importicons}[\val\nr]{yes,no}
{%
    \ifcase\nr\relax\@eqimportIcons{y}\or
    \@eqimportIcons{n}\fi
}{}
\define@key{eforms}{mlstrut}[\strut]{\@eqmlstrut{#1}}
\define@key{eforms}{mlcrackat}[]{\@eqmlcrackat{#1}}
\define@key{eforms}{mlcrackinat}[]{\@eqmlcrackinsat{#1}}
\define@choicekey{eforms}{mlhyph}[\val\nr]{yes,no}
{%
    \ifcase\nr\relax\@eqmlhyph{y}\or
    \@eqmlhyph{n}\fi
}{}
\define@key{eforms}{cmd}[]{\@eqcmd{#1}}
\define@key{eforms}{presets}{\ef@jstoks=\expandafter{#1}%
  \edef\ef@temp@expand{\noexpand\setkeys{eforms}{\the\ef@jstoks}}%
  \ef@temp@expand
}
\define@key{eforms}{epresets}{\ef@jstoks=\expandafter{#1}%
  \edef\@rgs{#1}\ef@jstoks=\expandafter{\@rgs}%
  \edef\ef@temp@expand{\noexpand\setkeys{eforms}{\the\ef@jstoks}}%
  \ef@temp@expand
}
\define@choicekey{eforms}{symbolchoice}[\val\nr]%
    {check,circle,cross,diamond,square,star}
    {\expandafter\@eqsymbolchoice\expandafter{\val}}{}
\define@key{eforms}{lock}{\@eqLock{#1}}
\define@key{eforms}{goto}[]{%
    \cxkvsetkeys{efgoto}{#1}%
    \ifx\ef@goto@url\@empty
        \ifx\ef@goto@file\@empty
            % Jump within the file
            \def\ef@subtype{/S/GoTo }%
            \ifcase\eq@drivernum
                \def\ef@formatpage{{Page\ef@page}}%
            \or
                \def\ef@formatpage{\pdfpageref\ef@page\space\space 0 R}%
            \or
                \def\ef@formatpage{@page\ef@page}%
            \fi
            \let\ef@open\@empty
            \let\ef@formatfile\@empty
        \else
            % Jump to another PDF
            \def\ef@subtype{/S/GoToR }%
            \count0=\ef@page\advance\count0by-1
            \edef\ef@formatpage{\the\count0 }%
            \def\ef@formatfile{/F (\ef@goto@file)}%
        \fi
        \ifx\ef@goto@targetdest\@empty
            \ifx\ef@labeldest\@empty
            % we will jump to a page, it might be the default page
                \expandafter\@eqA\expandafter{\ef@subtype
                    /D[\ef@formatpage\ef@view]%
                    \ef@formatfile\ef@open}%
            \else
            % jump to a label
                \expandafter\@eqA\expandafter{\ef@subtype%
                    /D (\labelRef{\ef@labeldest})%
                    \ef@formatfile\ef@open}%
            \fi
        \else
        % jump to a target
            \expandafter\@eqA\expandafter{\ef@subtype%
                /D (\ef@goto@targetdest)%
                \ef@formatfile\ef@open}%
        \fi
    \else % go to url
        \ifx\ef@goto@openparams\@empty
            \@eqA{/S/URI/URI(\ef@goto@url)}\else
            \@eqA{/S/URI/URI(\ef@goto@url\#\ef@goto@openparams)}%
        \fi
    \fi
}
\define@key{efgoto}{file}[]{\def\ef@goto@file{#1}}
\let\ef@goto@file\@empty
\define@key{efgoto}{url}[]{%
    \if\ef@linktxtcolor@set0\@eqlinktxtcolor{\@urlcolor}\fi
    \def\ef@goto@url{#1}%
}
\let\ef@goto@url\@empty
\define@key{efgoto}{openparams}[]{\def\ef@goto@openparams{#1}}
\let\ef@goto@openparams\@empty
\define@key{efgoto}{targetdest}[]{\def\ef@goto@targetdest{#1}}
\let\ef@goto@targetdest\@empty
\define@key{efgoto}{labeldest}[]{\def\ef@labeldest{#1}}
\let\ef@labeldest\@empty
\define@key{efgoto}{page}[1]{\def\ef@page{#1}}
\def\ef@page{1}
\def\ef@view{/Fit}%
\define@choicekey{efgoto}{view}[\val\nr]{fitpage,actualsize,fitwidth,%
    fitheight,fitvisible,inheritzoom}
{%
    \edef\ef@view{\csname dl@\val\endcsname}%
}{}
\define@choicekey{efgoto}{open}[\val\nr]{userpref,new,existing}
{%
    \ifcase\nr\relax
    \let\ef@open\@empty\or
    \def\ef@open{/NewWindow true }\or
    \def\ef@open{/NewWindow false }\fi
}{}
\let\ef@open\@empty
\define@key{eforms}{launch}[]{%
    \cxkvsetkeys{eflaunch}{#1}%
    \@eqA{/S/Launch\ifx\ef@launch@file\@empty\else
        /F(\ef@launch@file)\fi\ef@launch@open
        \ifx\ef@launch@win\@empty\else
            /Win<<\ifx\ef@launchwin@file\@empty
            /F(\ef@launch@file)\else/F(\ef@launchwin@file)\fi
            \ifx\ef@launchwin@params\@empty\else
                /P(\ef@launchwin@params)\fi
            \ifx\ef@launchwin@open\@empty\else
                /O(\ef@launchwin@open)\fi
            \ifx\ef@launchwin@dir\@empty\else
                /D(\ef@launchwin@dir)\fi>>
        \fi
        }%
}
\define@key{eflaunch}{file}[]{\def\ef@launch@file{#1}}
\let\ef@launch@file\@empty
\define@choicekey{eflaunch}{open}[\val\nr]{userpref,new,existing}
{%
    \ifcase\nr\relax
    \let\ef@launch@open\@empty\or
    \def\ef@launch@open{/NewWindow true }\or
    \def\ef@launch@open{/NewWindow false }\fi
}{}
\let\ef@launch@open\@empty
\define@key{eflaunch}{winParams}[]{\def\ef@launch@win{#1}%
    \setkeys{eflaunchwin}{#1}%
}\let\ef@launch@win\@empty
\define@key{eflaunchwin}{file}[]{\def\ef@launchwin@file{#1}}
\let\ef@launchwin@file\@empty
\define@key{eflaunchwin}{directory}[]{\def\ef@launchwin@dir{#1}}
\let\ef@launchwin@dir\@empty
\define@key{eflaunchwin}{open}[]{\def\ef@launchwin@open{#1}}
\let\ef@launchwin@open\@empty
\define@key{eflaunchwin}{params}[]{\def\ef@launchwin@params{#1}}
\let\ef@launchwin@params\@empty
\define@key{eforms}{js}[]{\@eqA{\JS{#1}}}
\@tfor\ef@AActions:={{mouseup}{AAmouseup}}{{mousedown}{AAmousedown}}%
    {{onenter}{AAmouseenter}}{{onexit}{AAmouseexit}}%
    {{onfocus}{AAonfocus}}{{onblur}{AAonblur}}%
    {{format}{AAformat}}{{keystroke}{AAkeystroke}}%
    {{validate}{AAvalidate}}{{calculate}{AAcalculate}}%
    {{pageopen}{AApageopen}}{{pageclose}{AApageclose}}%
    {{pagevisible}{AApagevisible}}%
    {{pageinvisible}{AApageinvisible}}\do{%
    \expandafter\getargs\ef@AActions\ef@jstoks={#1}%
    \edef\temp@expand@def{\noexpand\define@key{eforms}{\aeb@argi}[]%
    {\noexpand\csname @eq\aeb@argii\noexpand\endcsname%
        {\the\ef@jstoks}}}%
    \temp@expand@def
}
\define@key{eforms}{objdef}{\@eqobjdef{#1}}
\define@key{eforms}{taborder}{\@eqtaborder{#1}}
\endinput
%%
%% End of file `uieforms.def'.
