Mercurial > hg > digilib-old
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); |