%% %% This is file `fancytooltips.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% fancytooltips.dtx (with options: `package') %% %% This is a generated file. %% %% Copyright (C) 2007 by Robert Marik %% %% This file may be distributed and/or modified under the conditions of %% the LaTeX Project Public License, either version 1.2 of this license %% or (at your option) any later version. The latest version of this %% license is in: %% %% http://www.latex-project.org/lppl.txt %% %% and version 1.2 or later is part of all distributions of LaTeX version %% 1999/12/01 or later. %% \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesPackage{fancytooltips} [2009/05/05 v1.5 fancytooltips.dtx file] \RequirePackage{everyshi} \RequirePackage{graphicx} \RequirePackage{xkeyval} \RequirePackage{eso-pic} \newif\ifcreatetips\createtipsfalse \DeclareOptionX{createtips}{\createtipstrue} \newif\ifTooltip@usepdftex\Tooltip@usepdftextrue \DeclareOptionX{dvips}{\Tooltip@usepdftexfalse} \newif\ifextratext\extratexttrue \DeclareOptionX{noextratext}{\extratextfalse} \newif\ifmovetips\movetipsfalse \DeclareOptionX{movetips}{\movetipstrue} \newif\ifmouseover\mouseoverfalse \DeclareOptionX{mouseover}{\mouseovertrue} \DeclareOptionX{filename}{\xdef\TooltipFilename{#1}} \DeclareOptionX{pages}{\xdef\TooltipPages{#1}} \ProcessOptionsX \ifx\TooltipFilename\undefined \PackageWarning{fancytooltips}{** The filename with tooltips is not given. **} \fi \ifTooltip@usepdftex \RequirePackage[pdftex]{eforms} \def\TooltipExtratext{\hbox to 0 pt{\smash {\raisebox{0.5em}{\includegraphics[width=0.7em]% {fancytipmark.pdf}}}\hss}} \else \RequirePackage[dvips]{eforms} \def\TooltipExtratext{\hbox to 0 pt{\smash {\raisebox{0.5em}{\includegraphics[width=0.7em]% {fancytipmark.eps}}}\hss}} \fi%\ifTooltip@usepdftex \ifextratext\else\let\TooltipExtratext\relax\fi \ifcreatetips \newwrite\tipfile \immediate\openout\tipfile fancytips.tex \def\keytip#1{\write\tipfile{\string\tooltipname{#1}{\arabic{page}}}} \else \newdimen\buttontipwidth \newdimen\buttontipheight \AtBeginDocument{ \buttontipwidth=\paperwidth \buttontipheight=\paperheight } \ifTooltip@usepdftex \def\frametip@{% \pdfstartlink user{% /Subtype /Widget /F 6 /T (ikona.\thepage) /FT /Btn /Ff 65536 /H /N /BS << /W 1 /S /S >> /MK << /TP 1 /IF <> >> }% \vbox to \buttontipheight {\vss\hbox to \buttontipwidth{\hss}}\pdfendlink} \else \def\everyeqIcon#1{\def\every@eqIcon{#1}} \def\every@eqIcon{} \newcommand\eqIconFTT[4][] {% \push@@Button{#1}{#2}{#3}{#4}{}{\eq@setButtonProps\eq@Button@driver}% {\eqIconDefaults\every@ButtonField\every@eqIcon}% } \def\eqIconDefaults {% \rawPDF{}\S{}\mkIns{/TP 1 /IF<>}\R{0} \CA{}\RC{}\AC{}\BC{}\BG{}\H{B} \textColor{0 g}\Ff{\FfReadOnly} } \def\frametip@{\eqIconFTT[\BC{}\BG{}\F{\FHidden}]% {ikona.\thepage}{\paperwidth}{\paperheight}}% \fi%\ifTooltip@usepdftex \def\frametip{% \expandafter\ifx \csname TooltipPage\thepage\endcsname\relax \else \setbox0=\hbox{\frametip@}% \hbox{\raise \dp0 \box0} \fi}% \AddToShipoutPicture{\hbox to 0 pt{\frametip\hss}} \definecolor{tooltipcolor}{rgb}{0,0,1} \newcount\tooltip@count \newtoks\tooltip@toks \newtoks\tooltip@pagetoks \tooltip@pagetoks={\thepage} \def\tooltippage{} \def\TooltipPage#1#2{% \expandafter\gdef\csname TooltipPage#2\endcsname{#2}% \expandafter\gdef\csname Tooltipcount2page#1\endcsname{#2}% } \def\tooltip#1#2{% \global\advance\tooltip@count by 1% \edef\act{\write\@auxout{\noexpand\string\noexpand\TooltipPage{\the\tooltip@count}{\the\tooltip@pagetoks}}}\act \edef\tooltippage{\csname Tooltipcount2page\the\tooltip@count \endcsname}% \checkTipNumber{#2}\edef\TipNumber{\FindTipNumber{#2}}% \leavevmode \setbox0=\hbox{{\color{tooltipcolor}{#1}}}\hbox to 0 pt{{\copy0\TooltipExtratext\hss}}% \def\tempfancytooltips{}% \ifmovetips\edef\tempfancytooltips{nastav(\TipNumber,\tooltippage);}\fi \pushButton[\BC{}\BG{}\S{}\AA{\AAMouseExit{\JS{CloseTooltips();}}% \ifmouseover \AAMouseEnter{\JS{this.getField("ikona."+(\tooltippage)).hidden=false; try {app.clearInterval(animace);}catch (e) {} \tempfancytooltips zobraz(\TipNumber,\tooltippage); }} \fi} \A{\JS{this.getField("ikona."+(\tooltippage)).hidden=false; try {app.clearInterval(animace);}catch (e) {} \tempfancytooltips zobraz(\TipNumber,\tooltippage); }}] {TooltipField}{\wd0}{\ht0}} \def\delayinterval{200} \def\tooltipanim#1#2#3{% \global\advance\tooltip@count by 1% \edef\act{\write\@auxout{\noexpand\string\noexpand\TooltipPage{\the\tooltip@count}{\the\tooltip@pagetoks}}}\act \edef\tooltippage{\csname Tooltipcount2page\the\tooltip@count \endcsname}% \checkTipNumber{#2}\edef\TipNumberA{\FindTipNumber{#2}}% \checkTipNumber{#3}\edef\TipNumberB{\FindTipNumber{#3}}% \leavevmode \setbox0=\hbox{{\color{tooltipcolor}{#1}}}\hbox to 0 pt{{\copy0\TooltipExtratext\hss}}% \def\tempfancytooltips{}% \ifmovetips\edef\tempfancytooltips{nastav(\TipNumberA,\tooltippage);}\fi \pushButton[\BC{}\BG{}\S{}\AA{\AAMouseExit{\JS{CloseTooltips();}} \ifmouseover \AAMouseEnter{\JS{ try {app.clearInterval(animace);}catch (e) {} var cislo=\TipNumberA; \tempfancytooltips function animuj() { if (cislo<\TipNumberB) cislo=cislo+1; this.getField('ikona.'+(\tooltippage)).buttonSetIcon(this.getField("animtiph."+cislo).buttonGetIcon()); }; this.getField('ikona.'+(\tooltippage)).buttonSetIcon(this.getField("animtiph."+\TipNumberA).buttonGetIcon()); this.getField("ikona."+(\tooltippage)).hidden=false; animace=app.setInterval('animuj();', \delayinterval); }} \fi} \A{\JS{ try {app.clearInterval(animace);}catch (e) {} var cislo=\TipNumberA; \tempfancytooltips function animuj() { if (cislo<\TipNumberB) cislo=cislo+1; this.getField('ikona.'+(\tooltippage)).buttonSetIcon(this.getField("animtiph."+cislo).buttonGetIcon()); }; this.getField('ikona.'+(\tooltippage)).buttonSetIcon(this.getField("animtiph."+\TipNumberA).buttonGetIcon()); this.getField("ikona."+(\tooltippage)).hidden=false; animace=app.setInterval('animuj();', \delayinterval); }} ]{TooltipField}{\wd0}{\ht0}} \ifTooltip@usepdftex \def\TooltipPageopencloseJS{ \global\pdfpageattr{% /AA << /O << /S /JavaScript /JS (CloseTooltips();) >> >>}% } \pdfximage{\TooltipFilename.pdf}% \edef\TooltipPages{\the\pdflastximagepages}% \else \def\TooltipPageopencloseJS{ \literalps@out{% [ {ThisPage} << /AA << /O << /S /JavaScript /JS (CloseTooltips();) >> >> >> /PUT pdfmark}} \OpenAction{/S /JavaScript /JS (CloseTooltips();)} \fi%\ifTooltip@usepdftex \EveryShipout{\TooltipPageopencloseJS}% \ifTooltip@usepdftex \begin{insDLJS}[fancyTooltipsLoaded]{Tooltipsdljs}{DLJS for Tooltips} var animace; var fancyTooltipsLoaded = true; function CloseTooltips() { try {this.getField("ikona").hidden=true;}catch (e) {} try {app.clearInterval(animace);}catch (e) {} } function nastav(cislo,strana) { var f=this.getField("ikona."+(strana)); var g=this.getField("animtiph."+cislo); var sourf=f.rect; var sourg=g.rect; if ((mouseX+sourg[2]-sourg[0])100) percX=100; if (percY>100) percY=100; if (percX<0) percX=0; if (percY<0) percY=0; f.buttonAlignX=percX; f.buttonAlignY=percY; } function zobraz(cislo,strana) { var f=this.getField("ikona."+(strana)); var g=this.getField("animtiph."+cislo); f.hidden=false; f.buttonSetIcon(g.buttonGetIcon()); } \end{insDLJS} \else \begin{insDLJS}[fancyTooltipsLoaded]{Tooltipsdljs}{DLJS for Tooltips} var animace; var fancyTooltipsLoaded = true; function CloseTooltips() { try {this.getField("ikona").hidden=true;}catch (e) {} try {app.clearInterval(animace);}catch (e) {} } function ImportTooltips() { console.println("importing pictures"); for (var i=1;i<=\TooltipPages;i++) { this.insertPages(this.numPages-1,"\TooltipFilename.pdf",(i-1),(i-1)); var rozm=this.getPageBox("Crop",this.numPages-1); this.deletePages(this.numPages-1); var p=this.addField("animtiph."+i,"button",0,rozm); p.buttonPosition=position.iconOnly; p.hidden=true; this.getField("animtiph."+i).buttonImportIcon("\TooltipFilename.pdf",(i-1)); } console.println("imported \TooltipPages pictures"); return(1); } function nastav(cislo,strana) { var f=this.getField("ikona."+(strana)); var g=this.getField("animtiph."+cislo); var sourf=f.rect; var sourg=g.rect; if ((mouseX+sourg[2]-sourg[0])100) percX=100; if (percY>100) percY=100; if (percX<0) percX=0; if (percY<0) percY=0; f.buttonAlignX=percX; f.buttonAlignY=percY; } function zobraz(cislo,strana) { var f=this.getField("ikona."+(strana)); var g=this.getField("animtiph."+cislo); f.hidden=false; f.buttonSetIcon(g.buttonGetIcon()); } \end{insDLJS} \fi \newcount\tooltip@count \ifTooltip@usepdftex \newcommand*{\TooltipHidden}{% \count@=0 \@whilenum\count@<\TooltipPages \do{% \tooltip@count=\count@ \advance \tooltip@count by 1% \bgroup \immediate\pdfximage page \the\tooltip@count{\TooltipFilename.pdf}% \mbox{\leavevmode \vbox to 0 pt{\vss\hbox to 0 pt{\pdfstartlink user{% /Subtype /Widget /F 6 /T (animtiph.\the\tooltip@count) /FT /Btn /Ff 65536 /H /N /BS << /W 1 /S /S >> /MK << /TP 1 /I \the\pdflastximage\space 0 R /IF << /SW /A >> >> }% \phantom{\pdfrefximage \pdflastximage}% \pdfendlink\hss}}}% \egroup \advance\count@\@ne}% } \AddToShipoutPicture*{\hbox to 0 pt{\TooltipHidden}} \else \let\TooltipHidden\relax \fi \AtBeginDocument{\IfFileExists{fancytips.tex}{\input{fancytips.tex} \PackageInfo{fancytooltips}{Inputting fancytips.tex.}}% {\PackageWarning{fancytooltips}{No file fancytips.tex! Your keywords for tooltips will not work!}}} \def\tooltipname#1#2{\expandafter\xdef\csname FancyToolTip@#1\endcsname{#2}} \def\FindTipNumber#1{\expandafter\ifx \csname FancyToolTip@#1\endcsname\relax #1\else\csname FancyToolTip@#1\endcsname\fi} \def\checkTipNumber#1{\expandafter\ifx \csname FancyToolTip@#1\endcsname\relax \PackageWarning{fancytooltips}{No framenumber is assigned to keyword #1. I assume that #1 is the number of the frame.}% \fi} \fi \endinput %% %% End of file `fancytooltips.sty'.