Mercurial > hg > digilib-old
comparison client/digitallibrary/greyskin/dllib.js @ 514:e91d6050f27d
zoom and pan marks in red
prettier js
author | robcast |
---|---|
date | Thu, 03 Sep 2009 15:39:18 +0200 |
parents | 351c5924b7a6 |
children | 72604a10ee1a |
comparison
equal
deleted
inserted
replaced
513:a53693fd7a17 | 514:e91d6050f27d |
---|---|
397 | 397 |
398 Digilib.prototype.setMark = function() { | 398 Digilib.prototype.setMark = function() { |
399 // add a mark where clicked | 399 // add a mark where clicked |
400 window.focus(); | 400 window.focus(); |
401 this.moveCenter(false); | 401 this.moveCenter(false); |
402 | |
402 // start event capturing | 403 // start event capturing |
403 registerEvent("mousedown", this.scalerDiv, markEvent); | 404 registerEvent("mousedown", this.scalerDiv, markEvent); |
404 | 405 |
405 // our own reference to this for the local function | 406 // our own reference to this for the local function |
406 var digilib = this; | 407 var digilib = this; |
407 | 408 |
408 function markEvent(evt) { | 409 function markEvent(evt) { |
409 // event handler adding a new mark | 410 // event handler adding a new mark |
410 unregisterEvent("mousedown", digilib.scalerDiv, markEvent); | 411 unregisterEvent("mousedown", digilib.scalerDiv, markEvent); |
411 digilib.marks.addEvent(evt); | 412 digilib.marks.addEvent(evt); |
435 // start event capturing | 436 // start event capturing |
436 registerEvent("mousedown", overlay, zoomStart); | 437 registerEvent("mousedown", overlay, zoomStart); |
437 registerEvent("mousedown", this.scalerImg, zoomStart); | 438 registerEvent("mousedown", this.scalerImg, zoomStart); |
438 window.focus(); | 439 window.focus(); |
439 | 440 |
440 // our own reference to "this" for the local functions | 441 // our own reference to "this" for the local functions |
441 var _this = this; | 442 var digilib = this; |
442 | 443 |
443 // mousedown handler: start moving | 444 // mousedown handler: start moving |
444 function zoomStart(evt) { | 445 function zoomStart(evt) { |
445 pt1 = evtPosition(evt); | 446 pt1 = evtPosition(evt); |
446 unregisterEvent("mousedown", overlay, zoomStart); | 447 unregisterEvent("mousedown", overlay, zoomStart); |
447 unregisterEvent("mousedown", _this.scalerImg, zoomStart); | 448 unregisterEvent("mousedown", digilib.scalerImg, zoomStart); |
448 // setup and show zoom div | 449 // setup and show zoom div |
449 moveElement(zoomdiv, Rectangle(pt1.x, pt1.y, 0, 0)); | 450 moveElement(zoomdiv, Rectangle(pt1.x, pt1.y, 0, 0)); |
450 showElement(zoomdiv, true); | 451 showElement(zoomdiv, true); |
451 // register events | 452 // register events |
452 registerEvent("mousemove", document, zoomMove); | 453 registerEvent("mousemove", document, zoomMove); |
453 registerEvent("mouseup", document, zoomEnd); | 454 registerEvent("mouseup", document, zoomEnd); |
454 return stopEvent(evt); | 455 return stopEvent(evt); |
455 } | 456 } |
456 | 457 |
457 // mouseup handler: end moving | 458 // mouseup handler: end moving |
458 function zoomEnd(evt) { | 459 function zoomEnd(evt) { |
459 pt2 = evtPosition(evt); | 460 pt2 = evtPosition(evt); |
460 // assume a click if the area is too small (up to 3 x 3 pixel) | 461 // assume a click if the area is too small (up to 3 x 3 pixel) |
461 var clickRect = new Rectangle(pt1, pt2); | 462 var clickRect = new Rectangle(pt1, pt2); |
462 clickRect.normalize(); | 463 clickRect.normalize(); |
463 if (clickRect.getArea() <= _this.MIN_AREA_SIZE) return stopEvent(evt); | 464 if (clickRect.getArea() <= digilib.MIN_AREA_SIZE) return stopEvent(evt); |
464 // hide zoom div | 465 // hide zoom div |
465 showElement(zoomdiv, false); | 466 showElement(zoomdiv, false); |
466 showElement(overlay, false); | 467 showElement(overlay, false); |
467 // unregister events | 468 // unregister events |
468 unregisterEvent("mousemove", document, zoomMove); | 469 unregisterEvent("mousemove", document, zoomMove); |
469 unregisterEvent("mouseup", document, zoomMove); | 470 unregisterEvent("mouseup", document, zoomEnd); |
470 // clip and transform | 471 // clip and transform |
471 clickRect.clipTo(picRect); | 472 clickRect.clipTo(picRect); |
472 var area = _this.trafo.invtransform(clickRect); | 473 var area = digilib.trafo.invtransform(clickRect); |
473 _this.setParamFromArea(area); | 474 digilib.setParamFromArea(area); |
474 // zoomed is always fit | 475 // zoomed is always fit |
475 _this.params.set("ws", 1); | 476 digilib.params.set("ws", 1); |
476 _this.display(); | 477 digilib.display(); |
477 return stopEvent(evt); | 478 return stopEvent(evt); |
478 } | 479 } |
479 | 480 |
480 // mouse move handler | 481 // mouse move handler |
481 function zoomMove(evt) { | 482 function zoomMove(evt) { |
482 pt2 = evtPosition(evt); | 483 pt2 = evtPosition(evt); |
483 var rect = new Rectangle(pt1, pt2); | 484 var rect = new Rectangle(pt1, pt2); |
484 rect.normalize(); | 485 rect.normalize(); |
485 rect.clipTo(picRect); | 486 rect.clipTo(picRect); |