comparison webapp/src/main/webapp/jquery/jquery.digilib.arrows.js @ 1075:1e4f4964e9c2

CLOSED - # 25: scroll arrows have wrong direction with mirror and rot https://it-dev.mpiwg-berlin.mpg.de/tracs/digilib/ticket/25
author robcast
date Thu, 17 May 2012 19:29:28 +0200
parents f7bfc40bffea
children e1b29f51d224
comparison
equal deleted inserted replaced
1074:7a815e1a6d96 1075:1e4f4964e9c2
12 var FULL_AREA = null; 12 var FULL_AREA = null;
13 13
14 var defaults = { 14 var defaults = {
15 // arrow bars for moving the zoomed area 15 // arrow bars for moving the zoomed area
16 'showZoomArrows' : true, 16 'showZoomArrows' : true,
17 // by what percentage should the arrows move the zoomed area? 17 // by what fraction should the arrows move the zoomed area?
18 'zoomArrowMoveFactor' : 0.5, 18 'zoomArrowMoveFactor' : 0.5,
19 // defaults for digilib buttons 19 // defaults for digilib buttons
20 'buttonSettings' : { 20 'buttonSettings' : {
21 'fullscreen' : { 21 'fullscreen' : {
22 // path to button images (must end with a slash) 22 // path to button images (must end with a slash)
64 * @param dy 64 * @param dy
65 */ 65 */
66 moveZoomArea : function(data, dx, dy) { 66 moveZoomArea : function(data, dx, dy) {
67 var za = data.zoomArea.copy(); 67 var za = data.zoomArea.copy();
68 var factor = data.settings.zoomArrowMoveFactor; 68 var factor = data.settings.zoomArrowMoveFactor;
69 var deltaX = dx * factor * za.width; 69 // rotate and mirror change direction of cooordinate system
70 var deltaY = dy * factor * za.height; 70 var trafo = data.imgTrafo;
71 var tdx = (trafo.m00 > 0) ? dx : -dx;
72 var tdy = (trafo.m11 > 0) ? dy : -dy;
73 if (Math.abs(trafo.m00) < Math.abs(trafo.m01)) {
74 tdx = (trafo.m01 > 0) ? -dy : dy;
75 tdy = (trafo.m10 > 0) ? -dx : dx;
76 }
77 var deltaX = tdx * factor * za.width;
78 var deltaY = tdy * factor * za.height;
71 var delta = geom.position(deltaX, deltaY); 79 var delta = geom.position(deltaX, deltaY);
72 za.addPosition(delta); 80 za.addPosition(delta);
73 za = FULL_AREA.fit(za); 81 za = FULL_AREA.fit(za);
74 digilib.fn.setZoomArea(data, za); 82 digilib.fn.setZoomArea(data, za);
75 digilib.fn.redisplay(data); 83 digilib.fn.redisplay(data);