4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5 <title>The source code</title>
6 <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
7 <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
8 <style type="text/css">
9 .highlight { display: block; background-color: #ddd; }
11 <script type="text/javascript">
12 function highlight() {
13 document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
17 <body onload="prettyPrint(); highlight();">
18 <pre class="prettyprint lang-js"><span id='Ext-tip-QuickTipManager'>/**
19 </span> * @class Ext.tip.QuickTipManager
21 * Provides attractive and customizable tooltips for any element. The QuickTips
22 * singleton is used to configure and manage tooltips globally for multiple elements
23 * in a generic manner. To create individual tooltips with maximum customizability,
24 * you should consider either {@link Ext.tip.Tip} or {@link Ext.tip.ToolTip}.
26 * Quicktips can be configured via tag attributes directly in markup, or by
27 * registering quick tips programmatically via the {@link #register} method.
29 * The singleton's instance of {@link Ext.tip.QuickTip} is available via
30 * {@link #getQuickTip}, and supports all the methods, and all the all the
31 * configuration properties of Ext.tip.QuickTip. These settings will apply to all
32 * tooltips shown by the singleton.
34 * Below is the summary of the configuration properties which can be used.
35 * For detailed descriptions see the config options for the {@link Ext.tip.QuickTip QuickTip} class
37 * ## QuickTips singleton configs (all are optional)
46 * ## Target element configs (optional unless otherwise noted)
50 * - `dismissDelay` (overrides singleton value)
51 * - `target` (required)
56 * Here is an example showing how some of these config options could be used:
59 * // Init the singleton. Any tag-based quick tips will start working.
60 * Ext.tip.QuickTipManager.init();
62 * // Apply a set of config properties to the singleton
63 * Ext.apply(Ext.tip.QuickTipManager.getQuickTip(), {
66 * showDelay: 50 // Show 50ms after entering target
69 * // Create a small panel to add a quick tip to
70 * Ext.create('Ext.container.Container', {
71 * id: 'quickTipContainer',
75 * backgroundColor:'#000000'
77 * renderTo: Ext.getBody()
81 * // Manually register a quick tip for a specific element
82 * Ext.tip.QuickTipManager.register({
83 * target: 'quickTipContainer',
84 * title: 'My Tooltip',
85 * text: 'This tooltip was added in code',
87 * dismissDelay: 10000 // Hide after 10 seconds hover
90 * To register a quick tip in markup, you simply add one or more of the valid QuickTip attributes prefixed with
91 * the **data-** namespace. The HTML element itself is automatically set as the quick tip target. Here is the summary
92 * of supported attributes (optional unless otherwise noted):
94 * - `hide`: Specifying "user" is equivalent to setting autoHide = false. Any other value will be the same as autoHide = true.
95 * - `qclass`: A CSS class to be applied to the quick tip (equivalent to the 'cls' target element config).
96 * - `qtip (required)`: The quick tip text (equivalent to the 'text' target element config).
97 * - `qtitle`: The quick tip title (equivalent to the 'title' target element config).
98 * - `qwidth`: The quick tip width (equivalent to the 'width' target element config).
100 * Here is an example of configuring an HTML element to display a tooltip from markup:
102 * // Add a quick tip to an HTML button
103 * <input type="button" value="OK" data-qtitle="OK Button" data-qwidth="100"
104 * data-qtip="This is a quick tip from markup!"></input>
108 Ext.define('Ext.tip.QuickTipManager', function() {
113 requires: ['Ext.tip.QuickTip'],
115 alternateClassName: 'Ext.QuickTips',
117 <span id='Ext-tip-QuickTipManager-method-init'> /**
118 </span> * Initialize the global QuickTips instance and prepare any quick tips.
119 * @param {Boolean} autoRender (optional) True to render the QuickTips container immediately to
120 * preload images. (Defaults to true)
121 * @param {Object} config (optional) config object for the created QuickTip. By
122 * default, the {@link Ext.tip.QuickTip QuickTip} class is instantiated, but this can
123 * be changed by supplying an xtype property or a className property in this object.
124 * All other properties on this object are configuration for the created component.
126 init : function (autoRender, config) {
129 Ext.onReady(function(){
130 Ext.tip.QuickTipManager.init(autoRender);
135 var tipConfig = Ext.apply({ disabled: disabled }, config),
136 className = tipConfig.className,
137 xtype = tipConfig.xtype;
140 delete tipConfig.className;
142 className = 'widget.' + xtype;
143 delete tipConfig.xtype;
146 if (autoRender !== false) {
147 tipConfig.renderTo = document.body;
150 if (tipConfig.renderTo.tagName != 'BODY') { // e.g., == 'FRAMESET'
152 sourceClass: 'Ext.tip.QuickTipManager',
153 sourceMethod: 'init',
154 msg: 'Cannot init QuickTipManager: no document body'
160 tip = Ext.create(className || 'Ext.tip.QuickTip', tipConfig);
164 <span id='Ext-tip-QuickTipManager-method-destroy'> /**
165 </span> * Destroy the QuickTips instance.
167 destroy: function() {
175 // Protected method called by the dd classes
176 ddDisable : function(){
177 // don't disable it if we don't need to
178 if(tip && !disabled){
183 // Protected method called by the dd classes
184 ddEnable : function(){
185 // only enable it if it hasn't been disabled
186 if(tip && !disabled){
191 <span id='Ext-tip-QuickTipManager-method-enable'> /**
192 </span> * Enable quick tips globally.
201 <span id='Ext-tip-QuickTipManager-method-disable'> /**
202 </span> * Disable quick tips globally.
204 disable : function(){
211 <span id='Ext-tip-QuickTipManager-method-isEnabled'> /**
212 </span> * Returns true if quick tips are enabled, else false.
215 isEnabled : function(){
216 return tip !== undefined && !tip.disabled;
219 <span id='Ext-tip-QuickTipManager-method-getQuickTip'> /**
220 </span> * Gets the single {@link Ext.tip.QuickTip QuickTip} instance used to show tips from all registered elements.
221 * @return {Ext.tip.QuickTip}
223 getQuickTip : function(){
227 <span id='Ext-tip-QuickTipManager-method-register'> /**
228 </span> * Configures a new quick tip instance and assigns it to a target element. See
229 * {@link Ext.tip.QuickTip#register} for details.
230 * @param {Object} config The config object
232 register : function(){
233 tip.register.apply(tip, arguments);
236 <span id='Ext-tip-QuickTipManager-method-unregister'> /**
237 </span> * Removes any registered quick tip from the target element and destroys it.
238 * @param {String/HTMLElement/Ext.Element} el The element from which the quick tip is to be removed or ID of the element.
240 unregister : function(){
241 tip.unregister.apply(tip, arguments);
244 <span id='Ext-tip-QuickTipManager-method-tips'> /**
245 </span> * Alias of {@link #register}.
246 * @param {Object} config The config object
249 tip.register.apply(tip, arguments);