--- zogiLib/js/Attic/dl_lib.js 2004/06/02 21:53:15 1.3 +++ zogiLib/js/Attic/dl_lib.js 2004/06/03 18:13:29 1.5 @@ -196,7 +196,7 @@ function dl_init() { } picElem = getElement("pic", true); if (picElem == null) { - // in N4 pic is in the layer scaler + // in N4 pic is in the scaler layer picElem = elemScaler.document.images[0]; } // give a name to the window containing digilib @@ -211,7 +211,7 @@ function dl_init() { renderMarks(); // done focus(); - return null; + return; } function display(detail) { @@ -257,7 +257,6 @@ function renderMarks() { if (defined(picElem.complete) && picElem.complete == false && ! browserType.isN4 ) { setTimeout("renderMarks()", 100); } else { - //alert("rendermarks!"); dlTrafo = parseTrafo(picElem); for (var i = 0; i < 8; i++) { var me = getElement("dot"+i); @@ -286,9 +285,9 @@ function setMark() { } function markEvent(evt) { - // event handler adding a new mark - var p = dlTrafo.invtransform(evtPosition(evt)); + // event handler adding a new mark unregisterMouseDown(elemScaler, markEvent); + var p = dlTrafo.invtransform(evtPosition(evt)); addMark(p); display(); } @@ -309,6 +308,7 @@ function zoomPoint(inout) { function zoomPointEvent(evt) { // take new center and set zoom parameters + unregisterMouseDown(elemScaler, zoomPointEvent); var p = dlTrafo.invtransform(evtPosition(evt)); var neww = Math.min(dlArea.width * (1/zoom), 1.0); var newh = Math.min(dlArea.height * (1/zoom), 1.0); @@ -409,30 +409,28 @@ function zoomArea() { } -function moveTo() { - +function moveCenter() { + // move visible area so that it's centered around the clicked point if ( (dlArea.width == 1.0) && (dlArea.height == 1.0) ) { - alert("This function is only available when zoomed in!"); + // noting to do return; } + window.focus(); - function moveToEvent(event) { + function moveCenterEvent(evt) { // move to handler - var pt = evtPosition(evt); + unregisterMouseDown(elemScaler, moveCenterEvent); + var pt = dlTrafo.invtransform(evtPosition(evt)); var newarea = new Rectangle(pt.x-0.5*dlArea.width, pt.y-0.5*dlArea.height, dlArea.width, dlArea.height); newarea = dlMaxArea.fit(newarea); - // stopping event capture - unregisterMouseDown(elemScaler, moveToEvent); // set parameters - setParameter("wx", cropFloat(newarea.x)); - setParameter("wy", cropFloat(newarea.y)); - setParameter("ww", cropFloat(newarea.width)); - setParameter("wh", cropFloat(newarea.height)); + setParamFromArea(newarea); + parseArea(); display(); } // starting event capture - registerMouseDown(elemScaler, moveToEvent); + registerMouseDown(elemScaler, moveCenterEvent); }