<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <title>SWT - Explorer Example</title>
</head>
<body>

<h2>Standard Widget Toolkit (SWT) Standalone Example - Hover Help</h2>

<h3>Introduction</h3>
<p>The Hover Help example shows how to implement custom tooltips and
hover help support on a number of different SWT controls including
Buttons, TableItems, ToolItems and TreeItems.
</p>

<h3>Running the example</h3>
<p>If the Example Launcher is installed, select the Hover Help item from the Standalone category and click Run.&nbsp;
Otherwise, install and run the example manually as per the
<a href="swt_manual_setup.html">Standalone Examples Manual Setup</a> instructions.&nbsp;  The executable class is
<code>org.eclipse.swt.examples.hoverhelp.HoverHelp</code>.
</p>

<h3>Details</h3>
<p>The example implements its own tooltip and hover help support.&nbsp;  To see
the custom tooltips in action, hover over an item or button in the UI.&nbsp;
Notice that images appear in the left-hand corner of the tooltip, unlike
standard SWT tooltips created using setToolTip() on those widgets
that natively support them.&nbsp;  To see the custom hover help in action,
hover over an item or button in the UI as before until the tooltip
is displayed.&nbsp;  Without moving the pointer, hit F1.&nbsp;  A new Shell will
pop up with the extended hover help information for the UI element
in question.
</p>

<p><a href="hglegal.htm"><img SRC="ngibmcpy.gif" ALT="Copyright IBM Corporation 2000, 2001.  All Rights Reserved." BORDER=0 height=12 width=195></a></p>
</body>
</html>
