coolTip is an amazing tool, with fabulous support. The plugins really extend its usefulness. Unlike the similar tool known as overLIB, it provides built-in support for more than one visible popup at a time on the web page
Note: The documentation page for the Xml Plugin was constructed to adhere to xhtml+xml standards. Consequently, this page must be viewed in a browser that can handle this file type. In addition, the Bubble, ElmContents, Shadow, Hide Form, Scroll and Pointer plugins have been modified to include Xml support and are no longer compatible with earlier versions of the Core Module. These plugins now require at least version 1.43.
Unless explicitly stated otherwise, all Plugins function in Ns4.x
Welcome to coolTip
coolTip is a tool-tip like utility, that is similar to overLIB. In fact, coolTip supports most of the overLIB's commands. The main difference between these two packages is that coolTip is totally object-based, which from the user's standpoint, means that more than one tool-tip at time can be visible on the page, each one having their own look. coolTip has several commands and features that are exclusive with it. Check out the Tutorial section for a complete discussion of all of coolTip's commands and how they are applied.
Like overLIB, coolTip also uses a coding structure that permit a user to write code to provide support for features that are not part of the release by employing the "hooks" built into the code so that his/her code can be called. The following sections describe the function of plugins which have been developed to work with coolTip's core module.
Plugin References
The links at the right are references to the documentation and zipped files of the core module and all plugins that work in conjunction with core module v1.00 or later. As each plugin loads, a call is made to the meets() function of the cInfo object, located in the core module, to see if the required level of core support is present. If it isn't, then an alert is given indicating what level of support is needed in the core module and the loading of the plugin is aborted. This means that if a call to a coolTip with one of this plugin's commands is made, it won't work and will generate an error indicating that the command is undefined. Other coolTips, not using that plugin's commands, will probably function.
A brief description of what each plugin does is given below.
- Adaptive Width
- The purpose of this plugin is to implement a suggestion recently made by Dennis Sandow for a popup having a relatively large amount of body text which has a pleasing aspect ratio (i.e., height/width ratio). See message 7614 on the overlib newsgroup for a complete discussion of his proposed method.
- Anchor
- This plugin allows the user to position coolTips with respect to various Reference Markers on your web page, which may be a named image, a positioned DIV container with a valid ID, or a named Anchor element.
- Bubble
- This plugin allows the user to achieve a "speech bubble" type of coolTip. The technique used to obtain this effect, as well as how a user can go about adding their own "bubble" images, is described and discussed.
- Centerpopup
- The purpose of this plugin is to easily position a coolTip in the middle (horizontal and vertical) of the browser window, so that the middle of the coolTip is positioned over the middle of the visible browser window.
- Crossframe
- This plugin provides the support necessary for showing a coolTip in another window or frame that is different from the one in which the actual core module has been loaded.
- Cssclass
- This plugin provides support for styling a coolTip using custom classes. This command does not need to used since this support is now part of the core module. When a custom class is specified for part of the styling, it takes precedence over normal styling parameters.
- Cssstyle
- This plugin provides support for styling popups with inline style rules.
- Cssw3c
- This plugin allows styling of a coolTip's look totally through CSS Style rules. Because the support of Netscape 4.x for CSS is incomplete, this type of styling is explicitly disabled if you're using that browser. However, you still get a normal popup. When using this plugin, the construction of a coolTip differs from how it is done in the core module. Basically there is only one internal table with the border being applied via style rules to the ctDiv container itself.
- Debug
- This plugin allows a user to get information about coolTip's internal variables, mainly for debugging, displayed in a small window in the upper left-hand corner while the coolTip code is actually running.
- Draggable
- This plugin provides support for "dragging" a coolTip around the screen.
- ElmContents
- This plugin provides additional flexibility in styling a coolTip, by enabling a user to use content in other elements on their pages (ones that have an ID attribute) in a coolTip, by either replacing the entire ctDiv container by another element, the content of the ctDiv container with another element's content, or by replacing just the body and/or caption regions text. (NOTE. This plugin is not compatible with Ns4.x)
- Exclusive
- The purpose of this plugin is to provide support for EXCLUSIVE, STICKY coolTips, along with introducing the EXCLUSIVESTATUS and EXCLUSIVEOVERRIDE comands.
- Fade
- The purpose of this plugin module is to provide support that will allow a coolTip to fade in/out on invocation or to change its transparency. This feature is presently supported only in IE (PC version only), Netscape 6/7/Mozilla, and Safari. If any of the commands introduced in this module are used in another non-supporting browser (i.e., Netscape 4.x, Opera 6/7, or IE on a Mac), they are disabled. An opacity of 100% signifies that the popup is not transparent while an opacity of 0% signifies that it is totally transparent.
- Followscroll
- This plugin provides support to allow a STICKY coolTip to be kept within the browser window as it is scrolled. (See also the Scroll plugin description below).
- Hideform
- The purpose of this plugin is to provide a means to prevent form SELECT boxes and other system controls (i.e., Flash content) from obscuring coolTips in IE version 5.5 and higher. It makes use of the change in the way that IE handles an IFRAME element starting with version 5.5. Previous versions of IE and Netscape 4.x, required that the user place these elements in a layer (i.e., a positioned DIV container), which is hidden when the coolTip appears above it and is reshown when the coolTip is hidden. (NOTE: This Plugin is not compatible with Ns4.x)
- Mousecapture
- The plugin allows the user to change the order in which mouse capturing is done. The core module normally checks while it is loading to see if some other routine has captured the onmousemove event, and if it has, it creates an anonymous function which daisy-chains the other routine's onmousemove function with the one required by coolTip, with the latter coming last. The Mousecapture plugin allows this order to be reversed if it should be necessary.
- PIP
- The purpose of this plugin is to provide support necessary for displaying a popup within a popup (PIP). The core module already provides support for multiple popups, explicitly making sure that popups lie on top of one another. This plugin introduces two additional commands that assist in handling mutiple popups. The support provided here is functional in all browsers supported by coolTip. Secondary popups can have all of the same features that are possible with normal popups; there are no restrictions placed on these secondary popups. Also the invocation routine is the same for all popups -- namely coolTip() and default commands for these secondary popups can be set via the ctPageDefaults() routine. The only restriction that is placed on the primary coolTip is that it must be STICKY when first shown (otherwise you can't get to the popups that it calls).
- Pointer
- This plugin attaches a left-ward or right-ward pointing indicator which extends from the coolTip to the triggering link. It is used mainly in situations where the triggering links are closely spaced to indicate which one is active. (NOTE: This Plugin is not compatible with Ns4.x)
- Positioncap
- This plugin provides several different commands that are not all related. It was done this way to avoid having to define several small plugins. This plugin allows a user to postion the caption bar on either the top or bottom of the popup (and also to the side if needed). It allows allows the user to specify scroll bar controls for extra long body content and even to specify a separate HTML file to be shown with scroll controls. (NOTE: Only the POSITIONCAP command in this Plugin is supported in Ns4.x)
- PositionMod
- This plugin implements the popup positioning, as it pertains to coolTip, that was originally suggested by Dennis Sandow on the overLIB newsgroup.
- Scroll
- This plugin provides another way to scroll a coolTip so that it stays visible in the browser window as it is scrolled. It is simpler and less demanding on the browser than the Followscroll plugin introduced earlier. This plugin implements the simplified scrolling procedure that Fote Macrides first introduced in his code set (See http://www.macridesweb.com/oltest/) but has since dropped.
- Setonoff
- The purpose of this plugin is to provide a way to set commands which take no parameter values to either their ON or OFF state regardless of their current setting. This setting takes place after the command line has been completely parsed, which means the SETON/SETOFF comamnds take precedence. Most no-parameter commands in coolTip act like toggle switches which reverses their current state for the current command only.
- Shadow
- This plugin provides support to display a shadow region (whose color can be specified as well as the amount of shadowing in the X and Y directions) behind the main popup. In browsers which can handle opacity, users can also specify the opacity of this shadow layer.
- Xml
- This plugin provides the support needed for coolTip to be used in web pages that are served with a MIME type of application/xhtml+xml. On first glance, it may appear that this plugin is not needed at all but that is not the case. The normal manner of creating a popup is to set its content using the innerHTML property. Under xhtml+xml that property is disabled in browsers which support this file type and it generates an error. The way around this problem is to make use of W3C DOM procedures to construct the popup, which this plugin provides. (Plugin is not compatible with Ns4.x)
