Upgrade to ExtJS 3.3.0 - Released 10/06/2010
[extjs.git] / docs / source / QuickTips.html
index 6a05764..a773c7c 100644 (file)
@@ -7,7 +7,7 @@
 </head>
 <body  onload="prettyPrint();">
     <pre class="prettyprint lang-js">/*!
- * Ext JS Library 3.2.2
+ * Ext JS Library 3.3.0
  * Copyright(c) 2006-2010 Ext JS, Inc.
  * licensing@extjs.com
  * http://www.extjs.com/license
@@ -25,7 +25,7 @@
  * configuration properties of Ext.QuickTip. These settings will apply to all
  * tooltips shown by the singleton.</p>
  * <p>Below is the summary of the configuration properties which can be used.
- * For detailed descriptions see {@link #getQuickTip}</p>
+ * For detailed descriptions see the config options for the {@link Ext.QuickTip QuickTip} class</p>
  * <p><b>QuickTips singleton configs (all are optional)</b></p>
  * <div class="mdetail-params"><ul><li>dismissDelay</li>
  * <li>hideDelay</li>
@@ -50,7 +50,7 @@ Ext.QuickTips.init();
 Ext.apply(Ext.QuickTips.getQuickTip(), {
     maxWidth: 200,
     minWidth: 100,
-    showDelay: 50,
+    showDelay: 50,      // Show 50ms after entering target
     trackMouse: true
 });
 
@@ -60,7 +60,7 @@ Ext.QuickTips.register({
     title: 'My Tooltip',
     text: 'This tooltip was added in code',
     width: 100,
-    dismissDelay: 20
+    dismissDelay: 10000 // Hide after 10 seconds hover
 });
 </code></pre>
  * <p>To register a quick tip in markup, you simply add one or more of the valid QuickTip attributes prefixed with
@@ -81,7 +81,9 @@ Ext.QuickTips.register({
  * @singleton
  */
 Ext.QuickTips = function(){
-    var tip, locks = [];
+    var tip,
+        disabled = false;
+        
     return {
         <div id="method-Ext.QuickTips-init"></div>/**
          * Initialize the global QuickTips instance and prepare any quick tips.
@@ -95,23 +97,40 @@ Ext.QuickTips = function(){
                     });
                     return;
                 }
-                tip = new Ext.QuickTip({elements:'header,body'});
+                tip = new Ext.QuickTip({
+                    elements:'header,body', 
+                    disabled: disabled
+                });
                 if(autoRender !== false){
                     tip.render(Ext.getBody());
                 }
             }
         },
+        
+        // Protected method called by the dd classes
+        ddDisable : function(){
+            // don't disable it if we don't need to
+            if(tip && !disabled){
+                tip.disable();
+            }    
+        },
+        
+        // Protected method called by the dd classes
+        ddEnable : function(){
+            // only enable it if it hasn't been disabled
+            if(tip && !disabled){
+                tip.enable();
+            }
+        },
 
         <div id="method-Ext.QuickTips-enable"></div>/**
          * Enable quick tips globally.
          */
         enable : function(){
             if(tip){
-                locks.pop();
-                if(locks.length < 1){
-                    tip.enable();
-                }
+                tip.enable();
             }
+            disabled = false;
         },
 
         <div id="method-Ext.QuickTips-disable"></div>/**
@@ -121,7 +140,7 @@ Ext.QuickTips = function(){
             if(tip){
                 tip.disable();
             }
-            locks.push(1);
+            disabled = true;
         },
 
         <div id="method-Ext.QuickTips-isEnabled"></div>/**
@@ -133,7 +152,8 @@ Ext.QuickTips = function(){
         },
 
         <div id="method-Ext.QuickTips-getQuickTip"></div>/**
-         * Gets the global QuickTips instance.
+         * Gets the single {@link Ext.QuickTip QuickTip} instance used to show tips from all registered elements.
+         * @return {Ext.QuickTip}
          */
         getQuickTip : function(){
             return tip;
@@ -160,10 +180,10 @@ Ext.QuickTips = function(){
          * Alias of {@link #register}.
          * @param {Object} config The config object
          */
-        tips :function(){
+        tips : function(){
             tip.register.apply(tip, arguments);
         }
-    }
+    };
 }();</pre>    
 </body>
 </html>
\ No newline at end of file