Diff for /zogiLib/js/Attic/navigation.js between versions 1.3 and 1.4

version 1.3, 2004/04/16 14:07:08 version 1.4, 2004/04/28 09:03:21
Line 32  var dlTrafo = new Transform(); Line 32  var dlTrafo = new Transform();
 if (! Array.prototype.push) {  if (! Array.prototype.push) {
     Array.prototype.push = function(val) {      Array.prototype.push = function(val) {
     this[this.length] = val;      this[this.length] = val;
       return this.length;
       }
       Array.prototype.pop = function() {
       var val = this[this.length-1];
       this.length -= 1;
       return val;
     }      }
 }  }
   
Line 42  function cropFloat(x) { Line 48  function cropFloat(x) {
   
 function newParameter(name, defaultValue, detail) {  function newParameter(name, defaultValue, detail) {
     // create a new parameter with a name and a default value      // create a new parameter with a name and a default value
     if ( !dlParams[name] ) {      if (dlParams[name]) {
       alert("Fatal: An object with name '" + name + "' already exists - cannot recreate!");
       return false;
       } else {
     dlParams[name] = new Object();      dlParams[name] = new Object();
     dlParams[name].defaultValue = defaultValue;      dlParams[name].defaultValue = defaultValue;
     dlParams[name].hasValue = false;      dlParams[name].hasValue = false;
     dlParams[name].value = defaultValue;      dlParams[name].value = defaultValue;
     dlParams[name].detail = detail;      dlParams[name].detail = detail;
     return dlParams[name];      return dlParams[name];
     } else {  
     alert("Fatal: An object with name '" + name + "' already exists - cannot recreate!");  
     return false;  
     }      }
 }  }
   
Line 64  function getParameter(name) { Line 70  function getParameter(name) {
         return dlParams[name].defaultValue;          return dlParams[name].defaultValue;
     }      }
     } else {      } else {
     return false;      return undefined;
     }      }
 }  }
   
Line 73  function setParameter(name, value) { Line 79  function setParameter(name, value) {
     if (dlParams[name]) {      if (dlParams[name]) {
     dlParams[name].value = value;      dlParams[name].value = value;
     dlParams[name].hasValue = true;      dlParams[name].hasValue = true;
       return true;
     }      }
       return false;
 }  }
   
 function getAllParameters(detail) {  function getAllParameters(detail) {
Line 112  function setParamFromRect(rect) { Line 120  function setParamFromRect(rect) {
     setParameter("wy", cropFloat(rect.y));      setParameter("wy", cropFloat(rect.y));
     setParameter("ww", cropFloat(rect.width));      setParameter("ww", cropFloat(rect.width));
     setParameter("wh", cropFloat(rect.height));      setParameter("wh", cropFloat(rect.height));
       return true;
 }  }
   
 function parseTrafo() {  function parseTrafo() {
     // returns Transform from current dlArea and picsize      // returns Transform from current dlArea and picsize
     var picsize = getElementSize("scaler");      var picsize = getElementSize("pic");
     var trafo = new Transform();      var trafo = new Transform();
     // subtract area offset and size      // subtract area offset and size
     trafo.concat(getTranslation(new Position(-dlArea.x, -dlArea.y)));      trafo.concat(getTranslation(new Position(-dlArea.x, -dlArea.y)));
     trafo.concat(getScale(new Size(1/dlArea.width, 1/dlArea.height)));      trafo.concat(getScale(new Size(1/dlArea.width, 1/dlArea.height)));
     // scale to screen size      // scale to screen size
     trafo.concat(getScale(picsize));      trafo.concat(getScale(picsize));
       trafo.concat(getTranslation(picsize));
     // rotate      // rotate
     //trafo.concat(getRotation(- getParameter("rot"), new Position(0.5*picsize.width, 0.5*picsize.height)));      //trafo.concat(getRotation(- getParameter("rot"), new Position(0.5*picsize.width, 0.5*picsize.height)));
     // mirror      // mirror
Line 157  function getAllMarks() { Line 167  function getAllMarks() {
     return marks.join(";");      return marks.join(";");
 }  }
   
 function addMark(x, y) {  function addMark(pos) {
     // add a mark      // add a mark
     dlMarks.push(new Position(x, y));      dlMarks.push(pos);
     setParameter("mk", getAllMarks());      setParameter("mk", getAllMarks());
       return true;
 }  }
   
 function deleteMark() {  function deleteMark() {
     // delete the last mark      // delete the last mark
     dlMarks.pop();      dlMarks.pop();
     setParameter("mk", getAllMarks());      setParameter("mk", getAllMarks());
       return true;
 }  }
   
 function hasFlag(mode) {  function hasFlag(mode) {
     // returns if mode flag is set      // returns if mode flag is set
     return (dlFlags[mode] && (dlFlags[mode] != null));      return (dlFlags[mode]);
 }  }
   
 function addFlag(mode) {  function addFlag(mode) {
     // add a mode flag      // add a mode flag
     dlFlags[mode] = mode;      dlFlags[mode] = mode;
       return true;
 }  }
   
 function removeFlag(mode) {  function removeFlag(mode) {
     // remove a mode flag      // remove a mode flag
     if (dlFlags[mode]) {      if (dlFlags[mode]) {
     dlFlags[mode] = null;      delete dlFlags[mode];
     }      }
       return true;
 }  }
   
 function toggleFlag(mode) {  function toggleFlag(mode) {
     // change a mode flag      // change a mode flag
     if (dlFlags[mode]) {      if (dlFlags[mode]) {
     dlFlags[mode] = null;      delete dlFlags[mode];
     } else {      } else {
     dlFlags[mode] = mode;      dlFlags[mode] = mode;
     }      }
       return true;
 }  }
   
 function getAllFlags() {  function getAllFlags() {
Line 225  function parseFlags() { Line 240  function parseFlags() {
 function Size(w, h) {  function Size(w, h) {
     this.width = parseFloat(w);      this.width = parseFloat(w);
     this.height = parseFloat(h);      this.height = parseFloat(h);
       return this;
 }  }
   
 /*  /*
Line 233  function Size(w, h) { Line 249  function Size(w, h) {
 function Position(x, y) {  function Position(x, y) {
     this.x = parseFloat(x);      this.x = parseFloat(x);
     this.y = parseFloat(y);      this.y = parseFloat(y);
       return this;
   }
   function evtPosition(evt) {
       // returns the on-screen Position of the Event 
       var x;
       var y;
       if (document.all) {
       x = parseInt(document.body.scrollLeft+event.clientX);
       y = parseInt(document.body.scrollLeft+event.clientY);
       } else {
       x = parseInt(evt.pageX);
       y = parseInt(evt.pageY);
       }
       return new Position(x, y);
 }  }
   
 /*  /*
Line 243  function Rectangle(x, y, w, h) { Line 273  function Rectangle(x, y, w, h) {
     this.y = parseFloat(y);      this.y = parseFloat(y);
     this.width = parseFloat(w);      this.width = parseFloat(w);
     this.height = parseFloat(h);      this.height = parseFloat(h);
       return this;
 }  }
 Rectangle.prototype.copy = function() {  Rectangle.prototype.copy = function() {
     // returns a copy of this Rectangle      // returns a copy of this Rectangle
Line 298  function Transform() { Line 329  function Transform() {
     this.m20 = 0.0;      this.m20 = 0.0;
     this.m21 = 0.0;      this.m21 = 0.0;
     this.m22 = 1.0;      this.m22 = 1.0;
       return this;
 }  }
 Transform.prototype.concat = function(traf) {  Transform.prototype.concat = function(traf) {
     for (var i = 0; i < 3; i++) {      for (var i = 0; i < 3; i++) {
Line 309  Transform.prototype.concat = function(tr Line 341  Transform.prototype.concat = function(tr
         this["m"+i+j] = c;          this["m"+i+j] = c;
     }      }
     }      }
       return this;
 }  }
 Transform.prototype.transform = function(pos) {  Transform.prototype.transform = function(pos) {
     var x = this.m00 * pos.x + this.m01 * pos.y + this.m02;      var x = this.m00 * pos.x + this.m01 * pos.y + this.m02;
Line 349  function getScale(size) { Line 382  function getScale(size) {
   
 function getElement(tagid) {  function getElement(tagid) {
     // returns the named element object      // returns the named element object
     if (document.all) {      if (document.getElementById) {
     return document.all[tagid];  
     } else if (document.getElementById) {  
     return document.getElementById(tagid);      return document.getElementById(tagid);
       } else if (document.all) {
       alert("document.all!");
       return document.all[tagid];
     } else {      } else {
       alert("no document.all!");
     return document[tagid];      return document[tagid];
     }      }
 }      }    
Line 365  function getElementSize(tagid) { Line 400  function getElementSize(tagid) {
     var width = 0;      var width = 0;
     var height = 0;      var height = 0;
     var elem = getElement(tagid);      var elem = getElement(tagid);
     if (elem.offsetWidth) {      if (elem.left) {
     x = parseInt(elem.offsetLeft);      alert("elem.left!");
     y = parseInt(elem.offsetTop);      x = elem.left;
     width = parseInt(elem.offsetWidth);      y = elem.top;
     height = parseInt(elem.offsetHeight);      width = elem.width;
     } else {      height = elem.height;
     x = parseInt(elem.left);      } else {
     y = parseInt(elem.top);      if (elem.clientLeft) {
     width = parseInt(elem.clip.width);          // spass mit IE
     height = parseInt(elem.clip.height);          x = elem.clientLeft;
           y = elem.clientTop;
       } else {
           var e = elem;
           while (e) {
           x += e.offsetLeft;
           y += e.offsetTop;
           e = e.offsetParent;
           }
       }
       width = elem.offsetWidth;
       height = elem.offsetHeight;
     }      }
     return new Rectangle(x, y, width, height);      return new Rectangle(x, y, width, height);
 }  }
Line 383  function moveElement(tagid, pos) { Line 429  function moveElement(tagid, pos) {
     // moves the named element to the indicated position      // moves the named element to the indicated position
     var elem = getElement(tagid);      var elem = getElement(tagid);
     if (elem.style) {      if (elem.style) {
     elem.style.left = pos.x;      elem.style.left = pos.x + "px";
     elem.style.top = pos.y;      elem.style.top = pos.y + "px";
     } else {      } else {
     alert("moveelement: no style property!");      alert("moveelement: no style property!");
       elem.left = pos.x;
       elem.top = pos.y;
     }      }
       return true;
 }  }
   
 function showElement(tagid, show) {  function showElement(tagid, show) {
Line 402  function showElement(tagid, show) { Line 451  function showElement(tagid, show) {
     } else {      } else {
     alert("showelement: no style property!");      alert("showelement: no style property!");
     }      }
       return true;
 }  }
   
 function registerMouseDown(tagid, handler) {  function registerMouseDown(tagid, handler) {
Line 414  function registerMouseDown(tagid, handle Line 464  function registerMouseDown(tagid, handle
     document[tagid].captureEvents(Event.MOUSEDOWN);      document[tagid].captureEvents(Event.MOUSEDOWN);
     document[tagid].onmousedown = handler;      document[tagid].onmousedown = handler;
     }      }
       return true;
 }  }
   
 function unregisterMouseDown(tagid, handler) {  function unregisterMouseDown(tagid, handler) {
Line 425  function unregisterMouseDown(tagid, hand Line 476  function unregisterMouseDown(tagid, hand
     } else {      } else {
     document[tagid].releaseEvents(Event.MOUSEDOWN);      document[tagid].releaseEvents(Event.MOUSEDOWN);
     }      }
       return true;
 }  }
   
 function registerMouseMove(tagid, handler) {  function registerMouseMove(tagid, handler) {
Line 437  function registerMouseMove(tagid, handle Line 489  function registerMouseMove(tagid, handle
     document[tagid].captureEvents(Event.MOUSEMOVE);      document[tagid].captureEvents(Event.MOUSEMOVE);
     document[tagid].onmousemove = handler;      document[tagid].onmousemove = handler;
     }      }
       return true;
 }  }
   
 function unregisterMouseMove(tagid, handler) {  function unregisterMouseMove(tagid, handler) {
Line 448  function unregisterMouseMove(tagid, hand Line 501  function unregisterMouseMove(tagid, hand
     } else {      } else {
     document[tagid].releaseEvents(Event.MOUSEMOVE);      document[tagid].releaseEvents(Event.MOUSEMOVE);
     }      }
       return true;
 }  }
   
 function registerKeyDown(handler) {  function registerKeyDown(handler) {
Line 460  function registerKeyDown(handler) { Line 514  function registerKeyDown(handler) {
     window.captureEvents(Event.KEYDOWN);      window.captureEvents(Event.KEYDOWN);
     window.onkeydown = handler;      window.onkeydown = handler;
     }      }
       return true;
 }  }
   
 function getWinSize() {  function getWinSize() {
Line 483  function getWinSize() { Line 538  function getWinSize() {
   
 function bestPicSize(tagid) {  function bestPicSize(tagid) {
     // returns a Size with the best image size for the given tagid      // returns a Size with the best image size for the given tagid
     var inset = 5;      var inset = 0;
     var ps = getWinSize();      var ws = getWinSize();
     var scaler = document.getElementById(tagid);      var es = getElementSize(tagid);
     ps.width = ps.width - scaler.offsetLeft - inset;      ws.width = ws.width - es.x - inset;
     ps.height = ps.height - scaler.offsetTop - inset;      ws.height = ws.height - es.y - inset;
     return ps;      return ws;
 }  }
   
   
Line 520  function display(detail) { Line 575  function display(detail) {
 }  }
   
   
 /*  
  * Point class  
  */  
 function Point() {  
 }  
 Point.prototype.setWithEvent = function(evt) {  
     // set point values from event  
   
     if ( document.all ) {  
   
     this.pageX = parseInt(document.body.scrollLeft+event.clientX);  
     this.pageY = parseInt(document.body.scrollLeft+event.clientY);  
   
     this.x = this.pageX-parseInt(document.all.scaler.offsetLeft);  
     this.y = this.pageY-parseInt(document.all.scaler.offsetTop);  
   
     this.relX = cropFloat(parseFloat(dlParams.wx.value)+(dlParams.ww.value*this.x/document.all.scaler.offsetWidth));  
     this.relY = cropFloat(parseFloat(dlParams.wy.value)+(dlParams.wh.value*this.y/document.all.scaler.offsetHeight));  
       
     } else {  
   
     this.pageX = parseInt(evt.pageX);  
     this.pageY = parseInt(evt.pageY);  
   
     if ( typeof(document.getElementById) == "function" ) {  
         
         this.x = this.pageX-parseInt(document.getElementById("scaler").offsetLeft);  
         this.y = this.pageY-parseInt(document.getElementById("scaler").offsetTop);  
         // top("2"+"::"+this.pageX+"::"+parseInt(document.getElementById("scaler").offsetLeft)+'::'+document.getElementById("scaler").offsetLeft);  
         this.relX = cropFloat(parseFloat(dlParams.wx.value)+(dlParams.ww.value*this.x/document.pic.offsetWidth));  
         this.relY = cropFloat(parseFloat(dlParams.wy.value)+(dlParams.wh.value*this.y/document.pic.offsetHeight));  
         
     } else {  
   
         this.x = this.pageX-document.scaler.left;  
         this.y = this.pageY-document.scaler.top;  
   
         this.relX = cropFloat(parseFloat(dlParams.wx.value)+(dlParams.ww.value*this.x/document.scaler.clip.width));  
         this.relY = cropFloat(parseFloat(dlParams.wy.value)+(dlParams.wh.value*this.y/document.scaler.clip.height));  
         
     }  
   
   }  
   
   return this;  
   
 }  
   
   
 function page(page, details) {  function page(page, details) {
   
Line 618  function mark() { Line 625  function mark() {
     function markEvent(evt) {      function markEvent(evt) {
     // event handler adding a new mark       // event handler adding a new mark 
     unregisterMouseDown("scaler", markEvent);      unregisterMouseDown("scaler", markEvent);
     var point = new Point();      var p = dlTrafo.invtransform(evtPosition(evt));
     point.setWithEvent(evt);      addMark(p);
     var point2 = dlTrafo.invtransform(new Position(point.x, point.y));  
     //alert("p0: "+point.x+", "+point.y);  
     //alert("p1: "+point.relX+", "+point.relY+" p2: "+point2.x+", "+point2.y);  
     var point3 = dlTrafo.transform(point2);  
     //alert("p3: "+point3.x+", "+point3.y);  
     //addMark(point.relX, point.relY);  
     addMark(point2.x, point2.y);  
     placeMarks();      placeMarks();
     }      }
   
Line 648  function placeMarks() { Line 648  function placeMarks() {
     if (picelem && picelem.complete == false) {      if (picelem && picelem.complete == false) {
     setTimeout("placeMarks()", 100);      setTimeout("placeMarks()", 100);
     } else {      } else {
     var picsize = getElementSize("scaler");      var picsize = getElementSize("pic");
     dlTrafo = parseTrafo();      dlTrafo = parseTrafo();
     for (var i = 0; i < 8; i++) {      for (var i = 0; i < 8; i++) {
         if (i < mark_count) {          if (i < mark_count) {
         if (dlArea.containsPosition(dlMarks[i])) {          if (dlArea.containsPosition(dlMarks[i])) {
             var mpos = dlTrafo.transform(dlMarks[i]);              var mpos = dlTrafo.transform(dlMarks[i]);
             //alert("mark: "+mpos.x+" "+mpos.y);  
             // suboptimal to place -5 pixels and not half size of mark-image              // suboptimal to place -5 pixels and not half size of mark-image
             mpos.x = mpos.x + picsize.x -5;              mpos.x = mpos.x -5;
             mpos.y = mpos.y + picsize.y -5;              mpos.y = mpos.y -5;
             moveElement("dot"+i, mpos);              moveElement("dot"+i, mpos);
             showElement("dot"+i, true);              showElement("dot"+i, true);
         }          }
Line 672  function placeMarks() { Line 671  function placeMarks() {
   
 function zoomPoint(inout) {  function zoomPoint(inout) {
     // zoom image in or out around the clicked point      // zoom image in or out around the clicked point
     window.focus();  
     var zoom = ZOOMFACTOR;      var zoom = ZOOMFACTOR;
     if (inout < 0) {      if (inout < 0) {
     zoom = 1/ZOOMFACTOR;      zoom = 1/ZOOMFACTOR;
     }      }
       window.focus();
   
     function zoomPointEvent(evt) {      function zoomPointEvent(evt) {
     // take new center and set zoom parameters      // take new center and set zoom parameters
     var point = new Point();      var p = dlTrafo.invtransform(evtPosition(evt));
     point.setWithEvent(evt);  
     var neww = Math.min(dlArea.width * (1/zoom), 1.0);      var neww = Math.min(dlArea.width * (1/zoom), 1.0);
     var newh = Math.min(dlArea.height * (1/zoom), 1.0);      var newh = Math.min(dlArea.height * (1/zoom), 1.0);
     var newx = point.relX - 0.5 * neww;      var newx = p.x - 0.5 * neww;
     var newy = point.relY - 0.5 * newh;      var newy = p.y - 0.5 * newh;
     var zoomarea = new Rectangle(newx, newy, neww, newh);      var zoomarea = new Rectangle(newx, newy, neww, newh);
     //alert("za1: "+zoomarea.x+","+zoomarea.y+" "+zoomarea.width+","+zoomarea.height);  
     // check bounds      // check bounds
     zoomarea = dlMaxArea.fit(zoomarea);      zoomarea = dlMaxArea.fit(zoomarea);
     //alert("za2: "+zoomarea.x+","+zoomarea.y+" "+zoomarea.width+","+zoomarea.height);  
     // set parameters      // set parameters
     setParameter("wx", cropFloat(zoomarea.x));      setParameter("wx", cropFloat(zoomarea.x));
     setParameter("wy", cropFloat(zoomarea.y));      setParameter("wy", cropFloat(zoomarea.y));
Line 699  function zoomPoint(inout) { Line 695  function zoomPoint(inout) {
     parseArea();      parseArea();
     display(3);      display(3);
     }      }
   
     // starting event capture      // starting event capture
     registerMouseDown("scaler", zoomPointEvent);      registerMouseDown("scaler", zoomPointEvent);
 }  }
Line 715  function zoomArea() { Line 712  function zoomArea() {
     if (click == 1) {      if (click == 1) {
         // first click -- start moving          // first click -- start moving
         click = 2;          click = 2;
         pt1 = new Point();          pt1 = evtPosition(evt);
         pt1.setWithEvent(evt);  
         pt2 = pt1;          pt2 = pt1;
         eck1pos = new Position(pt1.pageX, pt1.pageY);          eck1pos = pt1;
         eck2pos = new Position(pt1.pageX - 12, pt1.pageY);          eck2pos = new Position(pt1.x - 12, pt1.y);
         eck3pos = new Position(pt1.pageX, pt1.pageY - 12);          eck3pos = new Position(pt1.x, pt1.y - 12);
         eck4pos = new Position(pt1.pageX- 12, pt1.pageY - 12);          eck4pos = new Position(pt1.y - 12, pt1.y - 12);
         moveElement("eck1", eck1pos);          moveElement("eck1", eck1pos);
         moveElement("eck2", eck2pos);          moveElement("eck2", eck2pos);
         moveElement("eck3", eck3pos);          moveElement("eck3", eck3pos);
Line 734  function zoomArea() { Line 730  function zoomArea() {
         registerMouseMove("eck4", zoomMove);          registerMouseMove("eck4", zoomMove);
     } else {      } else {
         // second click -- end moving          // second click -- end moving
         pt2 = new Point();          pt2 = evtPosition(evt);
         pt2.setWithEvent(evt);  
         showElement("eck1", false);          showElement("eck1", false);
         showElement("eck2", false);          showElement("eck2", false);
         showElement("eck3", false);          showElement("eck3", false);
Line 744  function zoomArea() { Line 739  function zoomArea() {
         unregisterMouseMove("eck4", zoomMove);          unregisterMouseMove("eck4", zoomMove);
         unregisterMouseDown("scaler", zoomClick);          unregisterMouseDown("scaler", zoomClick);
         unregisterMouseDown("eck4", zoomClick);          unregisterMouseDown("eck4", zoomClick);
         var ww = pt2.relX-pt1.relX;          var p1 = dlTrafo.invtransform(pt1);
         var wh = pt2.relY-pt1.relY;          var p2 = dlTrafo.invtransform(pt2);
           var ww = p2.x-p1.x;
           var wh = p2.y-p1.y;
         if ((ww > 0)&&(wh > 0)) {          if ((ww > 0)&&(wh > 0)) {
         setParameter("wx", cropFloat(pt1.relX));          setParameter("wx", cropFloat(p1.x));
         setParameter("wy", cropFloat(pt1.relY));          setParameter("wy", cropFloat(p1.y));
         setParameter("ww", cropFloat(ww));          setParameter("ww", cropFloat(ww));
         setParameter("wh", cropFloat(wh));          setParameter("wh", cropFloat(wh));
         parseArea();          parseArea();
Line 759  function zoomArea() { Line 756  function zoomArea() {
   
     function zoomMove(evt) {      function zoomMove(evt) {
     // mouse move handler      // mouse move handler
     pt2 = new Point();      pt2 = evtPosition(evt);
     pt2.setWithEvent(evt);  
     // restrict marks to move right and down      // restrict marks to move right and down
     eck1pos = new Position(pt1.pageX, pt1.pageY);      eck1pos = pt1;
     eck2pos = new Position(Math.max(pt1.pageX, pt2.pageX)-12, pt1.pageY);      eck2pos = new Position(Math.max(pt1.x, pt2.x)-12, pt1.y);
     eck3pos = new Position(pt1.pageX, Math.max(pt1.pageY, pt2.pageY)-12);      eck3pos = new Position(pt1.x, Math.max(pt1.y, pt2.y)-12);
     eck4pos = new Position(Math.max(pt1.pageX, pt2.pageX)-12, Math.max(pt1.pageY, pt2.pageY)-12);      eck4pos = new Position(Math.max(pt1.x, pt2.x)-12, Math.max(pt1.y, pt2.y)-12);
     moveElement("eck1", eck1pos);      moveElement("eck1", eck1pos);
     moveElement("eck2", eck2pos);      moveElement("eck2", eck2pos);
     moveElement("eck3", eck3pos);      moveElement("eck3", eck3pos);
     moveElement("eck4", eck4pos);      moveElement("eck4", eck4pos);
     }      }
   
     // starting event capture      // starting event capture
     registerMouseDown("scaler", zoomClick);      registerMouseDown("scaler", zoomClick);
     registerMouseDown("eck4", zoomClick);      registerMouseDown("eck4", zoomClick);
Line 789  function zoomFullpage() { Line 786  function zoomFullpage() {
   
 function moveTo() {  function moveTo() {
   
     if ( (parseFloat(dlParams.ww.value) == 1.0) && (parseFloat(dlParams.wh.value) == 1.0) ) {      if ( (dlArea.width == 1.0) && (dlArea.height == 1.0) ) {
     alert("This function is only available when zoomed in!");      alert("This function is only available when zoomed in!");
     return;      return;
     }      }
   
     function moveToEvent(event) {      function moveToEvent(event) {
     // move to handler      // move to handler
     var point = new Point();      var pt = evtPosition(evt);
     point.setWithEvent(eventt);      var newarea = new Rectangle(pt.x-0.5*dlArea.width, pt.y-0.5*dlArea.height, dlArea.width, dlArea.height);
     var newarea = new Rectangle(point.relX-0.5*dlParams.ww.value, point.relY-0.5*dlParams.wh.value, dlArea.width, dlArea.height);      newarea = dlMaxArea.fit(newarea);
     newarea = dlMaxArea.intersect(newarea);  
     // stopping event capture      // stopping event capture
     unregisterMouseDown("scaler", moveToEvent);      unregisterMouseDown("scaler", moveToEvent);
     // set parameters      // set parameters
Line 809  function moveTo() { Line 805  function moveTo() {
     setParameter("wh", cropFloat(newarea.height));      setParameter("wh", cropFloat(newarea.height));
     display(3);      display(3);
     }      }
   
     // starting event capture      // starting event capture
     registerMouseDown("scaler", moveToEvent);      registerMouseDown("scaler", moveToEvent);
 }  }

Removed from v.1.3  
changed lines
  Added in v.1.4


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>