From dc02d93ff65c9cf446279751557d7b98b03c19c2 Mon Sep 17 00:00:00 2001 From: GeorgeClark Date: Tue, 9 Dec 2008 04:04:41 +0000 Subject: [PATCH] Item4485: WYSIWYG plugin adds script lines at the end of the topic. Item6013: TOOLTIP breaks EDITTABLE variable protection Item8027: Update ToolTipPlugin to latest javascript. Other misc. enhancements. git-svn-id: http://svn.foswiki.org/trunk/ToolTipPlugin@1217 0b4bb1d4-4e5a-0410-9cc4-b2b747904278 --- data/System/ToolTipPlugin.txt | 164 ++++++++++++++ data/TWiki/ToolTipPlugin.txt | 158 ------------- lib/Foswiki/Plugins/ToolTipPlugin.pm | 175 +++++++++++++++ .../Plugins/ToolTipPlugin/DEPENDENCIES | 0 lib/Foswiki/Plugins/ToolTipPlugin/MANIFEST | 19 ++ .../Plugins/ToolTipPlugin/build.pl | 4 +- lib/TWiki/Plugins/ToolTipPlugin.pm | 212 ------------------ lib/TWiki/Plugins/ToolTipPlugin/MANIFEST | 19 -- .../ToolTipPlugin/ToolTipBackground.jpg | Bin .../ToolTipPlugin/ToolTipPhoto.gif | Bin .../ToolTipPlugin/balloon}/b.gif | Bin .../ToolTipPlugin/balloon}/background.gif | Bin .../ToolTipPlugin/balloon}/l.gif | Bin .../ToolTipPlugin/balloon}/lb.gif | Bin .../ToolTipPlugin/balloon}/lt.gif | Bin .../ToolTipPlugin/balloon}/r.gif | Bin .../ToolTipPlugin/balloon}/rb.gif | Bin .../ToolTipPlugin/balloon}/rt.gif | Bin .../ToolTipPlugin/balloon}/stemb.gif | Bin .../ToolTipPlugin/balloon}/stemt.gif | Bin .../ToolTipPlugin/balloon}/t.gif | Bin pub/System/ToolTipPlugin/balloon_simple/b.gif | Bin 0 -> 44 bytes .../balloon_simple/background.gif | Bin 0 -> 49 bytes pub/System/ToolTipPlugin/balloon_simple/l.gif | Bin 0 -> 44 bytes .../ToolTipPlugin/balloon_simple/lb.gif | Bin 0 -> 51 bytes .../ToolTipPlugin/balloon_simple/lt.gif | Bin 0 -> 51 bytes pub/System/ToolTipPlugin/balloon_simple/r.gif | Bin 0 -> 44 bytes .../ToolTipPlugin/balloon_simple/rb.gif | Bin 0 -> 51 bytes .../ToolTipPlugin/balloon_simple/rt.gif | Bin 0 -> 51 bytes .../ToolTipPlugin/balloon_simple/stemb.gif | Bin 0 -> 74 bytes .../ToolTipPlugin/balloon_simple/stemt.gif | Bin 0 -> 73 bytes pub/System/ToolTipPlugin/balloon_simple/t.gif | Bin 0 -> 50 bytes .../balloon_simple/tip_balloon_simple.png | Bin 0 -> 48730 bytes pub/System/ToolTipPlugin/example1.jpg | Bin 0 -> 16795 bytes pub/System/ToolTipPlugin/example2.jpg | Bin 0 -> 14179 bytes pub/System/ToolTipPlugin/example3.jpg | Bin 0 -> 18146 bytes pub/System/ToolTipPlugin/example4.jpg | Bin 0 -> 27524 bytes pub/System/ToolTipPlugin/example5.jpg | Bin 0 -> 11764 bytes .../ToolTipPlugin/tip_balloon.js | 129 +++++------ .../ToolTipPlugin/tip_centerwindow.js | 2 +- .../ToolTipPlugin/tip_followscroll.js | 2 +- .../ToolTipPlugin/wz_tooltip.js | 134 ++++++----- 42 files changed, 502 insertions(+), 516 deletions(-) create mode 100644 data/System/ToolTipPlugin.txt delete mode 100644 data/TWiki/ToolTipPlugin.txt create mode 100755 lib/Foswiki/Plugins/ToolTipPlugin.pm rename lib/{TWiki => Foswiki}/Plugins/ToolTipPlugin/DEPENDENCIES (100%) create mode 100644 lib/Foswiki/Plugins/ToolTipPlugin/MANIFEST rename lib/{TWiki => Foswiki}/Plugins/ToolTipPlugin/build.pl (75%) delete mode 100755 lib/TWiki/Plugins/ToolTipPlugin.pm delete mode 100644 lib/TWiki/Plugins/ToolTipPlugin/MANIFEST rename pub/{TWiki => System}/ToolTipPlugin/ToolTipBackground.jpg (100%) rename pub/{TWiki => System}/ToolTipPlugin/ToolTipPhoto.gif (100%) rename pub/{TWiki/ToolTipPlugin => System/ToolTipPlugin/balloon}/b.gif (100%) rename pub/{TWiki/ToolTipPlugin => System/ToolTipPlugin/balloon}/background.gif (100%) rename pub/{TWiki/ToolTipPlugin => System/ToolTipPlugin/balloon}/l.gif (100%) rename pub/{TWiki/ToolTipPlugin => System/ToolTipPlugin/balloon}/lb.gif (100%) rename pub/{TWiki/ToolTipPlugin => System/ToolTipPlugin/balloon}/lt.gif (100%) rename pub/{TWiki/ToolTipPlugin => System/ToolTipPlugin/balloon}/r.gif (100%) rename pub/{TWiki/ToolTipPlugin => System/ToolTipPlugin/balloon}/rb.gif (100%) rename pub/{TWiki/ToolTipPlugin => System/ToolTipPlugin/balloon}/rt.gif (100%) rename pub/{TWiki/ToolTipPlugin => System/ToolTipPlugin/balloon}/stemb.gif (100%) rename pub/{TWiki/ToolTipPlugin => System/ToolTipPlugin/balloon}/stemt.gif (100%) rename pub/{TWiki/ToolTipPlugin => System/ToolTipPlugin/balloon}/t.gif (100%) create mode 100644 pub/System/ToolTipPlugin/balloon_simple/b.gif create mode 100644 pub/System/ToolTipPlugin/balloon_simple/background.gif create mode 100644 pub/System/ToolTipPlugin/balloon_simple/l.gif create mode 100644 pub/System/ToolTipPlugin/balloon_simple/lb.gif create mode 100644 pub/System/ToolTipPlugin/balloon_simple/lt.gif create mode 100644 pub/System/ToolTipPlugin/balloon_simple/r.gif create mode 100644 pub/System/ToolTipPlugin/balloon_simple/rb.gif create mode 100644 pub/System/ToolTipPlugin/balloon_simple/rt.gif create mode 100644 pub/System/ToolTipPlugin/balloon_simple/stemb.gif create mode 100644 pub/System/ToolTipPlugin/balloon_simple/stemt.gif create mode 100644 pub/System/ToolTipPlugin/balloon_simple/t.gif create mode 100644 pub/System/ToolTipPlugin/balloon_simple/tip_balloon_simple.png create mode 100644 pub/System/ToolTipPlugin/example1.jpg create mode 100644 pub/System/ToolTipPlugin/example2.jpg create mode 100644 pub/System/ToolTipPlugin/example3.jpg create mode 100644 pub/System/ToolTipPlugin/example4.jpg create mode 100644 pub/System/ToolTipPlugin/example5.jpg rename pub/{TWiki => System}/ToolTipPlugin/tip_balloon.js (54%) rename pub/{TWiki => System}/ToolTipPlugin/tip_centerwindow.js (94%) rename pub/{TWiki => System}/ToolTipPlugin/tip_followscroll.js (94%) rename pub/{TWiki => System}/ToolTipPlugin/wz_tooltip.js (91%) diff --git a/data/System/ToolTipPlugin.txt b/data/System/ToolTipPlugin.txt new file mode 100644 index 0000000..accfc47 --- /dev/null +++ b/data/System/ToolTipPlugin.txt @@ -0,0 +1,164 @@ +%META:TOPICINFO{author="BaseUserMapping_333" date="1228539969" format="1.1" version="1.2"}% +---+!! %TOPIC% + +This is a plugin to generate dynamic Tool Tips in HTML + javascript (mouseover event). This tooltip is based on http://www.walterzorn.com/tooltip/tooltip_e.htm This plugin provides a ==TOOLTIP== Macro that expands into the html and javascript to implement a Tooltip. Also includes the balloon _Simple Skin_ by Stasiek PÅ‚oski (Homepage: http://www.flupy.net/stasiek ). + +%TOC% + +---++ Examples + +%TABLE{sort="off" columnwidths="40%,30%,30%"}% + +| *Write (On a single line!)* | *Simulate* | *If Installed* | +| ==%%NOP%TOOLTIP{TEXT="Whaoooo ! With such a tooltip, you can keep your topics light... and get better communication ! " FONTCOLOR="#336699" TITLE="Nice tooltip, no ?" SHADOWCOLOR="#ccaacc" FONTSIZE="18px" WIDTH="250"}% put your mouse here, you should see a tooltip %%NOP%TOOLTIP{END}%== | example1.jpg | %TOOLTIP{TEXT="Whaoooo ! With such a tooltip, you can keep your topics light... and get better communication ! " FONTCOLOR="#336699" TITLE="Nice tooltip, no ?" SHADOWCOLOR="#ccaacc" FONTSIZE="18px" WIDTH="250" }% put your mouse here, you should see a tooltip %TOOLTIP{END}%. | +| Customize the tip ==%%NOP%TOOLTIP{TEXT="there are soo many parameters..." BGCOLOR="#FF8000" FONTCOLOR="#00FF80" TITLE="PARAMETERS" SHADOWCOLOR="#ccaacc" FONTSIZE="30px" WIDTH="250" }%with parameters%%NOP%TOOLTIP{END}%== | Example 2 | Customize the tip %TOOLTIP{TEXT="there are soo many parameters..." BGCOLOR="#FF8000" FONTCOLOR="#00FF80" TITLE="PARAMETERS" SHADOWCOLOR="#ccaacc" FONTSIZE="30px" WIDTH="250"}%with parameters%TOOLTIP{END}% | +| ==%%NOP%TOOLTIP{TEXT="Set BALLOON=\"true\" The BALLOONIMGPATH will default to the %PUBURLPATH%/%SYSTEMWEB%/%TOPIC%/balloon/ path. " FONTCOLOR="#336699" SHADOWCOLOR="#ccaacc" FONTSIZE="18px" BALLOON="true" WIDTH="250"}% And with the latest version you can have Balloon style tips! %%NOP%TOOLTIP{END}%==. There is also a simple ballon. ==%%NOP%TOOLTIP{TEXT="Set BALLOON=\"true\" The BALLOONIMGPATH for a simple ballon is %PUBURLPATH%/%SYSTEMWEB%/%TOPIC%/balloon_simple/ " FONTCOLOR="#336699" BALLOONIMGPATH="/pub/System/ToolTipPlugin/balloon_simple" SHADOWCOLOR="#ccaacc" FONTSIZE="18px" BALLOON="true" WIDTH="250"}% A simple balloon layout %%NOP%TOOLTIP{END}%==| Example of balloon tip | %TOOLTIP{TEXT="Set BALLOON=\"true\" The BALLOONIMGPATH will default to the %PUBURLPATH%/%SYSTEMWEB%/%TOPIC%/balloon/ path " FONTCOLOR="#336699" SHADOWCOLOR="#ccaacc" FONTSIZE="18px" BALLOON="true" WIDTH="250"}% And with the latest version you can have Balloon style tips! %TOOLTIP{END}%.
_Note that presently MS Internet Explorer has trouble rendering the bottom corners due to some css conflict elsewhere on the page_
There is also a simple ballon. %TOOLTIP{TEXT="Set BALLOON=\"true\" The BALLOONIMGPATH for a simple ballon is %PUBURLPATH%/%SYSTEMWEB%/%TOPIC%/balloon_simple/ " FONTCOLOR="#336699" BALLOONIMGPATH="/pub/System/ToolTipPlugin/balloon_simple" SHADOWCOLOR="#ccaacc" FONTSIZE="18px" BALLOON="true" WIDTH="250"}% A simple balloon layout %TOOLTIP{END}% | +| ==%%NOP%TOOLTIP{TEXT="You can also insert <%NOP%img src=\'%ATTACHURLPATH%/ToolTipPhoto.gif\' /> gif/jpg photos and !WikiWords in your text... this is simply HTML! (but remember to escape single quotes (\'), double quotes (\") !I18N chars, etc :-)), and set STICKY=\"true\" if you want the links usable." STICKY="true" TITLE="PHOTOS !" FONTCOLOR="#336699" SHADOWCOLOR="#ccaacc" FONTSIZE="18px" WIDTH="250"}% insert photos and links %%NOP%TOOLTIP{END}%== | Graphics and Links | %TOOLTIP{TEXT="You can also insert gif/jpg photos and WikiWords in your text... this is simply HTML! (but remember to escape single quotes (\'), double quotes (\") I18N chars, etc :-)), and set STICKY=\"true\" if you want the links usable." STICKY="true" TITLE="PHOTOS !" FONTCOLOR="#336699" SHADOWCOLOR="#ccaacc" FONTSIZE="18px" WIDTH="250"}% insert photos and links %TOOLTIP{END}% _This example is "Sticky" - you need to dismiss the popup by touching this or another tip with the mouse._ | +| ==%%NOP%TOOLTIP{TEXT="You can set a background image to the tip" FONTCOLOR="#336699" TITLE="Background image" SHADOWCOLOR="#ccaacc" FONTSIZE="18px" WIDTH="190" BGIMG="%%NOP%ATTACHURLPATH%/ToolTipBackground.jpg" STICKY="true" DURATION="5000"}% This tip has a background image and is "sticky" for 5 seconds.%%NOP%TOOLTIP{END}% too !== | Example of background image | %TOOLTIP{TEXT="You can set a background image to the tip" FONTCOLOR="#336699" TITLE="Background image" SHADOWCOLOR="#ccaacc" FONTSIZE="18px" WIDTH="190" BGIMG="%ATTACHURLPATH%/ToolTipBackground.jpg" STICKY="true" DURATION="5000" }% This tip has a background image and is "sticky" for 5 seconds %TOOLTIP{END}% | +| ==%%NOP%TOOLTIP{ URL="../System/SiteMap" TARGET="_blank" INCLUDE="SiteMap" STICKY="true" BORDERCOLOR="#333366" PADDING="0" BORDERWIDTH="1" FONTSIZE="12px" FONTCOLOR="black" ABOVE="false" OFFSETY="100" WIDTH="800" CENTERWINDOW="true" CENTERALWAYS="true"}% Raw included SiteMap as ToolTip %%NOP%TOOLTIP%== | __[No Example]__ | %TOOLTIP{ URL="../System/SiteMap" TARGET="_blank" INCLUDE="SiteMap" STICKY="true" BORDERCOLOR="#333366" PADDING="0" BORDERWIDTH="1" FONTSIZE="12px" FONTCOLOR="black" ABOVE="false" OFFSETY="100" WIDTH="800" CENTERWINDOW="true" CENTERALWAYS="true"}% Raw included SiteMap as ToolTip %TOOLTIP% (This one is also a link to the sitemap on the current web, and will follow the scroll.) | + +---++ Parameters + +All walterzorn tooltip parameters are allowed and simply passed to the javascript applet. For a complete list refer to http://www.walterzorn.com/tooltip/tooltip_e.htm Pass the parameters using the standard Foswiki format - Parameter="value". Use of %TOOLTIP{END}% to close the tip text is mandatory. + +%TABLE{sort="off"}% +| *name* | *usage* | *example* | +| *Foswiki Specific Parameters* ||| +| END (or empty parameter) | End of url text that activate the tooltip (mandatory !). | %TOOLTIP{END}% | +| INCLUDE | Include a topic text into the tooltip. Included topic text should only content simple Foswiki or HTML datas. | INCLUDE="web.topic" or INCLUDE="\"topic\" section=\"sect1\"" The parameter must include any quotes that would normally be required in a %INCLUDE statement. Embedded quotes must be escaped with backslash (\"). Example: ==INCLUDE="\"Myweb.MyTopic\" section=\"mysection\""== | +| TARGET | Adds the target= operand to the URL. | TARGET="_blank" opens the link in a new window | +| TEXT | ToolTip text. | Single and double quotes within this string must be escaped with backslash, \" \' | +| URL | Specifies link if this tip is also a link, otherwise defaults to null link | URL=http://foswiki.org or web relative URL="../System/SiteMap" | +| *wz_tooltip parameters - see http://www.walterzorn.com/tooltip/tooltip_e.htm* ||| +| ABOVE | Places the tooltip above the mousepointer. Additionally applying the OFFSETY command allows to set the vertical distance from the mousepointer. | ABOVE="true" | +| BGCOLOR | Background color of the tooltip. | BGCOLOR="#d3e3f6" | +| BGIMG | Background image. | BGIMG="images/myBgImg.jpg" | +| BORDERWIDTH | Width of tooltip border. May be 0 to hide the border. | BORDERWIDTH="3" | +| BORDERCOLOR | Border color. | BORDERCOLOR="#336699" | +| DELAY | Tooltip shows up after the specified timeout (milliseconds). | DELAY="1000" | +| FIX | Fixes the tooltip to the co-ordinates specified. Useful, for example, if combined with the STICKY command. | FIX="[200, 2400]" | +| FONTCOLOR | Font color. | FONTCOLOR="#993399" | +| FONTFACE | Font face / family. | FONTFACE="verdana,geneva,sans-serif" | +| FONTSIZE | Font size + unit. Unit inevitably required. | FONTSIZE="30px" | +| FONTWEIGHT | Font weight. Available values: "normal" or "bold". | FONTWEIGHT="bold" | +| LEFT | Tooltip positioned on the left side of the mousepointer. | LEFT="true" | +| OFFSETX | Horizontal offset from mouse-pointer. | OFFSETX="32" | +| OFFSETY | Vertical offset from mouse-pointer. | OFFSETY="32" | +| OPACITY | Transparency of tooltip. Opacity is the opposite of transparency. Value must be a number between 0 (fully transparent) and 100 (opaque, no transparency). Not (yet) supported by Opera. | OPACITY="50" | +| PADDING | Inner spacing, i.e. the spacing between border and content, for instance text or image(s). | PADDING="5" | +| SHADOWCOLOR | Creates shadow with the specified color. Shadow width (strength) will be automatically processed to 3 (pixels) if no global shadow width setting can be found in in wz_tooltip.js, and the concerned html tag doesn"t contain a SHADOWWIDTH command. | SHADOWCOLOR="#ccaacc" | +| SHADOWWIDTH | Creates shadow with the specified width (strength). | SHADOWWIDTH="6" | +| STATIC | Like OS-based tooltips, the tooltip doesn"t follow the movements of the mouse-pointer. | STATIC="true" | +| STICKY | The tooltip stays fixed on it's initial position until another tooltip is activated, or the user clicks on the document. | STICKY="true" | +| TEMP | Specifies a time span in milliseconds after which the tooltip disappears, even if the mousepointer is still on the concerned HTML element, or if the STICKY command has been applied. Values <=0 make the tooltip behave "normally" as if no time span had been specified. | TEMP="3500" | +| TEXTALIGN | Aligns the text of both the title and the body of the tooltip. Values must be included in single quotes and can be either 'right', 'justify' or 'left', the latter being unnecessary since it is the preset default value. | TEXTALIGN="right" | +| TITLE | Title. Text in single quotes. Background color is automatically the same as the border color. | TITLE="Some title" | +| TITLECOLOR | Color of title text. | TITLECOLOR="#ff6666" | +| WIDTH | Width of tooltip. | WIDTH="200" | + +---++ General Settings + +Make any settings changes in your Main.SitePreferences topic. Prefix the setting with TOOLTIPPLUGIN_ as in TOOLTIPPLUGIN_DEBUG = 1. *This plugin does not read settings from this topic!* + + * One line description, shown in the %SYSTEMWEB%.TextFormattingRules topic: + * Set SHORTDESCRIPTION = create Tool Tips for links + + * Debug plugin: (See output in =data/debug.txt=) + * Set DEBUG = 0 + + * Bypass Javascript load. Set to 1 if you will manually load the javascript as part of the page templates. + * Set JSBYPASS =0 + + * Force Javascript load. Set to 1 if you want the plugin to add the Javascript to all pages regardles of the presence or absence of a %TOOLTIP + * Set JSFORCE =0 + +---++ Plugin Installation Instructions + +__Note:__ You do not need to install anything on the browser to use this plugin. The following instructions are for the administrator who installs the plugin on the server where Foswiki is running. + + * Download the ZIP file from the Plugin web (see below) + * Unzip *%TOPIC%.zip* in your Foswiki installation directory. Content: +| *File:* | *Description:* | +| ==data/System/%TOPIC%.txt== | Plugin topic | +| ==lib/Foswiki/Plugins/%TOPIC%.pm== | Plugin Perl module | +| ==pub/System/ToolTipPlugin/ToolTipBackground.jpg== | sample image | +| ==pub/System/ToolTipPlugin/ToolTipPhoto.gif== | sample image | +| ==pub/System/ToolTipPlugin/wz_tooltip.js== | wz tooltip library | +| ==pub/System/ToolTipPlugin/tip_centerwindow.js== | Support for tip centering | +| ==pub/System/ToolTipPlugin/tip_followscroll.js== | Support for tip to remain stationary as page scrolls behind it. | +| ==pub/System/ToolTipPlugin/tip_balloon.js== | Support for "Balloon" tips | +| | | +| ==pub/System/ToolTipPlugin/lt.gif== | Images used to build "Balloon Tips" | +| ==pub/System/ToolTipPlugin/background.gif== | | +| ==pub/System/ToolTipPlugin/b.gif== | | +| ==pub/System/ToolTipPlugin/rt.gif== | | +| ==pub/System/ToolTipPlugin/l.gif== | | +| ==pub/System/ToolTipPlugin/stemt.gif== | | +| ==pub/System/ToolTipPlugin/lb.gif== | | +| ==pub/System/ToolTipPlugin/r.gif== | | +| ==pub/System/ToolTipPlugin/rb.gif== | | +| ==pub/System/ToolTipPlugin/t.gif== | | +| ==pub/System/ToolTipPlugin/stemb.gif== | | + +*Note:* *pub/System/ToolTipPlugin/wz_tooltip.js* has been left with the default debug parameter enabled. The script recommends that the parameter be set to false when debugging of tooltips is no longer necessary. *var tt_Debug = true* + + * Test if the installation was successful: +---+++ Testing the plugin + +If the javascript is available, the same tooltip is displayed if Plugin is installed and not: +--- + With plugin : + +*Write:* =%TOO%NOP%LTIP{TEXT="Whaoooo !" FONTCOLOR="#336699" TITLE="Nice tooltip, no ?" SHADOW="true" SHADOWCOLOR="#ccaacc" FONTSIZE="18px"}%= put your mouse here, you should see a tooltip =%TOO%NOP%LTIP{END}= + +*See:* %TOOLTIP{TEXT="Whaoooo !" FONTCOLOR="#336699" TITLE="Nice tooltip, no ?" SHADOW="true" SHADOWCOLOR="#ccaacc" FONTSIZE="18px"}% put your mouse here, you should see a tooltip %TOOLTIP{END}% +--- + Without plugin : + +*Write:* <a border="0" href="javascript:void(0);" onmouseover="Tip('Whaoooo !', FONTCOLOR, '#336699', TITLE, 'Nice tooltip, no ?', SHADOWCOLOR, '#ccaacc', SHADOW, 'true', FONTSIZE, '18px' )" onmouseout="UnTip()"> put you mouse here, you should see a tooltip <A> + +*See:* put you mouse here, you should see a tooltip . but only if the wz_tooltip.js file has been loaded in the page templates. +--- + +---++ Plugin Info + +| Plugin Author: | TWiki:Main/PatrickNomblot, Foswiki:Main/GeorgeClark | +| Plugin Version: | %$VERSION% | +| Change History: | | +| 12 Dec 2008 | Foswikitask:Item8027: Update to latest javascript code, Foswikitask:Item6013: Convert to registerTagHandler, Foswikitask:Item4465: (untested) - registerTagHandler might address this, not reproduced. Also restructured attachments for balloon tips, and converted to Foswiki name space. | +| 20 Oct 2008 | Foswiki:Main/GeorgeClark: Rewrite using registered tag handler. Add support for named section includes. | +| 2 Oct 2008 | Foswiki:Main/GeorgeClark: TWikibug:Item6040: Incomplete implementation of a TWiki::Func routine has security implications | +| 28 Aug 2008 | Foswiki:Main/GeorgeClark: TWikibug:Item5966: Syntax changed for calling wz_tooltip.js, updated to =wz_tooltip.js= V5.20, reworked documentation, .js file only included when %TOOLTIP is present in the topic. Also added support for optional extensions for balloon, scrolling and centered tips. | +| 15 Apr 2006 | TWiki:Main/SteffenPoulsen: Updated with new version of =wz_tooltip.js= (updated browser support), support for Dakar, cleaned up doc a bit | +| 21 Nov 2003 | TWiki:Main/PatrickNomblot: Initial version | +| 10 Sep 2004 | TWiki:Main/PatrickNomblot: tooltip text can comes from any TOPIC | +| 29 Dec 2005 | TWiki:Main/AndreUlrich: updated to wz_tooltip.js v. 3.38; added further parameters | +| Dependencies: | %$DEPENDENCIES% | +| Plugin Home: | http://foswiki.org/Extensions/%TOPIC% | + +__Related Topics:__ %TWIKIWEB%.TWikiPreferences, %TWIKIWEB%.TWikiPlugins + +-- TWiki:Main/PatrickNomblot - 21 Nov 2003 + +%META:FILEATTACHMENT{name="stemb.gif" attr="h" comment="Stem bottom image" date="1204621416" path="stemb.gif" size="165" version="1.1"}% +%META:FILEATTACHMENT{name="r.gif" attr="h" comment="Right border image" date="1204622400" path="r.gif" size="46" version="1.1"}% +%META:FILEATTACHMENT{name="lb.gif" attr="h" comment="Left bottom corner image" date="1204624186" path="lb.gif" size="85" version="1.1"}% +%META:FILEATTACHMENT{name="rb.gif" attr="h" comment="Right bottom corner image" date="1204624130" path="rb.gif" size="86" version="1.1"}% +%META:FILEATTACHMENT{name="tip_followscroll.js" attr="h" comment="Javascript implements tips that remain stationary over a scrolling window" date="1220844879" path="tip_followscroll.js" size="2639" version="1.1"}% +%META:FILEATTACHMENT{name="background.gif" attr="h" comment="Background image for balloon tips" date="1182397248" path="background.gif" size="43" version="1.1"}% +%META:FILEATTACHMENT{name="l.gif" attr="h" comment="Left border image" date="1204622408" path="l.gif" size="46" version="1.1"}% +%META:FILEATTACHMENT{name="ToolTipPhoto.gif" attr="h" comment="Sample inline image" date="1204509496" path="ToolTipPhoto.gif" size="5859" version="1.1"}% +%META:FILEATTACHMENT{name="stemt.gif" attr="h" comment="Stem top image" date="1204621444" path="stemt.gif" size="167" version="1.1"}% +%META:FILEATTACHMENT{name="tip_balloon.js" attr="h" comment="Javascript implements balloon tips" date="1220845900" path="tip_balloon.js" size="9084" version="1.1"}% +%META:FILEATTACHMENT{name="lt.gif" attr="h" comment="Left top corner image" date="1204624172" path="lt.gif" size="86" version="1.1"}% +%META:FILEATTACHMENT{name="wz_tooltip.js" attr="h" comment="Javascript - master script for all tooltips" date="1219885587" path="wz_tooltip.js" size="36186" version="1.1"}% +%META:FILEATTACHMENT{name="rt.gif" attr="h" comment="Right top corner image" date="1204624116" path="rt.gif" size="85" version="1.1"}% +%META:FILEATTACHMENT{name="tip_centerwindow.js" attr="h" comment="Javascript implements center window tips" date="1220844879" path="tip_centerwindow.js" size="3229" version="1.1"}% +%META:FILEATTACHMENT{name="b.gif" attr="h" comment="Bottom border image" date="1204622412" path="b.gif" size="46" version="1.1"}% +%META:FILEATTACHMENT{name="ToolTipBackground.jpg" attr="h" comment="Sample background image" date="1219967648" path="ToolTipBackground.jpg" size="350" version="1.1"}% +%META:FILEATTACHMENT{name="t.gif" attr="h" comment="Top border image" date="1204622418" path="t.gif" size="46" version="1.1"}% +%META:FILEATTACHMENT{name="example1.jpg" attachment="example1.jpg" attr="h" comment="" date="1223235542" path="example1.jpg" size="16795" stream="IO::File=GLOB(0x8af57e0)" tmpFilename="/usr/tmp/CGItemp9503" user="BaseUserMapping_333" version="1"}% +%META:FILEATTACHMENT{name="example2.jpg" attachment="example2.jpg" attr="h" comment="" date="1223236390" path="example2.jpg" size="14179" stream="IO::File=GLOB(0x8b188d4)" tmpFilename="/usr/tmp/CGItemp9566" user="BaseUserMapping_333" version="1"}% +%META:FILEATTACHMENT{name="example3.jpg" attachment="example3.jpg" attr="h" comment="" date="1223236796" path="example3.jpg" size="18146" stream="IO::File=GLOB(0x8b18d64)" tmpFilename="/usr/tmp/CGItemp9483" user="BaseUserMapping_333" version="1"}% +%META:FILEATTACHMENT{name="example4.jpg" attachment="example4.jpg" attr="h" comment="" date="1223237669" path="example4.jpg" size="27524" stream="IO::File=GLOB(0x8b19a94)" tmpFilename="/usr/tmp/CGItemp9344" user="BaseUserMapping_333" version="1"}% +%META:FILEATTACHMENT{name="example5.jpg" attachment="example5.jpg" attr="h" comment="" date="1223241394" path="example5.jpg" size="11764" stream="IO::File=GLOB(0x8b1a2fc)" tmpFilename="/usr/tmp/CGItemp9569" user="BaseUserMapping_333" version="1"}% diff --git a/data/TWiki/ToolTipPlugin.txt b/data/TWiki/ToolTipPlugin.txt deleted file mode 100644 index 5417837..0000000 --- a/data/TWiki/ToolTipPlugin.txt +++ /dev/null @@ -1,158 +0,0 @@ -%META:TOPICINFO{author="BaseUserMapping_333" date="1221616557" format="1.1" reprev="1.16" version="1.16"}% ----+!! %TOPIC% - -This is a plugin to generate dynamic Tool Tips in HTML + javascript (mouseover event). This tooltip is based on http://www.walterzorn.com/tooltip/tooltip_e.htm - -%TOC% - ----++ Examples - -%TOOLTIP{TEXT="Whaoooo ! With such a tooltip, you can keep your topics light... and get better communication ! " FONTCOLOR="#336699" TITLE="Nice tooltip, no ?" SHADOWCOLOR="#ccaacc" FONTSIZE="18px"}% put your mouse here, you should see a tooltip %TOOLTIP{END}%. - -You can use one or more %TOOLTIP{TEXT="there are soo many parameters..." BGCOLOR="#FF8000" FONTCOLOR="#00FF80" TITLE="PARAMETERS" SHADOWCOLOR="#ccaacc" FONTSIZE="30px"}%parameters%TOOLTIP{END}% to get your own and nice tool tip !. - - - -%TOOLTIP{TEXT="Set BALLOON="true" The BALLOONIMGPATH will default to the pub directory for this topic. " FONTCOLOR="#336699" SHADOWCOLOR="#ccaacc" FONTSIZE="18px" BALLOON="true" WIDTH="450" }% And with the latest version you can have Balloon style tips! %TOOLTIP{END}%. - -Note that you can also %TOOLTIP{TEXT="You can also insert gif/jpg photos and WikiWords in your text... this is simply HTML! (but remember to escape single quotes (\'), I18N chars, etc :-)), and set STICKY="true" if you want the links usable." STICKY="true" TITLE="PHOTOS !" FONTCOLOR="#336699" SHADOWCOLOR="#ccaacc" FONTSIZE="18px" WIDTH="400"}% do this %TOOLTIP{END}% and %TOOLTIP{TEXT="you can set a background image so to get a nice tool tip and also add some gif/jpg photos" FONTCOLOR="#336699" TITLE="Background image" SHADOWCOLOR="#ccaacc" FONTSIZE="18px" WIDTH="190" BGIMG="%ATTACHURLPATH%/ToolTipBackground.jpg"}% this %TOOLTIP{END}% too !. - - -%N%: A nice feature is to get clickable TWiki site map in ToolTip. These are "Sticky" and don't dismiss when the mouse moves away. - - - - * %TOOLTIP{TEXT="
Web Why (pourquoi) ? X
Main Welcome to TWiki... Users, Groups, Offices - tour this expandable virtual workspace.
TWiki Welcome, Registration, and other StartingPoints; TWiki history & Wiki style; All the docs...
Sandbox Sandbox test area.
Codev TWiki development: the core collaboration zone for the TWiki Project.
Plugins Repository for TWiki Plugins, Skins and Add-Ons.
Salgina Civil engineering exchange for the Salginatobel Bridge.
Support Tech support for the TWiki collaboration platform.
Wikilearn Learn or teach anything related to free or open source software.
" STICKY="true" BORDERCOLOR="#333366" PADDING="0" BORDERWIDTH="1" FONTSIZE="12px" FONTCOLOR="black" ABOVE="false" OFFSETY="-50" WIDTH="550" FOLLOWSCROLL="True"}% Tidy'ed SiteMap as ToolTip %TOOLTIP{END}% -
- - * %TOOLTIP{ URL="../TWiki/SiteMap" TARGET="_blank" INCLUDE="SiteMap" STICKY="true" BORDERCOLOR="#333366" PADDING="0" BORDERWIDTH="1" FONTSIZE="12px" FONTCOLOR="black" ABOVE="false" OFFSETY="-350" WIDTH="800" CENTERWINDOW="true" CENTERALWAYS="true"}% Raw included SiteMap as ToolTip %TOOLTIP% (This one is also a link to the sitemap on the current web, and will follow the scroll.) - ----++ Parameters - -All walterzorn tooltip parameters are allowed and simply passed to the javascript applet. For a complete list refer to http://www.walterzorn.com/tooltip/tooltip_e.htm Pass the parameters using the standard TWiki format - Parameter="value". Use of %TOOLTIP{END}% to close the tip text is mandatory. - -%TABLE{sort="off"}% -| *name* | *usage* | *example* | -| *TWiki Specific Parameters* ||| -| END (or empty parameter) | End of url text that activate the tooltip (mandatory !). | %TOOLTIP{END}% | -| INCLUDE | Include a topic text into the tooltip. Included topic text should only content simple TWiki or HTML datas. | INCLUDE="web.topic" or INCLUDE="topic" | -| TARGET | Adds the target= operand to the URL. | TARGET="_blank" opens the link in a new window | -| TEXT | ToolTip text. | | -| URL | Specifies link if this tip is also a link, otherwise defaults to null link | URL=http://twiki.org or web relative URL="../TWiki/SiteMap" | -| *wz_tooltip parameters - see http://www.walterzorn.com/tooltip/tooltip_e.htm* ||| -| ABOVE | Places the tooltip above the mousepointer. Additionally applying the OFFSETY command allows to set the vertical distance from the mousepointer. | ABOVE="true" | -| BGCOLOR | Background color of the tooltip. | BGCOLOR="#d3e3f6" | -| BGIMG | Background image. | BGIMG="images/myBgImg.jpg" | -| BORDERWIDTH | Width of tooltip border. May be 0 to hide the border. | BORDERWIDTH="3" | -| BORDERCOLOR | Border color. | BORDERCOLOR="#336699" | -| DELAY | Tooltip shows up after the specified timeout (milliseconds). | DELAY="1000" | -| FIX | Fixes the tooltip to the co-ordinates specified. Useful, for example, if combined with the STICKY command. | FIX="[200, 2400]" | -| FONTCOLOR | Font color. | FONTCOLOR="#993399" | -| FONTFACE | Font face / family. | FONTFACE="verdana,geneva,sans-serif" | -| FONTSIZE | Font size + unit. Unit inevitably required. | FONTSIZE="30px" | -| FONTWEIGHT | Font weight. Available values: "normal" or "bold". | FONTWEIGHT="bold" | -| LEFT | Tooltip positioned on the left side of the mousepointer. | LEFT="true" | -| OFFSETX | Horizontal offset from mouse-pointer. | OFFSETX="32" | -| OFFSETY | Vertical offset from mouse-pointer. | OFFSETY="32" | -| OPACITY | Transparency of tooltip. Opacity is the opposite of transparency. Value must be a number between 0 (fully transparent) and 100 (opaque, no transparency). Not (yet) supported by Opera. | OPACITY="50" | -| PADDING | Inner spacing, i.e. the spacing between border and content, for instance text or image(s). | PADDING="5" | -| SHADOWCOLOR | Creates shadow with the specified color. Shadow width (strength) will be automatically processed to 3 (pixels) if no global shadow width setting can be found in in wz_tooltip.js, and the concerned html tag doesn"t contain a SHADOWWIDTH command. | SHADOWCOLOR="#ccaacc" | -| SHADOWWIDTH | Creates shadow with the specified width (strength). | SHADOWWIDTH="6" | -| STATIC | Like OS-based tooltips, the tooltip doesn"t follow the movements of the mouse-pointer. | STATIC="true" | -| STICKY | The tooltip stays fixed on it's initial position until another tooltip is activated, or the user clicks on the document. | STICKY="true" | -| TEMP | Specifies a time span in milliseconds after which the tooltip disappears, even if the mousepointer is still on the concerned HTML element, or if the STICKY command has been applied. Values <=0 make the tooltip behave "normally" as if no time span had been specified. | TEMP="3500" | -| TEXTALIGN | Aligns the text of both the title and the body of the tooltip. Values must be included in single quotes and can be either 'right', 'justify' or 'left', the latter being unnecessary since it is the preset default value. | TEXTALIGN="right" | -| TITLE | Title. Text in single quotes. Background color is automatically the same as the border color. | TITLE="Some title" | -| TITLECOLOR | Color of title text. | TITLECOLOR="#ff6666" | -| WIDTH | Width of tooltip. | WIDTH="200" | - ----++ General Settings - - * One line description, shown in the %SYSTEMWEB%.TextFormattingRules topic: - * Set SHORTDESCRIPTION = create Tool Tips for links - - * Debug plugin: (See output in =data/debug.txt=) - * Set DEBUG = 0 - ----++ Plugin Installation Instructions - -__Note:__ You do not need to install anything on the browser to use this plugin. The following instructions are for the administrator who installs the plugin on the server where TWiki is running. - - * Download the ZIP file from the Plugin web (see below) - * Unzip *%TOPIC%.zip* in your twiki installation directory. Content: -| *File:* | *Description:* | -| ==data/System/%TOPIC%.txt== | Plugin topic | -| ==lib/Foswiki/Plugins/%TOPIC%.pm== | Plugin Perl module | -| ==pub/TWiki/ToolTipPlugin/ToolTipBackground.jpg== | sample image | -| ==pub/TWiki/ToolTipPlugin/ToolTipPhoto.gif== | sample image | -| ==pub/TWiki/ToolTipPlugin/wz_tooltip.js== | wz tooltip library | -| ==pub/TWiki/ToolTipPlugin/tip_centerwindow.js== | Support for tip centering | -| ==pub/TWiki/ToolTipPlugin/tip_followscroll.js== | Support for tip to remain stationary as page scrolls behind it. | -| ==pub/TWiki/ToolTipPlugin/tip_balloon.js== | Support for "Balloon" tips | -| | | -| ==pub/TWiki/ToolTipPlugin/lt.gif== | Images used to build "Balloon Tips" | -| ==pub/TWiki/ToolTipPlugin/background.gif== | | -| ==pub/TWiki/ToolTipPlugin/b.gif== | | -| ==pub/TWiki/ToolTipPlugin/rt.gif== | | -| ==pub/TWiki/ToolTipPlugin/l.gif== | | -| ==pub/TWiki/ToolTipPlugin/stemt.gif== | | -| ==pub/TWiki/ToolTipPlugin/lb.gif== | | -| ==pub/TWiki/ToolTipPlugin/r.gif== | | -| ==pub/TWiki/ToolTipPlugin/rb.gif== | | -| ==pub/TWiki/ToolTipPlugin/t.gif== | | -| ==pub/TWiki/ToolTipPlugin/stemb.gif== | | - -*Note:* ==pub/TWiki/ToolTipPlugin/wz_tooltip.js== has been left with the default debug parameter enabled. The script recommends that the parameter be set to false when debugging of tooltips is no longer necessary. ==var tt_Debug = true== - - * Test if the installation was successful: ----+++ Testing the plugin - -The same tooltip is displayed if Plugin is installed and not: - ---- - With plugin : - -*Write:* =%TOO%NOP%LTIP{TEXT="Whaoooo !" FONTCOLOR="#336699" TITLE="Nice tooltip, no ?" SHADOW="true" SHADOWCOLOR="#ccaacc" FONTSIZE="18px"}%= put your mouse here, you should see a tooltip =%TOO%NOP%LTIP{END}= - -*See:* %TOOLTIP{TEXT="Whaoooo !" FONTCOLOR="#336699" TITLE="Nice tooltip, no ?" SHADOW="true" SHADOWCOLOR="#ccaacc" FONTSIZE="18px"}% put your mouse here, you should see a tooltip %TOOLTIP{END}% ---- - Without plugin : put you mouse here, you should see a tooltip . but only if the wz_tooltip.js file has been loaded in the page templates. ---- - ----++ Plugin Info - -| Plugin Author: | TWiki:Main/PatrickNomblot | -| Plugin Version: | %$VERSION% | -| Change History: | | -| 2 Aug 2008 | TWiki:Main/GeorgeClark: TWikibug:Item6040: Incomplete implementation of a TWiki::Func routine has security implications | -| 28 Aug 2008 | TWiki:Main/GeorgeClark: TWikibug:Item5966: Syntax changed for calling wz_tooltip.js, updated to =wz_tooltip.js= V5.20, reworked documentation, .js file only included when %TOOLTIP is present in the topic. Also added support for optional extensions for balloon, scrolling and centered tips. | -| 15 Apr 2006 | TWiki:Main/SteffenPoulsen: Updated with new version of =wz_tooltip.js= (updated browser support), support for Dakar, cleaned up doc a bit | -| 21 Nov 2003 | TWiki:Main/PatrickNomblot: Initial version | -| 10 Sep 2004 | TWiki:Main/PatrickNomblot: tooltip text can comes from any TOPIC | -| 29 Dec 2005 | TWiki:Main/AndreUlrich: updated to wz_tooltip.js v. 3.38; added further parameters | -| Dependencies: | %$DEPENDENCIES% | -| Plugin Home: | http://foswiki.org/Extensions/%TOPIC% | -| Feedback: | http://foswiki.org/Extensions/%TOPIC%Dev | -| Appraisal: | http://foswiki.org/Extensions/%TOPIC%Appraisal | - -__Related Topics:__ %SYSTEMWEB%.DefaultPreferences, %USERSWEB%.SitePreferences, [[%SYSTEMWEB%.Plugins][Plugins]] - --- TWiki:Main/PatrickNomblot - 21 Nov 2003 - -%META:FILEATTACHMENT{name="stemb.gif" attr="h" comment="Stem bottom image" date="1204621416" path="stemb.gif" size="165" version="1.1"}% -%META:FILEATTACHMENT{name="r.gif" attr="h" comment="Right border image" date="1204622400" path="r.gif" size="46" version="1.1"}% -%META:FILEATTACHMENT{name="lb.gif" attr="h" comment="Left bottom corner image" date="1204624186" path="lb.gif" size="85" version="1.1"}% -%META:FILEATTACHMENT{name="rb.gif" attr="h" comment="Right bottom corner image" date="1204624130" path="rb.gif" size="86" version="1.1"}% -%META:FILEATTACHMENT{name="tip_followscroll.js" attr="h" comment="Javascript implements tips that remain stationary over a scrolling window" date="1220844879" path="tip_followscroll.js" size="2639" version="1.1"}% -%META:FILEATTACHMENT{name="background.gif" attr="h" comment="Background image for balloon tips" date="1182397248" path="background.gif" size="43" version="1.1"}% -%META:FILEATTACHMENT{name="l.gif" attr="h" comment="Left border image" date="1204622408" path="l.gif" size="46" version="1.1"}% -%META:FILEATTACHMENT{name="ToolTipPhoto.gif" attr="h" comment="Sample inline image" date="1204509496" path="ToolTipPhoto.gif" size="5859" version="1.1"}% -%META:FILEATTACHMENT{name="stemt.gif" attr="h" comment="Stem top image" date="1204621444" path="stemt.gif" size="167" version="1.1"}% -%META:FILEATTACHMENT{name="tip_balloon.js" attr="h" comment="Javascript implements balloon tips" date="1220845900" path="tip_balloon.js" size="9084" version="1.1"}% -%META:FILEATTACHMENT{name="lt.gif" attr="h" comment="Left top corner image" date="1204624172" path="lt.gif" size="86" version="1.1"}% -%META:FILEATTACHMENT{name="wz_tooltip.js" attr="h" comment="Javascript - master script for all tooltips" date="1219885587" path="wz_tooltip.js" size="36186" version="1.1"}% -%META:FILEATTACHMENT{name="rt.gif" attr="h" comment="Right top corner image" date="1204624116" path="rt.gif" size="85" version="1.1"}% -%META:FILEATTACHMENT{name="tip_centerwindow.js" attr="h" comment="Javascript implements center window tips" date="1220844879" path="tip_centerwindow.js" size="3229" version="1.1"}% -%META:FILEATTACHMENT{name="b.gif" attr="h" comment="Bottom border image" date="1204622412" path="b.gif" size="46" version="1.1"}% -%META:FILEATTACHMENT{name="ToolTipBackground.jpg" attr="h" comment="Sample background image" date="1219967648" path="ToolTipBackground.jpg" size="350" version="1.1"}% -%META:FILEATTACHMENT{name="t.gif" attr="h" comment="Top border image" date="1204622418" path="t.gif" size="46" version="1.1"}% diff --git a/lib/Foswiki/Plugins/ToolTipPlugin.pm b/lib/Foswiki/Plugins/ToolTipPlugin.pm new file mode 100755 index 0000000..ea98497 --- /dev/null +++ b/lib/Foswiki/Plugins/ToolTipPlugin.pm @@ -0,0 +1,175 @@ +# Plugin for Foswiki - The Free and Open Source Wiki, http://foswiki.org/ +# +# Copyright (C) 2000-2003 Andrea Sterbini, a.sterbini@flashnet.it +# Copyright (C) 2001-2003 Peter Thoeny, peter@thoeny.com +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details, published at +# http://www.gnu.org/copyleft/gpl.html +# +# ========================= +# +# This is ToolTip plugin. +# + + +use strict; +use warnings; +# ========================= +package Foswiki::Plugins::ToolTipPlugin; # change the package name and $pluginName!!! + +# ========================= +use vars qw( + $web $topic $user $installWeb $VERSION $RELEASE $pluginName $NO_PREFS_IN_TOPIC + $DefaultReadersFormat $incToolTip $incBalloon $incCenter $incFollow $debug +); + +# This should always be $Rev: 17559 $ so that Foswiki can determine the checked-in +# status of the plugin. It is used by the build automation tools, so +# you should leave it alone. +$VERSION = '$Rev: 17559 $'; + +# This is a free-form string you can use to "name" your own plugin version. +# It is *not* used by the build automation tools, but is reported as part +# of the version number in PLUGINDESCRIPTIONS. +$RELEASE = '1.5'; + +$NO_PREFS_IN_TOPIC = 1; + +$pluginName = 'ToolTipPlugin'; # Name of this Plugin + +# ========================= +sub initPlugin +{ + ( $topic, $web, $user, $installWeb ) = @_; + # check for Plugins.pm versions + if( $Foswiki::Plugins::VERSION < 1 ) { + Foswiki::Func::writeWarning( "Version mismatch between $pluginName and Plugins.pm" ); + return 0; + } + + # Get plugin debug flag + $debug = Foswiki::Func::getPreferencesFlag( "\U$pluginName\E_DEBUG" ); + + $DefaultReadersFormat = &Foswiki::Func::getPreferencesValue ("TOOLTIPPLUGIN_READERSFORMAT") || "
  • %READERNAME% : %READERDATE%"; + + # Flags to indicate that optional javascript files should be included + # in the \n"; + my $scripts = $sHead . "wz_tooltip.js" . $sTail; + $scripts .= $sHead . "tip_centerwindow.js" . $sTail if ( $incCenter || $force ); + $scripts .= $sHead . "tip_followscroll.js" . $sTail if ( $incFollow || $force ); + $scripts .= $sHead . "tip_balloon.js" . $sTail if ( $incBalloon || $force ); + $_[0] =~ s|()|$scripts$1|; # prepend scripts to closing body tag. + } ### if ( $incToolTip || $force) + } ### if ( !Foswiki::Func::getPreferencesFlag... + return; +} ### sub postRenderingHandler + +1; + diff --git a/lib/TWiki/Plugins/ToolTipPlugin/DEPENDENCIES b/lib/Foswiki/Plugins/ToolTipPlugin/DEPENDENCIES similarity index 100% rename from lib/TWiki/Plugins/ToolTipPlugin/DEPENDENCIES rename to lib/Foswiki/Plugins/ToolTipPlugin/DEPENDENCIES diff --git a/lib/Foswiki/Plugins/ToolTipPlugin/MANIFEST b/lib/Foswiki/Plugins/ToolTipPlugin/MANIFEST new file mode 100644 index 0000000..61cd4f0 --- /dev/null +++ b/lib/Foswiki/Plugins/ToolTipPlugin/MANIFEST @@ -0,0 +1,19 @@ +data/System/ToolTipPlugin.txt 0644 +lib/Foswiki/Plugins/ToolTipPlugin.pm 0755 +pub/System/ToolTipPlugin/ToolTipBackground.jpg 0644 +pub/System/ToolTipPlugin/ToolTipPhoto.gif 0644 +pub/System/ToolTipPlugin/b.gif 0644 +pub/System/ToolTipPlugin/background.gif 0644 +pub/System/ToolTipPlugin/l.gif 0644 +pub/System/ToolTipPlugin/lb.gif 0644 +pub/System/ToolTipPlugin/lt.gif 0644 +pub/System/ToolTipPlugin/r.gif 0644 +pub/System/ToolTipPlugin/rb.gif 0644 +pub/System/ToolTipPlugin/rt.gif 0644 +pub/System/ToolTipPlugin/stemb.gif 0644 +pub/System/ToolTipPlugin/stemt.gif 0644 +pub/System/ToolTipPlugin/t.gif 0644 +pub/System/ToolTipPlugin/tip_balloon.js 0644 +pub/System/ToolTipPlugin/tip_centerwindow.js 0644 +pub/System/ToolTipPlugin/tip_followscroll.js 0644 +pub/System/ToolTipPlugin/wz_tooltip.js 0644 diff --git a/lib/TWiki/Plugins/ToolTipPlugin/build.pl b/lib/Foswiki/Plugins/ToolTipPlugin/build.pl similarity index 75% rename from lib/TWiki/Plugins/ToolTipPlugin/build.pl rename to lib/Foswiki/Plugins/ToolTipPlugin/build.pl index 49bc081..f876dc1 100755 --- a/lib/TWiki/Plugins/ToolTipPlugin/build.pl +++ b/lib/Foswiki/Plugins/ToolTipPlugin/build.pl @@ -8,10 +8,10 @@ BEGIN } } -use TWiki::Contrib::Build; +use Foswiki::Contrib::Build; # Create the build object -$build = new TWiki::Contrib::Build( 'ToolTipPlugin' ); +$build = new Foswiki::Contrib::Build( 'ToolTipPlugin' ); # Build the target on the command line, or the default target $build->build($build->{target}); diff --git a/lib/TWiki/Plugins/ToolTipPlugin.pm b/lib/TWiki/Plugins/ToolTipPlugin.pm deleted file mode 100755 index b376f1e..0000000 --- a/lib/TWiki/Plugins/ToolTipPlugin.pm +++ /dev/null @@ -1,212 +0,0 @@ -# Plugin for Foswiki - The Free and Open Source Wiki, http://foswiki.org/ -# -# Copyright (C) 2000-2003 Andrea Sterbini, a.sterbini@flashnet.it -# Copyright (C) 2001-2003 Peter Thoeny, peter@thoeny.com -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details, published at -# http://www.gnu.org/copyleft/gpl.html -# -# ========================= -# -# This is ToolTip plugin. -# - - -# ========================= -package TWiki::Plugins::ToolTipPlugin; # change the package name and $pluginName!!! - -# ========================= -use vars qw( - $web $topic $user $installWeb $VERSION $RELEASE $pluginName - $debug $DefaultReadersFormat $ToolTipID $ToolTipOpened - $incBalloon $incCenter $incFollow - ); - -# This should always be $Rev: 17559 $ so that TWiki can determine the checked-in -# status of the plugin. It is used by the build automation tools, so -# you should leave it alone. -$VERSION = '$Rev: 17559 $'; - -# This is a free-form string you can use to "name" your own plugin version. -# It is *not* used by the build automation tools, but is reported as part -# of the version number in PLUGINDESCRIPTIONS. -$RELEASE = '1.4'; - -$pluginName = 'ToolTipPlugin'; # Name of this Plugin - -# ========================= -sub initPlugin -{ - ( $topic, $web, $user, $installWeb ) = @_; - # check for Plugins.pm versions - if( $TWiki::Plugins::VERSION < 1 ) { - TWiki::Func::writeWarning( "Version mismatch between $pluginName and Plugins.pm" ); - return 0; - } - - # Get plugin debug flag - $debug = TWiki::Func::getPreferencesFlag( "\U$pluginName\E_DEBUG" ); - - $DefaultReadersFormat = &TWiki::Func::getPreferencesValue ("TOOLTIPPLUGIN_READERSFORMAT") || "
  • %READERNAME% : %READERDATE%"; - - # Flags to indicate that optional javascript files should be included - # in the \n"; - $scripts .= "\n" if ($incCenter); - $scripts .= "\n" if ($incFollow); - $scripts .= "\n" if ($incBalloon); - - $_[0] =~ s|()|$scripts$1| if ($ToolTipID); # Insert scripts only if %TIP -} - -sub handleToolTip -{ - my $attr = shift; - - my $out=""; - if ( ($attr =~ /END/) || ($attr =~ /^$/) ) - { - if ( $ToolTipOpened>0 ) - { - $out=""; - $ToolTipOpened-=1; - } - else - { - $ToolTipOpened=0; - } - } - else - { - TWiki::Func::writeDebug( "TOOLTIP - BEFORE : $attr") if $debug; - - # WikiWords that are unresolved create a ... containing double-quotes - # And resolved WikiWords create tags containing double-quotes. - # Both of these are automatically inserted by TWiki rendering and break the TEXT=" " string - - $attr =~ s//&fixupSpan($1)/ge; # Fixup any double-quotes found within tags - $attr =~ s/]+)>/&fixupUrl($1)/ge; # Fixup any double-quotes found within tags - - my $theText = &TWiki::Func::extractNameValuePair( "$attr", "TEXT" ) || ""; - my $TextInclude = &TWiki::Func::extractNameValuePair( "$attr", "INCLUDE" ) || ""; - my $theURL = &TWiki::Func::extractNameValuePair( "$attr", "URL" ) || "javascript:void(0);"; - my $theTARGET = &TWiki::Func::extractNameValuePair( "$attr", "TARGET" ) || ""; - - - $attr =~ s/INCLUDE\s*=\s*\"([^\"]*)\"//g; # remove INCLUDE from attributes - $attr =~ s/URL\s*=\s*\"([^\"]*)\"//g; # remove URL from attributes - $attr =~ s/TARGET\s*=\s*\"([^\"]*)\"//g; # remove TARGET from attributes - $attr =~ s/TEXT\s*=\s*\"([^\"]*)\"//g; # remove TEXT from attributes - $attr =~ s/(\S+)\s*=\s*\"([^\"]*)\"/$1, \'$2\',/g; # Convert each parameter to Tip format "ATTR, VALUE" - $attr =~ s/\s+$//; # Strip any trailing spaces - $attr =~ s/, \'(\d+)\',/, $1,/g; # Strip quotes from decimal parameters - chop($attr) if (substr($attr,-1) eq ","); # and any trailing comma - TWiki::Func::writeDebug( "TOOLTIP - AFTER : $attr") if $debug; - - # Add a defautl BALLOONIMGPATH if BALLON is true and path is not provided - # - if ( $attr =~ m/BALLOON, '[Tt][Rr][Uu][Ee]'/o ) { - $attr .= ", BALLOONIMGPATH, '$TWiki::cfg{PubUrlPath}/$TWiki::cfg{SystemWebName}/$pluginName/'" if (!($attr =~ m/BALLOONIMGPATH,/o)); - $incBalloon = 1; - } - - $incCenter = 1 if ( $attr =~ m/CENTERWINDOW, '[Tt][Rr][Uu][Ee]'/o ) ; - $incFollow = 1 if ( $attr =~ m/FOLLOWSCROLL, '[Tt][Rr][Uu][Ee]'/o ) ; - - - if ( $TextInclude ) - { - TWiki::Func::writeDebug( "topic : $TextInclude") if $debug; - $theText="Invalid topic name $TextInclude !"; - my( $iweb, $itopic ) = split('\.', $TextInclude); - if ( ! $itopic ) { $itopic=$iweb; $iweb=$web; } - if( TWiki::Func::topicExists( $iweb, $itopic ) ) - { - $theText=" Denied: view of topic $params->{INCLUDE} not permitted !"; - my ( $meta, $text ) = &TWiki::Func::readTopic( $iweb, $itopic ); - - if (TWiki::Func::checkAccessPermission( - 'VIEW', TWiki::Func::getWikiName(), $text, $itopic, $iweb, $meta)) { - - $text =~ s/.*?%STARTINCLUDE%//os; - $text =~ s/%STOPINCLUDE%.*//os; - $theText = &TWiki::Func::expandCommonVariables($text, $itopic, $iweb); - $theText = &TWiki::Func::renderText( $theText ); - $theText =~ s/\'//g; - $theText =~ s/\"//g; - $theText =~ s/\n//g; - } - } - } - - $out = ""; - - $ToolTipID+=1; - $ToolTipOpened+=1; - } - return ("$out"); -} - -# -## Quote any double-quotes found between and tags -# -sub fixupUrl -{ - my $url = shift; - TWiki::Func::writeDebug( "TOOLTIP-URL $url") if $debug; - $url =~ s/\"/\"\;/g; - return (""); -} - -# -## Quote any double-quotes found between tags -# -sub fixupSpan -{ - my $span = shift; - TWiki::Func::writeDebug( "TOOLTIP-SPAN $span") if $debug; - $span =~ s/\"/\"\;/g; - return (""); -} -1; diff --git a/lib/TWiki/Plugins/ToolTipPlugin/MANIFEST b/lib/TWiki/Plugins/ToolTipPlugin/MANIFEST deleted file mode 100644 index 32c50d1..0000000 --- a/lib/TWiki/Plugins/ToolTipPlugin/MANIFEST +++ /dev/null @@ -1,19 +0,0 @@ -data/TWiki/ToolTipPlugin.txt 0644 -lib/TWiki/Plugins/ToolTipPlugin.pm 0755 -pub/TWiki/ToolTipPlugin/ToolTipBackground.jpg 0644 -pub/TWiki/ToolTipPlugin/ToolTipPhoto.gif 0644 -pub/TWiki/ToolTipPlugin/b.gif 0644 -pub/TWiki/ToolTipPlugin/background.gif 0644 -pub/TWiki/ToolTipPlugin/l.gif 0644 -pub/TWiki/ToolTipPlugin/lb.gif 0644 -pub/TWiki/ToolTipPlugin/lt.gif 0644 -pub/TWiki/ToolTipPlugin/r.gif 0644 -pub/TWiki/ToolTipPlugin/rb.gif 0644 -pub/TWiki/ToolTipPlugin/rt.gif 0644 -pub/TWiki/ToolTipPlugin/stemb.gif 0644 -pub/TWiki/ToolTipPlugin/stemt.gif 0644 -pub/TWiki/ToolTipPlugin/t.gif 0644 -pub/TWiki/ToolTipPlugin/tip_balloon.js 0644 -pub/TWiki/ToolTipPlugin/tip_centerwindow.js 0644 -pub/TWiki/ToolTipPlugin/tip_followscroll.js 0644 -pub/TWiki/ToolTipPlugin/wz_tooltip.js 0644 diff --git a/pub/TWiki/ToolTipPlugin/ToolTipBackground.jpg b/pub/System/ToolTipPlugin/ToolTipBackground.jpg similarity index 100% rename from pub/TWiki/ToolTipPlugin/ToolTipBackground.jpg rename to pub/System/ToolTipPlugin/ToolTipBackground.jpg diff --git a/pub/TWiki/ToolTipPlugin/ToolTipPhoto.gif b/pub/System/ToolTipPlugin/ToolTipPhoto.gif similarity index 100% rename from pub/TWiki/ToolTipPlugin/ToolTipPhoto.gif rename to pub/System/ToolTipPlugin/ToolTipPhoto.gif diff --git a/pub/TWiki/ToolTipPlugin/b.gif b/pub/System/ToolTipPlugin/balloon/b.gif similarity index 100% rename from pub/TWiki/ToolTipPlugin/b.gif rename to pub/System/ToolTipPlugin/balloon/b.gif diff --git a/pub/TWiki/ToolTipPlugin/background.gif b/pub/System/ToolTipPlugin/balloon/background.gif similarity index 100% rename from pub/TWiki/ToolTipPlugin/background.gif rename to pub/System/ToolTipPlugin/balloon/background.gif diff --git a/pub/TWiki/ToolTipPlugin/l.gif b/pub/System/ToolTipPlugin/balloon/l.gif similarity index 100% rename from pub/TWiki/ToolTipPlugin/l.gif rename to pub/System/ToolTipPlugin/balloon/l.gif diff --git a/pub/TWiki/ToolTipPlugin/lb.gif b/pub/System/ToolTipPlugin/balloon/lb.gif similarity index 100% rename from pub/TWiki/ToolTipPlugin/lb.gif rename to pub/System/ToolTipPlugin/balloon/lb.gif diff --git a/pub/TWiki/ToolTipPlugin/lt.gif b/pub/System/ToolTipPlugin/balloon/lt.gif similarity index 100% rename from pub/TWiki/ToolTipPlugin/lt.gif rename to pub/System/ToolTipPlugin/balloon/lt.gif diff --git a/pub/TWiki/ToolTipPlugin/r.gif b/pub/System/ToolTipPlugin/balloon/r.gif similarity index 100% rename from pub/TWiki/ToolTipPlugin/r.gif rename to pub/System/ToolTipPlugin/balloon/r.gif diff --git a/pub/TWiki/ToolTipPlugin/rb.gif b/pub/System/ToolTipPlugin/balloon/rb.gif similarity index 100% rename from pub/TWiki/ToolTipPlugin/rb.gif rename to pub/System/ToolTipPlugin/balloon/rb.gif diff --git a/pub/TWiki/ToolTipPlugin/rt.gif b/pub/System/ToolTipPlugin/balloon/rt.gif similarity index 100% rename from pub/TWiki/ToolTipPlugin/rt.gif rename to pub/System/ToolTipPlugin/balloon/rt.gif diff --git a/pub/TWiki/ToolTipPlugin/stemb.gif b/pub/System/ToolTipPlugin/balloon/stemb.gif similarity index 100% rename from pub/TWiki/ToolTipPlugin/stemb.gif rename to pub/System/ToolTipPlugin/balloon/stemb.gif diff --git a/pub/TWiki/ToolTipPlugin/stemt.gif b/pub/System/ToolTipPlugin/balloon/stemt.gif similarity index 100% rename from pub/TWiki/ToolTipPlugin/stemt.gif rename to pub/System/ToolTipPlugin/balloon/stemt.gif diff --git a/pub/TWiki/ToolTipPlugin/t.gif b/pub/System/ToolTipPlugin/balloon/t.gif similarity index 100% rename from pub/TWiki/ToolTipPlugin/t.gif rename to pub/System/ToolTipPlugin/balloon/t.gif diff --git a/pub/System/ToolTipPlugin/balloon_simple/b.gif b/pub/System/ToolTipPlugin/balloon_simple/b.gif new file mode 100644 index 0000000000000000000000000000000000000000..c6f3664cbcc0373038774992b1a2ba4fb77b323c GIT binary patch literal 44 scmZ?wbhEHbWMp7tXkY+=|Ns9h{$ycbXZX*c1LA{Z7?_xQcv%^&0o-l~VgLXD literal 0 HcmV?d00001 diff --git a/pub/System/ToolTipPlugin/balloon_simple/background.gif b/pub/System/ToolTipPlugin/balloon_simple/background.gif new file mode 100644 index 0000000000000000000000000000000000000000..cf6308d9bbc0fd4f885b2cf7d667d680f1c96cea GIT binary patch literal 49 vcmZ?wbhEHbWMp7un8?8J9|jm07!-f9FtRf+G3WrR1`90o>jQivR!s literal 0 HcmV?d00001 diff --git a/pub/System/ToolTipPlugin/balloon_simple/lb.gif b/pub/System/ToolTipPlugin/balloon_simple/lb.gif new file mode 100644 index 0000000000000000000000000000000000000000..f2ff335fb9f713823ea53c769c2b2d3e1f432921 GIT binary patch literal 51 zcmZ?wbhEHbWMg1sXkY+=|Ns9h{$ycbXZX*c1LA{Z7?`+R>e?3G*eNk%GXsM)05y6H AvH$=8 literal 0 HcmV?d00001 diff --git a/pub/System/ToolTipPlugin/balloon_simple/lt.gif b/pub/System/ToolTipPlugin/balloon_simple/lt.gif new file mode 100644 index 0000000000000000000000000000000000000000..d1d160a982c7076496ace64f3fa752eaafaa753e GIT binary patch literal 51 zcmZ?wbhEHbWMg1sXkY+=|Ns9h{$ycbXZX*c1LA{Z7?`+P_!rKS-m6f&kb%J(04?VW AuK)l5 literal 0 HcmV?d00001 diff --git a/pub/System/ToolTipPlugin/balloon_simple/r.gif b/pub/System/ToolTipPlugin/balloon_simple/r.gif new file mode 100644 index 0000000000000000000000000000000000000000..375827634d13adb3f3514f0d694cab06d8d2e129 GIT binary patch literal 44 scmZ?wbhEHbWMg1tXkY+=|Ns9h{$ycbXZX*c1LA{Z7?_xQcv%^&0o;NJVgLXD literal 0 HcmV?d00001 diff --git a/pub/System/ToolTipPlugin/balloon_simple/rb.gif b/pub/System/ToolTipPlugin/balloon_simple/rb.gif new file mode 100644 index 0000000000000000000000000000000000000000..e6c81bbc9c4a8de88cb04d8261a0a38440469c74 GIT binary patch literal 51 zcmZ?wbhEHbWMg1sXkY+=|Ns9h{$ycbXZX*c1LA{Z7?`+vc-y5`)-}voz`$S)04{9{ A@&Et; literal 0 HcmV?d00001 diff --git a/pub/System/ToolTipPlugin/balloon_simple/rt.gif b/pub/System/ToolTipPlugin/balloon_simple/rt.gif new file mode 100644 index 0000000000000000000000000000000000000000..6080a7f86ba818352e8e7f121c0c2e574ad722b6 GIT binary patch literal 51 zcmZ?wbhEHbWMg1sXkY+=|Ns9h{$ycbXZX*c1LA{Z7?`+P!Xz) T-z(fUZ&i+Tdr{@b%3uuu1vD1z literal 0 HcmV?d00001 diff --git a/pub/System/ToolTipPlugin/balloon_simple/stemt.gif b/pub/System/ToolTipPlugin/balloon_simple/stemt.gif new file mode 100644 index 0000000000000000000000000000000000000000..3daf75786ee6d6da79247180ecebd7f43c9d63c2 GIT binary patch literal 73 zcmZ?wbhEHb6lCCJn8*ME|G@yrQ2fcl$j-pTpaT*G$ulrXP04RKEpRGohQYGV)kiF? S&Sf5AZ)1;~l_4d@U=0B4Qx%2) literal 0 HcmV?d00001 diff --git a/pub/System/ToolTipPlugin/balloon_simple/t.gif b/pub/System/ToolTipPlugin/balloon_simple/t.gif new file mode 100644 index 0000000000000000000000000000000000000000..5ffd2c82f8dea31507480df10c8f164ded21c964 GIT binary patch literal 50 ucmZ?wbhEHbWMp7tn8*ME|G@yrQ2fcl$j-pTpaT*G$ulr9yVS8VSOWk>gbJMi literal 0 HcmV?d00001 diff --git a/pub/System/ToolTipPlugin/balloon_simple/tip_balloon_simple.png b/pub/System/ToolTipPlugin/balloon_simple/tip_balloon_simple.png new file mode 100644 index 0000000000000000000000000000000000000000..f31b5791b0691620e972b49eeb4bfcbae02270b7 GIT binary patch literal 48730 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 literal 0 HcmV?d00001 diff --git a/pub/System/ToolTipPlugin/example1.jpg b/pub/System/ToolTipPlugin/example1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8c0999d75b522019c9d44d9b53fe32a3b6949573 GIT binary patch literal 16795 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 literal 0 HcmV?d00001 diff --git a/pub/System/ToolTipPlugin/example2.jpg b/pub/System/ToolTipPlugin/example2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..89096710471b7e73278f719fd852c13807971f04 GIT binary patch literal 14179 zcmeIYWpG@}vL@PMW=0EIY{?cgGc%*b%*>W8X117F-C{;twq!B4u*J+QTe76lK6lQ( z=f;VNnLF`b#QX6oqPwc1YUP)enU$+*Wxg!FYyhwoWaMQ4FfcHHR6sHS@UjUYl=ii= z1^|?m0n7jZ0QvRzT3((3c#`f`A3UurseJ4_ZK-7CmDOHW0FnR%ICyw?IE2?f1Ox;` zBy?n?*MfzHhJucRg^P=Wg@c1fNKS-@PfCD;LrhIfN0y;7RJS^Pn7z`{N4gekjmzo_9QC!_^28n=%gZqQ~$K;fTX?!9s zO|8_g7qpy3jh8?T^G%5`$>MJ>%K&t^S8j1$9~1=~TS}>Fa+%1~XqmEr=jQ|zRc2PV z+s1!tYcCinlatp2I{8M;(2}5Id+m!bn!wrplxAK-(LMBY}$0eU(8HG;?9x zPh?7=ZDoZih~$VtL0i*e%ur*`qB49np7P3ZwLy0rzIGnjo%^?Ri7-QeGr`I_7!bE~ ztGuU5CCCGm!K|!E?d9dNYO#~&TpQiQ*F~N~@iyKIX{|LyFZiW)s&s-ewwa}$>LRm*L z)|ja~B+Rk0t=We{eB0VB@>nA8EZjC=XuULRJVA_Yqsn&d0Uq^(2NO< z@5RK4Sts1_1w~3@wk>*GW{-_Xb$&!K+8?f~<=AE5y~>&$Ek;B^MY>QOn-59qy_g#mHoBNuw$~oS zZvJH;V9q{jhn>00KHT}w`beI*|CZ_IPdKE4O5R^*2kMED4dGhMAeR-SnR7o#W4-Zo!3P4 zcS5d#s==EnG?Jf8JK;hnkR+D6wCpkt_v{($StK3nwpOA+ahie&=O`YXzF`9X5^=-WHomW7o;ejB0fmw22^bt(^hA2cEV=FfpFHHDxk5TJb+B+YeU z_atxKHL3!Wm&QFkanRK7g2;DvLz!RZJzd%SwAEN0GaJ}y#B2-g(!^jjqzgpi8(5xE zRL%2ct(sa;tllb{osI%G9yp03phO|ID~=d`7sHv36pYl-`DAnZ9?Bh&7z3^1I(2Y* zue30=qFD~)tp*{p=@;Q0A%Bj5f+`CEboBa_}*1Jv&b|R_Y?$CS0 z1T_wZ%%*EJAPIH&(4>>erld`$ZNNCB5tYn~urT1Ly295|tp&1tuxzsZwXo;Jb~32n zXU;FMs($(qM4?-iMFvtk<+%n9%D6OqR`q!s5a|aBK8_Xw*fE4kO%w1ffgxS42}(56nq}?2qr0wDSSu3lxjqdoQpHhP~@(pvx8?Bck%5tsyd>kqZqXE zmU$wmC{T0Jfu`7k*=!p_+Yo-Wxz=^#vi-=KC@#!`mfueIym_xguXFGq_RzUuKvNWR z-yQc%?M?hW;&#;!k_8uv zTTxnER2b}OXq1^_C7WG_&q{xn*Bs=wjs8oglef5I8V7&GzEd3sk6?s`hOwB2Cgz{j zPzz+htyN={sjY*wQlBee0Lg0{lZ3*Th1xR=opgg!O3Da4je{di*m`MQ)@k&1ejZn8 ziIo5hsz9eg5}vyjlWfE^>=K+rCy%%s6kmEJ4$(Dav1cye5{NmJ8M440pkTM~wTSqm z;zOAaya8p?(Mi)wyGDcFwYR+^b1}WD68)*_=4`^V*0-w>lGG-byUkJroIy6g3sq5PIJcuZ- z_tcoR+?YJQp+8@nuUD?|cN2V_V5en3Q4*}`#W2ooDz)4Dubt^0f{Cc8a!u`-sHiVs zb(tykWwMI81p^PVI#(!*6z;jT-u`Lil{(i==$2td0+R0zc@>=>nRiB~+8k-+G1p1D zwOu&@hd#L#qC5p{sL#7x*ej$|RI8e3F^iy1(kwKVcr4$(!_8-3Av0q2DK?AD%>H4P;Id4BJW<=y|u23wv1Gd)y zbg^ml)P`O+@jTZd^BxgOKY#f>dsTHCZZ#O?A0yD3RR=}%{EqLLyBa*;=M{Z)Mwr-g z4=8~&)TXJUrI*zfHhfh!MvpH@0;iPCUwlbWihtiM*a@XO7rqh|M4J})q|xcE;@nEh zNxH`)X_M*)a)S>Iu%N<)?D!#R3>7!5*;Zr}CsZhFD)W+9#th!^zW|71;tC)+SQS75 zhuOM<@o@!4{!$EK?LF3JH(piSBUD9Wu)RSir9pYVUw{e8kso8dY3Gnjcl>oEreMdU zJE0O6JEU>m31mfkuu=)MU^?6nY>*k89@{3o{sP@QKX-)#P^?{|`8-i{+~qb0mS>#W zm2!+?wX>}TOe*HCnZjR?t7`NSl)r9#txIXs3X6m<=VFj06L?vK4%^d&{ZF}kKGDaD z+9T-SS{5quy;dgWG4d0`?av?l<1^_=(X3)xlGGz&y^O-BRmShzhY3kfzir7ez?~ye zk_$^m6r*-gAQ-b)Itk594`V0)n8ff9C;Ofv|8+~AMcJd?82mA8SL6$5^>JdcK|pz( z=Vl)*#3iAenQyx$BVRxJ{k}L#^p{C=u8!}n{fDBjOzN(pI-<`6h4ifp3w%y0HfMgI zVNAQl!NFI5bs7J)GA_P9_{|%92MSx54!8--=?l>L$^$z5ekvs;U#4#B9sgT+u7GPk z2ruLJzjQKXZgd4`XtI=b71%6JPM^!4q0bbaTYDlC>qjo9>znft2zPf+A#iGS&l7dJ zgB{UC;@&(biV98)k~-@yZD{k{N<{ojq{~dj7HDMns_>CA+qvEM5AE+9R2NShYQiT1 zxSLE?89Kl1H!A2DGtp)6awTmXtWaK1eM%l6Ht9HVp3lTzF4yc$*N8>ZNh%`!eVl?L zzv8=uFln`bs@vJp#-eQJT3(HF#t$Y}q+HD{JIbj~%l%=>)tyyC`s;;4n~ zOI?q)mbxNYHEnGMZ(A~h*LOsj*(603k2u(lDncKS3Ga8?!xpUiR)Ta->BR--LDqBw z)~i+L>XVsM9ER_=y0xS(otP6s#s4yeY5gQde168$C5Qt8ic)4}BXT zkBKxUu32H>Jm5qoJ{CY= zThvA4jbc3|K+mdJ?%;gu7*p1u)7mPx-ad5UFt|;Ya17WN4J67xu~~e=oVDqiU$=M0 zZ|x*(ZF4Th*~Z&g^{`WaIJ|DS;}Ie$<1XS> zZQHg{w=Vmfr{0*i?&$=&sJ126a<-#+$Z)`q`_!y|44|K>9SX3VxSx*YoyUhz!z`4K z6V$ze78*k2jBk#?q-gru+H!lTs=#YWO;z?cIemDB2|^s431wrgPlA4R^XiBG_6)se z4^47Rzbq9fI>m+I;K}nphG}NBr}s>$JO1jLNS61XAB-B~1!=HVw0U#bkr8AFoE9B7 zN!^_g}L*H=G1a!%3}q@x(6FwGTNIXM@IesjD5sc=#W?E(y<4 zyJkP_sm~_pSE-@Im!oTzf878k9vjU?#jF*n2N*{Oin@&Rs@5D4#h5IZn_{h8E6*N1 zgkxbp()PymA{Mkhy9*2rR=`W?xAjfR$1o|K=u{s`3f_pYti zZP*jM0G8&Del0Yg5dKLq775Pzas?RJ6*?Mp%Hip$nzVXbXR zJL_8eJnS7p?&KLQLq(C@zMFn|>3X(zM2!OFM~}DE4)&!r`Fg{vm>vex_yPSyDa7yJ zqW~`qorhV*Csj|(fBQA*j7yu!J;)AlsSIQX*kjA4Vaw4LhKX3?qOOGA)W*ADOImc`vGZtiv)qG&>Y8z<(UxB0OlU zSnHf=TeV8pxk_K@$hsw2mekJWmD`0@-x}+YYEF@m5ujbIBkhBTYP%|UP2}FxH-bqi zx`j%&xc8H-6+Dc5qPxhi;DG6D)OtpuHdxRu-0PE(8*=J;PVoLT)8Ub+$-auKw{fQF zh_uGnq0wn>o?YUQlp-R_1ep&yfuwQ6mwMP9l%cQUS!zw?k>IkPU*lxR+S*dP%b*+r za`Zm8FI%>;IB7Gq;MXUUr`U?@-RvCS=bg~oZ=-Pd(uF4qK~j32{{tKa-O)7*6V<() zPxBX9;0C8a^vMp&%VP)|>ei@Qk~_wsK*5?QmV9r!GR)YM@zUAT4^CX%1nwHY&4PfF ziIWjYSZM@gSYFD8tIKc2QPctFIL}NgX$YOO!<;~@V`HWohSsAT=%dv=736NOAORFf z;^vq#j+ZM`>p??1vb%Su>lA6_A0TDR^qsBS)V|uX7RrB?qY7-~qkKL)Vc)Nk2}%)w z)Y(8&vVAmXH18I}`UjPjtaiR%cG`y;7=KE*L_&%}({6eypFfpsERi!VZwts$R#eu6 z#}6yXz<2@3W^_x)I=ffXHg~CXKUv6<(?3Ny%6rTG2 z2&4<*iOxU%B^sj2;mg0<_S_vgv@kK}^p9a^wFTY;$ZA7O#r z`1)s^+r-KF_3y$`1A$d;s>VU-)knc!U54pq_YeCbD-1v%8jU|2wRr7q`!3tqtyb6U zXM+o%%Z$HC@@RAKoIAqD2cn6EWcWaJ|A|+JRwqc(vioSXe%|ck#7)6HxUZ>;W>u9d zT$`dRT+}Zi#z)J?Fj2!v#~1rMfAjZ)y%wJ1DlNB!p?>2bRJa)}uRtE!18LH{G6w0c z;7pFVNDT>g#UbYMPmm*_Ta>b0tVE=?AIE1xZ+gn@^;jJIFqLmrJS@mkhp2}gjQoiM zh7yQSoh)qHKsolz0R(r|>zbOvwD!wKOq6$s{O4xy9U%Tutbm%B)87BRE6~a{N(WCh zS8)~z?P*rs&gzKKy|cmDyMt6%>5vMCpCnXu_CCoOELSn_XK?tyQ1?Yk9K$frhne=XDScmRgdnSR^!?UXgm?`*OaAd_+`Q8nDpKBkivW)CRV-yCxF08}+-v_z!4+1XS=f zFt;s2Mg~h_N$2jpgCY0kJSl^brZ|eXA#i3~QBc+w58D;!b#aZrqq9CZ>Maf5d95z( z-KjCt6QP?c(rH51&`in3$Lf4}j>8<<>|ZU$!Gi?x!bR|O<;by(6wJlH`X!7qx|?@!i8w<=qY`q z*B@kDNjCWxK#ZW5bwKV`skj^Eyth4S%PPyM_N5W4*E|<@Qi^$HdHVFvZ{kRpcJQu1 z*JFL&Q}N(AJZbKSd-u*^JVlEjC(V5im@Tn)3^2;MYqsZb4`aPE9{&?g?qR(@rpeW~ zK$@ac1nj1lK=b;(p2KqjgIaZ^O`U2hi)+GHrd3s$5@aY_J4&$wM=gTqvtO@MN+X76 zW!+G-_&+5yAaI5?_adz?QhTVY++?~^_rIYCFVy3D5E}i3g5;5_g}g<(3?7#va&oFY zyZi05;A9-quCAD%kzc*b)zAmeX9adcf`{9OG1ud!ESf#bf{>lg%pCUPW;1tCalqud zIOF76-rQEz=^!mWu&(@ z&$&mzT5Yag~~<3o`T_dAst;<+I6HDys`%d?^4KILZ6E zd#}=R*x^0&V%<}0M&H>4dwG@@^K8UJhI_gZ$u~no_-?B*|7{&euSiN6|B#mmxWSAz zD$%}+8`;#wr{>m>%iaW6m*g}P`0_%TIAsLY^w70eU+S(i*XNV~W7 z?UfgPlK>M*l7Z`9l8iX*m_iZa0u-qO@)iV@Z86S{I5B9`UbK57Yd*J7qs_U)(Mihu`-4Tk7{U*bEBppb z0hK}ZNOtyeM-2-zT~$@StRmM;ch8mZ5SvG?@9U0CovFzGr&0YawIXN;EPT>vO32n< zP!r5jME{Uh7a?fgn^bmsv4#6+UgDVVo4Aa*3Y>urzSyLPU7)T(3Ze2)fFq{ZQ}U(Ou6 ztH+g;%$0`&=K3it8n?7Ib*=2S8Mk;nZ%VWAEBM!>%?$p*-puIuPL7S0i}3E>yb4{A z^M*hO%s9`5dc_OCe}5jrTK6A1H$*I%69}3W7zpY#Fy@2Rl-30zigCuDe&dYG&u_VU z0aUs?gvpimnX>uVd_yz$ax&b1i&V;%6Vg!qnc{uuNmbwa@P;5@|qRA z*@FGgP4Alj_FG6^CkXVCY^ufoq3r+AKq0>7{lCpLT_8lcS9z>Foe2hAs&>1)Ivg>U zng3)bV9VBe@Cpof;w}`nZ|^Ul)%sfk6S>v>K#2l|V~4 z9K1XdA_%1=z`1f}BcTxSO6&_SE1YS9#fOi^tJ@4=LZOhJDdgt3+m zA-9SPe@Hv2@ta|^M##8E(MRFaSt|h@ssestk`b~xwtLnWcAaUH7;OC!xl_n}cg=B8 z{1{vK?&2W=R~*}>@;<;Gh=MCCM>hAEV7!TLoMXkLmTsx>4c|~|Cz$1g$-;I0IPGRm!E3J|a zRZYbeStAOb?tKw3d2-5rhUFyuh|B( z-Q5du&2Y_7-XoUYz*Oy3t6L&ht@;=;t?5|WS&XX6X@DIm+Qjs!N)M^R7)lh1zINzZ z#I7>WH-j)stw*--!|}(gVZ`L}fZB|WmKD(nqovgCPxgyZ^6ZwftjA14^)(SX*p*{S zVpIjzm;04`Ht$^Hq{EH5bVw9XM`I+y0PwJ!I0y#63RC;|Xh1YSaWqpq=>*qTYkv-q zjjHD0!zVA7e9eq;avd(C1N}d8UY*oI-d+;4<3|WPgZJ$pSXs4u60jE@YW2K zQV!f!1cx7N6Vsws#?PzGV$*=BozpYA1d+Xz=-*Q-!>AInmYI~U22eaOJaF0YTbD)( zODma}r>vN0dF*K5<&(+goAt@#RFP7WGBGdp4vBc24aJSHy{W>mYPE8)(lYcGaNb%g zti=5^&y)`x;`Iq($dHPk8u+5{grhDu# z_!cXw<{+xgV922iU%D+ZeA)B{EpbM@%1g@7_m^?m3qY*>iH@{nNGSUSP+S+TzmczI zGefYmeIHjq_M7GXGf4q4^TwA!WGJTH`Mbn40iEvmT)gD4L%IIY?;Lx+8UT3lJ>b~s zq)Egi<_{2?o1kjRp8ckx8yiA}7f;$}`~p-f!PEV^mf&ALM^7W2b^QaEAt_Cqzva;` zoD4^DtA_a^Pzd}o@a3Fs zZAse3u88|Nvzc&Jma18w0ui!_d;zrAs4E=|p26kJX$RF$-`CeuwpivWr(1b4F{uIU zqXm$sUI2@A_%8tJOCCN5%ZL4C1Bkfv0!AZ#aiyk>IfI_UM}cz%)Bf?xknAB{npC$$ z=QE!O0e^xPdG{+K=Mh{lInHBsQPjD5Bc8n#;_qN%CF*$|HA{Qk84XWFDMp-HzvkNI zPspqs>=T>);V$VP8+vLjA}+LK1+$?;T*5ulL7p4U5#J#@AB?-A8xP;n$;;C^rhp26 znbw}_J4I4o3gVYw1x4mNp~5p7TiJ%z4%3xX(n@IH%6y=j4|mUI2YwL-Sk~BA=3DrB z=;k+T$_1hND%hA*FaDPL@ia)_3L)>VOH2CH%*?frGv?P;8zGOy2x-Kb4OM8-J&z2o zTdm>d<9AfHo5X|Ejy-Eg{IL+;b%`?J+O0!jLFNBA%`YW>9q1sq6GDH9CKPDeW8a#j zuYqE?YDJJ`6%?kisg!xfAPChxG0>&U;MSF9leKR3l$;E@Bdp0ab zhiZmh(mhX;VNuG_-hw>2uVaVSm$qOakXq=Gi3JUgLw=1$>if9K`m5ntz5reT!7b8C z@hM_^VSE-bb*-enorI|nkRo;RQa>?qzj1G;of1Aza~7>s2^*B*&um~ue_i$ubuT~1 zD+Sy_{L`Pl=+o3pDPA9|M(bxPbyqmi;OML`DBxL8A8lZYz|r9TZ;_D#WEy4tNwNYS zaC@|-;r=T6AC9{}fGLU#G_4ZG#AP&g;M2=r?Mf!Ax%%*z=9sDsAJE8l2d;uS+UA|}hOL8tSUHI?UL)V98SI=D z?^Q{0sX{t==EQrILcj8~b9%Rc6~&s}<}@R|M^(DwLMhH9_$odn6y~d3HZ1*711=ddLKhJ8d z7GF8^NN&A`@>n4a%m0mce6y4uw-f$rApS3}^?zRdi%U1sLWt&UkNOs$9UmoY91;|(@$omZ zn;9)j7yPFTETK>0ZvkgfjRGUZRbl+DYhfIqx7qa=iZBOMHZwKt<#*G5{RqrTVzBg{ zv)Mh#^)9JKMJ5q~Jb#(q!IAF0P^p8cP1*XQn`SR;;EfyVGOR2j; zcS;V?{On;`7>RJ}5P;Y`b0moII6Ucz0h~iU>xYuV<7lgk1LSK$L_?2*qVa!bGA}p- zP4|)_Ve_09ORY4`J@NSIZG!F7o{Dqoy9YI{bFJ&}@iuE1<=Yid-BmP@)w7UFoLF`l z9R{{tNoYTQD@GnI$Dl2|)Ee9xip0FscRw3k7@7UC9TsgqtE*Jx@B-Lk;LQ_EJfelL zOu1KJ_w+X~oSsJ0KQUprp!i}hmlRs6c@(QT5W3GYK>;xRX3RJQWD}W28k79lbFM4+ zdIsF~VR8}@mPbm+DgG*ZQBgTnf2DQ&FRkhSMZ?)vT-761b>|CB?iu6%@by5e_}jo) zI6^oH8OfZiw1dL8leCf3xe*0Ic@6g{b$WTVC}5tvVBSG>@|oZ0gsMatF6c!M{(ptCzgRbYpY`P-QEBljE z=%zO~@=L1|8hjSA9EUjkPdp$l%4(RjmdRHCw}9mD@D8g}8?&Kj2pZAU_Yz@EB(S`D z%K{||ft%h6c1jtV$qHjK>Ij-S>^KPe5q1I-T?-Jdj;|%9HS^AZR{ERwEXaAz`w`!k z<>u8H#`t?WAF2`dP@OLg1NO-;NKi+jUI60;HuQd}RLJ}Eew9%%tR{aY0R7i!{(tTL zcYTV=@l)FRRo&?xwKX~>cKZPmEMQ_>3nt-0cW=v`@v7V&cQ zK*5dnMU5i?l{xx@L^t7atWUk$!soZHB&@C!zWUgFjmc*KT#EH4#Z#fl6y>3fNX)Vn z-bh21&*6L$xqx^s_!MqVownSj!EB-hbOUN716Fa%+HfW&1ugdqCR~_QAY479L6#Cm z%fgrBtt+LKCU2GqF~^1+8Z*0QH`=J%ItmZ5xw94XIMrZulE7F@Ncw7f0Q}Emx&+cB zLbwEcR>OnOpKG$I@_<9!W_4YOYfz}Se|=3AOjA2dXe0Bkrwhy%_=H>_Z)9`QrJtqi zPg0aTxoc0YoC#f1fm(h(3l#k>Cl&Og5nNb9wG^1y0SJtM-K<_t!Yd*Eqi_7LF$%6k zKHZ|gGmlul_H70<8lDkx#~)xjRONhZ=vGK%f&Qm7t84iJM<=b^(z9^C;i2M-_YxAE zR03e8Bu@Mapcrs>Ok54G^oLms*lj?Z;U_lxjwSbZKiEF;Uly0T6HBSSIH7B`j35I; zG*6+2pJQ^N47S$^**(3xgnWCf9+4k1#_Ph;7^@tZF26O0rpxntE@FDL=mSziQ5g3+ zDlp;wzKv9;PxpC+qQ|9%E9P32u=%WW-BduoElT8CvEequdVef$=pOU0uEE-cu(*%s z)0`HoJGeGeg&pvkjS+3nU#gsiF5?%)qq zI2~CZ$B(PpMd;$8?&X)P_{=LT^r)Fk3SmDPRg5~)DJch}j{K?|jJ6}f0>6^a%tpdu zrM(^E(OZN_Oz*z>Tprokz6{$@->`fgc#V_-G(NnoUxG^3Pu|%ei_U6FFRTQtX-Iu2 zUw=$Kvyo5=bG0;}9+P4!M5EQpGr=}#w*x+o zQDteRc?LDZ<1H+_EjO*Epl*5NF6FzR0M7`g>91{WavCuSR)Dl>?4(rYh1`#oaQfA7 zlroa!vPsNxR2y+`m*Rep>Af97|6o40-|+(QBz7e}Q2hS>?i3!jihTEd>YVkLok*5* zKd}urc}t!mezil*%4=2x8Z7n&$yqHLno1DnYc?WdR8;X_RfBy9@${eY(WA~EY5&qb z;Ah#j_Mg1VF5e|eH9mTSqdSe`+>)@MRcYGzX45F)m(L=_C zg2C?Ge_T(D%+_6AuP0lD&QG)}NgQXX51ETw*pwQwm~f$}E0og;cX&{|Bw^H%k<8!$ z6f1EUMFlC6#o<-Iw!I3c4yG7$7js8`*K()4ApPV4+-7_p6op}Id^%ugQBk~g-AuRl zSC95rfEw(M#+Dfck;h1Vy~<+tXgUmdfw(D4dzo@xxS;A60Ktyp0`G*e9@JGbK4Ol~ zPJbi|j#~YK>%Aw{;iRtp)5ZDxW4hN1AmR;yMX}w=GnKE^v-!t$Ti{SZ2)CZzmF5BX zL(SIYG^u9ryTmL;6{kPM!|aZRvxJ zL*6AIM=wixY7_L){Nm$IAQ~ztVQtwP-FBVNrsYX(e$51gC}CknrmVkp6~feAlX3e# z`Ej9Jhna!w2i|~!u{a$K3@WXP-J7ivL5albF&jCWS>|S_+a#deWrt@MT|0{d6Wk1xA=WMbU28g;0TghdFzQDv1-hVz59$C0?G{EWa#L3*Fm=GEX+RitnO>uHK$?yc|G?(MG=cRg=%{Wb2y1{E z$kbi9$6#f%Dl0ZM{hIG<^MCOPp;|X-8S`V?u|SuXvGMY;bM`v<^!Fn?EYBq+tFPbW z)&$I**%Kaa4+_)D#LC35{i5J0>pd%G%BaGDNwR$JgNlnMEKh^^j_Q<&mQu3>O%nua zW~J|}n2KZ99^VYK{kA=s1OHlkdU(1GJbJsQvap>{eKQ@D#h=>pYrDFK%hXyUo3`gp zG}7g2da0zBw=cLa$W$QqKZjNRrk++Fbsm(sx$>vk+x9&Ee7$a6cjA8qF1T*->oo?( zN|7zN9dLhqKYv}>^fz;s|H+1eZNmNHGezI1taZZw&*k5u{x6FB|Ew%C5DS;MtB1@x z)(tD`Zf6ZoTN))XG^;u|_BFo0+e)r?Zg bAKf(i{xY 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 VV&qbcJy=-FKYW7tH*NjD2>@E}1}6Xj literal 0 HcmV?d00001 diff --git a/pub/System/ToolTipPlugin/example4.jpg b/pub/System/ToolTipPlugin/example4.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f3daeb67a3fee3a39c9574cd49c7c380f75e6561 GIT binary patch literal 27524 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

    rzB$Ph) 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'; + sImgZ = '" style="' + sCss0 + '" />'; - tt_sContent = '' - // Left-top corner - + '' - + '' - + '' - + '
    ' - + '
    ' - + '' - // Right-top corner - + '' - + '' - // Redundant image for bugous old Geckos that won't auto-expand TD height to 100% - + '' + tt_sContent + '' - // Right border - + '
    ' - // Right-bottom corner - + '' - + '' + // Left-top corner + + '' + + '' + + '' + + '
    ' + + '
    ' + + '' + // Right-top corner + + '' + + '' + // Redundant image for bugous old Geckos that won't auto-expand TD height to 100% + + '' + tt_sContent + '' + // Right border + + '
    ' + // Right-bottom corner + + '' + + ' section, and invoke @@ -43,7 +43,7 @@ see http://www.gnu.org/copyleft/lesser.html var config = new Object(); -//=================== GLOBAL TOOPTIP CONFIGURATION =========================// +//=================== GLOBAL TOOLTIP CONFIGURATION =========================// var tt_Debug = true // false or true - recommended: false once you release your page to the public var tt_Enabled = true // Allows to (temporarily) suppress tooltips, e.g. by providing the user with a button that sets this global variable to false var TagsToTip = true // false or true - if true, HTML elements to be converted to tooltips via TagToTip() are automatically hidden; @@ -55,42 +55,43 @@ var TagsToTip = true // false or true - if true, HTML elements to be converted // configuration. Order of commands is arbitrary. // Example: onmouseover="Tip('Tooltip text', LEFT, true, BGCOLOR, '#FF9900', FADEIN, 400)" -config. Above = false // false or true - tooltip above mousepointer -config. BgColor = '#E2E7FF' // Background colour (HTML colour value, in quotes) +config. Above = false // false or true - tooltip above mousepointer +config. BgColor = '#E2E7FF' // Background colour (HTML colour value, in quotes) config. BgImg = '' // Path to background image, none if empty string '' config. BorderColor = '#003099' config. BorderStyle = 'solid' // Any permitted CSS value, but I recommend 'solid', 'dotted' or 'dashed' config. BorderWidth = 1 -config. CenterMouse = false // false or true - center the tip horizontally below (or above) the mousepointer -config. ClickClose = false // false or true - close tooltip if the user clicks somewhere +config. CenterMouse = false // false or true - center the tip horizontally below (or above) the mousepointer +config. ClickClose = false // false or true - close tooltip if the user clicks somewhere config. ClickSticky = false // false or true - make tooltip sticky if user left-clicks on the hovered element while the tooltip is active -config. CloseBtn = false // false or true - closebutton in titlebar -config. CloseBtnColors = ['#990000', '#FFFFFF', '#DD3333', '#FFFFFF'] // [Background, text, hovered background, hovered text] - use empty strings '' to inherit title colours +config. CloseBtn = false // false or true - closebutton in titlebar +config. CloseBtnColors = ['#990000', '#FFFFFF', '#DD3333', '#FFFFFF'] // [Background, text, hovered background, hovered text] - use empty strings '' to inherit title colours config. CloseBtnText = ' X ' // Close button text (may also be an image tag) config. CopyContent = true // When converting a HTML element to a tooltip, copy only the element's content, rather than converting the element by its own config. Delay = 400 // Time span in ms until tooltip shows up -config. Duration = 0 // Time span in ms after which the tooltip disappears; 0 for infinite duration, < 0 for delay in ms _after_ the onmouseout until the tooltip disappears -config. FadeIn = 0 // Fade-in duration in ms, e.g. 400; 0 for no animation -config. FadeOut = 0 +config. Duration = 0 // Time span in ms after which the tooltip disappears; 0 for infinite duration, < 0 for delay in ms _after_ the onmouseout until the tooltip disappears +config. Exclusive = false // false or true - no other tooltip can appear until the current one has actively been closed +config. FadeIn = 100 // Fade-in duration in ms, e.g. 400; 0 for no animation +config. FadeOut = 100 config. FadeInterval = 30 // Duration of each fade step in ms (recommended: 30) - shorter is smoother but causes more CPU-load config. Fix = null // Fixated position, two modes. Mode 1: x- an y-coordinates in brackets, e.g. [210, 480]. Mode 2: Show tooltip at a position related to an HTML element: [ID of HTML element, x-offset, y-offset from HTML element], e.g. ['SomeID', 10, 30]. Value null (default) for no fixated positioning. config. FollowMouse = true // false or true - tooltip follows the mouse config. FontColor = '#000044' config. FontFace = 'Verdana,Geneva,sans-serif' -config. FontSize = '8pt' // E.g. '9pt' or '12px' - unit is mandatory +config. FontSize = '8pt' // E.g. '9pt' or '12px' - unit is mandatory config. FontWeight = 'normal' // 'normal' or 'bold'; -config. Height = 0 // Tooltip height; 0 for automatic adaption to tooltip content, < 0 (e.g. -100) for a maximum for automatic adaption +config. Height = 0 // Tooltip height; 0 for automatic adaption to tooltip content, < 0 (e.g. -100) for a maximum for automatic adaption config. JumpHorz = false // false or true - jump horizontally to other side of mouse if tooltip would extend past clientarea boundary config. JumpVert = true // false or true - jump vertically " -config. Left = false // false or true - tooltip on the left of the mouse +config. Left = false // false or true - tooltip on the left of the mouse config. OffsetX = 14 // Horizontal offset of left-top corner from mousepointer -config. OffsetY = 8 // Vertical offset +config. OffsetY = 8 // Vertical offset config. Opacity = 100 // Integer between 0 and 100 - opacity of tooltip in percent -config. Padding = 3 // Spacing between border and content -config. Shadow = false // false or true +config. Padding = 3 // Spacing between border and content +config. Shadow = false // false or true config. ShadowColor = '#C0C0C0' config. ShadowWidth = 5 -config. Sticky = false // false or true - fixate tip, ie. don't follow the mouse and don't hide on mouseout +config. Sticky = false // false or true - fixate tip, ie. don't follow the mouse and don't hide on mouseout config. TextAlign = 'left' // 'left', 'right' or 'justify' config. Title = '' // Default title text applied to all tips (no default title: empty string '') config. TitleAlign = 'left' // 'left' or 'right' - text alignment inside the title bar @@ -99,7 +100,7 @@ config. TitleFontColor = '#FFFFFF' // Color of title text - if '', BgColor (of t config. TitleFontFace = '' // If '' use FontFace (boldified) config. TitleFontSize = '' // If '' use FontSize config. TitlePadding = 2 -config. Width = 0 // Tooltip width; 0 for automatic adaption to tooltip content; < -1 (e.g. -240) for a maximum width for that automatic adaption; +config. Width = 0 // Tooltip width; 0 for automatic adaption to tooltip content; < -1 (e.g. -240) for a maximum width for that automatic adaption; // -1: tooltip width confined to the width required for the titlebar //======= END OF TOOLTIP CONFIG, DO NOT CHANGE ANYTHING BELOW ==============// @@ -135,7 +136,6 @@ var tt_aElt = new Array(10), // Container DIV, outer title & body DIVs, inner ti tt_aV = new Array(), // Caches and enumerates config data for currently active tooltip tt_sContent, // Inner tooltip text or HTML tt_t2t, tt_t2tDad, // Tag converted to tip, and its DOM parent element -tt_scrlX = 0, tt_scrlY = 0, tt_musX, tt_musY, tt_over, tt_x, tt_y, tt_w, tt_h; // Position, width and height of currently displayed tooltip @@ -169,7 +169,7 @@ function tt_HideInit() if(tt_iState) { tt_ExtCallFncs(0, "HideInit"); - tt_iState &= ~0x4; + tt_iState &= ~(0x4 | 0x8); if(tt_flagOpa && tt_aV[FADEOUT]) { tt_tFade.EndTimer(); @@ -240,21 +240,19 @@ function tt_GetScrollY() } function tt_GetClientW() { - var de = document.documentElement; - return((de && de.clientWidth) ? de.clientWidth : (document.body.clientWidth || window.innerWidth || 0)); + return tt_GetWndCliSiz("Width"); } function tt_GetClientH() { - var de = document.documentElement; - return((de && de.clientHeight) ? de.clientHeight : (document.body.clientHeight || window.innerHeight || 0)); + return tt_GetWndCliSiz("Height"); } function tt_GetEvtX(e) { - return (e ? ((typeof(e.pageX) != tt_u) ? e.pageX : (e.clientX + tt_scrlX)) : 0); + return (e ? ((typeof(e.pageX) != tt_u) ? e.pageX : (e.clientX + tt_GetScrollX())) : 0); } function tt_GetEvtY(e) { - return (e ? ((typeof(e.pageY) != tt_u) ? e.pageY : (e.clientY + tt_scrlY)) : 0); + return (e ? ((typeof(e.pageY) != tt_u) ? e.pageY : (e.clientY + tt_GetScrollY())) : 0); } function tt_AddEvtFnc(el, sEvt, PFnc) { @@ -294,10 +292,10 @@ var tt_aExt = new Array(), // Array of extension objects tt_db, tt_op, tt_ie, tt_ie56, tt_bBoxOld, // Browser flags tt_body, tt_ovr_, // HTML element the mouse is currently over -tt_flagOpa, // Opacity support: 1=IE, 2=Khtml, 3=KHTML, 4=Moz, 5=W3C +tt_flagOpa, // Opacity support: 1=IE, 2=Khtml, 3=KHTML, 4=Moz, 5=W3C tt_maxPosX, tt_maxPosY, -tt_iState = 0, // Tooltip active |= 1, shown |= 2, move with mouse |= 4 -tt_opa, // Currently applied opacity +tt_iState = 0, // Tooltip active |= 1, shown |= 2, move with mouse |= 4, exclusive |= 8 +tt_opa, // Currently applied opacity tt_bJmpVert, tt_bJmpHorz,// Tip temporarily on other side of mouse tt_elDeHref, // The tag from which we've removed the href attribute // Timer @@ -313,15 +311,8 @@ function tt_Init() // Send old browsers instantly to hell if(!tt_Browser() || !tt_MkMainDiv()) return; - // Levy 06/11/2008: Important! IE doesn't fire an onscroll when a page - // refresh is made, so we need to recalc page positions on init. - tt_OnScrl(); tt_IsW3cBox(); tt_OpaSupport(); - tt_AddEvtFnc(window, "scroll", tt_OnScrl); - // IE doesn't fire onscroll event when switching to fullscreen; - // fix suggested by Yoav Karpeles 14.2.2008 - tt_AddEvtFnc(window, "resize", tt_OnScrl); tt_AddEvtFnc(document, "mousemove", tt_Move); // In Debug mode we search for TagToTip() calls in order to notify // the user if they've forgotten to set the TagsToTip config flag @@ -395,9 +386,11 @@ function tt_MkMainDiv() } function tt_MkMainDivHtm() { - return('
    ' + - (tt_ie56 ? ('') - : '')); + return( + '
    ' + + (tt_ie56 ? ('') + : '') + ); } function tt_MkMainDivDom() { @@ -430,7 +423,7 @@ function tt_ResetMainDiv() { tt_SetTipPos(0, 0); tt_aElt[0].innerHTML = ""; - tt_aElt[0].style.width = "auto"; + tt_aElt[0].style.width = "0px"; tt_h = 0; } function tt_IsW3cBox() @@ -537,7 +530,7 @@ function tt_HideSrcTag(sT2t) } function tt_Tip(arg, t2t) { - if(!tt_db) + if(!tt_db || (tt_iState & 0x8)) return; if(tt_iState) tt_Hide(); @@ -546,15 +539,15 @@ function tt_Tip(arg, t2t) tt_t2t = t2t; if(!tt_ReadCmds(arg)) return; - tt_iState = 0x1 | 0x4; + tt_iState = 0x1 | 0x4; tt_AdaptConfig1(); tt_MkTipContent(arg); tt_MkTipSubDivs(); tt_FormatTip(); tt_bJmpVert = false; tt_bJmpHorz = false; - tt_maxPosX = tt_GetClientW() + tt_scrlX - tt_w - 1; - tt_maxPosY = tt_GetClientH() + tt_scrlY - tt_h - 1; + tt_maxPosX = tt_GetClientW() + tt_GetScrollX() - tt_w - 1; + tt_maxPosY = tt_GetClientH() + tt_GetScrollY() - tt_h - 1; tt_AdaptConfig2(); // Ensure the tip be shown and positioned before the first onmousemove tt_OverInit(); @@ -642,6 +635,7 @@ function tt_MkTipSubDivs() var sCss = 'position:relative;margin:0px;padding:0px;border-width:0px;left:0px;top:0px;line-height:normal;width:auto;', sTbTrTd = ' cellspacing="0" cellpadding="0" border="0" style="' + sCss + '">
    ' - // Image redundancy for bugous old Geckos that won't auto-expand TD height to 100% - + '' - + '
    ' - + '' - + '
    ' + // Image redundancy for bugous old Geckos that won't auto-expand TD height to 100% + + '' + + '
    ' + + '' + + '
    0) tt_tDurt.Timer("tt_HideInit()", tt_aV[DURATION], true); tt_ExtCallFncs(0, "Show") @@ -987,7 +983,7 @@ function tt_Move(e) tt_musX = tt_GetEvtX(e); tt_musY = tt_GetEvtY(e); } - if(tt_iState & 0x04) + if(tt_iState & 0x4) { // Prevent jam of mousemove events if(!tt_op && !tt_ie) @@ -1019,7 +1015,7 @@ function tt_Pos(iDim) cmdOff = OFFSETY; cx = tt_h; iMax = tt_maxPosY; - iScrl = tt_scrlY; + iScrl = tt_GetScrollY(); iMus = tt_musY; bJmp = tt_bJmpVert; } @@ -1030,7 +1026,7 @@ function tt_Pos(iDim) cmdOff = OFFSETX; cx = tt_w; iMax = tt_maxPosX; - iScrl = tt_scrlX; + iScrl = tt_GetScrollX(); iMus = tt_musX; bJmp = tt_bJmpHorz; } @@ -1130,11 +1126,11 @@ function tt_Fade(a, now, z, n) now = z; else tt_tFade.Timer( - "tt_Fade(" - + a + "," + now + "," + z + "," + (n - 1) - + ")", - tt_aV[FADEINTERVAL], - true + "tt_Fade(" + + a + "," + now + "," + z + "," + (n - 1) + + ")", + tt_aV[FADEINTERVAL], + true ); } now ? tt_SetTipOpa(now) : tt_Hide(); @@ -1153,11 +1149,6 @@ function tt_SetTipOpa(opa) tt_SetOpa(tt_aElt[8], opa); } } -function tt_OnScrl() -{ - tt_scrlX = tt_GetScrollX(); - tt_scrlY = tt_GetScrollY(); -} function tt_OnCloseBtnOver(iOver) { var css = tt_aElt[4].style; @@ -1200,6 +1191,31 @@ Number.prototype.EndTimer = function() this.value = 0; } } +function tt_GetWndCliSiz(s) +{ + var db, y = window["inner" + s], sC = "client" + s, sN = "number"; + if(typeof y == sN) + { + var y2; + return( + // Gecko or Opera with scrollbar + // ... quirks mode + ((db = document.body) && typeof(y2 = db[sC]) == sN && y2 && y2 <= y) ? y2 + // ... strict mode + : ((db = document.documentElement) && typeof(y2 = db[sC]) == sN && y2 && y2 <= y) ? y2 + // No scrollbar, or clientarea size == 0, or other browser (KHTML etc.) + : y + ); + } + // IE + return( + // document.documentElement.client+s functional, returns > 0 + ((db = document.documentElement) && (y = db[sC])) ? y + // ... not functional, in which case document.body.client+s + // is the clientarea size, fortunately + : document.body[sC] + ); +} function tt_SetOpa(el, opa) { var css = el.style;