Files
SIG/Scripts/AjaxControlToolkit/Release/ResizableControl.js
2024-11-05 10:47:20 -07:00

1 line
13 KiB
JavaScript

Type.registerNamespace("Sys.Extended.UI"),Sys.Extended.UI.ResizableControlBehavior=function(e){Sys.Extended.UI.ResizableControlBehavior.initializeBase(this,[e]),this._handleCssClass="",this._resizableCssClass="",this._handleOffsetX=0,this._handleOffsetY=0,this._minimumWidth=0,this._minimumHeight=0,this._maximumWidth=1e5,this._maximumHeight=1e5,this._frame=null,this._handle=null,this._handleHolder=null,this._lining=null,this._tracking=!1,this._lastClientX=0,this._lastClientY=0,this._onmouseoverDelegate=null,this._onmouseoutDelegate=null,this._onmousedownDelegate=null,this._onmousemoveDelegate=null,this._onmouseupDelegate=null,this._onselectstartDelegate=null},Sys.Extended.UI.ResizableControlBehavior.prototype={initialize:function(){Sys.Extended.UI.ResizableControlBehavior.callBaseMethod(this,"initialize"),this._frame=this.get_element();var e=Sys.Extended.UI.ResizableControlBehavior.callBaseMethod(this,"get_ClientState");if(e&&-1!=e.indexOf(",")){var t=e.split(",");this._frame.style.width=t[0]+"px",this._frame.style.height=t[1]+"px"}this._lining=document.createElement("DIV"),this._lining.style.width=$common.getCurrentStyle(this._frame,"width"),this._lining.style.height=$common.getCurrentStyle(this._frame,"height"),this._lining.style.position="absolute",this._lining.style.backgroundColor="black",this._lining.style.opacity="0",this._lining.style.filter="progid:DXImageTransform.Microsoft.Alpha(opacity=0)",this._lining.style.visibility="hidden",this._frame.insertBefore(this._lining,this._frame.firstChild),this._handleHolder=document.createElement("DIV"),this._handleHolder.style.width="0px",this._handleHolder.style.height="0px",this._handleHolder.style.position=Sys.Browser.agent===Sys.Browser.Opera?"relative":"absolute",this._frame.insertBefore(this._handleHolder,this._frame.firstChild),this._handle=document.createElement("DIV"),this._handle.className=this._handleCssClass,this._handle.style.position="absolute",this._handleHolder.appendChild(this._handle),this._onmouseoverDelegate=Function.createDelegate(this,this._onmouseover),$addHandler(this._handle,"mouseover",this._onmouseoverDelegate),this._onmouseoutDelegate=Function.createDelegate(this,this._onmouseout),$addHandler(this._handle,"mouseout",this._onmouseoutDelegate),this._onmousedownDelegate=Function.createDelegate(this,this._onmousedown),$addHandler(this._handle,"mousedown",this._onmousedownDelegate),this._onmousemoveDelegate=Function.createDelegate(this,this._onmousemove),this._onmouseupDelegate=Function.createDelegate(this,this._onmouseup),this._onselectstartDelegate=Function.createDelegate(this,this._onselectstart),this._resizeControl(0,0,0,0),this._rememberSize()},dispose:function(){this._onmouseoverDelegate&&($removeHandler(this._handle,"mouseover",this._onmouseoverDelegate),this._onmouseoverDelegate=null),this._onmouseoutDelegate&&($removeHandler(this._handle,"mouseout",this._onmouseoutDelegate),this._onmouseoutDelegate=null),this._onmousedownDelegate&&($removeHandler(this._handle,"mousedown",this._onmousedownDelegate),this._onmousedownDelegate=null),this._onmousemoveDelegate&&(this.tracking&&$removeHandler(document,"mousemove",this._onmousemoveDelegate),this._onmousemoveDelegate=null),this._onmouseupDelegate&&(this.tracking&&$removeHandler(document,"mouseup",this._onmouseupDelegate),this._onmouseupDelegate=null),this._onselectstartDelegate&&(this.tracking&&($removeHandler(document,"selectstart",this._onselectstartDelegate),Sys.Browser.agent===Sys.Browser.Opera&&$removeHandler(document,"mousedown",this._onselectstartDelegate)),this._onselectstartDelegate=null),Sys.Extended.UI.ResizableControlBehavior.callBaseMethod(this,"dispose")},_onmouseover:function(){Sys.UI.DomElement.addCssClass(this._frame,this._resizableCssClass)},_onmouseout:function(){this._tracking||Sys.UI.DomElement.removeCssClass(this._frame,this._resizableCssClass)},_onmousedown:function(e){e||(e=event),this._onmousedownImplementation(e.clientX,e.clientY)},_onmousedownImplementation:function(e,t){this._tracking=!0,this._resizeControl(e,t,0,0),this._lining.style.visibility="visible",$addHandler(document,"mousemove",this._onmousemoveDelegate),$addHandler(document,"mouseup",this._onmouseupDelegate),$addHandler(document,"selectstart",this._onselectstartDelegate),Sys.Browser.agent===Sys.Browser.Opera&&$addHandler(document,"mousedown",this._onselectstartDelegate),this.raise_resizeBegin()},_onmousemove:function(e){e||(e=event),this._onmousemoveImplementation(e.clientX,e.clientY)},_onmousemoveImplementation:function(e,t){if(this._tracking){var s=e-this._lastClientX,i=t-this._lastClientY;this._resizeControl(e,t,s,i)}},_onmouseup:function(){this._tracking=!1,this._rememberSize(),this._lining.style.visibility="hidden",$removeHandler(document,"mousemove",this._onmousemoveDelegate),$removeHandler(document,"mouseup",this._onmouseupDelegate),$removeHandler(document,"selectstart",this._onselectstartDelegate),Sys.Browser.agent===Sys.Browser.Opera&&$removeHandler(document,"mousedown",this._onselectstartDelegate),Sys.UI.DomElement.removeCssClass(this._frame,this._resizableCssClass)},_onselectstart:function(e){return e.preventDefault(),!1},_resizeControl:function(e,t,s,i){this._lastClientX=e,this._lastClientY=t;var n=Math.min(Math.max(this._lining.offsetWidth+s,Math.max(this._minimumWidth,this._handle.offsetWidth)),this._maximumWidth),a=Math.min(Math.max(this._lining.offsetHeight+i,Math.max(this._minimumHeight,this._handle.offsetHeight)),this._maximumHeight);this._lining.style.width=n+"px",this._lining.style.height=a+"px",this._frame.style.width=n+"px",this._frame.style.height=a+"px";var r=this._lining.offsetWidth-this._handle.offsetWidth+this._handleOffsetX,h=this._lining.offsetHeight-this._handle.offsetHeight+this._handleOffsetY;this._handle.style.left=r+"px",this._handle.style.top=h+"px",this.raise_resizing()},_rememberSize:function(){var e=this.get_size();Sys.Extended.UI.ResizableControlBehavior.callBaseMethod(this,"set_ClientState",[e.width+","+e.height]),this.raise_resize()},_measurementToNumber:function(e){return e.replace("px","")},get_handleCssClass:function(){return this._handleCssClass},set_handleCssClass:function(e){if(this._handleCssClass)throw String.format(Sys.Extended.UI.Resources.ResizableControlBehavior_CannotChangeProperty,"handleCssClass");this._handleCssClass=e,this.raisePropertyChanged("handleCssClass")},get_HandleCssClass:function(){return Sys.Extended.Deprecated("get_HandleCssClass()","get_handleCssClass()"),this.get_handleCssClass()},set_HandleCssClass:function(e){Sys.Extended.Deprecated("set_HandleCssClass(value)","set_handleCssClass(value)"),this.set_handleCssClass(e)},get_resizableCssClass:function(){return this._resizableCssClass},set_resizableCssClass:function(e){if(this._resizableCssClass)throw String.format(Sys.Extended.UI.Resources.ResizableControlBehavior_CannotChangeProperty,"resizableCssClass");this._resizableCssClass=e,this.raisePropertyChanged("resizableCssClass")},get_ResizableCssClass:function(){return Sys.Extended.Deprecated("get_ResizableCssClass()","get_resizableCssClass()"),this.get_resizableCssClass()},set_ResizableCssClass:function(e){Sys.Extended.Deprecated("set_ResizableCssClass(value)","set_resizableCssClass(value)"),this.set_resizableCssClass(e)},get_handleOffsetX:function(){return this._handleOffsetX},set_handleOffsetX:function(e){this._handleOffsetX!=e&&(this._handleOffsetX=e,this.raisePropertyChanged("handleOffsetX"))},get_HandleOffsetX:function(){return Sys.Extended.Deprecated("get_HandleOffsetX()","get_handleOffsetX()"),this.get_handleOffsetX()},set_HandleOffsetX:function(e){Sys.Extended.Deprecated("set_HandleOffsetX(value)","set_handleOffsetX(value)"),this.set_handleOffsetX(e)},get_handleOffsetY:function(){return this._handleOffsetY},set_handleOffsetY:function(e){this._handleOffsetY!=e&&(this._handleOffsetY=e,this.raisePropertyChanged("handleOffsetY"))},get_HandleOffsetY:function(){return Sys.Extended.Deprecated("get_HandleOffsetY()","get_handleOffsetY()"),this.get_handleOffsetY()},set_HandleOffsetY:function(e){Sys.Extended.Deprecated("set_HandleOffsetY(value)","set_handleOffsetY(value)"),this.set_handleOffsetY(e)},get_minimumWidth:function(){return this._minimumWidth},set_minimumWidth:function(e){this._minimumWidth!=e&&(this._minimumWidth=e,this.raisePropertyChanged("minimumWidth"))},get_MinimumWidth:function(){return Sys.Extended.Deprecated("get_MinimumWidth()","get_minimumWidth()"),this.get_minimumWidth()},set_MinimumWidth:function(e){Sys.Extended.Deprecated("set_MinimumWidth(value)","set_minimumWidth(value)"),this.set_minimumWidth(e)},get_minimumHeight:function(){return this._minimumHeight},set_minimumHeight:function(e){this._minimumHeight!=e&&(this._minimumHeight=e,this.raisePropertyChanged("minimumHeight"))},get_MinimumHeight:function(){return Sys.Extended.Deprecated("get_MinimumHeight()","get_minimumHeight()"),this.get_minimumHeight()},set_MinimumHeight:function(e){Sys.Extended.Deprecated("set_MinimumHeight(value)","set_minimumHeight(value)"),this.set_minimumHeight(e)},get_maximumWidth:function(){return this._maximumWidth},set_maximumWidth:function(e){this._maximumWidth!=e&&(this._maximumWidth=e,this.raisePropertyChanged("maximumWidth"))},get_MaximumWidth:function(){return Sys.Extended.Deprecated("get_MaximumWidth()","get_maximumWidth()"),this.get_maximumWidth()},set_MaximumWidth:function(e){Sys.Extended.Deprecated("set_MaximumWidth(value)","set_maximumWidth(value)"),this.set_maximumWidth(e)},get_maximumHeight:function(){return this._maximumHeight},set_maximumHeight:function(e){this._maximumHeight!=e&&(this._maximumHeight=e,this.raisePropertyChanged("maximumHeight"))},get_MaximumHeight:function(){return Sys.Extended.Deprecated("get_MaximumHeight()","get_maximumHeight()"),this.get_maximumHeight()},set_MaximumHeight:function(e){Sys.Extended.Deprecated("set_MaximumHeight(value)","set_maximumHeight(value)"),this.set_maximumHeight(e)},add_resizing:function(e){this.get_events().addHandler("resizing",e)},remove_resizing:function(e){this.get_events().removeHandler("resizing",e)},raise_resizing:function(){var e=this.get_events().getHandler("resizing");e&&e(this,Sys.EventArgs.Empty)},raiseResizing:function(){Sys.Extended.Deprecated("raiseResizing()","raise_resizing()"),this.raise_resizing()},get_resizing:function(){return this.get_events().getHandler("resizing")},set_resizing:function(e){if(e&&0<e.length){var t=$common.resolveFunction(e);if(!t)throw Error.argumentType("value",typeof e,"Function",String.format(Sys.Extended.UI.Resources.ResizableControlBehavior_InvalidHandler,"resizing"));this.add_resizing(t)}},add_resize:function(e){this.get_events().addHandler("resize",e)},remove_resize:function(e){this.get_events().removeHandler("resize",e)},raise_resize:function(){var e=this.get_events().getHandler("resize");e&&e(this,Sys.EventArgs.Empty)},raiseResize:function(){Sys.Extended.Deprecated("raiseResize()","raise_resize()"),this.raise_resize()},get_resize:function(){return this.get_events().getHandler("resize")},set_resize:function(e){if(e&&0<e.length){var t=$common.resolveFunction(e);if(!t)throw Error.argumentType("value",typeof e,"Function",String.format(Sys.Extended.UI.Resources.ResizableControlBehavior_InvalidHandler,"resize"));this.add_resize(t)}},add_resizeBegin:function(e){this.get_events().addHandler("resizeBegin",e)},remove_resizeBegin:function(e){this.get_events().removeHandler("resizeBegin",e)},raise_resizeBegin:function(){var e=this.get_events().getHandler("resizeBegin");e&&e(this,Sys.EventArgs.Empty)},add_resizebegin:function(e){Sys.Extended.Deprecated("add_resizebegin(handler)","add_resizeBegin(handler)"),this.add_resizeBegin(e)},remove_resizebegin:function(e){Sys.Extended.Deprecated("remove_resizebegin(handler)","remove_resizeBegin(handler)"),this.remove_resizeBegin(e)},raiseResizeBegin:function(){Sys.Extended.Deprecated("raiseResizeBegin()","raise_resizeBegin()"),this.raise_resizeBegin()},get_resizeBegin:function(){return this.get_events().getHandler("resizeBegin")},set_resizeBegin:function(e){if(e&&0<e.length){var t=$common.resolveFunction(e);if(!t)throw Error.argumentType("value",typeof e,"Function",String.format(Sys.Extended.UI.Resources.ResizableControlBehavior_InvalidHandler,"resizeBegin"));this.add_resizeBegin(t)}},get_resizebegin:function(){return Sys.Extended.Deprecated("get_resizebegin()","get_resizeBegin()"),this.get_resizeBegin()},set_resizebegin:function(e){Sys.Extended.Deprecated("set_resizebegin(value)","set_resizeBegin(value)"),this.set_resizeBegin(e)},get_size:function(){return{width:this._measurementToNumber($common.getCurrentStyle(this._lining,"width")),height:this._measurementToNumber($common.getCurrentStyle(this._lining,"height"))}},set_size:function(e){var t=e.width-this._measurementToNumber($common.getCurrentStyle(this._lining,"width")),s=e.height-this._measurementToNumber($common.getCurrentStyle(this._lining,"height"));this._resizeControl(0,0,t,s),this._rememberSize(),this.raisePropertyChanged("size")},get_Size:function(){return Sys.Extended.Deprecated("get_Size()","get_size()"),this.get_size()},set_Size:function(e){Sys.Extended.Deprecated("set_Size(value)","set_size(value)"),this.set_size(e)}},Sys.Extended.UI.ResizableControlBehavior.registerClass("Sys.Extended.UI.ResizableControlBehavior",Sys.Extended.UI.BehaviorBase);