Mercurial > hg > digilib
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 |