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 )