Upgrade to ExtJS 4.0.0 - Released 04/26/2011
[extjs.git] / src / panel / DD.js
1 // private - DD implementation for Panels
2 Ext.define('Ext.panel.DD', {
3     extend: 'Ext.dd.DragSource',
4     requires: ['Ext.panel.Proxy'],
5
6     constructor : function(panel, cfg){
7         this.panel = panel;
8         this.dragData = {panel: panel};
9         this.proxy = Ext.create('Ext.panel.Proxy', panel, cfg);
10
11         this.callParent([panel.el, cfg]);
12
13         Ext.defer(function() {
14             var header = panel.header,
15                 el = panel.body;
16
17             if(header){
18                 this.setHandleElId(header.id);
19                 el = header.el;
20             }
21             el.setStyle('cursor', 'move');
22             this.scroll = false;
23         }, 200, this);
24     },
25
26     showFrame: Ext.emptyFn,
27     startDrag: Ext.emptyFn,
28     b4StartDrag: function(x, y) {
29         this.proxy.show();
30     },
31     b4MouseDown: function(e) {
32         var x = e.getPageX(),
33             y = e.getPageY();
34         this.autoOffset(x, y);
35     },
36     onInitDrag : function(x, y){
37         this.onStartDrag(x, y);
38         return true;
39     },
40     createFrame : Ext.emptyFn,
41     getDragEl : function(e){
42         return this.proxy.ghost.el.dom;
43     },
44     endDrag : function(e){
45         this.proxy.hide();
46         this.panel.saveState();
47     },
48
49     autoOffset : function(x, y) {
50         x -= this.startPageX;
51         y -= this.startPageY;
52         this.setDelta(x, y);
53     }
54 });