a:47:{s:9:"#provides";s:25:"dojox.layout.ResizeHandle";s:9:"#resource";s:22:"layout/ResizeHandle.js";s:9:"#requires";a:3:{i:0;a:3:{i:0;s:6:"common";i:1;s:13:"dijit._Widget";i:2;s:5:"dijit";}i:1;a:3:{i:0;s:6:"common";i:1;s:16:"dijit._Templated";i:2;s:5:"dijit";}i:2;a:3:{i:0;s:6:"common";i:1;s:7:"dojo.fx";i:2;s:4:"dojo";}}s:25:"dojox.layout.ResizeHandle";a:6:{s:4:"type";s:8:"Function";s:6:"chains";a:2:{s:9:"prototype";a:1:{i:0;s:13:"dijit._Widget";}s:4:"call";a:2:{i:0;s:13:"dijit._Widget";i:1;s:16:"dijit._Templated";}}s:6:"mixins";a:1:{s:9:"prototype";a:1:{i:0;s:26:"dijit._Templated.prototype";}}s:7:"summary";s:50:"A dragable handle used to resize an attached node.";s:11:"description";s:137:"The handle on the bottom-right corner of FloatingPane or other widgets that allows the widget to be resized. Typically not used directly.";s:9:"classlike";b:1;}s:34:"dojox.layout.ResizeHandle.targetId";a:3:{s:9:"prototype";s:25:"dojox.layout.ResizeHandle";s:4:"type";s:6:"String";s:7:"summary";s:44:"id of the Widget OR DomNode that I will size";}s:41:"dojox.layout.ResizeHandle.targetContainer";a:3:{s:9:"prototype";s:25:"dojox.layout.ResizeHandle";s:4:"type";s:7:"DomNode";s:7:"summary";s:77:"over-ride targetId and attch this handle directly to a reference of a DomNode";}s:36:"dojox.layout.ResizeHandle.resizeAxis";a:3:{s:9:"prototype";s:25:"dojox.layout.ResizeHandle";s:4:"type";s:6:"String";s:7:"summary";s:65:"one of: x|y|xy limit resizing to a single axis, default to xy ...";}s:38:"dojox.layout.ResizeHandle.activeResize";a:3:{s:9:"prototype";s:25:"dojox.layout.ResizeHandle";s:4:"type";s:7:"Boolean";s:7:"summary";s:128:"if true, node will size realtime with mouse movement, if false, node will create virtual node, and only resize target on mouseUp";}s:43:"dojox.layout.ResizeHandle.activeResizeClass";a:3:{s:9:"prototype";s:25:"dojox.layout.ResizeHandle";s:4:"type";s:6:"String";s:7:"summary";s:41:"css class applied to virtual resize node.";}s:39:"dojox.layout.ResizeHandle.animateSizing";a:4:{s:9:"prototype";s:25:"dojox.layout.ResizeHandle";s:8:"instance";s:25:"dojox.layout.ResizeHandle";s:4:"type";s:7:"Boolean";s:7:"summary";s:84:"only applicable if activeResize = false. onMouseup, animate the node to the new size";}s:39:"dojox.layout.ResizeHandle.animateMethod";a:3:{s:9:"prototype";s:25:"dojox.layout.ResizeHandle";s:4:"type";s:6:"String";s:7:"summary";s:164:"one of "chain" or "combine" ... visual effect only. combine will "scale" node to size, "chain" will alter width, then height";}s:41:"dojox.layout.ResizeHandle.animateDuration";a:3:{s:9:"prototype";s:25:"dojox.layout.ResizeHandle";s:4:"type";s:7:"Integer";s:7:"summary";s:117:"time in MS to run sizing animation. if animateMethod="chain", total animation playtime is 2*animateDuration";}s:35:"dojox.layout.ResizeHandle.minHeight";a:3:{s:9:"prototype";s:25:"dojox.layout.ResizeHandle";s:4:"type";s:7:"Integer";s:7:"summary";s:41:"smallest height in px resized node can be";}s:34:"dojox.layout.ResizeHandle.minWidth";a:3:{s:9:"prototype";s:25:"dojox.layout.ResizeHandle";s:4:"type";s:7:"Integer";s:7:"summary";s:39:"smallest width in px resize node can be";}s:38:"dojox.layout.ResizeHandle.constrainMax";a:3:{s:9:"prototype";s:25:"dojox.layout.ResizeHandle";s:4:"type";s:7:"Boolean";s:7:"summary";s:72:"Toggle if this widget cares about the maxHeight and maxWidth parameters.";}s:35:"dojox.layout.ResizeHandle.maxHeight";a:3:{s:9:"prototype";s:25:"dojox.layout.ResizeHandle";s:4:"type";s:7:"Integer";s:7:"summary";s:53:"Largest height size in px the resize node can become.";}s:34:"dojox.layout.ResizeHandle.maxWidth";a:3:{s:9:"prototype";s:25:"dojox.layout.ResizeHandle";s:4:"type";s:7:"Integer";s:7:"summary";s:51:"Largest width size in px the reize node can become.";}s:37:"dojox.layout.ResizeHandle.fixedAspect";a:3:{s:9:"prototype";s:25:"dojox.layout.ResizeHandle";s:4:"type";s:7:"Boolean";s:7:"summary";s:79:"Toggle to enable this widget to maintain the aspect ratio of the attached node.";}s:45:"dojox.layout.ResizeHandle.intermediateChanges";a:3:{s:9:"prototype";s:25:"dojox.layout.ResizeHandle";s:4:"type";s:7:"Boolean";s:7:"summary";s:236:"Toggle to enable/disable this widget from firing onResize events at every step of a resize. If `activeResize` is true, and this is false, onResize only fires _after_ the drop operation. Animated resizing is not affected by this setting.";}s:40:"dojox.layout.ResizeHandle.templateString";a:2:{s:9:"prototype";s:25:"dojox.layout.ResizeHandle";s:7:"summary";s:0:"";}s:36:"dojox.layout.ResizeHandle.postCreate";a:4:{s:9:"prototype";s:25:"dojox.layout.ResizeHandle";s:4:"type";s:8:"Function";s:6:"source";s:1481:" this.connect(this.resizeHandle, "onmousedown", "_beginSizing"); if(!this.activeResize){ // there shall be only a single resize rubberbox that at the top // level so that we can overlay it on anything whenever the user // resizes something. Since there is only one mouse pointer he // can't at once resize multiple things interactively. this._resizeHelper = dijit.byId('dojoxGlobalResizeHelper'); if(!this._resizeHelper){ this._resizeHelper = new dojox.layout._ResizeHelper({ id: 'dojoxGlobalResizeHelper' }).placeAt(dojo.body()); dojo.addClass(this._resizeHelper.domNode, this.activeResizeClass); } }else{ this.animateSizing = false; } if(!this.minSize){ this.minSize = { w: this.minWidth, h: this.minHeight }; } if(this.constrainMax){ this.maxSize = { w: this.maxWidth, h: this.maxHeight } } // should we modify the css for the cursor hover to n-resize nw-resize and w-resize? this._resizeX = this._resizeY = false; var addClass = dojo.partial(dojo.addClass, this.resizeHandle); switch(this.resizeAxis.toLowerCase()){ case "xy" : this._resizeX = this._resizeY = true; // FIXME: need logic to determine NW or NE class to see // based on which [todo] corner is clicked addClass("dojoxResizeNW"); break; case "x" : this._resizeX = true; addClass("dojoxResizeW"); break; case "y" : this._resizeY = true; addClass("dojoxResizeN"); break; }";s:7:"summary";s:42:"setup our one major listener upon creation";}s:38:"dojox.layout.ResizeHandle._beginSizing";a:6:{s:9:"prototype";s:25:"dojox.layout.ResizeHandle";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:1:"e";a:1:{s:4:"type";s:5:"Event";}}s:6:"source";s:1239:" if(this._isSizing){ return false; } this.targetWidget = dijit.byId(this.targetId); this.targetDomNode = this.targetWidget ? this.targetWidget.domNode : dojo.byId(this.targetId); if(this.targetContainer){ this.targetDomNode = this.targetContainer; } if(!this.targetDomNode){ return false; } if(!this.activeResize){ var c = dojo.coords(this.targetDomNode, true); this._resizeHelper.resize({l: c.x, t: c.y, w: c.w, h: c.h}); this._resizeHelper.show(); } this._isSizing = true; this.startPoint = { x:e.clientX, y:e.clientY}; // FIXME: this is funky: marginBox adds height, contentBox ignores padding (expected, but foo!) var mb = this.targetWidget ? dojo.marginBox(this.targetDomNode) : dojo.contentBox(this.targetDomNode); this.startSize = { w:mb.w, h:mb.h }; if(this.fixedAspect){ var max, val; if(mb.w > mb.h){ max = "w"; val = mb.w / mb.h }else{ max = "h"; val = mb.h / mb.w } this._aspect = { prop: max }; this._aspect[max] = val; } this._pconnects = []; this._pconnects.push(dojo.connect(dojo.doc,"onmousemove",this,"_updateSizing")); this._pconnects.push(dojo.connect(dojo.doc,"onmouseup", this, "_endSizing")); dojo.stopEvent(e); ";s:7:"summary";s:51:"setup movement listeners and calculate initial size";s:7:"private";b:1;}s:39:"dojox.layout.ResizeHandle._updateSizing";a:6:{s:9:"prototype";s:25:"dojox.layout.ResizeHandle";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:1:"e";a:1:{s:4:"type";s:5:"Event";}}s:6:"source";s:188:" if(this.activeResize){ this._changeSizing(e); }else{ var tmp = this._getNewCoords(e); if(tmp === false){ return; } this._resizeHelper.resize(tmp); } e.preventDefault();";s:7:"summary";s:103:"called when moving the ResizeHandle ... determines new size based on settings/position and sets styles.";s:7:"private";b:1;}s:39:"dojox.layout.ResizeHandle._getNewCoords";a:7:{s:9:"prototype";s:25:"dojox.layout.ResizeHandle";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:1:"e";a:1:{s:4:"type";s:5:"Event";}}s:6:"source";s:6662:"dojo.provide("dojox.layout.ResizeHandle"); dojo.experimental("dojox.layout.ResizeHandle"); dojo.require("dijit._Widget"); dojo.require("dijit._Templated"); dojo.require("dojo.fx"); dojo.declare("dojox.layout.ResizeHandle", [dijit._Widget, dijit._Templated], { // summary: A dragable handle used to resize an attached node. // // description: // The handle on the bottom-right corner of FloatingPane or other widgets that allows // the widget to be resized. // Typically not used directly. // // targetId: String // id of the Widget OR DomNode that I will size targetId: "", // targetContainer: DomNode // over-ride targetId and attch this handle directly to a reference of a DomNode targetContainer: null, // resizeAxis: String // one of: x|y|xy limit resizing to a single axis, default to xy ... resizeAxis: "xy", // activeResize: Boolean // if true, node will size realtime with mouse movement, // if false, node will create virtual node, and only resize target on mouseUp activeResize: false, // activeResizeClass: String // css class applied to virtual resize node. activeResizeClass: "dojoxResizeHandleClone", // animateSizing: Boolean // only applicable if activeResize = false. onMouseup, animate the node to the // new size animateSizing: true, // animateMethod: String // one of "chain" or "combine" ... visual effect only. combine will "scale" // node to size, "chain" will alter width, then height animateMethod: "chain", // animateDuration: Integer // time in MS to run sizing animation. if animateMethod="chain", total animation // playtime is 2*animateDuration animateDuration: 225, // minHeight: Integer // smallest height in px resized node can be minHeight: 100, // minWidth: Integer // smallest width in px resize node can be minWidth: 100, // constrainMax: Boolean // Toggle if this widget cares about the maxHeight and maxWidth // parameters. constrainMax: false, // maxHeight: Integer // Largest height size in px the resize node can become. maxHeight:0, // maxWidth: Integer // Largest width size in px the reize node can become. maxWidth:0, // fixedAspect: Boolean // Toggle to enable this widget to maintain the aspect // ratio of the attached node. fixedAspect: false, // intermediateChanges: Boolean // Toggle to enable/disable this widget from firing onResize // events at every step of a resize. If `activeResize` is true, // and this is false, onResize only fires _after_ the drop // operation. Animated resizing is not affected by this setting. intermediateChanges: false, templateString: '
', postCreate: function(){ // summary: setup our one major listener upon creation this.connect(this.resizeHandle, "onmousedown", "_beginSizing"); if(!this.activeResize){ // there shall be only a single resize rubberbox that at the top // level so that we can overlay it on anything whenever the user // resizes something. Since there is only one mouse pointer he // can't at once resize multiple things interactively. this._resizeHelper = dijit.byId('dojoxGlobalResizeHelper'); if(!this._resizeHelper){ this._resizeHelper = new dojox.layout._ResizeHelper({ id: 'dojoxGlobalResizeHelper' }).placeAt(dojo.body()); dojo.addClass(this._resizeHelper.domNode, this.activeResizeClass); } }else{ this.animateSizing = false; } if(!this.minSize){ this.minSize = { w: this.minWidth, h: this.minHeight }; } if(this.constrainMax){ this.maxSize = { w: this.maxWidth, h: this.maxHeight } } // should we modify the css for the cursor hover to n-resize nw-resize and w-resize? this._resizeX = this._resizeY = false; var addClass = dojo.partial(dojo.addClass, this.resizeHandle); switch(this.resizeAxis.toLowerCase()){ case "xy" : this._resizeX = this._resizeY = true; // FIXME: need logic to determine NW or NE class to see // based on which [todo] corner is clicked addClass("dojoxResizeNW"); break; case "x" : this._resizeX = true; addClass("dojoxResizeW"); break; case "y" : this._resizeY = true; addClass("dojoxResizeN"); break; } }, _beginSizing: function(/*Event*/ e){ // summary: setup movement listeners and calculate initial size if(this._isSizing){ return false; } this.targetWidget = dijit.byId(this.targetId); this.targetDomNode = this.targetWidget ? this.targetWidget.domNode : dojo.byId(this.targetId); if(this.targetContainer){ this.targetDomNode = this.targetContainer; } if(!this.targetDomNode){ return false; } if(!this.activeResize){ var c = dojo.coords(this.targetDomNode, true); this._resizeHelper.resize({l: c.x, t: c.y, w: c.w, h: c.h}); this._resizeHelper.show(); } this._isSizing = true; this.startPoint = { x:e.clientX, y:e.clientY}; // FIXME: this is funky: marginBox adds height, contentBox ignores padding (expected, but foo!) var mb = this.targetWidget ? dojo.marginBox(this.targetDomNode) : dojo.contentBox(this.targetDomNode); this.startSize = { w:mb.w, h:mb.h }; if(this.fixedAspect){ var max, val; if(mb.w > mb.h){ max = "w"; val = mb.w / mb.h }else{ max = "h"; val = mb.h / mb.w } this._aspect = { prop: max }; this._aspect[max] = val; } this._pconnects = []; this._pconnects.push(dojo.connect(dojo.doc,"onmousemove",this,"_updateSizing")); this._pconnects.push(dojo.connect(dojo.doc,"onmouseup", this, "_endSizing")); dojo.stopEvent(e); }, _updateSizing: function(/*Event*/ e){ // summary: called when moving the ResizeHandle ... determines // new size based on settings/position and sets styles. if(this.activeResize){ this._changeSizing(e); }else{ var tmp = this._getNewCoords(e); if(tmp === false){ return; } this._resizeHelper.resize(tmp); } e.preventDefault(); }, _getNewCoords: function(/* Event */ e){ // On IE, if you move the mouse above/to the left of the object being resized, // sometimes clientX/Y aren't set, apparently. Just ignore the event. try{ if(!e.clientX || !e.clientY){ return false; } }catch(e){ // sometimes you get an exception accessing above fields... return false; } this._activeResizeLastEvent = e; var dx = this.startPoint.x - e.clientX, dy = this.startPoint.y - e.clientY, newW = this.startSize.w - (this._resizeX ? dx : 0), newH = this.startSize.h - (this._resizeY ? dy : 0) ; return this._checkConstraints(newW, newH); // Object";s:7:"returns";s:6:"Object";s:7:"private";b:1;s:7:"summary";s:0:"";}s:43:"dojox.layout.ResizeHandle._checkConstraints";a:7:{s:9:"prototype";s:25:"dojox.layout.ResizeHandle";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:4:"newW";a:1:{s:4:"type";s:0:"";}s:4:"newH";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:534:" if(this.minSize){ var tm = this.minSize; if(newW < tm.w){ newW = tm.w; } if(newH < tm.h){ newH = tm.h; } } // maximum size check: if(this.constrainMax && this.maxSize){ var ms = this.maxSize; if(newW > ms.w){ newW = ms.w; } if(newH > ms.h){ newH = ms.h; } } if(this.fixedAspect){ var ta = this._aspect[this._aspect.prop]; if(newW < newH){ newH = newW * ta; }else if(newH < newW){ newW = newH * ta; } } return { w: newW, h: newH }; // Object";s:7:"summary";s:80:"filter through the various possible constaint possibilities. minimum size check";s:7:"returns";s:6:"Object";s:7:"private";b:1;}s:39:"dojox.layout.ResizeHandle._changeSizing";a:6:{s:9:"prototype";s:25:"dojox.layout.ResizeHandle";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:1:"e";a:1:{s:4:"type";s:5:"Event";}}s:6:"source";s:856:" var tmp = this._getNewCoords(e); if(tmp === false){ return; } if(this.targetWidget && dojo.isFunction(this.targetWidget.resize)){ this.targetWidget.resize(tmp); }else{ if(this.animateSizing){ var anim = dojo.fx[this.animateMethod]([ dojo.animateProperty({ node: this.targetDomNode, properties: { width: { start: this.startSize.w, end: tmp.w, unit:'px' } }, duration: this.animateDuration }), dojo.animateProperty({ node: this.targetDomNode, properties: { height: { start: this.startSize.h, end: tmp.h, unit:'px' } }, duration: this.animateDuration }) ]); anim.play(); }else{ dojo.style(this.targetDomNode,{ width: tmp.w + "px", height: tmp.h + "px" }); } } if(this.intermediateChanges){ this.onResize(e); } ";s:7:"summary";s:69:"apply sizing information based on information in (e) to attached node";s:7:"private";b:1;}s:36:"dojox.layout.ResizeHandle._endSizing";a:6:{s:9:"prototype";s:25:"dojox.layout.ResizeHandle";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:1:"e";a:1:{s:4:"type";s:5:"Event";}}s:6:"source";s:181:" dojo.forEach(this._pconnects, dojo.disconnect); if(!this.activeResize){ this._resizeHelper.hide(); this._changeSizing(e); } this._isSizing = false; this.onResize(e);";s:7:"summary";s:38:"disconnect listenrs and cleanup sizing";s:7:"private";b:1;}s:34:"dojox.layout.ResizeHandle.onResize";a:5:{s:9:"prototype";s:25:"dojox.layout.ResizeHandle";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:1:"e";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:135:" // summary: Stub fired when sizing is done. Fired once // after resize, or often when `intermediateChanges` is // set to true. ";s:7:"summary";s:108:"Stub fired when sizing is done. Fired once after resize, or often when `intermediateChanges` is set to true.";}s:39:"dojox.layout.ResizeHandle._resizeHelper";a:3:{s:8:"instance";s:25:"dojox.layout.ResizeHandle";s:7:"private";b:1;s:7:"summary";s:0:"";}s:33:"dojox.layout.ResizeHandle.minSize";a:2:{s:8:"instance";s:25:"dojox.layout.ResizeHandle";s:7:"summary";s:0:"";}s:33:"dojox.layout.ResizeHandle.maxSize";a:2:{s:8:"instance";s:25:"dojox.layout.ResizeHandle";s:7:"summary";s:0:"";}s:34:"dojox.layout.ResizeHandle._resizeX";a:3:{s:8:"instance";s:25:"dojox.layout.ResizeHandle";s:7:"private";b:1;s:7:"summary";s:0:"";}s:34:"dojox.layout.ResizeHandle._resizeY";a:3:{s:8:"instance";s:25:"dojox.layout.ResizeHandle";s:7:"private";b:1;s:7:"summary";s:0:"";}s:38:"dojox.layout.ResizeHandle.targetWidget";a:2:{s:8:"instance";s:25:"dojox.layout.ResizeHandle";s:7:"summary";s:0:"";}s:39:"dojox.layout.ResizeHandle.targetDomNode";a:2:{s:8:"instance";s:25:"dojox.layout.ResizeHandle";s:7:"summary";s:0:"";}s:35:"dojox.layout.ResizeHandle._isSizing";a:3:{s:8:"instance";s:25:"dojox.layout.ResizeHandle";s:7:"private";b:1;s:7:"summary";s:0:"";}s:36:"dojox.layout.ResizeHandle.startPoint";a:2:{s:8:"instance";s:25:"dojox.layout.ResizeHandle";s:7:"summary";s:0:"";}s:35:"dojox.layout.ResizeHandle.startSize";a:2:{s:8:"instance";s:25:"dojox.layout.ResizeHandle";s:7:"summary";s:0:"";}s:33:"dojox.layout.ResizeHandle._aspect";a:3:{s:8:"instance";s:25:"dojox.layout.ResizeHandle";s:7:"private";b:1;s:7:"summary";s:0:"";}s:36:"dojox.layout.ResizeHandle._pconnects";a:3:{s:8:"instance";s:25:"dojox.layout.ResizeHandle";s:7:"private";b:1;s:7:"summary";s:0:"";}s:48:"dojox.layout.ResizeHandle._activeResizeLastEvent";a:3:{s:8:"instance";s:25:"dojox.layout.ResizeHandle";s:7:"private";b:1;s:7:"summary";s:0:"";}s:26:"dojox.layout._ResizeHelper";a:4:{s:4:"type";s:8:"Function";s:6:"chains";a:2:{s:9:"prototype";a:1:{i:0;s:13:"dijit._Widget";}s:4:"call";a:1:{i:0;s:13:"dijit._Widget";}}s:7:"summary";s:100:"A global private resize helper shared between any `dojox.layout.ResizeHandle` with activeSizing off.";s:9:"classlike";b:1;}s:31:"dojox.layout._ResizeHelper.show";a:4:{s:9:"prototype";s:26:"dojox.layout._ResizeHelper";s:4:"type";s:8:"Function";s:6:"source";s:142:" dojo.fadeIn({ node: this.domNode, duration: 120, beforeBegin: dojo.partial(dojo.style, this.domNode, "display", "") }).play();";s:7:"summary";s:29:"show helper to start resizing";}s:31:"dojox.layout._ResizeHelper.hide";a:4:{s:9:"prototype";s:26:"dojox.layout._ResizeHelper";s:4:"type";s:8:"Function";s:6:"source";s:140:" dojo.fadeOut({ node: this.domNode, duration: 250, onEnd: dojo.partial(dojo.style, this.domNode, "display", "none") }).play();";s:7:"summary";s:38:"hide helper after resizing is complete";}s:33:"dojox.layout._ResizeHelper.resize";a:5:{s:9:"prototype";s:26:"dojox.layout._ResizeHelper";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:3:"dim";a:1:{s:4:"type";s:6:"Object";}}s:6:"source";s:36:" dojo.marginBox(this.domNode, dim);";s:7:"summary";s:78:"size the widget and place accordingly FIXME: this is off when padding present";}s:12:"dojox.layout";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}s:5:"dojox";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}}