Mercurial > hg > digilib-old
comparison client/digitallibrary/dllib.js @ 243:4dbff786ff50
new digimage with red triangles for moving the zoomed area
(can be switched off with "clop=noarrows")
author | robcast |
---|---|
date | Wed, 04 Aug 2004 20:35:35 +0200 |
parents | 264c55606a4e |
children | 610c7ee770cb |
comparison
equal
deleted
inserted
replaced
242:e2c455c2a0d0 | 243:4dbff786ff50 |
---|---|
1 /* Copyright (C) 2003,2004 WTWG Uni Bern and others | 1 /* Copyright (C) 2003,2004 IT-Group MPIWG, WTWG Uni Bern and others |
2 | 2 |
3 This program is free software; you can redistribute it and/or | 3 This program is free software; you can redistribute it and/or |
4 modify it under the terms of the GNU General Public License | 4 modify it under the terms of the GNU General Public License |
5 as published by the Free Software Foundation; either version 2 | 5 as published by the Free Software Foundation; either version 2 |
6 of the License, or (at your option) any later version. | 6 of the License, or (at your option) any later version. |
12 | 12 |
13 You should have received a copy of the GNU General Public License | 13 You should have received a copy of the GNU General Public License |
14 along with this program; if not, write to the Free Software | 14 along with this program; if not, write to the Free Software |
15 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA | 15 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA |
16 | 16 |
17 Authors: ROC 20.7.2004 | 17 Authors: |
18 first version by Christian Luginbuehl, 01.05.2003 | 18 Christian Luginbuehl, 01.05.2003 (first version) |
19 Changed for digiLib in Zope by DW 24.03.2004 | 19 DW 24.03.2004 (Changed for digiLib in Zope) |
20 | 20 Robert Casties, 04.08.2004 |
21 Requires baselib.js ! | 21 |
22 ! Requires baselib.js ! | |
22 | 23 |
23 */ | 24 */ |
24 | 25 |
25 var dlScriptVersion = "1.0b1"; | 26 var dlScriptVersion = "1.0b2"; |
26 | 27 |
27 /* | 28 /* |
28 * more parameter handling | 29 * more parameter handling |
29 */ | 30 */ |
30 | 31 |
291 return; | 292 return; |
292 } | 293 } |
293 | 294 |
294 function markEvent(evt) { | 295 function markEvent(evt) { |
295 // event handler adding a new mark | 296 // event handler adding a new mark |
296 unregisterMouseDown(elemScaler, markEvent); | 297 unregisterEvent("mousedown", elemScaler, markEvent); |
297 var p = dlTrafo.invtransform(evtPosition(evt)); | 298 var p = dlTrafo.invtransform(evtPosition(evt)); |
298 addMark(p); | 299 addMark(p); |
299 if (defined(reload)&&(!reload)) { | 300 if (defined(reload)&&(!reload)) { |
300 // don't redisplay | 301 // don't redisplay |
301 renderMarks(); | 302 renderMarks(); |
303 } | 304 } |
304 display(); | 305 display(); |
305 } | 306 } |
306 | 307 |
307 // starting event capture | 308 // starting event capture |
308 registerMouseDown(elemScaler, markEvent); | 309 registerEvent("mousedown", elemScaler, markEvent); |
309 } | 310 } |
310 | 311 |
311 | 312 |
312 function removeMark(reload) { | 313 function removeMark(reload) { |
313 // remove the last mark | 314 // remove the last mark |
348 moveElement(eck4, eck4pos); | 349 moveElement(eck4, eck4pos); |
349 showElement(eck1, true); | 350 showElement(eck1, true); |
350 showElement(eck2, true); | 351 showElement(eck2, true); |
351 showElement(eck3, true); | 352 showElement(eck3, true); |
352 showElement(eck4, true); | 353 showElement(eck4, true); |
353 registerMouseMove(elemScaler, zoomMove); | 354 // show moving |
354 registerMouseMove(eck4, zoomMove); | 355 registerEvent("mousemove", elemScaler, zoomMove); |
356 registerEvent("mousemove", eck4, zoomMove); | |
357 // enable drag-to-zoom | |
358 registerEvent("mouseup", elemScaler, zoomClick); | |
359 registerEvent("mouseup", eck4, zoomClick); | |
355 } else { | 360 } else { |
356 // second click -- end moving | 361 // second click -- end moving |
357 pt2 = evtPosition(evt); | 362 pt2 = evtPosition(evt); |
358 showElement(eck1, false); | 363 showElement(eck1, false); |
359 showElement(eck2, false); | 364 showElement(eck2, false); |
360 showElement(eck3, false); | 365 showElement(eck3, false); |
361 showElement(eck4, false); | 366 showElement(eck4, false); |
362 unregisterMouseMove(elemScaler, zoomMove); | 367 unregisterEvent("mousemove", elemScaler, zoomMove); |
363 unregisterMouseMove(eck4, zoomMove); | 368 unregisterEvent("mousemove", eck4, zoomMove); |
364 unregisterMouseDown(elemScaler, zoomClick); | 369 unregisterEvent("mousedown", elemScaler, zoomClick); |
365 unregisterMouseDown(eck4, zoomClick); | 370 unregisterEvent("mousedown", eck4, zoomClick); |
366 var p1 = dlTrafo.invtransform(pt1); | 371 var p1 = dlTrafo.invtransform(pt1); |
367 var p2 = dlTrafo.invtransform(pt2); | 372 var p2 = dlTrafo.invtransform(pt2); |
368 var ww = p2.x-p1.x; | 373 var ww = p2.x-p1.x; |
369 var wh = p2.y-p1.y; | 374 var wh = p2.y-p1.y; |
370 if ((ww > 0)&&(wh > 0)) { | 375 if ((ww > 0)&&(wh > 0)) { |
393 moveElement(eck3, eck3pos); | 398 moveElement(eck3, eck3pos); |
394 moveElement(eck4, eck4pos); | 399 moveElement(eck4, eck4pos); |
395 } | 400 } |
396 | 401 |
397 // starting event capture | 402 // starting event capture |
398 registerMouseDown(elemScaler, zoomClick); | 403 registerEvent("mousedown", elemScaler, zoomClick); |
399 registerMouseDown(eck4, zoomClick); | 404 registerEvent("mousedown", eck4, zoomClick); |
400 } | 405 } |
401 | 406 |
402 var ZOOMFACTOR = Math.sqrt(2); | 407 var ZOOMFACTOR = Math.sqrt(2); |
403 | 408 |
404 function zoomBy(factor) { | 409 function zoomBy(factor) { |
432 } | 437 } |
433 window.focus(); | 438 window.focus(); |
434 | 439 |
435 function moveCenterEvent(evt) { | 440 function moveCenterEvent(evt) { |
436 // move to handler | 441 // move to handler |
437 unregisterMouseDown(elemScaler, moveCenterEvent); | 442 unregisterEvent("mousedown", elemScaler, moveCenterEvent); |
438 var pt = dlTrafo.invtransform(evtPosition(evt)); | 443 var pt = dlTrafo.invtransform(evtPosition(evt)); |
439 var newarea = new Rectangle(pt.x-0.5*dlArea.width, pt.y-0.5*dlArea.height, dlArea.width, dlArea.height); | 444 var newarea = new Rectangle(pt.x-0.5*dlArea.width, pt.y-0.5*dlArea.height, dlArea.width, dlArea.height); |
440 newarea = dlMaxArea.fit(newarea); | 445 newarea = dlMaxArea.fit(newarea); |
441 // set parameters | 446 // set parameters |
442 setParamFromArea(newarea); | 447 setParamFromArea(newarea); |
443 parseArea(); | 448 parseArea(); |
444 display(); | 449 display(); |
445 } | 450 } |
446 | 451 |
447 // starting event capture | 452 // starting event capture |
448 registerMouseDown(elemScaler, moveCenterEvent); | 453 registerEvent("mousedown", elemScaler, moveCenterEvent); |
449 } | 454 } |
450 | 455 |
456 function moveBy(movx, movy) { | |
457 // move visible area by movx and movy (in units of dw, dh) | |
458 if ((dlArea.width == 1.0)&&(dlArea.height == 1.0)) { | |
459 // nothing to do | |
460 return; | |
461 } | |
462 var newarea = dlArea.copy(); | |
463 newarea.x += parseFloat(movx)*dlArea.width; | |
464 newarea.y += parseFloat(movy)*dlArea.height; | |
465 newarea = dlMaxArea.fit(newarea); | |
466 // set parameters | |
467 setParamFromArea(newarea); | |
468 parseArea(); | |
469 display(); | |
470 } | |
471 | |
472 | |
451 | 473 |
452 | 474 |
453 function getRef() { | 475 function getRef() { |
454 // returns a reference to the current digilib set | 476 // returns a reference to the current digilib set |
455 if (! baseUrl) { | 477 if (! baseUrl) { |