comparison client/digitallibrary/jquery/jquery.digilib.js @ 871:36b38738ed3e jquery

arrows: show only if zoomarea can move
author hertzhaft
date Thu, 17 Mar 2011 17:27:07 +0100
parents 5d811828347b
children df78d6b36540
comparison
equal deleted inserted replaced
870:5d811828347b 871:36b38738ed3e
1135 }; 1135 };
1136 1136
1137 // size and show arrow overlays, called after scaler img is loaded 1137 // size and show arrow overlays, called after scaler img is loaded
1138 var renderZoomArrows = function (data) { 1138 var renderZoomArrows = function (data) {
1139 var settings = data.settings; 1139 var settings = data.settings;
1140 if (isFullArea(data) || !settings.showZoomArrows) return; 1140 if (isFullArea(data.zoomArea) || !settings.showZoomArrows) return;
1141 var $arrowsDiv = data.$elem.find('div.arrows'); 1141 var $arrowsDiv = data.$elem.find('div.arrows');
1142 var r = geom.rectangle(data.$scaler); 1142 var r = geom.rectangle(data.$scaler);
1143 // calculate arrow bar width 1143 // calculate arrow bar width
1144 var aw = settings.zoomArrowWidth; 1144 var aw = settings.zoomArrowWidth;
1145 var minWidth = settings.zoomArrowMinWidth; 1145 var minWidth = settings.zoomArrowMinWidth;
1150 if (aw < minWidth) { 1150 if (aw < minWidth) {
1151 aw = minWidth; 1151 aw = minWidth;
1152 } 1152 }
1153 } 1153 }
1154 $arrowsDiv.show(); 1154 $arrowsDiv.show();
1155 renderZoomArrow($arrowsDiv, 'up', geom.rectangle(r.x, r.y, r.width, aw)); 1155 var arrowData = [{
1156 renderZoomArrow($arrowsDiv, 'down', geom.rectangle(r.x, r.y + r.height - aw, r.width)); 1156 name : 'up',
1157 renderZoomArrow($arrowsDiv, 'left', geom.rectangle(r.x, r.y, aw, r.height)); 1157 rect : geom.rectangle(r.x, r.y, r.width, aw),
1158 renderZoomArrow($arrowsDiv, 'right', geom.rectangle(r.x + r.width - aw, r.y, aw, r.height)); 1158 show : canMove(data, 0, -1)
1159 }; 1159 }, {
1160 1160 name : 'down',
1161 // render a single zoom Arrow 1161 rect : geom.rectangle(r.x, r.y + r.height - aw, r.width),
1162 var renderZoomArrow = function ($div, name, rect) { 1162 show : canMove(data, 0, 1)
1163 var $arrow = $div.find('div.button-' + name); 1163 }, {
1164 rect.adjustDiv($arrow); 1164 name : 'left',
1165 rect : geom.rectangle(r.x, r.y, aw, r.height),
1166 show : canMove(data, -1, 0)
1167 }, {
1168 name : 'right',
1169 rect : geom.rectangle(r.x + r.width - aw, r.y, aw, r.height),
1170 show : canMove(data, 1, 0)
1171 }];
1172 // render a single zoom Arrow
1173 var render = function (i, item) {
1174 var $arrow = $arrowsDiv.find('div.button-' + item.name);
1175 item.rect.adjustDiv($arrow);
1176 if (item.show) {
1177 $arrow.show();
1178 } else {
1179 $arrow.hide();
1180 }
1181 };
1182 $.each(arrowData, render);
1165 }; 1183 };
1166 1184
1167 // creates HTML structure for the about view in elem 1185 // creates HTML structure for the about view in elem
1168 var setupAboutDiv = function (data) { 1186 var setupAboutDiv = function (data) {
1169 var $elem = data.$elem; 1187 var $elem = data.$elem;
1661 var getBorderWidth = function($elem) { 1679 var getBorderWidth = function($elem) {
1662 var border = $elem.outerWidth() - $elem.width(); 1680 var border = $elem.outerWidth() - $elem.width();
1663 return border/2; 1681 return border/2;
1664 }; 1682 };
1665 1683
1684 // auxiliary function, can the current zoomarea be moved further?
1685 var canMove = function(data, movx, movy) {
1686 var za = data.zoomArea;
1687 if (isFullArea(za)) return false;
1688 var x2 = za.x + za.width;
1689 var y2 = za.y + za.height;
1690 return ((movx < 0) && (za.x > 0))
1691 || ((movx > 0) && (x2 < 1.0))
1692 || ((movy < 0) && (za.y > 0))
1693 || ((movy > 0) && (y2 < 1.0))
1694 };
1695
1666 // auxiliary function (from old dllib.js) 1696 // auxiliary function (from old dllib.js)
1667 var isFullArea = function (area) { 1697 var isFullArea = function (area) {
1668 return (area.width === 1.0) && (area.height === 1.0); 1698 return (area.width === 1.0) && (area.height === 1.0);
1669 }; 1699 };
1670 1700
1723 getImgTrafo : getImgTrafo, 1753 getImgTrafo : getImgTrafo,
1724 getQuality : getQuality, 1754 getQuality : getQuality,
1725 setQuality : setQuality, 1755 setQuality : setQuality,
1726 getScaleMode : getScaleMode, 1756 getScaleMode : getScaleMode,
1727 setScaleMode : setScaleMode, 1757 setScaleMode : setScaleMode,
1758 canMove : canMove,
1728 isFullArea : isFullArea, 1759 isFullArea : isFullArea,
1729 isNumber : isNumber, 1760 isNumber : isNumber,
1730 getBorderWidth : getBorderWidth, 1761 getBorderWidth : getBorderWidth,
1731 cropFloat : cropFloat, 1762 cropFloat : cropFloat,
1732 cropFloatStr : cropFloatStr 1763 cropFloatStr : cropFloatStr