Diff for /zogiLib/js/dllib.js between versions 1.1 and 1.5

version 1.1, 2004/07/21 17:44:51 version 1.5, 2004/11/03 15:24:46
Line 1 Line 1
 /* Copyright (C) 2003,2004 WTWG Uni Bern and others  /* Copyright (C) 2003,2004 IT-Group MPIWG, WTWG Uni Bern and others
     
 This program is free software; you can redistribute it and/or  This program is free software; you can redistribute it and/or
 modify it under the terms of the GNU General Public License  modify it under the terms of the GNU General Public License
Line 14  You should have received a copy of the G Line 14  You should have received a copy of the G
 along with this program; if not, write to the Free Software  along with this program; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA
     
 Authors: ROC 20.7.2004  Authors:
   first version by Christian Luginbuehl, 01.05.2003    Christian Luginbuehl, 01.05.2003 (first version)
   Changed for digiLib in Zope by DW 24.03.2004    DW 24.03.2004 (Changed for digiLib in Zope)
     Robert Casties, 2.11.2004
   
 Requires baselib.js !    ! Requires baselib.js !
   
 */  */
   
 var dlScriptVersion = "1.0b1";  
   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 45  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 70  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 115  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 193  function bestPicSize(elem, inset) { Line 191  function bestPicSize(elem, inset) {
  *     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 211  function dl_param_init() { Line 218  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 218  function dl_init() { Line 228  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 290  function setMark(reload) { Line 300  function setMark(reload) {
     alert("Only 8 marks are possible at the moment!");      alert("Only 8 marks are possible at the moment!");
     return;      return;
     }      }
       window.focus();
   
     function markEvent(evt) {      function markEvent(evt) {
     // event handler adding a new mark      // event handler adding a new mark
     unregisterMouseDown(elemScaler, markEvent);      unregisterEvent("mousedown", elemScaler, markEvent);
     var p = dlTrafo.invtransform(evtPosition(evt));      var p = dlTrafo.invtransform(evtPosition(evt));
     addMark(p);      addMark(p);
     if (defined(reload)&&(!reload)) {      if (defined(reload)&&(!reload)) {
Line 305  function setMark(reload) { Line 316  function setMark(reload) {
     }      }
   
     // starting event capture      // starting event capture
     registerMouseDown(elemScaler, markEvent);      registerEvent("mousedown", elemScaler, markEvent);
 }  }
   
   
Line 350  function zoomArea() { Line 361  function zoomArea() {
         showElement(eck2, true);          showElement(eck2, true);
         showElement(eck3, true);          showElement(eck3, true);
         showElement(eck4, true);          showElement(eck4, true);
         registerMouseMove(elemScaler, zoomMove);          // show moving
         registerMouseMove(eck4, zoomMove);          registerEvent("mousemove", elemScaler, zoomMove);
           registerEvent("mousemove", eck4, zoomMove);
           // enable drag-to-zoom
           registerEvent("mouseup", elemScaler, zoomClick);
           registerEvent("mouseup", eck4, zoomClick);
     } else {      } else {
         // second click -- end moving          // second click -- end moving
         pt2 = evtPosition(evt);          pt2 = evtPosition(evt);
Line 359  function zoomArea() { Line 374  function zoomArea() {
         showElement(eck2, false);          showElement(eck2, false);
         showElement(eck3, false);          showElement(eck3, false);
         showElement(eck4, false);          showElement(eck4, false);
         unregisterMouseMove(elemScaler, zoomMove);          unregisterEvent("mousemove", elemScaler, zoomMove);
         unregisterMouseMove(eck4, zoomMove);          unregisterEvent("mousemove", eck4, zoomMove);
         unregisterMouseDown(elemScaler, zoomClick);          unregisterEvent("mousedown", elemScaler, zoomClick);
         unregisterMouseDown(eck4, zoomClick);          unregisterEvent("mousedown", eck4, zoomClick);
         var p1 = dlTrafo.invtransform(pt1);          var p1 = dlTrafo.invtransform(pt1);
         var p2 = dlTrafo.invtransform(pt2);          var p2 = dlTrafo.invtransform(pt2);
         var ww = p2.x-p1.x;          var ww = p2.x-p1.x;
Line 395  function zoomArea() { Line 410  function zoomArea() {
     }      }
   
     // starting event capture      // starting event capture
     registerMouseDown(elemScaler, zoomClick);      registerEvent("mousedown", elemScaler, zoomClick);
     registerMouseDown(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 434  function moveCenter() { Line 447  function moveCenter() {
   
     function moveCenterEvent(evt) {      function moveCenterEvent(evt) {
     // move to handler      // move to handler
     unregisterMouseDown(elemScaler, moveCenterEvent);      unregisterEvent("mousedown", elemScaler, moveCenterEvent);
     var pt = dlTrafo.invtransform(evtPosition(evt));      var pt = dlTrafo.invtransform(evtPosition(evt));
     var newarea = new Rectangle(pt.x-0.5*dlArea.width, pt.y-0.5*dlArea.height, dlArea.width, dlArea.height);      var newarea = new Rectangle(pt.x-0.5*dlArea.width, pt.y-0.5*dlArea.height, dlArea.width, dlArea.height);
     newarea = dlMaxArea.fit(newarea);      newarea = dlMaxArea.fit(newarea);
Line 445  function moveCenter() { Line 458  function moveCenter() {
     }      }
   
     // starting event capture      // starting event capture
     registerMouseDown(elemScaler, moveCenterEvent);      registerEvent("mousedown", elemScaler, moveCenterEvent);
 }  }
   
   function moveBy(movx, movy) {
       // move visible area by movx and movy (in units of dw, dh)
       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() {
Line 462  function getRef() { Line 492  function getRef() {
     }      }
     return hyperlinkRef;      return hyperlinkRef;
 }  }
   
   function getRefWin(type, msg) {
       // shows an alert with a reference to the current digilib set
       if (! msg) {
       msg = "Link for HTML documents";
       }
       prompt(msg, getRef());
   }

Removed from v.1.1  
changed lines
  Added in v.1.5


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