Monday, October 21, 2002 Jens-Uwe Morawski wrote:
JUM> On Sun, 20 Oct 2002 23:59:31 +0200
JUM> Hans Hagen
i come back to the tooltips later
JUM> before i forget it, i would like to give here an additional idea JUM> about this topic: JUM> IMO, the whole thing should be more general, maybe by calling it JUM> 'balloons' or 'balloonwidget'. The usage in \footnote, \tooltip or JUM> \cite is only an instance of the more general balloon-object. JUM> For example, i would like to use such a ballon-widget as a JUM> dropdown-menu in an interactive document that contains JUM> a list of chapters, ...: JUM> \balloon[placement={below,centered}, JUM> frameclass=DropMenu, JUM> opendirection=down, JUM> openaction=OnClick] JUM> {Chapters} JUM> {\placelist JUM> [chapter] JUM> [criterium=all, JUM> alternative=a, JUM> pagenumber=no, JUM> interaction=all]} JUM> and tooltips are then: JUM> \defineballoon[tooltip][...] I have a draft implementation for this. By now, the only thing that can be configured is the framecommand. I decided to use this instead of a frameclass because it's even more flexible (with frameclass, you need to define a different frame class for each different ballon type, even if changes are small; this way, small changes can be applied more easily when defining new tooltips.) Put the following code in your cont-new.tex file or in your cont-loc.tex file (whichever you use for customizations), until Hnas decides to pass it to the core. I hope to come out myself with more customization options, but I would have to study fields and co. Maybe I'll leave that to Hans though. BTW, your stuff seems to more oriented towards what Hans called "helps" rather than tooltips, but I don't know much about this feature. Anyway, here's the code for custom balloons. Hope I didn't reinvent the wheel ... ===== BEGIN CODE ===== % Redefine tooltips as a subclass of the more generic balloon % class \startconstants all framecommand: framecommand \stopconstants \def\defineballoon[#1][#2]{% \@EA\def\csname#1\endcsname {\dodoubleempty\doballoon[#1]}% \@EA\def\csname\e!stel#1\e!in\endcsname {\dodoubleempty\setupballon[#1]}% \setupballoon[#1][#2]} % Currently only supports framecommand \def\setupballoon[#1][#2]{% \getparameters[balloon:#1:][#2] } \def\doballoon[#1][#2]#3#4% {\bgroup \setupfields[\v!reset]% \useJSscripts[fld]% \setbox0\hbox {\mindermeldingen \nextsystemfield \trialtypesettingtrue \setbox0=\hbox{#3}% \trialtypesettingfalse \definesymbol [\currentsystemfield:txt] [{\getvalue{balloon:#1:\c!framecommand}{#4}}]% \trialtypesettingtrue \setbox2=\hbox{\symbol[\currentsystemfield:txt]}% \trialtypesettingfalse \definefield [\currentsystemfield:txt][check] [dummy][\currentsystemfield:txt][\currentsystemfield:txt]% \setupfield [dummy] [\c!kader=\v!uit, \c!gebieduit=JS(Hide_Field{\currentsystemfield:txt}), \c!optie=\v!verborgen]% \hbox to \zeropoint {\dimen0\wd2\advance\dimen0 -\wd0 \doifelse{#2}\v!links {\hskip-\dimen0} {\doif{#2}\v!midden {\hskip-.5\dimen0}}% \lower\openlineheight % this needs to be configurable \hbox to \zeropoint {\fitfield[\currentsystemfield:txt]}}% \dimen0=\ifdim\wd0=\zeropoint 3em\else\wd0\fi % Should the following be configurable too? \definesymbol [\currentsystemfield:but] [{\framed[\c!hoogte=2ex,\c!breedte=\dimen0,\c!kader=\v!uit]{}}]% \definefield [\currentsystemfield:but][push] [dummy][\currentsystemfield:but][\currentsystemfield:but]% \setupfield [dummy] [\c!kader=\v!uit, \c!optie=, \c!gebiedin=JS(Vide_Field{\currentsystemfield:txt}), \c!gebieduit=JS(Hide_Field{\currentsystemfield:txt})]% \lower2ex % this should be configurable \hbox to \zeropoint {\fitfield[\currentsystemfield:but]}% #3}% \ht0=\ht\strutbox\dp0=\dp\strutbox\box0 \egroup} % Redefines the old tooltip with the new command ... \defineballoon[tooltip][\c!framecommand={\inframed[\c!kader=\v!uit,\c!achtergrond=\v!raster]}] ===== END CODE ===== -- Giuseppe "Oblomov" Bilotta