2 * Ext JS Library 2.2.1
\r
3 * Copyright(c) 2006-2009, Ext JS, LLC.
\r
4 * licensing@extjs.com
\r
6 * http://extjs.com/license
\r
9 Ext.ux.PanelResizer = Ext.extend(Ext.util.Observable, {
\r
13 constructor: function(config){
\r
14 Ext.apply(this, config);
\r
16 Ext.ux.PanelResizer.superclass.constructor.call(this, config);
\r
22 if(this.panel.elements.indexOf('footer')==-1){
\r
23 p.elements += ',footer';
\r
25 p.on('render', this.onRender, this);
\r
28 onRender : function(p){
\r
29 this.handle = p.footer.createChild({cls:'x-panel-resize'});
\r
31 this.tracker = new Ext.dd.DragTracker({
\r
32 onStart: this.onDragStart.createDelegate(this),
\r
33 onDrag: this.onDrag.createDelegate(this),
\r
34 onEnd: this.onDragEnd.createDelegate(this),
\r
38 this.tracker.initEl(this.handle);
\r
39 p.on('beforedestroy', this.tracker.destroy, this.tracker);
\r
43 onDragStart: function(e){
\r
44 this.dragging = true;
\r
45 this.startHeight = this.panel.el.getHeight();
\r
46 this.fireEvent('dragstart', this, e);
\r
50 onDrag: function(e){
\r
51 this.panel.setHeight((this.startHeight-this.tracker.getOffset()[1]).constrain(this.minHeight, this.maxHeight));
\r
52 this.fireEvent('drag', this, e);
\r
56 onDragEnd: function(e){
\r
57 this.dragging = false;
\r
58 this.fireEvent('dragend', this, e);
\r