diff client/digitallibrary/jquery/jquery.digilib.js @ 768:cef1ef426366 jquery

minor precisations
author hertzhaft
date Fri, 11 Feb 2011 23:11:04 +0100
parents 08a4c2ddbf4b
children 8944c61e08d1
line wrap: on
line diff
--- a/client/digitallibrary/jquery/jquery.digilib.js	Thu Feb 10 22:46:17 2011 +0100
+++ b/client/digitallibrary/jquery/jquery.digilib.js	Fri Feb 11 23:11:04 2011 +0100
@@ -234,7 +234,7 @@
                 'buttonSets' : ['standardSet', 'specialSet']
                 }
         },
-        
+
         // number of visible button groups
         'visibleButtonSets' : 1,
         // is birdView shown?
@@ -244,10 +244,6 @@
         'birdDivHeight' : 200,
         // parameters used by bird's eye div
         'birdDivParams' : ['fn','pn','dw','dh'],
-        // style of the zoom area indicator in the bird's eye div 
-        'birdIndicatorStyle' : {'border' : '2px solid #ff0000' },
-        // style of zoom area "rubber band"
-        'zoomrectStyle' : {'border' : '2px solid #ff0000' },
         // is the "about" window shown?
         'isAboutDivVisible' : false,
         // maximum width of background image for drag-scroll
@@ -607,7 +603,7 @@
         calibrate : function (data) {
             loadImageInfo(data);
         },
-        
+
         // set image scale mode
         setScaleMode : function (data, mode) {
             var oldM = getScaleMode(data);
@@ -620,7 +616,7 @@
                 redisplay(data);
             }
         }
-        
+
     // end of actions
     };
 
@@ -743,7 +739,7 @@
             }
         });
     };
-    
+
     // processes some parameters into objects and stuff
     var unpackParams = function (data) {
         var settings = data.settings;
@@ -900,7 +896,7 @@
         }
         // TODO: update event subscriber?
     };
-    
+
     // returns maximum size for scaler img in fullscreen mode
     var getFullscreenImgSize = function ($elem) {
         var $win = $(window);
@@ -1041,7 +1037,7 @@
         $elem.append($birdDiv);
         $birdDiv.append($birdZoom);
         $birdDiv.append($birdImg);
-        $birdZoom.css(data.settings.birdIndicatorStyle);
+        // $birdZoom.css(data.settings.birdIndicatorStyle);
         var birdUrl = getBirdImgUrl(data);
         $birdImg.load(birdImgLoadedHandler(data));
         $birdImg.error(function () {console.error("error loading birdview image");});
@@ -1082,12 +1078,11 @@
         $logo.attr('src', settings.logoUrl);
         $link.attr('href', settings.homeUrl);
         $content.text('Version: ' + settings.version);
+        data.$aboutDiv = $aboutDiv;
         // click hides
-        $aboutDiv.bind('click.digilib', function () { 
-            settings.isAboutDivVisible = showDiv(settings.isAboutDivVisible, $aboutDiv, 0);
-            return false;
+        $aboutDiv.bind('click.digilib', function () {
+            actions['showAboutDiv'](data, false);
             });
-        data.$aboutDiv = $aboutDiv;
     };
 
     // shows some window e.g. 'about' (toggle visibility if show is null)
@@ -1171,7 +1166,7 @@
         highlight('quality', flags.q1 || flags.q2);
         highlight('zoomin', ! isFullArea(data.zoomArea));
         };
-        
+
     // create Transform from area and $img
     var getImgTrafo = function ($img, area, rot, hmir, vmir, mode, imgInfo) {
         var picrect = geom.rectangle($img);
@@ -1227,7 +1222,7 @@
             // console.debug("imgTrafo=", data.imgTrafo);
         }
     };
-    
+
     // returns function for load event of scaler img
     var scalerImgLoadedHandler = function (data) {
         return function () {
@@ -1299,7 +1294,8 @@
         var zoomRect = data.birdTrafo.transform(zoomArea);
         console.debug("renderBirdArea:", zoomRect, "zoomArea:", zoomArea, "$birdTrafo:", data.birdTrafo);
         // acount for border width
-        zoomRect.addPosition({x : -2, y : -2});
+        var bw = getBorderWidth($birdZoom);
+        zoomRect.addPosition({x : -bw, y : -bw});
         if (data.settings.interactionMode === 'fullscreen') {
             // no animation for fullscreen
             zoomRect.adjustDiv($birdZoom);
@@ -1356,7 +1352,7 @@
         var pt1, pt2;
         var $zoomDiv = $('<div class="zoomrect" style="display:none"/>');
         $elem.append($zoomDiv);
-        $zoomDiv.css(data.settings.zoomrectStyle);
+        // $zoomDiv.css(data.settings.zoomrectStyle);
         var picRect = geom.rectangle($scaler);
         // FIX ME: is there a way to query the border width from CSS info?
         // rect.x -= 2; // account for overlay borders
@@ -1422,6 +1418,7 @@
         var $document = $(document);
         var $scaler = data.$scaler;
         var startPos, newRect, birdImgRect, birdZoomRect, fullRect, scalerPos;
+        var bw = getBorderWidth($birdZoom);
 
         // mousedown handler: start dragging bird zoom to a new position
         var birdZoomStartDrag = function(evt) {
@@ -1461,7 +1458,7 @@
                 'background-position' : bgPos.x + "px " + bgPos.y + "px"
                 });
             // acount for border width
-            newRect.addPosition({x : -2, y : -2});
+            newRect.addPosition({x : -bw, y : -bw});
             newRect.adjustDiv($birdZoom);
             return false;
         };
@@ -1477,7 +1474,7 @@
                 birdZoomMove(evt); 
                 }
             // ugly, but needed to prevent double border width compensation
-            newRect.addPosition({x : +2, y : +2});
+            newRect.addPosition({x : bw, y : bw});
             var newArea = data.birdTrafo.invtransform(newRect);
             data.zoomArea = newArea;
             redisplay(data);
@@ -1501,8 +1498,10 @@
         // area = FULL_AREA.fit(part); // no, we want to see where we transcend the borders
         birdTrafo = getImgTrafo(data.$birdImg, FULL_AREA);
         var birdRect = birdTrafo.transform(part);
+        var $birdZoom = data.$birdZoom;
         // acount for border width
-        birdRect.addPosition({x : -2, y : -2});
+        var bw = getBorderWidth($birdZoom);
+        birdRect.addPosition({x : -bw, y : -bw});
         birdRect.adjustDiv(data.$birdZoom);
     };
 
@@ -1645,7 +1644,7 @@
         // mo=fit is default
         return 'screen';
     };
-    
+
     // set image scale mode (screen, pixel, size)
     var setScaleMode = function (data, mode) {
         delete data.scalerFlags.fit;
@@ -1658,7 +1657,7 @@
         }
         // mo=fit is default
     };
-    
+
      // sets a key to a value (relative values with +/- if relative=true)
     var setNumValue = function(settings, key, value) {
         if (value == null) return null;
@@ -1679,6 +1678,12 @@
         return settings[key];
     };
 
+    // auxiliary function, assuming equal border width on all sides
+    var getBorderWidth = function($elem) {
+        var border = $elem.outerWidth() - $elem.width();
+        return border/2;
+    };
+
     // auxiliary function (from old dllib.js)
     var isFullArea = function(area) {
         return (area.width === 1.0) && (area.height === 1.0);