Apache2-Translation
view release on metacpan or search on metacpan
lib/Apache2/Translation/Admin/resize.js view on Meta::CPAN
var options = Object.extend({
top: 6,
bottom: 6,
left: 6,
right: 6,
minHeight: 0,
minWidth: 0,
zindex: 1000,
resize: null,
resizeInsteadWidth: null
}, arguments[1] || {});
this.element = $(element);
this.handle = this.element;
Element.makePositioned(this.element); // fix IE
this.options = options;
if (this.options.resizeInsteadWidth) {
this.options.resizeInsteadWidth=$(this.options.resizeInsteadWidth);
Element.makePositioned(this.options.resizeInsteadWidth); // fix IE
}
this.active = false;
this.resizing = false;
this.currentDirection = '';
this.eventMouseDown = this.startResize.bindAsEventListener(this);
this.eventMouseUp = this.endResize.bindAsEventListener(this);
this.eventMouseMove = this.update.bindAsEventListener(this);
this.eventCursorCheck = this.cursor.bindAsEventListener(this);
this.eventKeypress = this.keyPress.bindAsEventListener(this);
this.registerEvents();
},
destroy: function() {
Event.stopObserving(this.handle, "mousedown", this.eventMouseDown);
this.unregisterEvents();
},
registerEvents: function() {
Event.observe(document, "mouseup", this.eventMouseUp);
Event.observe(document, "mousemove", this.eventMouseMove);
Event.observe(document, "keypress", this.eventKeypress);
Event.observe(this.handle, "mousedown", this.eventMouseDown);
Event.observe(this.element, "mousemove", this.eventCursorCheck);
},
unregisterEvents: function() {
//if(!this.active) return;
//Event.stopObserving(document, "mouseup", this.eventMouseUp);
//Event.stopObserving(document, "mousemove", this.eventMouseMove);
//Event.stopObserving(document, "mousemove", this.eventCursorCheck);
//Event.stopObserving(document, "keypress", this.eventKeypress);
},
startResize: function(event) {
if(Event.isLeftClick(event)) {
// abort on form elements, fixes a Firefox issue
var src = Event.element(event);
if(src.tagName &&
(src.tagName=='INPUT' ||
src.tagName=='SELECT' ||
src.tagName=='BUTTON' ||
src.tagName=='TEXTAREA')) return;
var dir = this.directions(event);
if (dir.length > 0) {
this.active = true;
Resizeable.current=this;
var offsets = Position.cumulativeOffset(this.element);
this.startTop = offsets[1];
this.startLeft = offsets[0];
if( this.options.resizeInsteadWidth ) {
//this.startWidth = parseInt(Element.getStyle(this.options.resizeInsteadWidth, 'width'));
this.startWidth = Element.getWidth(this.options.resizeInsteadWidth);
} else {
//this.startWidth = parseInt(Element.getStyle(this.element, 'width'));
this.startWidth = Element.getHeight(this.element);
}
//this.startHeight = parseInt(Element.getStyle(this.element, 'height'));
this.startHeight = Element.getHeight(this.element);
this.startX = event.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
this.startY = event.clientY + document.body.scrollTop + document.documentElement.scrollTop;
this.currentDirection = dir;
Event.stop(event);
}
}
},
finishResize: function(event, success) {
// this.unregisterEvents();
this.active = false;
Resizeable.current=null;
this.resizing = false;
if(this.options.zindex)
this.element.style.zIndex = this.originalZ;
if (this.options.resize) {
this.options.resize(this.element);
}
},
keyPress: function(event) {
if(this.active) {
if(event.keyCode==Event.KEY_ESC) {
this.finishResize(event, false);
Event.stop(event);
}
}
},
endResize: function(event) {
if(this.active && this.resizing) {
this.finishResize(event, true);
Event.stop(event);
}
this.active = false;
this.resizing = false;
},
draw: function(event) {
var pointer = [Event.pointerX(event), Event.pointerY(event)];
( run in 0.910 second using v1.01-cache-2.11-cpan-39bf76dae61 )