svg changes
[roojs1] / docs / src / Roo_EventManager.js.html
1 <html><head><title>Roo/EventManager.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/*
2  * Based on:
3  * Ext JS Library 1.1.1
4  * Copyright(c) 2006-2007, Ext JS, LLC.
5  *
6  * Originally Released Under LGPL - original licence link has changed is not relivant.
7  *
8  * Fork - LGPL
9  * &lt;script type=&quot;text/javascript&quot;&gt;
10  */
11
12 /**
13  * @class Roo.EventManager
14  * Registers event handlers that want to receive a normalized EventObject instead of the standard browser event and provides 
15  * several useful events directly.
16  * See {@link Roo.EventObject} for more details on normalized event objects.
17  * @singleton
18  */
19 </span><span class="jsdoc-var">Roo.EventManager </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
20     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">docReadyEvent</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">docReadyProcId</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">docReadyState </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
21     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">resizeEvent</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">resizeTask</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">textEvent</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">textSize</span><span class="jsdoc-syntax">;
22     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">E </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.lib.Event</span><span class="jsdoc-syntax">;
23     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">D </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.lib.Dom</span><span class="jsdoc-syntax">;
24
25
26
27
28     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">fireDocReady </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
29         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">docReadyState</span><span class="jsdoc-syntax">){
30             </span><span class="jsdoc-var">docReadyState </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
31             </span><span class="jsdoc-var">Roo.isReady </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
32             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">docReadyProcId</span><span class="jsdoc-syntax">){
33                 </span><span class="jsdoc-var">clearInterval</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">docReadyProcId</span><span class="jsdoc-syntax">);
34             }
35             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isGecko </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">Roo.isOpera</span><span class="jsdoc-syntax">) {
36                 </span><span class="jsdoc-var">document.removeEventListener</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;DOMContentLoaded&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fireDocReady</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
37             }
38             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isIE</span><span class="jsdoc-syntax">){
39                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">defer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">document.getElementById</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;ie-deferred-loader&quot;</span><span class="jsdoc-syntax">);
40                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">defer</span><span class="jsdoc-syntax">){
41                     </span><span class="jsdoc-var">defer.onreadystatechange </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
42                     </span><span class="jsdoc-var">defer.parentNode.removeChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">defer</span><span class="jsdoc-syntax">);
43                 }
44             }
45             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">docReadyEvent</span><span class="jsdoc-syntax">){
46                 </span><span class="jsdoc-var">docReadyEvent.fire</span><span class="jsdoc-syntax">();
47                 </span><span class="jsdoc-var">docReadyEvent.clearListeners</span><span class="jsdoc-syntax">();
48             }
49         }
50     };
51
52     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">initDocReady </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
53         </span><span class="jsdoc-var">docReadyEvent </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.Event</span><span class="jsdoc-syntax">();
54         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isGecko </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">Roo.isOpera</span><span class="jsdoc-syntax">) {
55             </span><span class="jsdoc-var">document.addEventListener</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;DOMContentLoaded&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fireDocReady</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
56         }</span><span class="jsdoc-keyword">else if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isIE</span><span class="jsdoc-syntax">){
57             </span><span class="jsdoc-var">document.write</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&lt;s&quot;</span><span class="jsdoc-syntax">+</span><span class="jsdoc-string">'cript id=&quot;ie-deferred-loader&quot; defer=&quot;defer&quot; src=&quot;/'</span><span class="jsdoc-syntax">+</span><span class="jsdoc-string">'/:&quot;&gt;&lt;/s'</span><span class="jsdoc-syntax">+</span><span class="jsdoc-string">&quot;cript&gt;&quot;</span><span class="jsdoc-syntax">);
58             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">defer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">document.getElementById</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;ie-deferred-loader&quot;</span><span class="jsdoc-syntax">);
59             </span><span class="jsdoc-var">defer.onreadystatechange </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
60                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.readyState </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;complete&quot;</span><span class="jsdoc-syntax">){
61                     </span><span class="jsdoc-var">fireDocReady</span><span class="jsdoc-syntax">();
62                 }
63             };
64         }</span><span class="jsdoc-keyword">else if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isSafari</span><span class="jsdoc-syntax">){
65             </span><span class="jsdoc-var">docReadyProcId </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">setInterval</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
66                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">rs </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">document.readyState</span><span class="jsdoc-syntax">;
67                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rs </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;complete&quot;</span><span class="jsdoc-syntax">) {
68                     </span><span class="jsdoc-var">fireDocReady</span><span class="jsdoc-syntax">();
69                  }
70             }, 10);
71         }
72         </span><span class="jsdoc-comment">// no matter what, make sure it fires on load
73         </span><span class="jsdoc-var">E.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">window</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;load&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fireDocReady</span><span class="jsdoc-syntax">);
74     };
75
76     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">createBuffered </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">){
77         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">task </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.DelayedTask</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">);
78         </span><span class="jsdoc-keyword">return function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
79             </span><span class="jsdoc-comment">// create new event object impl so new events don't wipe out properties
80             </span><span class="jsdoc-var">e </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.EventObjectImpl</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
81             </span><span class="jsdoc-var">task.delay</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.buffer</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">, [</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">]);
82         };
83     };
84
85     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">createSingle </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ename</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">){
86         </span><span class="jsdoc-keyword">return function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
87             </span><span class="jsdoc-var">Roo.EventManager.removeListener</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ename</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">);
88             </span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
89         };
90     };
91
92     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">createDelayed </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">){
93         </span><span class="jsdoc-keyword">return function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
94             </span><span class="jsdoc-comment">// create new event object impl so new events don't wipe out properties
95             </span><span class="jsdoc-var">e </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.EventObjectImpl</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
96             </span><span class="jsdoc-var">setTimeout</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
97                 </span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
98             }, </span><span class="jsdoc-var">o.delay </span><span class="jsdoc-syntax">|| 10);
99         };
100     };
101     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">transitionEndVal </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
102
103     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">transitionEnd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
104     {
105         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">transitionEndVal</span><span class="jsdoc-syntax">) {
106             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">transitionEndVal</span><span class="jsdoc-syntax">;
107         }
108         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">document.createElement</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'div'</span><span class="jsdoc-syntax">);
109
110         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">transEndEventNames </span><span class="jsdoc-syntax">= {
111             </span><span class="jsdoc-var">WebkitTransition </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'webkitTransitionEnd'</span><span class="jsdoc-syntax">,
112             </span><span class="jsdoc-var">MozTransition    </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'transitionend'</span><span class="jsdoc-syntax">,
113             </span><span class="jsdoc-var">OTransition      </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'oTransitionEnd otransitionend'</span><span class="jsdoc-syntax">,
114             </span><span class="jsdoc-var">transition       </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'transitionend'
115         </span><span class="jsdoc-syntax">};
116
117         </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">name </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">transEndEventNames</span><span class="jsdoc-syntax">) {
118             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el.style</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">] !== </span><span class="jsdoc-var">undefined</span><span class="jsdoc-syntax">) {
119                 </span><span class="jsdoc-var">transitionEndVal </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">transEndEventNames</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">];
120                 </span><span class="jsdoc-keyword">return  </span><span class="jsdoc-var">transitionEndVal </span><span class="jsdoc-syntax">;
121             }
122         }
123     }
124
125
126
127     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">listen </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">element</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ename</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">opt</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">)
128     {
129         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">o </span><span class="jsdoc-syntax">= (!</span><span class="jsdoc-var">opt </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">opt </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;boolean&quot;</span><span class="jsdoc-syntax">) ? {} : </span><span class="jsdoc-var">opt</span><span class="jsdoc-syntax">;
130         </span><span class="jsdoc-var">fn </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">fn </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">o.fn</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">scope </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">scope </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">o.scope</span><span class="jsdoc-syntax">;
131         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.getDom</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">element</span><span class="jsdoc-syntax">);
132
133
134         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">){
135             </span><span class="jsdoc-keyword">throw </span><span class="jsdoc-string">&quot;Error listening for \&quot;&quot; </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">ename </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'\&quot;. Element &quot;' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">element </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'&quot; doesn\'t exist.'</span><span class="jsdoc-syntax">;
136         }
137
138         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ename </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'transitionend'</span><span class="jsdoc-syntax">) {
139             </span><span class="jsdoc-var">ename </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">transitionEnd</span><span class="jsdoc-syntax">();
140         }
141         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">h </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
142             </span><span class="jsdoc-var">e </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.EventObject.setEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
143             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">;
144             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.delegate</span><span class="jsdoc-syntax">){
145                 </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">e.getTarget</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.delegate</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">);
146                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">){
147                     </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
148                 }
149             }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
150                 </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">e.target</span><span class="jsdoc-syntax">;
151             }
152             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.stopEvent </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">){
153                 </span><span class="jsdoc-var">e.stopEvent</span><span class="jsdoc-syntax">();
154             }
155             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.preventDefault </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">){
156                </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
157             }
158             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.stopPropagation </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">){
159                 </span><span class="jsdoc-var">e.stopPropagation</span><span class="jsdoc-syntax">();
160             }
161
162             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.normalized </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
163                 </span><span class="jsdoc-var">e </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">e.browserEvent</span><span class="jsdoc-syntax">;
164             }
165
166             </span><span class="jsdoc-var">fn.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">scope </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">);
167         };
168         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.delay</span><span class="jsdoc-syntax">){
169             </span><span class="jsdoc-var">h </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">createDelayed</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">);
170         }
171         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.single</span><span class="jsdoc-syntax">){
172             </span><span class="jsdoc-var">h </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">createSingle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ename</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">);
173         }
174         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.buffer</span><span class="jsdoc-syntax">){
175             </span><span class="jsdoc-var">h </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">createBuffered</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">);
176         }
177
178         </span><span class="jsdoc-var">fn._handlers </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">fn._handlers </span><span class="jsdoc-syntax">|| [];
179
180
181         </span><span class="jsdoc-var">fn._handlers.push</span><span class="jsdoc-syntax">([</span><span class="jsdoc-var">Roo.id</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">ename</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">]);
182
183
184
185         </span><span class="jsdoc-var">E.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ename</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">); </span><span class="jsdoc-comment">// this adds the actuall listener to the object..
186
187
188         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ename </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;mousewheel&quot; </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">el.addEventListener</span><span class="jsdoc-syntax">){ </span><span class="jsdoc-comment">// workaround for jQuery
189             </span><span class="jsdoc-var">el.addEventListener</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;DOMMouseScroll&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
190             </span><span class="jsdoc-var">E.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">window</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'unload'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
191                 </span><span class="jsdoc-var">el.removeEventListener</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;DOMMouseScroll&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
192             });
193         }
194         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ename </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;mousedown&quot; </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">document</span><span class="jsdoc-syntax">){ </span><span class="jsdoc-comment">// fix stopped mousedowns on the document
195             </span><span class="jsdoc-var">Roo.EventManager.stoppedMouseDownEvent.addListener</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">);
196         }
197         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">;
198     };
199
200     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">stopListening </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ename</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">){
201         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.id</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">hds </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">fn._handlers</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">hd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">;
202         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hds</span><span class="jsdoc-syntax">){
203             </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">hds.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
204                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">h </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">hds</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
205                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">[0] == </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">[1] == </span><span class="jsdoc-var">ename</span><span class="jsdoc-syntax">){
206                     </span><span class="jsdoc-var">hd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">[2];
207                     </span><span class="jsdoc-var">hds.splice</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">, 1);
208                     </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
209                 }
210             }
211         }
212         </span><span class="jsdoc-var">E.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ename</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">hd</span><span class="jsdoc-syntax">);
213         </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.getDom</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">);
214         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ename </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;mousewheel&quot; </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">el.addEventListener</span><span class="jsdoc-syntax">){
215             </span><span class="jsdoc-var">el.removeEventListener</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;DOMMouseScroll&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">hd</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
216         }
217         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ename </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;mousedown&quot; </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">document</span><span class="jsdoc-syntax">){ </span><span class="jsdoc-comment">// fix stopped mousedowns on the document
218             </span><span class="jsdoc-var">Roo.EventManager.stoppedMouseDownEvent.removeListener</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hd</span><span class="jsdoc-syntax">);
219         }
220     };
221
222     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">propRe </span><span class="jsdoc-syntax">= /^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/;
223
224     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">pub </span><span class="jsdoc-syntax">= {
225
226
227         </span><span class="jsdoc-comment">/** 
228          * Fix for doc tools
229          * @scope Roo.EventManager
230          */
231
232
233         /** 
234          * This is no longer needed and is deprecated. Places a simple wrapper around an event handler to override the browser event
235          * object with a Roo.EventObject
236          * @param {Function} fn        The method the event invokes
237          * @param {Object}   scope    An object that becomes the scope of the handler
238          * @param {boolean}  override If true, the obj passed in becomes
239          *                             the execution scope of the listener
240          * @return {Function} The wrapped function
241          * @deprecated
242          */
243         </span><span class="jsdoc-var">wrap </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">override</span><span class="jsdoc-syntax">){
244             </span><span class="jsdoc-keyword">return function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
245                 </span><span class="jsdoc-var">Roo.EventObject.setEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
246                 </span><span class="jsdoc-var">fn.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">override </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">scope </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">window </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">window</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.EventObject</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">);
247             };
248         },
249
250         </span><span class="jsdoc-comment">/**
251      * Appends an event handler to an element (shorthand for addListener)
252      * @param {String/HTMLElement}   element        The html element or id to assign the
253      * @param {String}   eventName The type of event to listen for
254      * @param {Function} handler The method the event invokes
255      * @param {Object}   scope (optional) The scope in which to execute the handler
256      * function. The handler function's &quot;this&quot; context.
257      * @param {Object}   options (optional) An object containing handler configuration
258      * properties. This may contain any of the following properties:&lt;ul&gt;
259      * &lt;li&gt;scope {Object} The scope in which to execute the handler function. The handler function's &quot;this&quot; context.&lt;/li&gt;
260      * &lt;li&gt;delegate {String} A simple selector to filter the target or look for a descendant of the target&lt;/li&gt;
261      * &lt;li&gt;stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.&lt;/li&gt;
262      * &lt;li&gt;preventDefault {Boolean} True to prevent the default action&lt;/li&gt;
263      * &lt;li&gt;stopPropagation {Boolean} True to prevent event propagation&lt;/li&gt;
264      * &lt;li&gt;normalized {Boolean} False to pass a browser event to the handler function instead of an Roo.EventObject&lt;/li&gt;
265      * &lt;li&gt;delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.&lt;/li&gt;
266      * &lt;li&gt;single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.&lt;/li&gt;
267      * &lt;li&gt;buffer {Number} Causes the handler to be scheduled to run in an {@link Roo.util.DelayedTask} delayed
268      * by the specified number of milliseconds. If the event fires again within that time, the original
269      * handler is &lt;em&gt;not&lt;/em&gt; invoked, but the new handler is scheduled in its place.&lt;/li&gt;
270      * &lt;/ul&gt;&lt;br&gt;
271      * &lt;p&gt;
272      * &lt;b&gt;Combining Options&lt;/b&gt;&lt;br&gt;
273      * Using the options argument, it is possible to combine different types of listeners:&lt;br&gt;
274      * &lt;br&gt;
275      * A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)&lt;div style=&quot;margin: 5px 20px 20px;&quot;&gt;
276      * Code:&lt;pre&gt;&lt;code&gt;
277 el.on('click', this.onClick, this, {
278     single: true,
279     delay: 100,
280     stopEvent : true,
281     forumId: 4
282 });&lt;/code&gt;&lt;/pre&gt;
283      * &lt;p&gt;
284      * &lt;b&gt;Attaching multiple handlers in 1 call&lt;/b&gt;&lt;br&gt;
285       * The method also allows for a single argument to be passed which is a config object containing properties
286      * which specify multiple handlers.
287      * &lt;p&gt;
288      * Code:&lt;pre&gt;&lt;code&gt;
289 el.on({
290     'click' : {
291         fn: this.onClick
292         scope: this,
293         delay: 100
294     },
295     'mouseover' : {
296         fn: this.onMouseOver
297         scope: this
298     },
299     'mouseout' : {
300         fn: this.onMouseOut
301         scope: this
302     }
303 });&lt;/code&gt;&lt;/pre&gt;
304      * &lt;p&gt;
305      * Or a shorthand syntax:&lt;br&gt;
306      * Code:&lt;pre&gt;&lt;code&gt;
307 el.on({
308     'click' : this.onClick,
309     'mouseover' : this.onMouseOver,
310     'mouseout' : this.onMouseOut
311     scope: this
312 });&lt;/code&gt;&lt;/pre&gt;
313      */
314         </span><span class="jsdoc-var">addListener </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">element</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">){
315             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">eventName </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;object&quot;</span><span class="jsdoc-syntax">){
316                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">o </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">;
317                 </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">e </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">){
318                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">propRe.test</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">)){
319                         </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
320                     }
321                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">] == </span><span class="jsdoc-string">&quot;function&quot;</span><span class="jsdoc-syntax">){
322                         </span><span class="jsdoc-comment">// shared options
323                         </span><span class="jsdoc-var">listen</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">element</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">], </span><span class="jsdoc-var">o.scope</span><span class="jsdoc-syntax">);
324                     }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
325                         </span><span class="jsdoc-comment">// individual options
326                         </span><span class="jsdoc-var">listen</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">element</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">]);
327                     }
328                 }
329                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
330             }
331             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">listen</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">element</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">);
332         },
333
334         </span><span class="jsdoc-comment">/**
335          * Removes an event handler
336          *
337          * @param {String/HTMLElement}   element        The id or html element to remove the 
338          *                             event from
339          * @param {String}   eventName     The type of event
340          * @param {Function} fn
341          * @return {Boolean} True if a listener was actually removed
342          */
343         </span><span class="jsdoc-var">removeListener </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">element</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">){
344             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">stopListening</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">element</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">);
345         },
346
347         </span><span class="jsdoc-comment">/**
348          * Fires when the document is ready (before onload and before images are loaded). Can be 
349          * accessed shorthanded Roo.onReady().
350          * @param {Function} fn        The method the event invokes
351          * @param {Object}   scope    An  object that becomes the scope of the handler
352          * @param {boolean}  options
353          */
354         </span><span class="jsdoc-var">onDocumentReady </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">){
355             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">docReadyState</span><span class="jsdoc-syntax">){ </span><span class="jsdoc-comment">// if it already fired
356                 </span><span class="jsdoc-var">docReadyEvent.addListener</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">);
357                 </span><span class="jsdoc-var">docReadyEvent.fire</span><span class="jsdoc-syntax">();
358                 </span><span class="jsdoc-var">docReadyEvent.clearListeners</span><span class="jsdoc-syntax">();
359                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
360             }
361             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">docReadyEvent</span><span class="jsdoc-syntax">){
362                 </span><span class="jsdoc-var">initDocReady</span><span class="jsdoc-syntax">();
363             }
364             </span><span class="jsdoc-var">docReadyEvent.addListener</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">);
365         },
366
367         </span><span class="jsdoc-comment">/**
368          * Fires when the window is resized and provides resize event buffering (50 milliseconds), passes new viewport width and height to handlers.
369          * @param {Function} fn        The method the event invokes
370          * @param {Object}   scope    An object that becomes the scope of the handler
371          * @param {boolean}  options
372          */
373         </span><span class="jsdoc-var">onWindowResize </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">){
374             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">resizeEvent</span><span class="jsdoc-syntax">){
375                 </span><span class="jsdoc-var">resizeEvent </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.Event</span><span class="jsdoc-syntax">();
376                 </span><span class="jsdoc-var">resizeTask </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.DelayedTask</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
377                     </span><span class="jsdoc-var">resizeEvent.fire</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">D.getViewWidth</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-var">D.getViewHeight</span><span class="jsdoc-syntax">());
378                 });
379                 </span><span class="jsdoc-var">E.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">window</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;resize&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
380                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isIE</span><span class="jsdoc-syntax">){
381                         </span><span class="jsdoc-var">resizeTask.delay</span><span class="jsdoc-syntax">(50);
382                     }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
383                         </span><span class="jsdoc-var">resizeEvent.fire</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">D.getViewWidth</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-var">D.getViewHeight</span><span class="jsdoc-syntax">());
384                     }
385                 });
386             }
387             </span><span class="jsdoc-var">resizeEvent.addListener</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">);
388         },
389
390         </span><span class="jsdoc-comment">/**
391          * Fires when the user changes the active text size. Handler gets called with 2 params, the old size and the new size.
392          * @param {Function} fn        The method the event invokes
393          * @param {Object}   scope    An object that becomes the scope of the handler
394          * @param {boolean}  options
395          */
396         </span><span class="jsdoc-var">onTextResize </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">){
397             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">textEvent</span><span class="jsdoc-syntax">){
398                 </span><span class="jsdoc-var">textEvent </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.Event</span><span class="jsdoc-syntax">();
399                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">textEl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Element</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">document.createElement</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'div'</span><span class="jsdoc-syntax">));
400                 </span><span class="jsdoc-var">textEl.dom.className </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'x-text-resize'</span><span class="jsdoc-syntax">;
401                 </span><span class="jsdoc-var">textEl.dom.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'X'</span><span class="jsdoc-syntax">;
402                 </span><span class="jsdoc-var">textEl.appendTo</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">document.body</span><span class="jsdoc-syntax">);
403                 </span><span class="jsdoc-var">textSize </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">textEl.dom.offsetHeight</span><span class="jsdoc-syntax">;
404                 </span><span class="jsdoc-var">setInterval</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
405                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">textEl.dom.offsetHeight </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">textSize</span><span class="jsdoc-syntax">){
406                         </span><span class="jsdoc-var">textEvent.fire</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">textSize</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">textSize </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">textEl.dom.offsetHeight</span><span class="jsdoc-syntax">);
407                     }
408                 }, </span><span class="jsdoc-var">this.textResizeInterval</span><span class="jsdoc-syntax">);
409             }
410             </span><span class="jsdoc-var">textEvent.addListener</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">);
411         },
412
413         </span><span class="jsdoc-comment">/**
414          * Removes the passed window resize listener.
415          * @param {Function} fn        The method the event invokes
416          * @param {Object}   scope    The scope of handler
417          */
418         </span><span class="jsdoc-var">removeResizeListener </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">){
419             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">resizeEvent</span><span class="jsdoc-syntax">){
420                 </span><span class="jsdoc-var">resizeEvent.removeListener</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">);
421             }
422         },
423
424         </span><span class="jsdoc-comment">// private
425         </span><span class="jsdoc-var">fireResize </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
426             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">resizeEvent</span><span class="jsdoc-syntax">){
427                 </span><span class="jsdoc-var">resizeEvent.fire</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">D.getViewWidth</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-var">D.getViewHeight</span><span class="jsdoc-syntax">());
428             }
429         },
430         </span><span class="jsdoc-comment">/**
431          * Url used for onDocumentReady with using SSL (defaults to Roo.SSL_SECURE_URL)
432          */
433         </span><span class="jsdoc-var">ieDeferSrc </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
434         </span><span class="jsdoc-comment">/**
435          * The frequency, in milliseconds, to check for text resize events (defaults to 50)
436          */
437         </span><span class="jsdoc-var">textResizeInterval </span><span class="jsdoc-syntax">: 50
438     };
439
440     </span><span class="jsdoc-comment">/**
441      * Fix for doc tools
442      * @scopeAlias pub=Roo.EventManager
443      */
444
445      /**
446      * Appends an event handler to an element (shorthand for addListener)
447      * @param {String/HTMLElement}   element        The html element or id to assign the
448      * @param {String}   eventName The type of event to listen for
449      * @param {Function} handler The method the event invokes
450      * @param {Object}   scope (optional) The scope in which to execute the handler
451      * function. The handler function's &quot;this&quot; context.
452      * @param {Object}   options (optional) An object containing handler configuration
453      * properties. This may contain any of the following properties:&lt;ul&gt;
454      * &lt;li&gt;scope {Object} The scope in which to execute the handler function. The handler function's &quot;this&quot; context.&lt;/li&gt;
455      * &lt;li&gt;delegate {String} A simple selector to filter the target or look for a descendant of the target&lt;/li&gt;
456      * &lt;li&gt;stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.&lt;/li&gt;
457      * &lt;li&gt;preventDefault {Boolean} True to prevent the default action&lt;/li&gt;
458      * &lt;li&gt;stopPropagation {Boolean} True to prevent event propagation&lt;/li&gt;
459      * &lt;li&gt;normalized {Boolean} False to pass a browser event to the handler function instead of an Roo.EventObject&lt;/li&gt;
460      * &lt;li&gt;delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.&lt;/li&gt;
461      * &lt;li&gt;single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.&lt;/li&gt;
462      * &lt;li&gt;buffer {Number} Causes the handler to be scheduled to run in an {@link Roo.util.DelayedTask} delayed
463      * by the specified number of milliseconds. If the event fires again within that time, the original
464      * handler is &lt;em&gt;not&lt;/em&gt; invoked, but the new handler is scheduled in its place.&lt;/li&gt;
465      * &lt;/ul&gt;&lt;br&gt;
466      * &lt;p&gt;
467      * &lt;b&gt;Combining Options&lt;/b&gt;&lt;br&gt;
468      * Using the options argument, it is possible to combine different types of listeners:&lt;br&gt;
469      * &lt;br&gt;
470      * A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)&lt;div style=&quot;margin: 5px 20px 20px;&quot;&gt;
471      * Code:&lt;pre&gt;&lt;code&gt;
472 el.on('click', this.onClick, this, {
473     single: true,
474     delay: 100,
475     stopEvent : true,
476     forumId: 4
477 });&lt;/code&gt;&lt;/pre&gt;
478      * &lt;p&gt;
479      * &lt;b&gt;Attaching multiple handlers in 1 call&lt;/b&gt;&lt;br&gt;
480       * The method also allows for a single argument to be passed which is a config object containing properties
481      * which specify multiple handlers.
482      * &lt;p&gt;
483      * Code:&lt;pre&gt;&lt;code&gt;
484 el.on({
485     'click' : {
486         fn: this.onClick
487         scope: this,
488         delay: 100
489     },
490     'mouseover' : {
491         fn: this.onMouseOver
492         scope: this
493     },
494     'mouseout' : {
495         fn: this.onMouseOut
496         scope: this
497     }
498 });&lt;/code&gt;&lt;/pre&gt;
499      * &lt;p&gt;
500      * Or a shorthand syntax:&lt;br&gt;
501      * Code:&lt;pre&gt;&lt;code&gt;
502 el.on({
503     'click' : this.onClick,
504     'mouseover' : this.onMouseOver,
505     'mouseout' : this.onMouseOut
506     scope: this
507 });&lt;/code&gt;&lt;/pre&gt;
508      */
509     </span><span class="jsdoc-var">pub.on </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">pub.addListener</span><span class="jsdoc-syntax">;
510     </span><span class="jsdoc-var">pub.un </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">pub.removeListener</span><span class="jsdoc-syntax">;
511
512     </span><span class="jsdoc-var">pub.stoppedMouseDownEvent </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.Event</span><span class="jsdoc-syntax">();
513     </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">pub</span><span class="jsdoc-syntax">;
514 }();
515 </span><span class="jsdoc-comment">/**
516   * Fires when the document is ready (before onload and before images are loaded).  Shorthand of {@link Roo.EventManager#onDocumentReady}.
517   * @param {Function} fn        The method the event invokes
518   * @param {Object}   scope    An  object that becomes the scope of the handler
519   * @param {boolean}  override If true, the obj passed in becomes
520   *                             the execution scope of the listener
521   * @member Roo
522   * @method onReady
523  */
524 </span><span class="jsdoc-var">Roo.onReady </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.EventManager.onDocumentReady</span><span class="jsdoc-syntax">;
525
526 </span><span class="jsdoc-var">Roo.onReady</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
527     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">bd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">document.body</span><span class="jsdoc-syntax">);
528     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">bd</span><span class="jsdoc-syntax">){ </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">; }
529
530     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">= [
531             </span><span class="jsdoc-var">Roo.isIE </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">&quot;roo-ie&quot;
532             </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.isIE11 </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">&quot;roo-ie11&quot;
533             </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.isEdge </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">&quot;roo-edge&quot;
534             </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.isGecko </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">&quot;roo-gecko&quot;
535             </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.isOpera </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">&quot;roo-opera&quot;
536             </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.isSafari </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">&quot;roo-safari&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">];
537
538     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isMac</span><span class="jsdoc-syntax">){
539         </span><span class="jsdoc-var">cls.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;roo-mac&quot;</span><span class="jsdoc-syntax">);
540     }
541     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isLinux</span><span class="jsdoc-syntax">){
542         </span><span class="jsdoc-var">cls.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;roo-linux&quot;</span><span class="jsdoc-syntax">);
543     }
544     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isIOS</span><span class="jsdoc-syntax">){
545         </span><span class="jsdoc-var">cls.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;roo-ios&quot;</span><span class="jsdoc-syntax">);
546     }
547     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isTouch</span><span class="jsdoc-syntax">){
548         </span><span class="jsdoc-var">cls.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;roo-touch&quot;</span><span class="jsdoc-syntax">);
549     }
550     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isBorderBox</span><span class="jsdoc-syntax">){
551         </span><span class="jsdoc-var">cls.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'roo-border-box'</span><span class="jsdoc-syntax">);
552     }
553     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isStrict</span><span class="jsdoc-syntax">){ </span><span class="jsdoc-comment">// add to the parent to allow for selectors like &quot;.ext-strict .ext-ie&quot;
554         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">bd.dom.parentNode</span><span class="jsdoc-syntax">;
555         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">){
556             </span><span class="jsdoc-var">p.className </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">' roo-strict'</span><span class="jsdoc-syntax">;
557         }
558     }
559     </span><span class="jsdoc-var">bd.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cls.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">' '</span><span class="jsdoc-syntax">));
560 });
561
562 </span><span class="jsdoc-comment">/**
563  * @class Roo.EventObject
564  * EventObject exposes the Yahoo! UI Event functionality directly on the object
565  * passed to your event handler. It exists mostly for convenience. It also fixes the annoying null checks automatically to cleanup your code 
566  * Example:
567  * &lt;pre&gt;&lt;code&gt;
568  function handleClick(e){ // e is not a standard event object, it is a Roo.EventObject
569     e.preventDefault();
570     var target = e.getTarget();
571     ...
572  }
573  var myDiv = Roo.get(&quot;myDiv&quot;);
574  myDiv.on(&quot;click&quot;, handleClick);
575  //or
576  Roo.EventManager.on(&quot;myDiv&quot;, 'click', handleClick);
577  Roo.EventManager.addListener(&quot;myDiv&quot;, 'click', handleClick);
578  &lt;/code&gt;&lt;/pre&gt;
579  * @singleton
580  */
581 </span><span class="jsdoc-var">Roo.EventObject </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
582
583     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">E </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.lib.Event</span><span class="jsdoc-syntax">;
584
585     </span><span class="jsdoc-comment">// safari keypress events for special keys return bad keycodes
586     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">safariKeys </span><span class="jsdoc-syntax">= {
587         63234 : 37, </span><span class="jsdoc-comment">// left
588         </span><span class="jsdoc-syntax">63235 : 39, </span><span class="jsdoc-comment">// right
589         </span><span class="jsdoc-syntax">63232 : 38, </span><span class="jsdoc-comment">// up
590         </span><span class="jsdoc-syntax">63233 : 40, </span><span class="jsdoc-comment">// down
591         </span><span class="jsdoc-syntax">63276 : 33, </span><span class="jsdoc-comment">// page up
592         </span><span class="jsdoc-syntax">63277 : 34, </span><span class="jsdoc-comment">// page down
593         </span><span class="jsdoc-syntax">63272 : 46, </span><span class="jsdoc-comment">// delete
594         </span><span class="jsdoc-syntax">63273 : 36, </span><span class="jsdoc-comment">// home
595         </span><span class="jsdoc-syntax">63275 : 35  </span><span class="jsdoc-comment">// end
596     </span><span class="jsdoc-syntax">};
597
598     </span><span class="jsdoc-comment">// normalize button clicks
599     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">btnMap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.isIE </span><span class="jsdoc-syntax">? {1:0,4:1,2:2} :
600                 (</span><span class="jsdoc-var">Roo.isSafari </span><span class="jsdoc-syntax">? {1:0,2:1,3:2} : {0:0,1:1,2:2});
601
602     </span><span class="jsdoc-var">Roo.EventObjectImpl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
603         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
604             </span><span class="jsdoc-var">this.setEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.browserEvent </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
605         }
606     };
607     </span><span class="jsdoc-var">Roo.EventObjectImpl.prototype </span><span class="jsdoc-syntax">= {
608         </span><span class="jsdoc-comment">/**
609          * Used to fix doc tools.
610          * @scope Roo.EventObject.prototype
611          */
612
613
614
615
616         /** The normal browser event */
617         </span><span class="jsdoc-var">browserEvent </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
618         </span><span class="jsdoc-comment">/** The button pressed in a mouse event */
619         </span><span class="jsdoc-var">button </span><span class="jsdoc-syntax">: -1,
620         </span><span class="jsdoc-comment">/** True if the shift key was down during the event */
621         </span><span class="jsdoc-var">shiftKey </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
622         </span><span class="jsdoc-comment">/** True if the control key was down during the event */
623         </span><span class="jsdoc-var">ctrlKey </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
624         </span><span class="jsdoc-comment">/** True if the alt key was down during the event */
625         </span><span class="jsdoc-var">altKey </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
626
627         </span><span class="jsdoc-comment">/** Key constant 
628         * @type Number */
629         </span><span class="jsdoc-var">BACKSPACE </span><span class="jsdoc-syntax">: 8,
630         </span><span class="jsdoc-comment">/** Key constant 
631         * @type Number */
632         </span><span class="jsdoc-var">TAB </span><span class="jsdoc-syntax">: 9,
633         </span><span class="jsdoc-comment">/** Key constant 
634         * @type Number */
635         </span><span class="jsdoc-var">RETURN </span><span class="jsdoc-syntax">: 13,
636         </span><span class="jsdoc-comment">/** Key constant 
637         * @type Number */
638         </span><span class="jsdoc-var">ENTER </span><span class="jsdoc-syntax">: 13,
639         </span><span class="jsdoc-comment">/** Key constant 
640         * @type Number */
641         </span><span class="jsdoc-var">SHIFT </span><span class="jsdoc-syntax">: 16,
642         </span><span class="jsdoc-comment">/** Key constant 
643         * @type Number */
644         </span><span class="jsdoc-var">CONTROL </span><span class="jsdoc-syntax">: 17,
645         </span><span class="jsdoc-comment">/** Key constant 
646         * @type Number */
647         </span><span class="jsdoc-var">ESC </span><span class="jsdoc-syntax">: 27,
648         </span><span class="jsdoc-comment">/** Key constant 
649         * @type Number */
650         </span><span class="jsdoc-var">SPACE </span><span class="jsdoc-syntax">: 32,
651         </span><span class="jsdoc-comment">/** Key constant 
652         * @type Number */
653         </span><span class="jsdoc-var">PAGEUP </span><span class="jsdoc-syntax">: 33,
654         </span><span class="jsdoc-comment">/** Key constant 
655         * @type Number */
656         </span><span class="jsdoc-var">PAGEDOWN </span><span class="jsdoc-syntax">: 34,
657         </span><span class="jsdoc-comment">/** Key constant 
658         * @type Number */
659         </span><span class="jsdoc-var">END </span><span class="jsdoc-syntax">: 35,
660         </span><span class="jsdoc-comment">/** Key constant 
661         * @type Number */
662         </span><span class="jsdoc-var">HOME </span><span class="jsdoc-syntax">: 36,
663         </span><span class="jsdoc-comment">/** Key constant 
664         * @type Number */
665         </span><span class="jsdoc-var">LEFT </span><span class="jsdoc-syntax">: 37,
666         </span><span class="jsdoc-comment">/** Key constant 
667         * @type Number */
668         </span><span class="jsdoc-var">UP </span><span class="jsdoc-syntax">: 38,
669         </span><span class="jsdoc-comment">/** Key constant 
670         * @type Number */
671         </span><span class="jsdoc-var">RIGHT </span><span class="jsdoc-syntax">: 39,
672         </span><span class="jsdoc-comment">/** Key constant 
673         * @type Number */
674         </span><span class="jsdoc-var">DOWN </span><span class="jsdoc-syntax">: 40,
675         </span><span class="jsdoc-comment">/** Key constant 
676         * @type Number */
677         </span><span class="jsdoc-var">DELETE </span><span class="jsdoc-syntax">: 46,
678         </span><span class="jsdoc-comment">/** Key constant 
679         * @type Number */
680         </span><span class="jsdoc-var">F5 </span><span class="jsdoc-syntax">: 116,
681
682            </span><span class="jsdoc-comment">/** @private */
683         </span><span class="jsdoc-var">setEvent </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
684             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">this </span><span class="jsdoc-syntax">|| (</span><span class="jsdoc-var">e </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">e.browserEvent</span><span class="jsdoc-syntax">)){ </span><span class="jsdoc-comment">// already wrapped
685                 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">;
686             }
687             </span><span class="jsdoc-var">this.browserEvent </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">;
688             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
689                 </span><span class="jsdoc-comment">// normalize buttons
690                 </span><span class="jsdoc-var">this.button </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">e.button </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">btnMap</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">e.button</span><span class="jsdoc-syntax">] : (</span><span class="jsdoc-var">e.which </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">e.which</span><span class="jsdoc-syntax">-1 : -1);
691                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.type </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'click' </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.button </span><span class="jsdoc-syntax">== -1){
692                     </span><span class="jsdoc-var">this.button </span><span class="jsdoc-syntax">= 0;
693                 }
694                 </span><span class="jsdoc-var">this.type </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">e.type</span><span class="jsdoc-syntax">;
695                 </span><span class="jsdoc-var">this.shiftKey </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">e.shiftKey</span><span class="jsdoc-syntax">;
696                 </span><span class="jsdoc-comment">// mac metaKey behaves like ctrlKey
697                 </span><span class="jsdoc-var">this.ctrlKey </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">e.ctrlKey </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">e.metaKey</span><span class="jsdoc-syntax">;
698                 </span><span class="jsdoc-var">this.altKey </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">e.altKey</span><span class="jsdoc-syntax">;
699                 </span><span class="jsdoc-comment">// in getKey these will be normalized for the mac
700                 </span><span class="jsdoc-var">this.keyCode </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">e.keyCode</span><span class="jsdoc-syntax">;
701                 </span><span class="jsdoc-comment">// keyup warnings on firefox.
702                 </span><span class="jsdoc-var">this.charCode </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">e.type </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'keyup' </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">e.type </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'keydown'</span><span class="jsdoc-syntax">) ? 0 : </span><span class="jsdoc-var">e.charCode</span><span class="jsdoc-syntax">;
703                 </span><span class="jsdoc-comment">// cache the target for the delayed and or buffered events
704                 </span><span class="jsdoc-var">this.target </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">E.getTarget</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
705                 </span><span class="jsdoc-comment">// same for XY
706                 </span><span class="jsdoc-var">this.xy </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">E.getXY</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
707             }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
708                 </span><span class="jsdoc-var">this.button </span><span class="jsdoc-syntax">= -1;
709                 </span><span class="jsdoc-var">this.shiftKey </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
710                 </span><span class="jsdoc-var">this.ctrlKey </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
711                 </span><span class="jsdoc-var">this.altKey </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
712                 </span><span class="jsdoc-var">this.keyCode </span><span class="jsdoc-syntax">= 0;
713                 </span><span class="jsdoc-var">this.charCode </span><span class="jsdoc-syntax">=0;
714                 </span><span class="jsdoc-var">this.target </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
715                 </span><span class="jsdoc-var">this.xy </span><span class="jsdoc-syntax">= [0, 0];
716             }
717             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
718         },
719
720         </span><span class="jsdoc-comment">/**
721          * Stop the event (preventDefault and stopPropagation)
722          */
723         </span><span class="jsdoc-var">stopEvent </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
724             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.browserEvent</span><span class="jsdoc-syntax">){
725                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.browserEvent.type </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'mousedown'</span><span class="jsdoc-syntax">){
726                     </span><span class="jsdoc-var">Roo.EventManager.stoppedMouseDownEvent.fire</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
727                 }
728                 </span><span class="jsdoc-var">E.stopEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.browserEvent</span><span class="jsdoc-syntax">);
729             }
730         },
731
732         </span><span class="jsdoc-comment">/**
733          * Prevents the browsers default handling of the event.
734          */
735         </span><span class="jsdoc-var">preventDefault </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
736             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.browserEvent</span><span class="jsdoc-syntax">){
737                 </span><span class="jsdoc-var">E.preventDefault</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.browserEvent</span><span class="jsdoc-syntax">);
738             }
739         },
740
741         </span><span class="jsdoc-comment">/** @private */
742         </span><span class="jsdoc-var">isNavKeyPress </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
743             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.keyCode</span><span class="jsdoc-syntax">;
744             </span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.isSafari </span><span class="jsdoc-syntax">? (</span><span class="jsdoc-var">safariKeys</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">k</span><span class="jsdoc-syntax">] || </span><span class="jsdoc-var">k</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-var">k</span><span class="jsdoc-syntax">;
745             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">&gt;= 33 &amp;&amp; </span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">&lt;= 40) || </span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">this.RETURN </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">this.TAB </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">this.ESC</span><span class="jsdoc-syntax">;
746         },
747
748         </span><span class="jsdoc-var">isSpecialKey </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
749             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.keyCode</span><span class="jsdoc-syntax">;
750             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.type </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'keypress' </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.ctrlKey</span><span class="jsdoc-syntax">) || </span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">== 9 || </span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">== 13  || </span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">== 40 || </span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">== 27 ||
751             (</span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">== 16) || (</span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">== 17) ||
752             (</span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">&gt;= 18 &amp;&amp; </span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">&lt;= 20) ||
753             (</span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">&gt;= 33 &amp;&amp; </span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">&lt;= 35) ||
754             (</span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">&gt;= 36 &amp;&amp; </span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">&lt;= 39) ||
755             (</span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">&gt;= 44 &amp;&amp; </span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">&lt;= 45);
756         },
757         </span><span class="jsdoc-comment">/**
758          * Cancels bubbling of the event.
759          */
760         </span><span class="jsdoc-var">stopPropagation </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
761             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.browserEvent</span><span class="jsdoc-syntax">){
762                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.type </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'mousedown'</span><span class="jsdoc-syntax">){
763                     </span><span class="jsdoc-var">Roo.EventManager.stoppedMouseDownEvent.fire</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
764                 }
765                 </span><span class="jsdoc-var">E.stopPropagation</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.browserEvent</span><span class="jsdoc-syntax">);
766             }
767         },
768
769         </span><span class="jsdoc-comment">/**
770          * Gets the key code for the event.
771          * @return {Number}
772          */
773         </span><span class="jsdoc-var">getCharCode </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
774             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.charCode </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.keyCode</span><span class="jsdoc-syntax">;
775         },
776
777         </span><span class="jsdoc-comment">/**
778          * Returns a normalized keyCode for the event.
779          * @return {Number} The key code
780          */
781         </span><span class="jsdoc-var">getKey </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
782             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.keyCode </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.charCode</span><span class="jsdoc-syntax">;
783             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Roo.isSafari </span><span class="jsdoc-syntax">? (</span><span class="jsdoc-var">safariKeys</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">k</span><span class="jsdoc-syntax">] || </span><span class="jsdoc-var">k</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-var">k</span><span class="jsdoc-syntax">;
784         },
785
786         </span><span class="jsdoc-comment">/**
787          * Gets the x coordinate of the event.
788          * @return {Number}
789          */
790         </span><span class="jsdoc-var">getPageX </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
791             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.xy</span><span class="jsdoc-syntax">[0];
792         },
793
794         </span><span class="jsdoc-comment">/**
795          * Gets the y coordinate of the event.
796          * @return {Number}
797          */
798         </span><span class="jsdoc-var">getPageY </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
799             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.xy</span><span class="jsdoc-syntax">[1];
800         },
801
802         </span><span class="jsdoc-comment">/**
803          * Gets the time of the event.
804          * @return {Number}
805          */
806         </span><span class="jsdoc-var">getTime </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
807             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.browserEvent</span><span class="jsdoc-syntax">){
808                 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">E.getTime</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.browserEvent</span><span class="jsdoc-syntax">);
809             }
810             </span><span class="jsdoc-keyword">return null</span><span class="jsdoc-syntax">;
811         },
812
813         </span><span class="jsdoc-comment">/**
814          * Gets the page coordinates of the event.
815          * @return {Array} The xy values like [x, y]
816          */
817         </span><span class="jsdoc-var">getXY </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
818             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.xy</span><span class="jsdoc-syntax">;
819         },
820
821         </span><span class="jsdoc-comment">/**
822          * Gets the target for the event.
823          * @param {String} selector (optional) A simple selector to filter the target or look for an ancestor of the target
824          * @param {Number/String/HTMLElement/Element} maxDepth (optional) The max depth to
825                 search as a number or element (defaults to 10 || document.body)
826          * @param {Boolean} returnEl (optional) True to return a Roo.Element object instead of DOM node
827          * @return {HTMLelement}
828          */
829         </span><span class="jsdoc-var">getTarget </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">selector</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">maxDepth</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">returnEl</span><span class="jsdoc-syntax">){
830             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">selector </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">Roo.fly</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.target</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.findParent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">selector</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">maxDepth</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">returnEl</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-var">this.target</span><span class="jsdoc-syntax">;
831         },
832         </span><span class="jsdoc-comment">/**
833          * Gets the related target.
834          * @return {HTMLElement}
835          */
836         </span><span class="jsdoc-var">getRelatedTarget </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
837             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.browserEvent</span><span class="jsdoc-syntax">){
838                 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">E.getRelatedTarget</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.browserEvent</span><span class="jsdoc-syntax">);
839             }
840             </span><span class="jsdoc-keyword">return null</span><span class="jsdoc-syntax">;
841         },
842
843         </span><span class="jsdoc-comment">/**
844          * Normalizes mouse wheel delta across browsers
845          * @return {Number} The delta
846          */
847         </span><span class="jsdoc-var">getWheelDelta </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
848             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">e </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.browserEvent</span><span class="jsdoc-syntax">;
849             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">delta </span><span class="jsdoc-syntax">= 0;
850             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.wheelDelta</span><span class="jsdoc-syntax">){ </span><span class="jsdoc-comment">/* IE/Opera. */
851                 </span><span class="jsdoc-var">delta </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">e.wheelDelta</span><span class="jsdoc-syntax">/120;
852             }</span><span class="jsdoc-keyword">else if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.detail</span><span class="jsdoc-syntax">){ </span><span class="jsdoc-comment">/* Mozilla case. */
853                 </span><span class="jsdoc-var">delta </span><span class="jsdoc-syntax">= -</span><span class="jsdoc-var">e.detail</span><span class="jsdoc-syntax">/3;
854             }
855             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">delta</span><span class="jsdoc-syntax">;
856         },
857
858         </span><span class="jsdoc-comment">/**
859          * Returns true if the control, meta, shift or alt key was pressed during this event.
860          * @return {Boolean}
861          */
862         </span><span class="jsdoc-var">hasModifier </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
863             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">!!((</span><span class="jsdoc-var">this.ctrlKey </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.altKey</span><span class="jsdoc-syntax">) || </span><span class="jsdoc-var">this.shiftKey</span><span class="jsdoc-syntax">);
864         },
865
866         </span><span class="jsdoc-comment">/**
867          * Returns true if the target of this event equals el or is a child of el
868          * @param {String/HTMLElement/Element} el
869          * @param {Boolean} related (optional) true to test if the related target is within el instead of the target
870          * @return {Boolean}
871          */
872         </span><span class="jsdoc-var">within </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">related</span><span class="jsdoc-syntax">){
873             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">related </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">&quot;getRelatedTarget&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;getTarget&quot;</span><span class="jsdoc-syntax">]();
874             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">Roo.fly</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.contains</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">);
875         },
876
877         </span><span class="jsdoc-var">getPoint </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
878             </span><span class="jsdoc-keyword">return new </span><span class="jsdoc-var">Roo.lib.Point</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.xy</span><span class="jsdoc-syntax">[0], </span><span class="jsdoc-var">this.xy</span><span class="jsdoc-syntax">[1]);
879         }
880     };
881
882     </span><span class="jsdoc-keyword">return new </span><span class="jsdoc-var">Roo.EventObjectImpl</span><span class="jsdoc-syntax">();
883 }();
884
885     </span></code></body></html>