// private - DD implementation for Panels Ext.define('Ext.panel.DD', { extend: 'Ext.dd.DragSource', requires: ['Ext.panel.Proxy'], constructor : function(panel, cfg){ this.panel = panel; this.dragData = {panel: panel}; this.proxy = Ext.create('Ext.panel.Proxy', panel, cfg); this.callParent([panel.el, cfg]); Ext.defer(function() { var header = panel.header, el = panel.body; if(header){ this.setHandleElId(header.id); el = header.el; } el.setStyle('cursor', 'move'); this.scroll = false; }, 200, this); }, showFrame: Ext.emptyFn, startDrag: Ext.emptyFn, b4StartDrag: function(x, y) { this.proxy.show(); }, b4MouseDown: function(e) { var x = e.getPageX(), y = e.getPageY(); this.autoOffset(x, y); }, onInitDrag : function(x, y){ this.onStartDrag(x, y); return true; }, createFrame : Ext.emptyFn, getDragEl : function(e){ return this.proxy.ghost.el.dom; }, endDrag : function(e){ this.proxy.hide(); this.panel.saveState(); }, autoOffset : function(x, y) { x -= this.startPageX; y -= this.startPageY; this.setDelta(x, y); } });