API Docs for:
Show:

File: src/main/resources/js/ResizeControl.js

/**
 * dynamic html for Tiled Image
 * $Id: ResizeControl.js 11 2013-04-06 21:25:54Z nazotoko $
 * Copyright 2013 Shun N. Watanabe <nazotoko (a+) users.sourceforge.net>
 * @module TiledImage
 */

/**
 * Resize Control Class
 * <ul>
 *   <li>example
 *     <div id="resizeControl-ex1" style="height:255px;width:400px;"></div>
 *      <script><!--
 *      var resizeControl=new TiledImage("resizeControl-ex1");
 *      resizeControl.addLayer(new TilesLayer("chicago","../../chicago_skyview/z${z}/${x}_${y}.jpg",1920,1218).setTileSize(240,256));
 *      resizeControl.addControl(new ResizeControl());
 *      //--></script>
 *      </li>
 * </ul>
 * @class ResizeControl
 * @constructor
 * @since 0.9.2
 **/
function ResizeControl(){
    /**
     * self: private scope of this
     * @property self
     * @type object
     * @private
     * @default this
     */
    var self=this,
    /**
     * parent (TiledImage) pointer 
     * @property parent
     * @type object
     * @private
     */
    parent,
    /**
     * startPosition: position when the drag starts.
     * @private
     * @property startPosition
     * @type Array[Number,Number]
     */
    startPosition,
    /**
     * dragFlag: true when drag started
     * @private
     * @property dragFlag
     * @type Boolean
     */
    dragFlag,
    /**
     * DOMElement of the button
     * @private
     * @property button
     * @type DOMElement
     */
    button;

    /**
     * This is event function for "mousemove".
     * @private
     * @method move
     * @param {Object} e event object
     */
    var move=function(e){
	if(!dragFlag) return true;
	if(!e) e=window.event;
	var ws=parent.getWindowSize();
	parent.resize(ws[0]-startPosition[0]+e.clientX,ws[1]-startPosition[1]+e.clientY);
	startPosition=[e.clientX,e.clientY];
	return false;
    },
    /**
     * This is event function for "mousedown", pusing a button of your mouse.
     * @private
     * @method dragStart
     * @param {Object} e event object
     */
    dragStart=function(e){
	if(!e){e=window.event;}
        dragFlag=true;
        startPosition=[e.clientX,e.clientY];
	button.style.cursor='move';
	if(e.preventDefault){e.preventDefault();e.stopPropagation();}
	return false;
    },
    /**
     * This is event function for "mouseup", releasing a button of your mouse.
     * @private
     * @method dragEnd
     * @param {Object} e event object
     */
    dragEnd=function(e){
	if(!e){e=window.event;}
	dragFlag=false;
	button.style.cursor='auto';
    };

    /**
     * Called from TiledImage object.
     * Creating properties and elist.
     * @public
     * @method setParent
     * @required
     * @return {Array} this.elist event list
     */
    this.setParent=function (p){
	parent=p;
	button=d.app(p.target,'input',{
	    className:'popup button',type:'button',
	    style:{right:'0px',bottom:'0px',width:'16px',height:'16px',backgroundPosition:"16px 16px",opacity:0.7}});
	/**
	 * Event list
	 * @property elist
	 * @type Array
	 * @required
	 * @public
	 */
	return this.elist=[
	    {m:'mouseup',t:d.d,f:dragEnd},
	    {m:'mousemove',t:d.d,f:move},
	    {m:'mousedown',t:button,f:dragStart}
	];
    };
}