%% %% This is file `eforms.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% eforms.dtx (with options: `copyright,package') %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% eForms package, 2004-3-15 %% %% Copyright (C) 2002-2004 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. %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{eforms} [2006/10/03 v1.0a Provides general eForms support (dps)] \DeclareOption{dvipsone}{\def\eq@drivernum{0}% \PassOptionsToPackage{dvipsone}{insdljs} \PassOptionsToPackage{dvipsone}{hyperref} } \DeclareOption{dvips}{\def\eq@drivernum{0}% \PassOptionsToPackage{dvips}{insdljs} \PassOptionsToPackage{dvips}{hyperref} } \DeclareOption{pdftex}{\def\eq@drivernum{1}% \def\eq@driver{pdftex}\def\eq@drivercode{epdftex.def} \PassOptionsToPackage{pdftex}{insdljs} \PassOptionsToPackage{pdftex}{hyperref} } \DeclareOption{dvipdfm}{\def\eq@drivernum{2}% \def\eq@driver{dvipdfm}\def\eq@drivercode{edvipdfm.def} \PassOptionsToPackage{dvipdfm}{insdljs} \PassOptionsToPackage{dvipdfm}{hyperref} } \DeclareOption{textures}{\def\eq@drivernum{3}% \def\eq@driver{textures}\def\eq@drivercode{epdfmark.def}% \PassOptionsToPackage{textures}{insdljs}% \PassOptionsToPackage{textures}{hyperref} } \def\eq@driver{dvipsone/dvips} \def\eq@drivercode{epdfmark.def} \DeclareOption{preview}{\previewtrue} \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{insdljs}} \newif\ifpreview \previewfalse \ProcessOptions \RequirePackage{hyperref} \RequirePackage{insdljs} \@ifpackageloaded{exerquiz}{}{% \AtBeginDocument{\begin{Form}} \AtEndDocument{\end{Form}} } \@ifundefined{eq@drivernum}{% \PackageError{eForms}% {You have not specified dvips, dvipsone, pdftex or dvipdfm \MessageBreak in the option list of the eforms package} {Place one of the driver names dvips, dvipsone, pdftex or dvipdfm \MessageBreak in the option list of the eforms package.} }{} \@ifundefined{eq@tmpbox}{\newsavebox{\eq@tmpbox}}{} \@ifundefined{eq@tmpdima}{\newdimen\eq@tmpdima}{} \def\Bbox#1#2{% \hbox{\ifpreview\setlength\fboxrule{0.4pt}\setlength\fboxsep{0pt}% \@tempdima=#1\advance\@tempdima by-\fboxrule \@tempdimb=#2\advance\@tempdimb by-\fboxrule \fbox{\parbox[b][\@tempdimb][c]{\@tempdima}{\hfill\vfill}}\else \parbox[b][#2][c]{#1}{\hfill\vfill}\fi}% } \def\processAppArgs#1#2{% \ifx\end#1% if #1=\end, #2=\@nil. \let\@next=\relax \else \ifx#1\@empty \def\@next{\processAppArgs}% \else \@getCmdName{\Ff}\edef\arg@Ff{\@CmdName}% \@getCmdName{#1}% \ifx\arg@Ff\@CmdName % if \Ff, let's add arguments \ifx\eq@Ff\@empty\def\eq@FfValue{0}\else \expandafter\getFfValue\eq@Ff\@nil\fi \@tempcnta = \eq@FfValue \def\eq@arg{#2}% \ifx\eq@arg\@empty\else \advance\@tempcnta by#2\fi \edef\eq@Ff{/Ff \the\@tempcnta}% \def\@next{\processAppArgs}% \else \@getCmdName{\F}\edef\arg@F{\@CmdName}% \@getCmdName{#1}% \ifx\arg@F\@CmdName % if \Ff, let's add arguments \ifx\eq@F\@empty\def\eq@FValue{0}\else \expandafter\getFValue\eq@F\@nil\fi \@tempcnta = \eq@FValue \def\eq@arg{#2}% \ifx\eq@arg\@empty\else \advance\@tempcnta by#2\fi \edef\eq@F{/F \the\@tempcnta}% \def\@next{\processAppArgs}% \else \csname @eq% \expandafter\@gobble\string#1\endcsname{#2}% \def\@next{\processAppArgs}% \fi \fi \fi \fi \@next } \def\@processEvery{\edef\eqtemp{}\toks0={}\@@processEvery} \def\@@processEvery#1{% \ifx#1\end\def\@next{\the\toks0 }% \else \edef\eqtemp{\the\toks0 }% \toks0=\expandafter{\eqtemp \expandafter\processAppArgs#1\end\@nil}% \def\@next{\@@processEvery}% \fi \@next } \newdimen\eqcenterWidget \def\centerWidget#1{% \eqcenterWidget=#1\relax \eqcenterWidget=.5\eqcenterWidget \advance\eqcenterWidget by -4bp } \def\@eqF#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@F=\@empty\else\def\eq@F{/F #1}\fi}\def\eq@F{} \def\@eqW#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@W=\@empty\else\def\eq@W{/W #1}\fi} \def\eq@W{} \def\@eqS#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@S=\@empty\else\def\eq@S{/S/#1}\fi} \def\eq@S{} \def\@eqBorder#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@Border=\@empty\else\def\eq@Border{/Border [#1]}\fi}% \def\eq@Border{/Border [0 0 0]} \def\@eqAP#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@AP=\@empty\else\def\eq@AP{/AP<<#1>>}\fi}% \def\eq@AP{} % In the AP dictionary for checkboxes is the `On' value. % It is introduced into AP by passing a TeX parameter % normally, this variable is not used. \def\@eqOn#1{\def\eq@On{/#1}}\def\eq@On{/Yes} \def\@eqAS#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@AS=\@empty\else\def\eq@AS{/AS/#1}\fi}% \def\eq@AS{} \def\@eqA#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@A=\@empty\else\def\eq@A{/A <<#1>>}\fi}\def\eq@A{} \def\@eqAA#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@AA=\@empty\else\def\eq@AA{/AA <<#1>>}\fi}\def\eq@AA{} \def\@eqDA#1{\def\eq@DA{#1}} \def\eq@DA{\eq@textFont\space\eq@textSize\space Tf \eq@textColor}% \def\@eqtextFont#1{\def\eq@textFont{/#1}} \def\eq@textFont{/Helv} \def\@eqtextSize#1{\def\eq@textSize{#1}} \def\eq@textSize{9} \def\@eqRV#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@RV=\@empty\else\def\eq@RV{/RV(#1)\fi}}\def\eq@RV{} \def\@eqDS#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@DS=\@empty\else\def\eq@DS{/DS(#1)\fi}}\def\eq@DS{} \def\@eqtextColor#1{\def\eq@textColor{#1}} \def\eq@textColor{0 g} \def\@eqQ#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@Q=\@empty\else\def\eq@Q{/Q #1}\fi}\def\eq@Q{} \def\@eqDV#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@DV=\@empty\else\def\eq@DV{/DV(#1)}\fi} \def\eq@DV{} \def\@equDV#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@DV=\@empty\else\def\eq@DV{/DV<#1>}\fi} \def\@eqV#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@V=\@empty\else\def\eq@V{/V(#1)}\fi}% \def\eq@V{} \def\@equV#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@V=\@empty\else\def\eq@V{/V<#1>}\fi}% \def\@eqTU#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@TU\@empty\else\def\eq@TU{/TU(#1)}\fi} \def\eq@TU{} \def\@equTU#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@TU\@empty\else\def\eq@TU{/TU<#1>}\fi} \def\@eqFf#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@Ff=\@empty\else\def\eq@Ff{/Ff #1}\fi} \def\eq@Ff{} \def\@eqMaxLen#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@MaxLen=\@empty\else\def\eq@MaxLen{/MaxLen #1}\fi}% \def\eq@MaxLen{} \def\@eqH#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@H=\@empty\else\def\eq@H{/H/#1}\fi}\def\eq@H{} \def\@eqMK#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@MK=\@empty\else\def\eq@MK{/MK << #1 >> }\fi}% \def\eq@MK{} \def\@eqR#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@R=\@empty\else\def\eq@R{/R #1}\fi} \def\eq@R{} % Boundary color \def\@eqBC#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@BC=\@empty\else\def\eq@BC{/BC [#1]}\fi} \def\eq@BC{} % Background color \def\@eqBG#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@BG=\@empty\else\def\eq@BG{/BG [#1]}\fi} \def\eq@BG{} % normal appearance text \def\@eqCA#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@CA\@empty\let\ef@kvCA\@empty \else\def\eq@CA{#1}\def\ef@kvCA{/CA(#1)}\fi} \def\eq@CA{}\def\ef@kvCA{} % normal appearance text, unicode version \def\@equCA#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@CA\@empty\let\ef@kvCA\@empty \else\def\eq@CA{#1}\def\ef@kvCA{/CA<#1>}\fi} % Roll over text \def\@eqRC#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@RC\@empty\let\ef@kvRC\@empty \else\def\eq@RC{#1}\def\ef@kvRC{/RC(#1)}\fi} \def\eq@RC{}\def\ef@kvRC{} % Roll over text, unicode version \def\@equRC#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@RC\@empty\let\ef@kvRC\@empty \else\def\eq@RC{#1}\def\ef@kvRC{/RC<#1>}\fi} % Push text \def\@eqAC#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@AC\@empty\let\ef@kvAC\@empty \else\def\eq@AC{#1}\def\ef@kvAC{/AC(#1)}\fi} \def\eq@AC{}\def\ef@kvAC{} % Push text, unicode version \def\@equAC#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@AC\@empty\let\ef@kvAC\@empty \else\def\eq@AC{#1}\def\ef@kvAC{/AC<#1>}\fi} \def\@eqmkIns#1{\def\eq@mkIns{#1}}\def\eq@mkIns{} \def\@eqOpt#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@Opt=\@empty\else\def\eq@Opt{/Opt [#1]}\fi} \def\eq@Opt{} \def\@eqTI#1{\def\eq@arg{#1}\ifx\eq@arg\@empty \let\eq@TI=\@empty\else\def\eq@TI{/TI #1}\fi} \def\eq@TI{} \def\@eqrawPDF#1{\def\eq@rawPDF{#1}}\def\eq@rawPDF{} \def\@eqrectH#1{\def\eq@rectH{#1}} \def\@eqrectW#1{\def\eq@rectW{#1}} \def\@eqautoCenter#1{\let\autoCenter=#1} \let\autoCenter=y \def\@eqsymbolchoice#1{\expandafter\ifx\csname eq@#1\endcsname\relax \typeout{exerquiz: `#1' is not an acceptable option for \string\symbolechoice, inserting default, `check'.} \edef\symbol@choice{\eq@check}\else \edef\symbol@choice{\csname eq@#1\endcsname}\fi } \def\eq@protect#1{\let#1=\@empty} \def\tallywidth#1{\def\tally@width{#1}} \def\tally@width{15bp} \def\DefaultHeightOfWidget{11bp} \def\RadioFieldSize{11bp} \def\RBW{2in} \def\SFW{1.5in} \def\eq@check{4} \def\eq@circle{l} \def\eq@cross{8} \def\eq@diamond{u} \def\eq@square{n} \def\eq@star{H} \let\symbolchoice=\@eqsymbolchoice \symbolchoice{check} \providecommand\JS[1]{/S/JavaScript/JS(#1)} \newcommand\AAMouseUp[1]{/U<<#1>>} \newcommand\AAMouseDown[1]{/D<<#1>>} \newcommand\AAMouseEnter[1]{/E<<#1>>} \newcommand\AAMouseExit[1]{/X<<#1>>} \newcommand\AAOnFocus[1]{/Fo<<#1>>} \newcommand\AAOnBlur[1]{/Bl<<#1>>} \newcommand\AAFormat[1]{/F<<\JS{#1}>>} \newcommand\AAKeystroke[1]{/K<<\JS{#1}>>} \newcommand\AAValidate[1]{/V<<\JS{#1}>>} \newcommand\AACalculate[1]{/C<<\JS{#1}>>} \newcommand\checkColor{["RGB", 0, .6, 0]} \newcommand\crossColor{color.red} \newcommand\correctColor{["RGB", 0, .6, 0]} % same as webgreen \newcommand\wrongColor{color.red} \newcommand\eqDefaultColor{color.black} \def\FHidden{2} % bit 2: hidden field \def\FPrint{4} % bit 3: print \def\FNoView{32} % bit 6: no view \def\FLock{128} % bit 8: locked field (PDF 1.4) \def\FfReadOnly{1} % all \def\FfRequired{2} % all \def\FfNoExport{4} % all \def\FfMultiline{4096} % text \def\FfPassword{8192} % text \def\FfNoToggleToOff{16384} % radio \def\FfRadio{32768} % radio \def\FfPushButton{65536} % Pushbuton \def\FfCombo{131072} % choice \def\FfEdit{262144} % combo \def\FfSort{524288} % choice \def\FfFileSelect{1048576} % text (PDF 1.4) \def\FfMultiSelect{2097152} % choice (PDF 1.4) \def\FfDoNotSpellCheck{4194304} % text, combo (PDF 1.4) \def\FfDoNotScroll{8388608} % text (PDF 1.4) \def\FfComb{16777216} % text (PDF 1.5) \def\FfRadiosInUnison{33554432} % radio (PDF 1.5) \def\FfCommitOnSelChange{67108864} % choice (PDF 1.5) \def\FfRichText{33554432} % radio (PDF 1.5) \def\getFfValue/Ff#1\@nil{\def\eq@FfValue{#1}} \def\getFValue/F#1\@nil{\def\eq@FValue{#1}} \def\@getCmdName#1{\edef\@CmdName{\expandafter\@gobble\string#1}} \newcommand\everyTextField[1]{\def\every@TextField{#1}} \def\every@TextField{} \newcommand\everyCheckBox[1]{\def\every@CheckBox{#1}} \def\every@CheckBox{} \newcommand\everyRadioButton[1]{\def\every@RadioButton{#1}} \def\every@RadioButton{} \newcommand\everyButtonField[1]{\def\every@ButtonField{#1}} \def\every@ButtonField{} \newcommand\everyPushButton[1]{\def\every@PushButton{#1}} \def\every@PushButton{} \newcommand\everyListBox[1]{\def\every@listBox{#1}} \newcommand\everyComboBox[1]{\def\every@comboBox{#1}} \def\every@listBox{}\def\every@comboBox{} \newcommand\everyLink[1]{\def\every@Link{#1}} \def\every@Link{} \def\makeJSspecials {% \def\\{\eqbs\eqbs}% % define \\ to be \\ \makespecialJS % make \r=\jsR and \t=\jsT } \def\eq@setButtonProps#1#2% {% \makeJSspecials \processAppArgs#2\end\@nil % set widget properties \Hy@pdfstringfalse \ifx\eq@rectW\@empty \sbox{\eq@tmpbox}{\ \eq@CA\ }\eq@tmpdima=\wd\eq@tmpbox \sbox{\eq@tmpbox}{\ \eq@RC\ }% \ifdim\eq@tmpdima>\wd\eq@tmpbox\else\eq@tmpdima=\wd\eq@tmpbox\fi% \sbox{\eq@tmpbox}{\ \eq@AC\ }% \ifdim\eq@tmpdima>\wd\eq@tmpbox\else\eq@tmpdima=\wd\eq@tmpbox\fi% \wd\eq@tmpbox = \eq@tmpdima \else \wd\eq@tmpbox=\eq@rectW \fi #1% } \def\eq@setWidgetProps#1#2% {% \makeJSspecials \processAppArgs#2\end\@nil % set widget properties #1% } \def\common@choiceCode {% /Subtype /Widget /T (\Fld@name) /FT /Ch \eq@Ff \eq@F \eq@TU \eq@TI /BS << \eq@W\eq@S >> /MK <<\eq@R\eq@BC\eq@BG\eq@mkIns>> /DA (\eq@DA) /Opt [\eq@Opt] \eq@DV\eq@V \eq@A\eq@AA \eq@rawPDF } \newcommand\list@@Box[8] {% \begingroup \edef\Fld@name{#2}\def\eq@rectW{#3}\def\eq@rectH{#4}\def\eq@Opt{#5}% \def\eq@DA{\eq@textFont\space\eq@textSize\space Tf \eq@textColor}% \@processEvery#8\end\noindent#6#7{#1}% } \def\listBoxDefaults {% \W{1}\S{I}\F{\FPrint}\BC{0 0 0} } \newcommand\listBox[5][] {% \list@@Box{#1}{#2}{#3}{#4}{#5}{}{\eq@setWidgetProps \eq@choice@driver}{\listBoxDefaults\every@listBox}% } \newcommand\combo@@Box[8] {% \begingroup \@eqFf{\FfCombo}\edef\Fld@name{#2}\def\eq@rectW{#3}% \def\eq@rectH{#4}\def\eq@Opt{#5}% \def\eq@DA{\eq@textFont\space\eq@textSize\space Tf \eq@textColor}% \@processEvery#8\end\noindent#6#7{#1}% } \def\comboBoxDefaults {% \W{1}\S{I}\F{\FPrint}\BC{0 0 0} } \newcommand\comboBox[5][] {% \combo@@Box{#1}{#2}{#3}{#4}{#5}{}{\eq@setWidgetProps \eq@choice@driver}{\comboBoxDefaults\every@comboBox}% } \def\common@pushButtonCode {% /Subtype /Widget /T (\Fld@name) /FT /Btn \eq@Ff \eq@TU \eq@H \eq@F /BS <<\eq@W\eq@S >> /MK <<\eq@R\eq@BC\eq@BG% \ef@kvCA\ef@kvRC\ef@kvAC\eq@mkIns>> /DA (\eq@DA) \eq@A\eq@AA \eq@rawPDF } \def\common@RadioCheckCode {% /Subtype /Widget /T (\Fld@name) /FT /Btn \eq@Ff \eq@F \eq@TU /BS <<\eq@W\eq@S>> \eq@MK /DA (\eq@DA) \eq@AP \eq@AS \eq@DV\eq@V \eq@A\eq@AA \eq@rawPDF } \newcommand\push@@Button[7] {% \begingroup \def\eq@Ff{/Ff \FfPushButton}% \def\eq@DA{\eq@textFont\space\eq@textSize\space Tf \eq@textColor}% \edef\Fld@name{#2}\def\eq@rectW{#3}\def\eq@rectH{#4}% \@processEvery#7\end\noindent#5#6{#1}% } \def\pushButtonDefaults {% \W{1}\S{B}\F{\FPrint}\BC{0 0 0} \H{P}\BG{.7529 .7529 .7529} } \newcommand\pushButton[4][] {% \push@@Button{#1}{#2}{#3}{#4}{}{\eq@setButtonProps\eq@Button@driver}% {\pushButtonDefaults\every@PushButton}% } \newcommand\check@@Box[8] {% \begingroup \def\@eqDV##1{\def\eq@arg{##1}\ifx\eq@arg\@empty\let\eq@DV=\@empty \else\def\eq@DV{/DV/##1}\fi}% \def\@eqV##1{\def\eq@arg{##1}\ifx\eq@arg\@empty \let\eq@V=\@empty\else\def\eq@V{/V/##1}\fi}% \edef\Fld@name{#2}\def\eq@rectW{#3}\def\eq@rectH{#4}\def\eq@On{/#5}% \@eqAP{/N <<\eq@On<<>>>> }\@eqtextFont{ZaDb}\@eqAS{Off}% \eq@On <<>>? \space/null \def\eq@DA{\eq@textFont\space\eq@textSize\space Tf \eq@textColor}% \@eqMK{\eq@R\eq@BC\eq@BG/CA(\symbol@choice)\eq@mkIns}% \@processEvery#8\end\noindent#6#7{#1}% } \def\checkBoxDefaults {% \F{\FPrint}\W{1}\S{S}\BC{0 0 0} } \newcommand\checkBox[5][] {% \check@@Box{#1}{#2}{#3}{#4}{#5}{}{\eq@setWidgetProps \eq@RadioCheck@driver}{\checkBoxDefaults\every@CheckBox}% } \newcommand\radio@@Button[8] {% \begingroup \def\@eqDV##1{\def\eq@arg{##1}\ifx\eq@arg\@empty\let\eq@DV=\@empty \else\def\eq@DV{/DV/##1}\fi}% \def\@eqV##1{\def\eq@arg{##1}\ifx\eq@arg\@empty\let\eq@V=\@empty \else\def\eq@V{/V/##1}\fi}% \def\eq@Ff{/Ff \FfRadio}\@eqtextFont{ZaDb}\@eqAS{Off}% \def\eq@DA{\eq@textFont\space\eq@textSize\space Tf \eq@textColor}% \@eqAP{/N <<\eq@On<<>>>>}% \eq@On <<>>? /null \@eqMK{\eq@R\eq@BC\eq@BG/CA(\symbol@choice)\eq@mkIns}% \edef\Fld@name{#2}\def\eq@rectW{#3}\def\eq@rectH{#4}\def\eq@On{/#5}% \@processEvery#8\end\noindent#6#7{#1}% } \def\radioButtonDefaults {% \W{1}\S{S}\BC{0 0 0}\F{\FPrint} } \newcommand\radioButton[5][] {% \radio@@Button{#1}{#2}{#3}{#4}{#5}{}{\eq@setWidgetProps \eq@RadioCheck@driver}{\radioButtonDefaults\every@RadioButton}% } \def\common@TextFieldCode {% /Subtype /Widget /T (\Fld@name) /FT /Tx \eq@Ff \eq@F \eq@Q \eq@TU \eq@MaxLen /BS <<\eq@W\eq@S>> /MK <<\eq@R\eq@BC\eq@BG\eq@mkIns>> /DA (\eq@DA) \eq@DV\eq@V \eq@RV\eq@DS \eq@A\eq@AA \eq@rawPDF } \newcommand\text@@Field[7] {% \begingroup \edef\Fld@name{#2}\def\eq@Title{#2}\def\eq@rectW{#3}\def\eq@rectH{#4}% \def\eq@DA{\eq@textFont\space\eq@textSize\space Tf \eq@textColor}% \@processEvery#7\end\noindent#5#6{#1}% } \def\textFieldDefaults {% \F{\FPrint}\BC{0 0 0}\W{1}\S{S} } \newcommand\textField[4][] {% \text@@Field{#1}{#2}{#3}{#4}{}{\eq@setWidgetProps\eq@TextField}% {\textFieldDefaults\every@TextField}% } \let\eqTextField=\textField \def\textFieldDefaults {% \F{\FPrint}\BC{0 0 0}\W{1}\S{S} } \newcommand\calcTextField[4][] {% \text@@Field{#1}{#2}{#3}{#4}{}{\eq@setWidgetProps\eq@calcTextField}% {\textFieldDefaults\every@TextField}% } \def\common@LinkCode {% \eq@A % Action \eq@rawPDF % everything else } \newcommand\set@@Link[7] {% \begingroup \def\eq@rectW{#2}% \ifx\eq@rectW\@empty \def\link@@Box{#4}% \else \def\eq@rectH{#3}% \def\eq@arg{#4}\ifx\eq@arg\@empty \def\eq@content{\hfill\vfill}\else\def\eq@content{#4}\fi \def\link@@Box{\parbox[\eq@pos][\eq@rectH][\eq@innerpos]% {\eq@rectW}{\centering\eq@content}}% \fi \makeJSspecials \@processEvery#7\end\noindent#5#6{#1}% } \def\set@LinkTextDefaults{\Border{0 0 0}} \newcommand\setLinkText[2][] {% \set@@Link{#1}{}{}{#2}{}{\eq@setWidgetProps\setLink@driver}% {\set@LinkTextDefaults\every@Link}% } \def\set@LinkBboxDefaults{\Border{0 0 0}} \newcommand\setLinkBbox[3][] {% \@setLinkBbox{#1}{#2}{#3}% } \def\@setLinkBbox#1#2#3{\@ifnextchar[{\@@setLinkBbox{#1}{#2}{#3}}% {\@@setLinkBbox{#1}{#2}{#3}[c]}} \def\@@setLinkBbox#1#2#3[#4]% {% \@ifnextchar[{\@@@setLinkBbox{#1}{#2}{#3}{#4}}% {\@@@setLinkBbox{#1}{#2}{#3}{#4}[#4]} } \def\@@@setLinkBbox#1#2#3#4[#5]#6% {% \def\eq@pos{#4}\def\eq@innerpos{#5}% \set@@Link{#1}{#2}{#3}{#6}{\eq@setWidgetProps\setLink@driver}% {}{\set@LinkBboxDefaults\every@Link}% } \input{\eq@drivercode} \endinput %% %% End of file `eforms.sty'.