Upgrade to ExtJS 4.0.7 - Released 10/19/2011
[extjs.git] / docs / source / DD2.html
1 <!DOCTYPE html>
2 <html>
3 <head>
4   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5   <title>The source code</title>
6   <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
7   <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
8   <style type="text/css">
9     .highlight { display: block; background-color: #ddd; }
10   </style>
11   <script type="text/javascript">
12     function highlight() {
13       document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
14     }
15   </script>
16 </head>
17 <body onload="prettyPrint(); highlight();">
18   <pre class="prettyprint lang-js">// private - DD implementation for Panels
19 Ext.define('Ext.panel.DD', {
20     extend: 'Ext.dd.DragSource',
21     requires: ['Ext.panel.Proxy'],
22
23     constructor : function(panel, cfg){
24         this.panel = panel;
25         this.dragData = {panel: panel};
26         this.proxy = Ext.create('Ext.panel.Proxy', panel, cfg);
27
28         this.callParent([panel.el, cfg]);
29
30         Ext.defer(function() {
31             var header = panel.header,
32                 el = panel.body;
33
34             if(header){
35                 this.setHandleElId(header.id);
36                 el = header.el;
37             }
38             el.setStyle('cursor', 'move');
39             this.scroll = false;
40         }, 200, this);
41     },
42
43     showFrame: Ext.emptyFn,
44     startDrag: Ext.emptyFn,
45     b4StartDrag: function(x, y) {
46         this.proxy.show();
47     },
48     b4MouseDown: function(e) {
49         var x = e.getPageX(),
50             y = e.getPageY();
51         this.autoOffset(x, y);
52     },
53     onInitDrag : function(x, y){
54         this.onStartDrag(x, y);
55         return true;
56     },
57     createFrame : Ext.emptyFn,
58     getDragEl : function(e){
59         return this.proxy.ghost.el.dom;
60     },
61     endDrag : function(e){
62         this.proxy.hide();
63         this.panel.saveState();
64     },
65
66     autoOffset : function(x, y) {
67         x -= this.startPageX;
68         y -= this.startPageY;
69         this.setDelta(x, y);
70     }
71 });
72 </pre>
73 </body>
74 </html>