tvheadend/vendor/ext-3.4.1/docs/source/PanelDD.html
Adam Sutton bafcfff42d webui: restructure webui/extjs source files
I want to keep the 3rd-party packages away from the main source
where possible.
2013-06-03 17:11:01 +01:00

171 lines
5.5 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>The source code</title>
<link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="../resources/prettify/prettify.js"></script>
<style type="text/css">
.highlight { display: block; background-color: #ddd; }
</style>
<script type="text/javascript">
function highlight() {
document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
}
</script>
</head>
<body onload="prettyPrint(); highlight();">
<pre class="prettyprint lang-js"><span id='Ext-dd-PanelProxy-method-constructor'><span id='Ext-dd-PanelProxy'>/**
</span></span> * @class Ext.dd.PanelProxy
* A custom drag proxy implementation specific to {@link Ext.Panel}s. This class is primarily used internally
* for the Panel's drag drop implementation, and should never need to be created directly.
* @constructor
* @param panel The {@link Ext.Panel} to proxy for
* @param config Configuration options
*/
Ext.dd.PanelProxy = Ext.extend(Object, {
constructor : function(panel, config){
this.panel = panel;
this.id = this.panel.id +'-ddproxy';
Ext.apply(this, config);
},
<span id='Ext-dd-PanelProxy-cfg-insertProxy'> /**
</span> * @cfg {Boolean} insertProxy True to insert a placeholder proxy element while dragging the panel,
* false to drag with no proxy (defaults to true).
*/
insertProxy : true,
<span id='Ext-dd-PanelProxy-method-setStatus'> // private overrides
</span> setStatus : Ext.emptyFn,
<span id='Ext-dd-PanelProxy-method-reset'> reset : Ext.emptyFn,
</span><span id='Ext-dd-PanelProxy-method-update'> update : Ext.emptyFn,
</span><span id='Ext-dd-PanelProxy-method-stop'> stop : Ext.emptyFn,
</span><span id='Ext-dd-PanelProxy-method-sync'> sync: Ext.emptyFn,
</span>
<span id='Ext-dd-PanelProxy-method-getEl'> /**
</span> * Gets the proxy's element
* @return {Element} The proxy's element
*/
getEl : function(){
return this.ghost;
},
<span id='Ext-dd-PanelProxy-method-getGhost'> /**
</span> * Gets the proxy's ghost element
* @return {Element} The proxy's ghost element
*/
getGhost : function(){
return this.ghost;
},
<span id='Ext-dd-PanelProxy-method-getProxy'> /**
</span> * Gets the proxy's element
* @return {Element} The proxy's element
*/
getProxy : function(){
return this.proxy;
},
<span id='Ext-dd-PanelProxy-method-hide'> /**
</span> * Hides the proxy
*/
hide : function(){
if(this.ghost){
if(this.proxy){
this.proxy.remove();
delete this.proxy;
}
this.panel.el.dom.style.display = '';
this.ghost.remove();
delete this.ghost;
}
},
<span id='Ext-dd-PanelProxy-method-show'> /**
</span> * Shows the proxy
*/
show : function(){
if(!this.ghost){
this.ghost = this.panel.createGhost(this.panel.initialConfig.cls, undefined, Ext.getBody());
this.ghost.setXY(this.panel.el.getXY());
if(this.insertProxy){
this.proxy = this.panel.el.insertSibling({cls:'x-panel-dd-spacer'});
this.proxy.setSize(this.panel.getSize());
}
this.panel.el.dom.style.display = 'none';
}
},
<span id='Ext-dd-PanelProxy-method-repair'> // private
</span> repair : function(xy, callback, scope){
this.hide();
if(typeof callback == &quot;function&quot;){
callback.call(scope || this);
}
},
<span id='Ext-dd-PanelProxy-method-moveProxy'> /**
</span> * Moves the proxy to a different position in the DOM. This is typically called while dragging the Panel
* to keep the proxy sync'd to the Panel's location.
* @param {HTMLElement} parentNode The proxy's parent DOM node
* @param {HTMLElement} before (optional) The sibling node before which the proxy should be inserted (defaults
* to the parent's last child if not specified)
*/
moveProxy : function(parentNode, before){
if(this.proxy){
parentNode.insertBefore(this.proxy.dom, before);
}
}
});
// private - DD implementation for Panels
Ext.Panel.DD = Ext.extend(Ext.dd.DragSource, {
constructor : function(panel, cfg){
this.panel = panel;
this.dragData = {panel: panel};
this.proxy = new Ext.dd.PanelProxy(panel, cfg);
Ext.Panel.DD.superclass.constructor.call(this, panel.el, cfg);
var h = panel.header,
el = panel.body;
if(h){
this.setHandleElId(h.id);
el = panel.header;
}
el.setStyle('cursor', 'move');
this.scroll = false;
},
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.dom;
},
endDrag : function(e){
this.proxy.hide();
this.panel.saveState();
},
autoOffset : function(x, y) {
x -= this.startPageX;
y -= this.startPageY;
this.setDelta(x, y);
}
});</pre>
</body>
</html>