225 lines
5.3 KiB
HTML
225 lines
5.3 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
<head>
|
|
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
|
|
<meta http-equiv="Content-Language" content="en-us" />
|
|
<title>Different dimensions test</title>
|
|
<script src="../lib/prototype.js" type="text/javascript"></script>
|
|
<script src="../lib/scriptaculous.js?load=builder,dragdrop" type="text/javascript"></script>
|
|
<script src="../cropper.js" type="text/javascript"></script>
|
|
|
|
|
|
<script type="text/javascript" charset="utf-8">
|
|
|
|
function onEndCrop( coords, dimensions ) {
|
|
$PR( 'x1' ).value = coords.x1;
|
|
$PR( 'y1' ).value = coords.y1;
|
|
$PR( 'x2' ).value = coords.x2;
|
|
$PR( 'y2' ).value = coords.y2;
|
|
$PR( 'width' ).value = dimensions.width;
|
|
$PR( 'height' ).value = dimensions.height;
|
|
}
|
|
|
|
/*
|
|
|
|
// example with minimum dimensions
|
|
Event.observe(
|
|
window,
|
|
'load',
|
|
function() {
|
|
new Cropper.Img(
|
|
'testImage',
|
|
{
|
|
minWidth: 200,
|
|
minHeight: 120,
|
|
maxWidth: 200,
|
|
//maxHeight: 120,
|
|
displayOnInit: true,
|
|
onEndCrop: onEndCrop
|
|
}
|
|
)
|
|
}
|
|
);
|
|
*/
|
|
|
|
Event.observe( window, 'load',
|
|
function() {
|
|
Event.observe( 'dimensionsForm', 'submit', CropManager.attachCropper.bindAsEventListener( CropManager ) );
|
|
CropManager.attachCropper();
|
|
}
|
|
);
|
|
|
|
/**
|
|
* A little manager that allows us to reset the options dynamically
|
|
*/
|
|
var CropManager = {
|
|
/**
|
|
* Holds the current Cropper.Img object
|
|
* @var obj
|
|
*/
|
|
curCrop: null,
|
|
|
|
/**
|
|
* Gets a min/max parameter from the form
|
|
*
|
|
* @access private
|
|
* @param string Form element ID
|
|
* @return int
|
|
*/
|
|
getParam: function( name ) {
|
|
var val = $F( name );
|
|
console.log( name + ' :: ' + val );
|
|
return parseInt( val );
|
|
},
|
|
|
|
/**
|
|
* Attaches/resets the image cropper
|
|
*
|
|
* @access private
|
|
* @param obj Event object
|
|
* @return void
|
|
*/
|
|
attachCropper: function( e ) {
|
|
if( this.curCrop == null ) {
|
|
this.curCrop = new Cropper.Img(
|
|
'testImage',
|
|
{
|
|
minWidth: this.getParam( 'minWidth' ),
|
|
minHeight: this.getParam( 'minHeight' ),
|
|
maxWidth: this.getParam( 'maxWidth' ),
|
|
maxHeight: this.getParam( 'maxHeight' ),
|
|
onEndCrop: onEndCrop
|
|
}
|
|
);
|
|
} else {
|
|
this.removeCropper();
|
|
this.curCrop.initialize(
|
|
'testImage',
|
|
{
|
|
minWidth: this.getParam( 'minWidth' ),
|
|
minHeight: this.getParam( 'minHeight' ),
|
|
maxWidth: this.getParam( 'maxWidth' ),
|
|
maxHeight: this.getParam( 'maxHeight' ),
|
|
onEndCrop: onEndCrop
|
|
}
|
|
);
|
|
}
|
|
if( e != null ) Event.stop( e );
|
|
},
|
|
|
|
/**
|
|
* Removes the cropper
|
|
*
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
removeCropper: function() {
|
|
if( this.curCrop != null ) {
|
|
this.curCrop.remove();
|
|
}
|
|
},
|
|
|
|
/**
|
|
* Resets the cropper, either re-setting or re-applying
|
|
*
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
resetCropper: function() {
|
|
this.attachCropper();
|
|
}
|
|
};
|
|
|
|
/*
|
|
if( typeof(dump) != 'function' ) {
|
|
Debug.init(true, '/');
|
|
|
|
function dump( msg ) {
|
|
// Debug.raise( msg );
|
|
};
|
|
} else dump( '---------------------------------------\n' );
|
|
*/
|
|
|
|
</script>
|
|
<link rel="stylesheet" type="text/css" href="debug.css" media="all" />
|
|
<style type="text/css">
|
|
label {
|
|
clear: left;
|
|
margin-left: 50px;
|
|
float: left;
|
|
width: 5em;
|
|
}
|
|
|
|
#testWrap {
|
|
margin: 20px 0 0 50px; /* Just while testing, to make sure we return the correct positions for the image & not the window */
|
|
}
|
|
|
|
#dimensionsForm {
|
|
float: right;
|
|
width: 350px;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<h2>Multiple dimensions tests</h2>
|
|
<p>
|
|
Test of applying different dimension restrictions to the cropper
|
|
</p>
|
|
|
|
<form action="#" id="dimensionsForm">
|
|
<fieldset>
|
|
Set the cropper with the following dimension restrictions:
|
|
<p>
|
|
<label for="minWidth">Min Width</label>
|
|
<input type="text" size="10" maxlength="3" value="200" id="minWidth" name="minWidth" />
|
|
</p>
|
|
<p>
|
|
<label for="maxWidth">Max Width</label>
|
|
<input type="text" size="10" maxlength="3" value="200" id="maxWidth" name="maxWidth" />
|
|
</p>
|
|
<p>
|
|
<label for="minHeight">Min Height</label>
|
|
<input type="text" size="10" maxlength="3" value="120" id="minHeight" name="minHeight" />
|
|
</p>
|
|
<p>
|
|
<label for="maxHeight">Max Height</label>
|
|
<input type="text" size="10" maxlength="3" value="120" id="maxHeight" name="maxHeight" />
|
|
</p>
|
|
<input type="submit" value="Set Cropper" />
|
|
</fieldset>
|
|
</form>
|
|
|
|
<div id="testWrap">
|
|
<img src="castle.jpg" alt="test image" id="testImage" width="500" height="333" />
|
|
</div>
|
|
|
|
|
|
<p>
|
|
<label for="x1">x1:</label>
|
|
<input type="text" name="x1" id="x1" />
|
|
</p>
|
|
<p>
|
|
<label for="y1">y1:</label>
|
|
<input type="text" name="y1" id="y1" />
|
|
</p>
|
|
<p>
|
|
<label for="x2">x2:</label>
|
|
<input type="text" name="x2" id="x2" />
|
|
</p>
|
|
<p>
|
|
<label for="y2">y2:</label>
|
|
<input type="text" name="y2" id="y2" />
|
|
</p>
|
|
<p>
|
|
<label for="width">width:</label>
|
|
<input type="text" name="width" id="width" />
|
|
</p>
|
|
<p>
|
|
<label for="height">height</label>
|
|
<input type="text" name="height" id="height" />
|
|
</p>
|
|
|
|
</body>
|
|
</html>
|
|
|
|
|