Mercurial > hg > digilib-old
comparison client/digitallibrary/greyskin/dllib.js @ 443:089adc9e2a5f
placement of size menu
author | hertzhaft |
---|---|
date | Fri, 13 Jan 2006 12:03:25 +0100 |
parents | 85aef29cc1da |
children | 6154dfc67615 |
comparison
equal
deleted
inserted
replaced
442:3d37d8eae372 | 443:089adc9e2a5f |
---|---|
22 | 22 |
23 ! Requires baselib.js ! | 23 ! Requires baselib.js ! |
24 | 24 |
25 */ | 25 */ |
26 digilibVersion = "Digilib NG"; | 26 digilibVersion = "Digilib NG"; |
27 dllibVersion = "2.029"; | 27 dllibVersion = "2.031"; |
28 isDigilibInitialized = false; // gets set to true in dl_param_init | 28 isDigilibInitialized = false; // gets set to true in dl_param_init |
29 reloadPage = true; // reload the page when parameters are changed, otherwise update only "src" attribute of scaler img | 29 reloadPage = true; // reload the page when parameters are changed, otherwise update only "src" attribute of scaler img |
30 | 30 |
31 // global variables | 31 // global variables |
32 dlTrafo = new Transform(); | 32 dlTrafo = new Transform(); |
353 function loadScalerImage(detail) { | 353 function loadScalerImage(detail) { |
354 var pic = getElement('pic'); | 354 var pic = getElement('pic'); |
355 var scaler = getElement('scaler'); | 355 var scaler = getElement('scaler'); |
356 var zoomdiv = getElement("zoom"); // test for presence only | 356 var zoomdiv = getElement("zoom"); // test for presence only |
357 var overlay = getElement("overlay"); // test for presence only | 357 var overlay = getElement("overlay"); // test for presence only |
358 var about = getElement("bird"); // test for presence only | 358 var about = getElement("about"); // test for presence only |
359 var bird = getElement("bird"); // test for presence only | 359 var bird = getElement("bird"); // test for presence only |
360 var picsize = bestPicSize(scaler, 50); | 360 var picsize = bestPicSize(scaler, 50); |
361 var src = "../servlet/Scaler?" | 361 var src = "../servlet/Scaler?" |
362 + getQueryString() | 362 + getQueryString() |
363 + "&dw=" + picsize.width | 363 + "&dw=" + picsize.width |
393 } | 393 } |
394 // put the visible marks on the image | 394 // put the visible marks on the image |
395 dlTrafo = parseTrafo(scalerImg); | 395 dlTrafo = parseTrafo(scalerImg); |
396 // debugProps(dlArea, "dlArea"); | 396 // debugProps(dlArea, "dlArea"); |
397 for (var i = 0; i < dlMarks.length; i++) { | 397 for (var i = 0; i < dlMarks.length; i++) { |
398 var div = document.getElementById("mark" + i) || createMarkDiv(i); | 398 var div = getElement("mark" + i) || createMarkDiv(i); |
399 var mark = dlMarks[i]; | 399 var mark = dlMarks[i]; |
400 // debugProps(mark, "mark"); | 400 // debugProps(mark, "mark"); |
401 if (dlArea.containsPosition(mark)) { | 401 if (dlArea.containsPosition(mark)) { |
402 var mpos = dlTrafo.transform(mark); // FIX ME: transform does not change anything | 402 var mpos = dlTrafo.transform(mark); // FIX ME: transform does not change anything |
403 // debugProps(mark, "mpos"); | 403 // debugProps(mark, "mpos"); |
581 display(); | 581 display(); |
582 } | 582 } |
583 | 583 |
584 function isFullArea(area) { | 584 function isFullArea(area) { |
585 if (!area) area = dlArea; | 585 if (!area) area = dlArea; |
586 return ((area.width == 1.0) && (area.height == 1.0)); | 586 // pixel by pixel is not always full area |
587 return (area.width == 1.0) && (area.height == 1.0) && ! hasFlag("clip"); | |
587 } | 588 } |
588 | 589 |
589 function canMove(movx, movy) { | 590 function canMove(movx, movy) { |
590 if (isFullArea()) return false; | 591 if (isFullArea()) return false; |
591 var x2 = dlArea.x + dlArea.width; | 592 var x2 = dlArea.x + dlArea.width; |
717 | 718 |
718 function showAboutDiv(show) { | 719 function showAboutDiv(show) { |
719 // show or hide "about" div | 720 // show or hide "about" div |
720 var elem = getElement("about"); | 721 var elem = getElement("about"); |
721 if (elem == null) { | 722 if (elem == null) { |
722 if (!show) return; | 723 if (show) alert("About Digilib - dialog missing in HTML code!" |
723 alert("About Digilib - dialog missing in HTML code!" | |
724 + "\nDigilib Version: " + digilibVersion | 724 + "\nDigilib Version: " + digilibVersion |
725 + "\JSP Version: " + jspVersion | 725 + "\JSP Version: " + jspVersion |
726 + "\ndlLib Version: " + dllibVersion | 726 + "\ndlLib Version: " + dllibVersion |
727 + "\nbaseLib Version: " + baseLibVersion); | 727 + "\nbaseLib Version: " + baseLibVersion); |
728 return; | 728 return; |
729 } | 729 } |
730 document.getElementById("digilib-version").innerHTML = "Digilib Version: " + digilibVersion; | 730 if (show) { |
731 document.getElementById("jsp-version").innerHTML = "JSP Version: " + jspVersion; | 731 getElement("digilib-version").innerHTML = "Digilib Version: " + digilibVersion; |
732 document.getElementById("baselib-version").innerHTML = "baseLib Version: " + baseLibVersion; | 732 getElement("jsp-version").innerHTML = "JSP Version: " + jspVersion; |
733 document.getElementById("dllib-version").innerHTML = "dlLib Version: " + dllibVersion; | 733 getElement("baselib-version").innerHTML = "baseLib Version: " + baseLibVersion; |
734 getElement("dllib-version").innerHTML = "dlLib Version: " + dllibVersion; | |
735 var aboutRect = getElementRect(elem); | |
736 aboutRect.setCenter(getWinRect().getCenter()); | |
737 moveElement(elem, aboutRect); | |
738 } | |
734 showElement(elem, show); | 739 showElement(elem, show); |
735 } | 740 } |
736 | 741 |
737 function loadBirdImage() { | 742 function loadBirdImage() { |
738 var img = getElement("bird-image"); | 743 var img = getElement("bird-image"); |
827 moveElement(arrow, rect); | 832 moveElement(arrow, rect); |
828 showElement(arrow, show); | 833 showElement(arrow, show); |
829 } | 834 } |
830 | 835 |
831 function showArrows() { | 836 function showArrows() { |
837 // show the 4 arrow bars on top of scaler img according to current dlArea | |
832 if (defined(scalerImg.complete) && !scalerImg.complete && !browserType.isN4 ) { | 838 if (defined(scalerImg.complete) && !scalerImg.complete && !browserType.isN4 ) { |
833 setTimeout("showArrows()", 100); | 839 setTimeout("showArrows()", 100); |
834 return; | 840 return; |
835 } | 841 } |
836 var r = getElementRect(scalerImg); | 842 var r = getElementRect(scalerImg); |
869 // mousedown handler: start drag | 875 // mousedown handler: start drag |
870 startPos = evtPosition(evt); | 876 startPos = evtPosition(evt); |
871 unregisterEvent("mousedown", document, calibrationStartDrag); | 877 unregisterEvent("mousedown", document, calibrationStartDrag); |
872 registerEvent("mousemove", document, calibrationMove); | 878 registerEvent("mousemove", document, calibrationMove); |
873 registerEvent("mouseup", document, calibrationEndDrag); | 879 registerEvent("mouseup", document, calibrationEndDrag); |
874 registerEvent("mousemove", calDiv, calibrationMove); | |
875 registerEvent("mouseup", calDiv, calibrationEndDrag); | |
876 newRect = new Rectangle( | 880 newRect = new Rectangle( |
877 startPos.x, | 881 startPos.x, |
878 startPos.y, | 882 startPos.y, |
879 xDir ? 1 : CALIBRATION_WIDTH, | 883 xDir ? 1 : CALIBRATION_WIDTH, |
880 xDir ? CALIBRATION_WIDTH : 1 | 884 xDir ? CALIBRATION_WIDTH : 1 |
900 | 904 |
901 function calibrationEndDrag(evt) { | 905 function calibrationEndDrag(evt) { |
902 // mouseup handler: calibrate | 906 // mouseup handler: calibrate |
903 unregisterEvent("mousemove", document, calibrationMove); | 907 unregisterEvent("mousemove", document, calibrationMove); |
904 unregisterEvent("mouseup", document, calibrationEndDrag); | 908 unregisterEvent("mouseup", document, calibrationEndDrag); |
905 unregisterEvent("mousemove", calDiv, calibrationMove); | |
906 unregisterEvent("mouseup", calDiv, calibrationEndDrag); | |
907 if (xDir) { | 909 if (xDir) { |
908 var val = newRect.width * 0.254; // ratio dm/inch | 910 var val = newRect.width * 0.254; // ratio dm/inch |
909 cookie.add("ddpi", val); | 911 cookie.add("ddpi", val); |
910 cookie.add("ddpix", val); | 912 cookie.add("ddpix", val); |
911 } else { | 913 } else { |
917 moveCenter(true); | 919 moveCenter(true); |
918 return stopEvent(evt); | 920 return stopEvent(evt); |
919 } | 921 } |
920 } | 922 } |
921 | 923 |
922 function originalSize() { | 924 function originalSize(on) { |
923 var dpi = cookie.get("ddpi"); | 925 // set osize flag, needs calibrated screen |
924 if (dpi == null) { | 926 if (on) { |
925 alert("Screen has not yet been calibrated - using default value of 72 dpi"); | 927 var dpi = cookie.get("ddpi"); |
926 dpi = 72; | 928 if (dpi == null) { |
927 } | 929 alert("Screen has not yet been calibrated - using default value of 72 dpi"); |
928 setParameter("ddpi", dpi); | 930 dpi = 72; |
929 addFlag("osize"); | 931 } |
930 display(); | 932 setParameter("ddpi", dpi); |
933 addFlag("osize"); | |
934 display(); | |
935 } | |
936 else removeFlag("osize"); | |
931 } | 937 } |
932 | 938 |
933 function pixelByPixel() { | 939 function pixelByPixel(on) { |
934 addFlag("clip"); | 940 // sets clip flag |
935 display(); | 941 if (on) { |
942 addFlag("clip"); | |
943 display(); | |
944 } | |
945 else removeFlag("clip"); | |
936 } | 946 } |
937 | 947 |
938 function resize(factor) { | 948 function resize(factor) { |
939 setParameter("ws", factor); | 949 setParameter("ws", factor); |
950 showSizeMenu(false); | |
940 display(); | 951 display(); |
952 } | |
953 | |
954 function showSizeMenu(show) { | |
941 var menu = getElement("sizes"); | 955 var menu = getElement("sizes"); |
942 showElement(menu, false); | 956 if (show) { |
943 } | 957 // align menu with button |
944 | 958 var buttonPos = getElementPosition(getElement("size")); |
945 function sizeMenu() { | 959 moveElement(menu, new Position(buttonPos.x - 50, buttonPos.y)); |
946 var menu = getElement("sizes"); | 960 } |
947 showElement(menu, true); | 961 showElement(menu, show); |
948 } | 962 } |
949 | |
950 // :tabSize=4:indentSize=4:noTabs=true: | 963 // :tabSize=4:indentSize=4:noTabs=true: |
951 | 964 |