Upgrade to ExtJS 4.0.0 - Released 04/26/2011
[extjs.git] / docs / source / QuickTipManager.html
1 <!DOCTYPE html><html><head><title>Sencha Documentation Project</title><link rel="stylesheet" href="../reset.css" type="text/css"><link rel="stylesheet" href="../prettify.css" type="text/css"><link rel="stylesheet" href="../prettify_sa.css" type="text/css"><script type="text/javascript" src="../prettify.js"></script></head><body onload="prettyPrint()"><pre class="prettyprint"><pre><span id='Ext-tip.QuickTipManager'>/**
2 </span> * @class Ext.tip.QuickTipManager
3  *
4  * Provides attractive and customizable tooltips for any element. The QuickTips
5  * singleton is used to configure and manage tooltips globally for multiple elements
6  * in a generic manner.  To create individual tooltips with maximum customizability,
7  * you should consider either {@link Ext.tip.Tip} or {@link Ext.tip.ToolTip}.
8  *
9  * Quicktips can be configured via tag attributes directly in markup, or by
10  * registering quick tips programmatically via the {@link #register} method.
11  *
12  * The singleton's instance of {@link Ext.tip.QuickTip} is available via
13  * {@link #getQuickTip}, and supports all the methods, and all the all the
14  * configuration properties of Ext.tip.QuickTip. These settings will apply to all
15  * tooltips shown by the singleton.
16  *
17  * Below is the summary of the configuration properties which can be used.
18  * For detailed descriptions see the config options for the {@link Ext.tip.QuickTip QuickTip} class
19  *
20  * ## QuickTips singleton configs (all are optional)
21  *
22  *  - `dismissDelay`
23  *  - `hideDelay`
24  *  - `maxWidth`
25  *  - `minWidth`
26  *  - `showDelay`
27  *  - `trackMouse`
28  *
29  * ## Target element configs (optional unless otherwise noted)
30  *
31  *  - `autoHide`
32  *  - `cls`
33  *  - `dismissDelay` (overrides singleton value)
34  *  - `target` (required)
35  *  - `text` (required)
36  *  - `title`
37  *  - `width`
38  *
39  * Here is an example showing how some of these config options could be used:
40  *
41  * {@img Ext.tip.QuickTipManager/Ext.tip.QuickTipManager.png Ext.tip.QuickTipManager component}
42  *
43  * ## Code
44  *
45  *     // Init the singleton.  Any tag-based quick tips will start working.
46  *     Ext.tip.QuickTipManager.init();
47  *     
48  *     // Apply a set of config properties to the singleton
49  *     Ext.apply(Ext.tip.QuickTipManager.getQuickTip(), {
50  *         maxWidth: 200,
51  *         minWidth: 100,
52  *         showDelay: 50      // Show 50ms after entering target
53  *     });
54  *     
55  *     // Create a small panel to add a quick tip to
56  *     Ext.create('Ext.container.Container', {
57  *         id: 'quickTipContainer',
58  *         width: 200,
59  *         height: 150,
60  *         style: {
61  *             backgroundColor:'#000000'
62  *         },
63  *         renderTo: Ext.getBody()
64  *     });
65  *     
66  *     
67  *     // Manually register a quick tip for a specific element
68  *     Ext.tip.QuickTipManager.register({
69  *         target: 'quickTipContainer',
70  *         title: 'My Tooltip',
71  *         text: 'This tooltip was added in code',
72  *         width: 100,
73  *         dismissDelay: 10000 // Hide after 10 seconds hover
74  *     });
75  *
76  * To register a quick tip in markup, you simply add one or more of the valid QuickTip attributes prefixed with
77  * the **ext** namespace.  The HTML element itself is automatically set as the quick tip target. Here is the summary
78  * of supported attributes (optional unless otherwise noted):
79  *
80  *  - `hide`: Specifying &quot;user&quot; is equivalent to setting autoHide = false.  Any other value will be the same as autoHide = true.
81  *  - `qclass`: A CSS class to be applied to the quick tip (equivalent to the 'cls' target element config).
82  *  - `qtip (required)`: The quick tip text (equivalent to the 'text' target element config).
83  *  - `qtitle`: The quick tip title (equivalent to the 'title' target element config).
84  *  - `qwidth`: The quick tip width (equivalent to the 'width' target element config).
85  *
86  * Here is an example of configuring an HTML element to display a tooltip from markup:
87  *     
88  *     // Add a quick tip to an HTML button
89  *     &amp;lt;input type=&quot;button&quot; value=&quot;OK&quot; ext:qtitle=&quot;OK Button&quot; ext:qwidth=&quot;100&quot;
90  *          data-qtip=&quot;This is a quick tip from markup!&quot;&gt;&amp;lt;/input&gt;
91  *
92  * @singleton
93  */
94 Ext.define('Ext.tip.QuickTipManager', function() {
95     var tip,
96         disabled = false;
97
98     return {
99         requires: ['Ext.tip.QuickTip'],
100         singleton: true,
101         alternateClassName: 'Ext.QuickTips',
102 <span id='Ext-tip.QuickTipManager-method-init'>        /**
103 </span>         * Initialize the global QuickTips instance and prepare any quick tips.
104          * @param {Boolean} autoRender True to render the QuickTips container immediately to preload images. (Defaults to true) 
105          */
106         init : function(autoRender){
107             if (!tip) {
108                 if (!Ext.isReady) {
109                     Ext.onReady(function(){
110                         Ext.tip.QuickTipManager.init(autoRender);
111                     });
112                     return;
113                 }
114                 tip = Ext.create('Ext.tip.QuickTip', {
115                     disabled: disabled,
116                     renderTo: autoRender !== false ? document.body : undefined
117                 });
118             }
119         },
120
121 <span id='Ext-tip.QuickTipManager-method-destroy'>        /**
122 </span>         * Destroy the QuickTips instance.
123          */
124         destroy: function() {
125             if (tip) {
126                 var undef;
127                 tip.destroy();
128                 tip = undef;
129             }
130         },
131
132         // Protected method called by the dd classes
133         ddDisable : function(){
134             // don't disable it if we don't need to
135             if(tip &amp;&amp; !disabled){
136                 tip.disable();
137             }
138         },
139
140         // Protected method called by the dd classes
141         ddEnable : function(){
142             // only enable it if it hasn't been disabled
143             if(tip &amp;&amp; !disabled){
144                 tip.enable();
145             }
146         },
147
148 <span id='Ext-tip.QuickTipManager-method-enable'>        /**
149 </span>         * Enable quick tips globally.
150          */
151         enable : function(){
152             if(tip){
153                 tip.enable();
154             }
155             disabled = false;
156         },
157
158 <span id='Ext-tip.QuickTipManager-method-disable'>        /**
159 </span>         * Disable quick tips globally.
160          */
161         disable : function(){
162             if(tip){
163                 tip.disable();
164             }
165             disabled = true;
166         },
167
168 <span id='Ext-tip.QuickTipManager-method-isEnabled'>        /**
169 </span>         * Returns true if quick tips are enabled, else false.
170          * @return {Boolean}
171          */
172         isEnabled : function(){
173             return tip !== undefined &amp;&amp; !tip.disabled;
174         },
175
176 <span id='Ext-tip.QuickTipManager-method-getQuickTip'>        /**
177 </span>         * Gets the single {@link Ext.tip.QuickTip QuickTip} instance used to show tips from all registered elements.
178          * @return {Ext.tip.QuickTip}
179          */
180         getQuickTip : function(){
181             return tip;
182         },
183
184 <span id='Ext-tip.QuickTipManager-method-register'>        /**
185 </span>         * Configures a new quick tip instance and assigns it to a target element.  See
186          * {@link Ext.tip.QuickTip#register} for details.
187          * @param {Object} config The config object
188          */
189         register : function(){
190             tip.register.apply(tip, arguments);
191         },
192
193 <span id='Ext-tip.QuickTipManager-method-unregister'>        /**
194 </span>         * Removes any registered quick tip from the target element and destroys it.
195          * @param {String/HTMLElement/Element} el The element from which the quick tip is to be removed.
196          */
197         unregister : function(){
198             tip.unregister.apply(tip, arguments);
199         },
200
201 <span id='Ext-tip.QuickTipManager-method-tips'>        /**
202 </span>         * Alias of {@link #register}.
203          * @param {Object} config The config object
204          */
205         tips : function(){
206             tip.register.apply(tip, arguments);
207         }
208     };
209 }());</pre></pre></body></html>