Diff for /zogiLib/js/dllib.js between versions 1.4 and 1.6

version 1.4, 2004/10/04 22:29:50 version 1.6, 2005/11/08 10:13:31
Line 17  Foundation, Inc., 59 Temple Place - Suit Line 17  Foundation, Inc., 59 Temple Place - Suit
 Authors:  Authors:
   Christian Luginbuehl, 01.05.2003 (first version)    Christian Luginbuehl, 01.05.2003 (first version)
   DW 24.03.2004 (Changed for digiLib in Zope)    DW 24.03.2004 (Changed for digiLib in Zope)
   Robert Casties, 04.10.2004    Robert Casties, 2.11.2004
   
   ! Requires baselib.js !    ! Requires baselib.js !
   
 */  */
   
 var dlScriptVersion = "1.0b3";  
   function identify() {
           // used for identifying a digilib instance
           // Relato uses that function - lugi
           return "Digilib 0.6";
   }
   
   
 /*  /*
  * more parameter handling   * more parameter handling
  */   */
   
 var dlArea = new Rectangle(0.0, 0.0, 1.0, 1.0);  
 var dlMaxArea = new Rectangle(0.0, 0.0, 1.0, 1.0);  
   
 function parseArea() {  function parseArea() {
     // returns area Rectangle from current parameters      // returns area Rectangle from current parameters
     return new Rectangle(getParameter("wx"), getParameter("wy"), getParameter("ww"), getParameter("wh"));      return new Rectangle(getParameter("wx"), getParameter("wy"), getParameter("ww"), getParameter("wh"));
Line 46  function setParamFromArea(rect) { Line 49  function setParamFromArea(rect) {
     return true;      return true;
 }  }
   
 var dlTrafo = new Transform();  
   
 function parseTrafo(elem) {  function parseTrafo(elem) {
     // returns Transform from current dlArea and picsize      // returns Transform from current dlArea and picsize
     var picsize = getElementRect(elem);      var picsize = getElementRect(elem);
Line 71  function parseTrafo(elem) { Line 72  function parseTrafo(elem) {
 }  }
   
   
 var dlMarks = new Array();  
   
 function parseMarks() {  function parseMarks() {
     // returns marks array from current parameters      // returns marks array from current parameters
     var marks = new Array();      var marks = new Array();
Line 116  function deleteMark() { Line 115  function deleteMark() {
     return true;      return true;
 }  }
   
 var dlFlags = new Object();  
   
 function hasFlag(mode) {  function hasFlag(mode) {
     // returns if mode flag is set      // returns if mode flag is set
     return (dlFlags[mode]);      return (dlFlags[mode]);
Line 189  function bestPicSize(elem, inset) { Line 186  function bestPicSize(elem, inset) {
     return ws;      return ws;
 }  }
   
   function setDLParam(e, s) {
       // sets parameter based on HTML event
       var nam;
       var val;
       if (s.type && (s.type == "select-one")) {
           nam = s.name;
           val = s.options[s.selectedIndex].value;
       } else if (s.name && s.value) {
           nam = s.name;
           val = s.value;
       }
       if (nam && val) {
           setParameter(nam, val);
           display();
       } else {
           alert("unable to process event!");
       }
       return true;
   }
   
   
 /* **********************************************  /* **********************************************
  *     digilib specific routines   *     digilib specific routines
  * ******************************************** */   * ******************************************** */
   
 var elemScaler = null;  
 var picElem = null;  
   
   
 function dl_param_init() {  function dl_param_init() {
     // parameter initialisation before onload      // parameter initialisation before onload
       if (!baseScriptVersion) {
           base_init();
       }
       dlScriptVersion = "1.1b";
       dlArea = new Rectangle(0.0, 0.0, 1.0, 1.0);
       dlMaxArea = new Rectangle(0.0, 0.0, 1.0, 1.0);
       dlTrafo = new Transform();
       dlMarks = new Array();
       dlFlags = new Object();
       elemScaler = null;
       picElem = null;
       ZOOMFACTOR = Math.sqrt(2);
   
     // put the query parameters (sans "?") in the parameters array      // put the query parameters (sans "?") in the parameters array
     parseParameters(location.search.slice(1));      parseParameters(location.search.slice(1));
Line 212  function dl_param_init() { Line 238  function dl_param_init() {
   
 function dl_init() {  function dl_init() {
     // initalisation on load      // initalisation on load
       if (!dlScriptVersion) {
           dl_param_init();
       }
     elemScaler = getElement("scaler", true);      elemScaler = getElement("scaler", true);
     picElem = getElement("pic", true);      picElem = getElement("pic", true);
     if (picElem == null && elemScaler) {      if (picElem == null && elemScaler) {
Line 219  function dl_init() { Line 248  function dl_init() {
     picElem = elemScaler.document.images[0];      picElem = elemScaler.document.images[0];
     }      }
     if ((!elemScaler)||(!picElem)) {      if ((!elemScaler)||(!picElem)) {
     alert("Sorry, zogilib doesn't work here!");          alert("Sorry, digilib doesn't work here!");
     return false;      return false;
     }      }
     // give a name to the window containing digilib      // give a name to the window containing digilib
Line 405  function zoomArea() { Line 434  function zoomArea() {
     registerEvent("mousedown", eck4, zoomClick);      registerEvent("mousedown", eck4, zoomClick);
 }  }
   
 var ZOOMFACTOR = Math.sqrt(2);  
   
 function zoomBy(factor) {  function zoomBy(factor) {
     // zooms by the given factor      // zooms by the given factor
     var newarea = dlArea.copy();      var newarea = dlArea.copy();
Line 454  function moveCenter() { Line 481  function moveCenter() {
     registerEvent("mousedown", elemScaler, moveCenterEvent);      registerEvent("mousedown", elemScaler, moveCenterEvent);
 }  }
   
   function moveBy(movx, movy) {
       // move visible area by movx and movy (in units of ww, wh)
       if ((dlArea.width == 1.0)&&(dlArea.height == 1.0)) {
           // nothing to do
           return;
       }
       var newarea = dlArea.copy();
       newarea.x += parseFloat(movx)*dlArea.width;
       newarea.y += parseFloat(movy)*dlArea.height;
       newarea = dlMaxArea.fit(newarea);
       // set parameters
       setParamFromArea(newarea);
       parseArea();
       display();
   }
   
 function getRef() {  function getRef() {
     // returns a reference to the current digilib set      // returns a reference to the current digilib set
Line 476  function getRefWin(type, msg) { Line 517  function getRefWin(type, msg) {
     }      }
     prompt(msg, getRef());      prompt(msg, getRef());
 }  }
   
   
   function getQuality() {
       // returns the current q setting
       for (var i = 0; i < 3; i++) {
           if (hasFlag("q"+i)) {
               return i;
           }
       }
       return 1
   }
   
   function setQuality(qual) {
       // set the image quality
       for (var i = 0; i < 3; i++) {
           removeFlag("q"+i);
           if (i == qual) {
               addFlag("q"+i);
           }
       }
       setParameter("mo", getAllFlags());
       display();
   }    
   
   function setQualityWin(msg) {
       // dialog for setting quality
       if (! msg) {
           msg = "Quality (0..2)";
       }
       var q = getQuality();
       var newq = window.prompt(msg, q);
       if (newq) {
           setQuality(newq);
       }
   }
   
   function mirror(dir) {
       // mirror the image horizontally or vertically
       if (dir == "h") {
           toggleFlag("hmir");
       } else {
           toggleFlag("vmir");
       }
       setParameter("mo", getAllFlags());
       display();
   }
   
   function gotoPage(gopage) {
       // goto given page nr (+/- relative)
       setParameter("pn", gopage);
       var pn = parseInt(getParameter("pn"));
       if (pn < 1) {
           pn = 1;
           setParameter("pn", pn);
       }
       // TODO: check for last page
       display(1);
   }
   
   function gotoPageWin() {
       // dialog to ask for new page nr
       var pn = getParameter('pn');
       var gopage = window.prompt("Go to page", pn);
       if (gopage) {
           gotoPage(gopage);
       }
   }
   
   function setParamWin(param, text) {
       // dialog to ask for new parameter value
       var val = getParameter(param);
       var newval = window.prompt(text, val);
       if (newval) {
           setParameter(param, newval);
           display();
       }
   }
   
   function showOptions(show) {
       // show or hide option div
       var elem = getElement("dloptions");
       showElement(elem, show);
   }
   

Removed from v.1.4  
changed lines
  Added in v.1.6


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>