Upgrade to ExtJS 3.0.0 - Released 07/06/2009
[extjs.git] / docs / source / PanelResizer.html
1 <html>\r
2 <head>\r
3   <title>The source code</title>\r
4     <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
5     <script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
6 </head>\r
7 <body  onload="prettyPrint();">\r
8     <pre class="prettyprint lang-js">Ext.ux.PanelResizer = Ext.extend(Ext.util.Observable, {\r
9     minHeight: 0,\r
10     maxHeight:10000000,\r
11 \r
12     constructor: function(config){\r
13         Ext.apply(this, config);\r
14         this.events = {};\r
15         Ext.ux.PanelResizer.superclass.constructor.call(this, config);\r
16     },\r
17 \r
18     init : function(p){\r
19         this.panel = p;\r
20 \r
21         if(this.panel.elements.indexOf('footer')==-1){\r
22             p.elements += ',footer';\r
23         }\r
24         p.on('render', this.onRender, this);\r
25     },\r
26 \r
27     onRender : function(p){\r
28         this.handle = p.footer.createChild({cls:'x-panel-resize'});\r
29 \r
30         this.tracker = new Ext.dd.DragTracker({\r
31             onStart: this.onDragStart.createDelegate(this),\r
32             onDrag: this.onDrag.createDelegate(this),\r
33             onEnd: this.onDragEnd.createDelegate(this),\r
34             tolerance: 3,\r
35             autoStart: 300\r
36         });\r
37         this.tracker.initEl(this.handle);\r
38         p.on('beforedestroy', this.tracker.destroy, this.tracker);\r
39     },\r
40 \r
41         // private\r
42     onDragStart: function(e){\r
43         this.dragging = true;\r
44         this.startHeight = this.panel.el.getHeight();\r
45         this.fireEvent('dragstart', this, e);\r
46     },\r
47 \r
48         // private\r
49     onDrag: function(e){\r
50         this.panel.setHeight((this.startHeight-this.tracker.getOffset()[1]).constrain(this.minHeight, this.maxHeight));\r
51         this.fireEvent('drag', this, e);\r
52     },\r
53 \r
54         // private\r
55     onDragEnd: function(e){\r
56         this.dragging = false;\r
57         this.fireEvent('dragend', this, e);\r
58     }\r
59 });\r
60 Ext.preg('panelresizer', Ext.ux.PanelResizer);</pre>    \r
61 </body>\r
62 </html>