Clear Up
SharpKit Reference

Ext.tip Namespace

Download SDK: SharpKit.ExtJs.zip

Classes

Name Description
QuickTip

A specialized tooltip class for tooltips that can be specified in markup and automatically managed by the global Ext.tip.QuickTipManager instance. See the QuickTipManager documentation for additional usage details and examples.

QuickTipConfig
QuickTipEvents
QuickTipManager

Provides attractive and customizable tooltips for any element. The QuickTips singleton is used to configure and manage tooltips globally for multiple elements in a generic manner. To create individual tooltips with maximum customizability, you should consider either Ext.tip.Tip or Ext.tip.ToolTip.

Quicktips can be configured via tag attributes directly in markup, or by registering quick tips programmatically via the register method.

The singleton's instance of Ext.tip.QuickTip is available via getQuickTip, and supports all the methods, and all the all the configuration properties of Ext.tip.QuickTip. These settings will apply to all tooltips shown by the singleton.

Below is the summary of the configuration properties which can be used. For detailed descriptions see the config options for the QuickTip class

QuickTips singleton configs (all are optional)

  • dismissDelay
  • hideDelay
  • maxWidth
  • minWidth
  • showDelay
  • trackMouse

Target element configs (optional unless otherwise noted)

  • autoHide
  • cls
  • dismissDelay (overrides singleton value)
  • target (required)
  • text (required)
  • title
  • width

Here is an example showing how some of these config options could be used:

  
// Init the singleton.  Any tag-based quick tips will start working.
            Ext.tip.QuickTipManager.init();
            // Apply a set of config properties to the singleton
            Ext.apply(Ext.tip.QuickTipManager.getQuickTip(), {
            maxWidth: 200,
            minWidth: 100,
            showDelay: 50      // Show 50ms after entering target
            });
            // Create a small panel to add a quick tip to
            Ext.create('Ext.container.Container', {
            id: 'quickTipContainer',
            width: 200,
            height: 150,
            style: {
            backgroundColor:'#000000'
            },
            renderTo: Ext.getBody()
            });
            // Manually register a quick tip for a specific element
            Ext.tip.QuickTipManager.register({
            target: 'quickTipContainer',
            title: 'My Tooltip',
            text: 'This tooltip was added in code',
            width: 100,
            dismissDelay: 10000 // Hide after 10 seconds hover
            });
            

To register a quick tip in markup, you simply add one or more of the valid QuickTip attributes prefixed with the data- namespace. The HTML element itself is automatically set as the quick tip target. Here is the summary of supported attributes (optional unless otherwise noted):

  • hide: Specifying "user" is equivalent to setting autoHide = false. Any other value will be the same as autoHide = true.
  • qclass: A CSS class to be applied to the quick tip (equivalent to the 'cls' target element config).
  • qtip (required): The quick tip text (equivalent to the 'text' target element config).
  • qtitle: The quick tip title (equivalent to the 'title' target element config).
  • qwidth: The quick tip width (equivalent to the 'width' target element config).

Here is an example of configuring an HTML element to display a tooltip from markup:

  
// Add a quick tip to an HTML button
            <input type="button" value="OK" data-qtitle="OK Button" data-qwidth="100"
            data-qtip="This is a quick tip from markup!"></input>
            
QuickTipManagerConfig
QuickTipManagerEvents
Tip

This is the base class for Ext.tip.QuickTip and Ext.tip.ToolTip that provides the basic layout and positioning that all tip-based classes require. This class can be used directly for simple, statically-positioned tips that are displayed programmatically, or it can be extended to provide custom tip implementations.

TipConfig
TipEvents
ToolTip

ToolTip is a Ext.tip.Tip implementation that handles the common case of displaying a tooltip when hovering over a certain element or elements on the page. It allows fine-grained control over the tooltip's alignment relative to the target element or mouse, and the timing of when it is automatically shown and hidden.

This implementation does not have a built-in method of automatically populating the tooltip's text based on the target element; you must either configure a fixed html value for each ToolTip instance, or implement custom logic (e.g. in a beforeshow event listener) to generate the appropriate tooltip content on the fly. See Ext.tip.QuickTip for a more convenient way of automatically populating and configuring a tooltip based on specific DOM attributes of each target element.

Basic Example

  
var tip = Ext.create('Ext.tip.ToolTip', {
            target: 'clearButton',
            html: 'Press this button to clear the form'
            });
            

Delegation

In addition to attaching a ToolTip to a single element, you can also use delegation to attach one ToolTip to many elements under a common parent. This is more efficient than creating many ToolTip instances. To do this, point the target config to a common ancestor of all the elements, and then set the delegate config to a CSS selector that will select all the appropriate sub-elements.

When using delegation, it is likely that you will want to programmatically change the content of the ToolTip based on each delegate element; you can do this by implementing a custom listener for the beforeshow event. Example:

  
var store = Ext.create('Ext.data.ArrayStore', {
            fields: ['company', 'price', 'change'],
            data: [
            ['3m Co',                               71.72, 0.02],
            ['Alcoa Inc',                           29.01, 0.42],
            ['Altria Group Inc',                    83.81, 0.28],
            ['American Express Company',            52.55, 0.01],
            ['American International Group, Inc.',  64.13, 0.31],
            ['AT&T Inc.',                           31.61, -0.48]
            ]
            });
            var grid = Ext.create('Ext.grid.Panel', {
            title: 'Array Grid',
            store: store,
            columns: [
            {text: 'Company', flex: 1, dataIndex: 'company'},
            {text: 'Price', width: 75, dataIndex: 'price'},
            {text: 'Change', width: 75, dataIndex: 'change'}
            ],
            height: 200,
            width: 400,
            renderTo: Ext.getBody()
            });
            grid.getView().on('render', function(view) {
            view.tip = Ext.create('Ext.tip.ToolTip', {
            // The overall target element.
            target: view.el,
            // Each grid row causes its own separate show and hide.
            delegate: view.itemSelector,
            // Moving within the row should not hide the tip.
            trackMouse: true,
            // Render immediately so that tip.body can be referenced prior to the first show.
            renderTo: Ext.getBody(),
            listeners: {
            // Change content dynamically depending on which element triggered the show.
            beforeshow: function updateTipBody(tip) {
            tip.update('Over company "' + view.getRecord(tip.triggerElement).get('company') + '"');
            }
            }
            });
            });
            

Alignment

The following configuration properties allow control over how the ToolTip is aligned relative to the target element and/or mouse pointer:

  • anchor
  • anchorToTarget
  • anchorOffset
  • trackMouse
  • mouseOffset

Showing/Hiding

The following configuration properties allow control over how and when the ToolTip is automatically shown and hidden:

  • autoHide
  • showDelay
  • hideDelay
  • dismissDelay
ToolTipConfig
ToolTipEvents
© Copyright 2005-2011 SharpKit. All rights reserved.