// 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);
}
});