# HG changeset patch
# User hertzhaft
# Date 1327586760 -3600
# Node ID 678313a989a9892a43d566e91ca9ad10127cdef6
# Parent 55572a4bbf684b775cfdab652b858ec73f06ebd4
first part of calibration dialog
diff -r 55572a4bbf68 -r 678313a989a9 webapp/src/main/webapp/jquery/jquery.digilib.buttons.js
--- a/webapp/src/main/webapp/jquery/jquery.digilib.buttons.js Thu Jan 26 15:02:29 2012 +0100
+++ b/webapp/src/main/webapp/jquery/jquery.digilib.buttons.js Thu Jan 26 15:06:00 2012 +0100
@@ -118,7 +118,7 @@
icon : "size.png"
},
calibrationx : {
- onclick : "calibrate",
+ onclick : "showCalibrationDiv",
tooltip : "calibrate screen resolution",
icon : "calibration-x.png"
},
@@ -237,6 +237,22 @@
// persist setting
fn.storeOptions(data);
},
+ // shows Calibration Div
+ showCalibrationDiv : function (data) {
+ var $elem = data.$elem;
+ var settings = data.settings;
+ var $calDiv = $('#calibration');
+ var $input = $('#calibration-input');
+ $calDiv.fadeIn();
+ $
+ // var cm = window.prompt("The length of the scale on your screen in centimeter:");
+/* if (cm) {
+ var dpi = calRect.width / parseFloat(cm) * 2.54;
+ this.params.set("ddpi", cropFloat(dpi));
+ }
+ */
+ },
+
// shows ScaleModeSelector
showScaleModeSelector : function (data) {
var $elem = data.$elem;
@@ -299,6 +315,34 @@
}
// create ScaleMode selector;
setupScaleModeDiv(data);
+ // create Calibration div;
+ setupCalibrationDiv(data);
+ };
+
+ /** creates HTML structure for the calibration div
+ */
+ var setupCalibrationDiv = function (data) {
+ var $elem = data.$elem;
+ var settings = data.settings;
+ var html = '\
+
\
+
\
+
Please enter the length of this scale on your screen
\
+
cm\
+
\
+
';
+ var $calDiv = $(html);
+ //$rulerDiv.append($cmDiv);
+ //$rulerDiv.append($cmInput);
+ //$calDiv.append($rulerDiv);
+ $elem.append($calDiv);
+ var calRect = geom.rectangle($calDiv);
+ var screenRect = fn.getFullscreenRect(data);
+ console.debug('calRect:', calRect);
+ console.debug('screenRect:', screenRect);
+ calRect.setCenter(screenRect.getCenter());
+ console.debug('calRect:', calRect);
+ calRect.adjustDiv($calDiv);
};
/** creates HTML structure for the scale mode menu
@@ -334,11 +378,10 @@
var $select = $(event.target);
var newMode = $select.find("option:selected").attr("name");
console.debug('setting mode to:', newMode);
- fn.setScaleMode(data, newMode);
var $div = data.scaleModeDiv;
$(document).off("click.scalemode");
$div.fadeOut();
- fn.redisplay(data);
+ digilib.actions.setScaleMode(data, newMode);
};
// creates HTML structure for a single button
diff -r 55572a4bbf68 -r 678313a989a9 webapp/src/main/webapp/jquery/jquery.digilib.css
--- a/webapp/src/main/webapp/jquery/jquery.digilib.css Thu Jan 26 15:02:29 2012 +0100
+++ b/webapp/src/main/webapp/jquery/jquery.digilib.css Thu Jan 26 15:06:00 2012 +0100
@@ -110,6 +110,32 @@
font-weight: bold;
}
+div.digilib div.calibration {
+ background: url('blue.png');
+ position: absolute;
+ border: 1px solid lightcyan;
+ top: 0px;
+ width: 400px;
+ display: none;
+ z-index: 9999;
+ }
+
+div.digilib div.ruler {
+ width: 100%;
+ height: 100%;
+ padding-bottom: 10px;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-weight: bold;
+ text-align: center;
+ color: lightcyan;
+ background: url('ruler-top.gif') 0px -1px repeat-x;
+ }
+
+div.digilib div.cm {
+ padding: 10px;
+ }
+
div.infobutton {
background-color: white;
color: grey;
diff -r 55572a4bbf68 -r 678313a989a9 webapp/src/main/webapp/jquery/jquery.digilib.geometry.js
--- a/webapp/src/main/webapp/jquery/jquery.digilib.geometry.js Thu Jan 26 15:02:29 2012 +0100
+++ b/webapp/src/main/webapp/jquery/jquery.digilib.geometry.js Thu Jan 26 15:06:00 2012 +0100
@@ -133,10 +133,10 @@
} else if (y == null) {
// assume x is rectangle
that = {
- x : x.x,
- y : x.y,
- width : x.width,
- height : x.height
+ x : x.x || 0,
+ y : x.y || 0,
+ width : x.width || 0,
+ height : x.height || 0
};
} else {
// assume x and y are Position
diff -r 55572a4bbf68 -r 678313a989a9 webapp/src/main/webapp/jquery/jquery.digilib.js
--- a/webapp/src/main/webapp/jquery/jquery.digilib.js Thu Jan 26 15:02:29 2012 +0100
+++ b/webapp/src/main/webapp/jquery/jquery.digilib.js Thu Jan 26 15:06:00 2012 +0100
@@ -934,7 +934,7 @@
setupZoomDrag(data);
renderZoomArrows(data);
};
-
+
/** returns maximum size for scaler img in fullscreen mode.
*
*/
@@ -963,10 +963,17 @@
// account for left/right border, body margins and additional requirements
var imgW = winW - borderW - buttonsW;
var imgH = winH - borderH;
- console.debug(winW, winH, 'winW:', $win.width(), 'border:', borderW, 'buttonsW:', buttonsW, 'calc:', imgW);
+ console.debug('screen w/h:', winW, winH, 'window.width', $win.width(), 'border:', borderW, 'buttonsW:', buttonsW, 'img w/h:', imgW, imgH);
return geom.size(imgW, imgH);
};
+ /** returns a rectangle.with the fullscreen dimensions
+ *
+ */
+ var getFullscreenRect = function (data) {
+ return geom.rectangle(getFullscreenImgSize(data));
+ };
+
/** creates HTML structure for digilib in elem
*
*/
@@ -1758,6 +1765,7 @@
setFitMode : setFitMode,
canMove : canMove,
isFullArea : isFullArea,
+ getFullscreenRect : getFullscreenRect,
getBorderWidth : getBorderWidth,
cropFloat : cropFloat,
cropFloatStr : cropFloatStr