diff webapp/src/main/webapp/jquery/jquery.digilib.js @ 983:66db81af85e1

moved scroll arrows to separate plugin.
author robcast
date Fri, 27 Jan 2012 12:46:48 +0100
parents 3b334a7d81ec
children 32ec05f60e1e
line wrap: on
line diff
--- a/webapp/src/main/webapp/jquery/jquery.digilib.js	Thu Jan 26 22:07:15 2012 +0100
+++ b/webapp/src/main/webapp/jquery/jquery.digilib.js	Fri Jan 27 12:46:48 2012 +0100
@@ -38,7 +38,7 @@
 
     var defaults = {
         // version of this script
-        'version' : 'jquery.digilib.js 2.1b2',
+        'version' : 'jquery.digilib.js 2.1.2b1',
         // logo url
         'logoUrl' : 'img/digilib-logo-text1.png',
         // homepage url (behind logo)
@@ -79,14 +79,6 @@
         // fullscreen = take parameters from page URL, keep state in page URL
         // embedded = take parameters from Javascript options, keep state inside object 
         'interactionMode' : 'fullscreen',
-        // arrow bar overlays for moving the zoomed area
-        'showZoomArrows' : true,
-        // zoom arrow bar minimal width (for small images)
-        'zoomArrowMinWidth' : 6,
-        // zoom arrow bar standard width
-        'zoomArrowWidth' : 32,
-        // by what percentage should the arrows move the zoomed area?
-        'zoomArrowMoveFactor' : 0.5,
         // is the "about" window shown?
         'isAboutDivVisible' : false,
         // default size of preview image for drag-scroll (same as Bird's Eye View image)
@@ -243,8 +235,6 @@
                 setupScalerDiv(data);
                 // about window creation - TODO: could be deferred? restrict to only one item?
                 setupAboutDiv(data);
-                // arrow overlays for moving zoomed detail
-                setupZoomArrows(data);
                 // send setup event
                 $(data).trigger('setup');
             });
@@ -346,24 +336,6 @@
             redisplay(data);
         },
 
-        /** move zoomed area
-         * 
-         * @param data
-         * @param dx
-         * @param dy
-         */
-        moveZoomArea : function (data, dx, dy) {
-            var za = data.zoomArea.copy();
-            var factor = data.settings.zoomArrowMoveFactor;
-            var deltaX = dx * factor * za.width;
-            var deltaY = dy * factor * za.height;
-            var delta = geom.position(deltaX, deltaY);
-            za.addPosition(delta);
-            za = FULL_AREA.fit(za);
-            setZoomArea(data, za);
-            redisplay(data);
-        },
-
         /** set a mark by clicking (or giving a position)
          * 
          * @param data
@@ -822,7 +794,7 @@
         }
     };
 
-    /** restrieve digilib options from a cookie
+    /** retrieve digilib options from a cookie
      * 
      */
     var retrieveOptions = function (data) {
@@ -932,7 +904,6 @@
         updateImgTrafo(data);
         renderMarks(data);
         setupZoomDrag(data);
-        renderZoomArrows(data);
     };
 
     /** returns maximum size for scaler img in fullscreen mode.
@@ -1036,92 +1007,6 @@
         $img.attr('src', scalerUrl);
     };
 
-    /** create arrow overlays for moving the zoomed area.
-     * 
-     */
-    var setupZoomArrows = function (data) {
-        var $elem = data.$elem;
-        var settings = data.settings;
-        var show = settings.showZoomArrows;
-        console.log('zoom arrows:', show);
-        if (!show) return;
-        var mode = settings.interactionMode;
-        var arrowNames = settings.buttonSettings[mode].arrowSet;
-        if (arrowNames == null) return;
-        // arrow divs are marked with class "keep"
-        var $arrowsDiv = $('<div class="keep arrows"/>');
-        $elem.append($arrowsDiv);
-        // create all arrow buttons
-        // TODO: do this without buttons plugin?
-        $.each(arrowNames, function(i, arrowName){
-            fn.createButton(data, $arrowsDiv, arrowName);
-            });
-    };
-
-    /** size and show arrow overlays, called after scaler img is loaded.
-     * 
-     */
-    var renderZoomArrows = function (data) {
-        var settings = data.settings;
-        var $arrowsDiv = data.$elem.find('div.arrows');
-        if (isFullArea(data.zoomArea) || !settings.showZoomArrows) {
-            $arrowsDiv.hide();
-            return;
-            }
-        $arrowsDiv.show();
-        var r = geom.rectangle(data.$scaler);
-        // calculate arrow bar width
-        var aw = settings.zoomArrowWidth;
-        var minWidth = settings.zoomArrowMinWidth;
-        // arrow bar width should not exceed 10% of scaler width/height
-        var maxWidth = Math.min(r.width, r.height)/10;
-        if (aw > maxWidth) {
-            aw = maxWidth;
-            if (aw < minWidth) {
-                aw = minWidth;
-            }
-        }
-        // vertical position of left/right image
-        var arrowData = [{
-            name : 'up',
-            rect : geom.rectangle(r.x, r.y, r.width, aw), 
-            show : canMove(data, 0, -1)
-        }, {
-            name : 'down',
-            rect : geom.rectangle(r.x, r.y + r.height - aw, r.width, aw),
-            show : canMove(data, 0, 1)
-        }, {
-            name : 'left',
-            rect : geom.rectangle(r.x, r.y, aw, r.height),
-            show : canMove(data, -1, 0)
-        }, {
-            name : 'right',
-            rect : geom.rectangle(r.x + r.width - aw, r.y, aw, r.height),
-            show : canMove(data, 1, 0)
-        }];
-        // render a single zoom Arrow
-        var render = function (i, item) {
-            var $arrow = $arrowsDiv.find('div.button-' + item.name);
-            if (item.show) {
-                $arrow.show();
-            } else {
-                $arrow.hide();
-                return;
-            }
-            var r = item.rect; 
-            r.adjustDiv($arrow);
-            var $a = $arrow.contents('a');
-            var $img = $a.contents('img');
-            $img.width(aw).height(aw);
-            // hack for missing vertical-align
-            if (item.name.match(/left|right/)) {
-                var top = (r.height - $a.height())/2;
-                $a.css({'top' : top}); // position : 'relative'
-                }
-        };
-        $.each(arrowData, render);
-    };
-
     /** creates HTML structure for the about view in elem
      * 
      */
@@ -1755,6 +1640,7 @@
             redisplay : redisplay,
             updateDisplay : updateDisplay,
             showDiv : showDiv,
+            setZoomArea : setZoomArea,
             setPreviewBg : setPreviewBg,
             getImgTrafo : getImgTrafo,
             getQuality : getQuality,