annotate client/digitallibrary/greyskin/dllib.js @ 451:a6c83fa262b2

still somewhat experimental intermediary release - Digilib is now an object with methods - in theory we could now have more than one digilib instance on a page - for compatibility one instance is created and wrapper methods exist - setting a mark recenters the view for some (unrelated) reason
author robcast
date Mon, 23 Jan 2006 22:36:29 +0100
parents 4255c09a8147
children 6edd60cfa47f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
1 /* Copyright (C) 2003,2004 IT-Group MPIWG, WTWG Uni Bern and others
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
2
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
3 This program is free software; you can redistribute it and/or
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
4 modify it under the terms of the GNU General Public License
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
5 as published by the Free Software Foundation; either version 2
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
6 of the License, or (at your option) any later version.
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
7
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
8 This program is distributed in the hope that it will be useful,
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
11 GNU General Public License for more details.
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
12
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
13 You should have received a copy of the GNU General Public License
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
14 along with this program; if not, write to the Free Software
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
15 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
16
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
17 Authors:
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
18 Christian Luginbuehl, 01.05.2003 (first version)
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
19 DW 24.03.2004 (Changed for digiLib in Zope)
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
20 Robert Casties, 8.11.2005
411
c3fe058f6b0e some general refactoring;
hertzhaft
parents: 401
diff changeset
21 Martin Raspe <hertzhaft@biblhertz.it>, 12.12.2005
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
22
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
23 ! Requires baselib.js !
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
24
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
25 */
411
c3fe058f6b0e some general refactoring;
hertzhaft
parents: 401
diff changeset
26 digilibVersion = "Digilib NG";
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
27 dllibVersion = "2.040";
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
28
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
29 MAX_AREA = new Rectangle(0.0, 0.0, 1.0, 1.0);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
30
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
31 // default inset (for scalerImg relativ to scalerDiv
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
32 INSET = 40; // because of scrollbars of main window and scaler [Firefox bug?]
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
33
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
34 // mouse drag area that counts as one click
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
35 MIN_AREA_SIZE = 3 * 3 + 1;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
36
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
37 // standard zoom factor
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
38 ZOOMFACTOR = Math.sqrt(2);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
39
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
40 // bird's eye view dimensions
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
41 BIRD_MAXX = 100;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
42 BIRD_MAXY = 100;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
43
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
44 // with of arrow bars
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
45 ARROW_WIDTH = 32;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
46
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
47 // with of calibration bar
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
48 CALIBRATION_WIDTH = 64;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
49
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
50 function identify() {
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
51 // used for identifying a digilib instance
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
52 // Relato uses that function - lugi
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
53 return digilibVersion;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
54 }
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
55
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
56 function createMarkDiv(index) {
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
57 var div = document.createElement("div");
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
58 div.className = "mark";
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
59 div.id = "mark" + index;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
60 div.innerHTML = index + 1;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
61 document.body.appendChild(div);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
62 return div;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
63 }
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
64
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
65 function bestPicSize(elem, inset) {
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
66 // returns a Size with the best image size for the given element
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
67 if (! defined(inset)) {
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
68 inset = 25;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
69 }
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
70 var ws = getWinSize();
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
71 var es = getElementPosition(elem);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
72 if (es) {
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
73 ws.width = ws.width - es.x - inset;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
74 ws.height = ws.height - es.y - inset;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
75 }
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
76 return ws;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
77 }
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
78
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
79
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
80 /****************************************************
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
81 * digilib specific classes (must be defined first)
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
82 ****************************************************/
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
83
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
84 /*
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
85 * Marks class
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
86 */
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
87 function Marks() {
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
88 return this;
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
89 }
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
90 // Marks inherits from Array
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
91 Marks.prototype = new Array();
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
92 Marks.prototype.parse = function(query) {
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
93 this.length = 0;
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
94 if (query.indexOf(";") >= 0) {
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
95 var pa = query.split(";"); // old format with ";"
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
96 } else {
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
97 var pa = query.split(","); // new format
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
98 }
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
99 for (var i = 0; i < pa.length ; i++) {
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
100 var pos = pa[i].split("/");
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
101 if (pos.length > 1) this.push(new Position(pos[0], pos[1]));
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
102 }
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
103 }
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
104 Marks.prototype.getAll = function() {
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
105 var ma = new Array();
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
106 for (var i = 0; i < this.length; i++) {
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
107 ma.push(cropFloat(this[i].x) + "/" + cropFloat(this[i].y));
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
108 }
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
109 return ma.join(",");
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
110 }
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
111 Marks.prototype.addEvent = function(evt, digilib) {
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
112 // add a mark from a screen event
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
113 if (!digilib) digilib = dl;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
114 var pos = digilib.trafo.invtransform(evtPosition(evt));
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
115 this.push(pos);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
116 }
429
813a155d1338 added showArrows() function (navigation arrows overlay)
hertzhaft
parents: 416
diff changeset
117
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
118 /*
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
119 * DLParameters -- digilib parameter class
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
120 */
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
121 function DLParameters() {
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
122 // flags for parameter sets
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
123 this.PARAM_FILE = 1;
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
124 this.PARAM_MODE = 2;
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
125 this.PARAM_DIM = 4;
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
126 this.PARAM_IMAGE = 8;
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
127 this.PARAM_DPI = 16;
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
128 this.PARAM_SIZE = 32;
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
129 this.PARAM_MARK = 64;
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
130 this.PARAM_PAGES = 128;
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
131 this.PARAM_ALL = 255;
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
132 /* request parameters */
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
133 with (this) {
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
134 // file
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
135 define('fn', '', PARAM_FILE);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
136 define('pn', '1', PARAM_FILE);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
137 // mode
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
138 define('mo', '', PARAM_MODE);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
139 // relative dimensions of zoomed image
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
140 define('wx', '0.0', PARAM_DIM);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
141 define('wy', '0.0', PARAM_DIM);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
142 define('ww', '1.0', PARAM_DIM);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
143 define('wh', '1.0', PARAM_DIM);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
144 // image manipulation
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
145 define('brgt', '0.0', PARAM_IMAGE);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
146 define('cont', '0.0', PARAM_IMAGE);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
147 define('rot', '0.0', PARAM_IMAGE);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
148 define('rgba', '', PARAM_IMAGE);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
149 define('rgbm', '', PARAM_IMAGE);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
150 // resolution
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
151 define('ddpi', '', PARAM_DPI);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
152 define('ddpix', '', PARAM_DPI);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
153 define('ddpiy', '', PARAM_DPI);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
154 // marks
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
155 define('mk', '', PARAM_MARK);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
156 // pages total
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
157 define('pt', '0', PARAM_PAGES);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
158 // size
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
159 define('ws', '1.0', PARAM_SIZE);
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
160 }
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
161 return this;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
162 }
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
163 DLParameters.prototype = new Parameters();
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
164 // move the inherited getAll because we need it later
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
165 DLParameters.prototype._getAll = Parameters.prototype.getAll;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
166 DLParameters.prototype.getAll = function(paDetail, moDetail, digilib) {
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
167 // get Flags and Marks first
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
168 if (!digilib) digilib = dl;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
169 var mo = digilib.flags.getAll(moDetail);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
170 this.set("mo", mo);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
171 var mk = digilib.marks.getAll();
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
172 this.set("mk", mk);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
173 var ret = this._getAll(paDetail);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
174 return ret;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
175 }
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
176
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
177 /*
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
178 * DLModes -- digilib flags class
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
179 */
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
180 function DLFlags() {
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
181 // flags for mode sets
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
182 this.MODE_QUAL = 1;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
183 this.MODE_SIZE = 2;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
184 this.MODE_MIR = 4;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
185 this.MODE_OTHER = 128;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
186 this.MODE_ALL = 255;
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
187 /* mode flags */
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
188 with (this) {
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
189 define('q0', MODE_QUAL);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
190 define('q1', MODE_QUAL);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
191 define('q2', MODE_QUAL);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
192 define('fit', MODE_SIZE);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
193 define('clip', MODE_SIZE);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
194 define('osize', MODE_SIZE);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
195 define('vmir', MODE_MIR);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
196 define('hmir', MODE_MIR);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
197 }
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
198 return this;
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
199 }
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
200 // inherits from Flags
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
201 DLFlags.prototype = new Flags();
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
202
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
203
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
204 /*
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
205 * Digilib -- digilib base class
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
206 */
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
207 function Digilib() {
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
208 if (!baseLibVersion) alert("ERROR: baselib.js not loaded!");
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
209 this.trafo = null;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
210 // page elements
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
211 this.scalerDiv = null;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
212 this.scalerImg = null;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
213 /* parse parameters */
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
214 // put the query parameters (sans "?") in the parameters array
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
215 this.params = new DLParameters();
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
216 this.params.parse(location.search.slice(1));
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
217 // treat special parameters
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
218 this.area = this.parseArea();
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
219 this.marks = new Marks();
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
220 this.marks.parse(this.params.get("mk"));
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
221 this.flags = new DLFlags();
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
222 this.flags.parse(this.params.get("mo"));
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
223
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
224 return this;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
225 }
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
226 Digilib.prototype.parseArea = function() {
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
227 // returns area Rectangle from current parameters
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
228 return new Rectangle(
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
229 this.params.get("wx"),
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
230 this.params.get("wy"),
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
231 this.params.get("ww"),
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
232 this.params.get("wh"));
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
233 }
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
234 Digilib.prototype.setParamFromArea = function(rect) {
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
235 // sets digilib wx etc. from rect
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
236 this.params.set("wx", cropFloat(rect.x));
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
237 this.params.set("wy", cropFloat(rect.y));
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
238 this.params.set("ww", cropFloat(rect.width));
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
239 this.params.set("wh", cropFloat(rect.height));
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
240 return true;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
241 }
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
242 Digilib.prototype.parseTrafo = function(elem) {
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
243 // returns Transform from current dlArea and picsize
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
244 var picsize = getElementRect(elem);
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
245 var trafo = new Transform();
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
246 // subtract area offset and size
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
247 trafo.concat(getTranslation(new Position(-this.area.x, -this.area.y)));
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
248 trafo.concat(getScale(new Size(1/this.area.width, 1/this.area.height)));
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
249 // scale to screen size
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
250 trafo.concat(getScale(picsize));
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
251 trafo.concat(getTranslation(picsize));
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
252 // FIX ME: Robert, kannst Du mal nachsehen, ob das folgende tut, was es soll?
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
253 // oder gibt es dafuer neuen Code? -- ROC: Bisher funktioniert es nicht!
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
254 // rotate
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
255 //var rot = getRotation(- dl.params.get("rot"), new Position(0.5*picsize.width, 0.5*picsize.height));
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
256 //trafo.concat(rot);
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
257 // mirror
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
258 //if (hasFlag("hmir")) trafo.m00 = - trafo.m00; // ??
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
259 //if (hasFlag("vmir")) trafo.m11 = - trafo.m11; // ??
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
260 return trafo;
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
261 }
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
262 Digilib.prototype.setDLParam = function(e, s, relative) {
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
263 // sets parameter based on HTML event
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
264 var nam;
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
265 var val;
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
266 if (s.type && (s.type == "select-one")) {
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
267 nam = s.name;
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
268 val = s.options[s.selectedIndex].value;
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
269 } else if (s.name && s.value) {
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
270 nam = s.name;
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
271 val = s.value;
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
272 }
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
273 if (nam && val) {
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
274 dl.params.set(nam, val, relative);
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
275 display();
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
276 } else {
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
277 alert("ERROR: unable to process event!");
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
278 }
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
279 return true;
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
280 }
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
281 Digilib.prototype.onLoad = function() {
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
282 // initialize digilib; called by body.onload
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
283 this.scalerDiv = getElement("scaler", true);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
284 this.scalerImg = getElement("pic", true);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
285 if (this.scalerImg == null && this.scalerDiv) {
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
286 // in N4 pic is in the scaler layer
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
287 this.scalerImg = this.scalerDiv.document.images[0];
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
288 }
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
289 if ((!this.scalerImg)||(!this.scalerDiv)) {
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
290 alert("Sorry, digilib doesn't work here!");
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
291 return false;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
292 }
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
293 this.setScalerImage(); // setzt auch onImgLoad
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
294 this.loadBirdImage(); // l?dt das Bird's Eye Bild
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
295 }
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
296 Digilib.prototype.setScalerImage = function(detail) {
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
297 // set the scaler image source (needs the browser size)
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
298 var picsize = bestPicSize(this.scalerDiv, 50);
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
299 var src = "../servlet/Scaler?"
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
300 + this.params.getAll(this.params.PARAM_ALL & ~(this.params.PARAM_MARK | this.params.PARAM_PAGES))
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
301 + "&dw=" + picsize.width
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
302 + "&dh=" + picsize.height;
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
303 // debug(src);
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
304 this.scalerImg.onload = onImgLoad;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
305 this.scalerImg.src = src;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
306
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
307 var digilib = this;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
308 // this is a local callback function that can use the current scope
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
309 function onImgLoad() {
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
310 // make sure the image is loaded so we know its size
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
311 if (defined(digilib.scalerImg.complete) && !digilib.scalerImg.complete && !digilib.browserType.isN4 ) {
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
312 alert("ERROR: the image seems not to be complete!?");
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
313 }
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
314 digilib.trafo = digilib.parseTrafo(digilib.scalerImg);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
315 // display marks
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
316 digilib.renderMarks();
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
317 digilib.showBirdDiv(isBirdDivVisible);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
318 digilib.showArrows(); // show arrow overlays for zoom navigation
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
319 digilib.moveCenter(true); // click to move point to center
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
320 // new Slider("sizes", 1, 5, 2);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
321 focus();
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
322 }
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
323 }
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
324 Digilib.prototype.display = function(detail, moDetail) {
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
325 // redisplay the page
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
326 var queryString = this.params.getAll(detail, moDetail);
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
327 location.href
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
328 = location.protocol + "//"
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
329 + location.host
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
330 + location.pathname
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
331 + "?" + queryString;
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
332 }
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
333 Digilib.prototype.renderMarks = function() {
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
334 // make sure the image is loaded so we know its size
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
335 if (!this.trafo) {
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
336 alert("ERROR: cannot render marks!");
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
337 return;
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
338 }
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
339 // debugProps(dlArea, "dlArea");
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
340 for (var i = 0; i < this.marks.length; i++) {
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
341 var div = getElement("mark" + i, true) || createMarkDiv(i);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
342 var mark = this.marks[i];
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
343 // debugProps(mark, "mark");
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
344 if (this.area.containsPosition(mark)) {
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
345 var mpos = this.trafo.transform(mark);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
346 // debugProps(mark, "mpos");
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
347 // suboptimal to place -5 pixels and not half size of mark-image
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
348 // better not hide the marked spot (MR)
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
349 // mpos.x = mpos.x -5;
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
350 // mpos.y = mpos.y -5;
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
351 moveElement(div, mpos);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
352 showElement(div, true);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
353 } else {
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
354 // hide the other marks
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
355 showElement(div, false);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
356 }
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
357 }
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
358 }
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
359
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
360 /* **********************************************
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
361 * interactive digilib functions
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
362 * ******************************************** */
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
363
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
364 Digilib.prototype.setMark = function(reload) {
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
365 // add a mark where clicked
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
366 window.focus();
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
367 this.moveCenter(false);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
368 // start event capturing
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
369 registerEvent("mousedown", this.scalerDiv, markEvent);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
370
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
371 // our own reference to this for the local function
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
372 var digilib = this;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
373
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
374 function markEvent(evt) {
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
375 // event handler adding a new mark
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
376 unregisterEvent("mousedown", digilib.scalerDiv, markEvent);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
377 digilib.marks.addEvent(evt);
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
378 if ( defined(reload) && !reload ) {
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
379 // don't redisplay
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
380 digilib.renderMarks();
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
381 return stopEvent(evt);
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
382 }
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
383 digilib.display();
434
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
384 return stopEvent(evt);
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
385 }
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
386
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
387 }
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
388
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
389 Digilib.prototype.removeMark = function(reload) {
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
390 // remove the last mark
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
391 this.marks.pop();
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
392 if (defined(reload)&&(!reload)) {
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
393 // don't redisplay
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
394 this.renderMarks();
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
395 return;
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
396 }
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
397 this.display();
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
398 }
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
399
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
400 Digilib.prototype.zoomArea = function() {
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
401 var pt1, pt2;
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
402 var zoomdiv = getElement("zoom");
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
403 var overlay = getElement("overlay");
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
404 // use overlay div to avoid <img> mousemove problems
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
405 var picRect = getElementRect(this.scalerImg);
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
406 // FIX ME: is there a way to query the border width from CSS info?
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
407 // rect.x -= 2; // account for overlay borders
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
408 // rect.y -= 2;
434
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
409 moveElement(overlay, picRect);
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
410 showElement(overlay, true);
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
411 // start event capturing
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
412 registerEvent("mousedown", overlay, zoomStart);
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
413 registerEvent("mousedown", this.scalerImg, zoomStart);
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
414 window.focus();
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
415
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
416 // our own reference to this for the local function
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
417 var digilib = this;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
418
411
c3fe058f6b0e some general refactoring;
hertzhaft
parents: 401
diff changeset
419 // mousedown handler: start moving
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
420 function zoomStart(evt) {
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
421 pt1 = evtPosition(evt);
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
422 unregisterEvent("mousedown", overlay, zoomStart);
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
423 unregisterEvent("mousedown", digilib.scalerImg, zoomStart);
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
424 // setup and show zoom div
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
425 moveElement(zoomdiv, Rectangle(pt1.x, pt1.y, 0, 0));
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
426 showElement(zoomdiv, true);
434
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
427 // register events
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
428 registerEvent("mousemove", document, zoomMove);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
429 registerEvent("mouseup", document, zoomEnd);
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
430 return stopEvent(evt);
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
431 }
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
432
411
c3fe058f6b0e some general refactoring;
hertzhaft
parents: 401
diff changeset
433 // mouseup handler: end moving
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
434 function zoomEnd(evt) {
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
435 pt2 = evtPosition(evt);
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
436 // assume a click if the area is too small (up to 3 x 3 pixel)
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
437 var clickRect = new Rectangle(pt1, pt2);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
438 clickRect.normalize();
434
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
439 if (clickRect.getArea() <= MIN_AREA_SIZE) return stopEvent(evt);
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
440 // hide zoom div
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
441 showElement(zoomdiv, false);
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
442 showElement(overlay, false);
434
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
443 // unregister events
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
444 unregisterEvent("mousemove", document, zoomMove);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
445 unregisterEvent("mouseup", document, zoomMove);
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
446 // clip and transform
434
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
447 clickRect.clipTo(picRect);
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
448 var area = digilib.trafo.invtransform(clickRect);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
449 digilib.setParamFromArea(area);
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
450 // zoomed is always fit
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
451 digilib.params.set("ws", 1);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
452 digilib.display();
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
453 return stopEvent(evt);
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
454 }
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
455
411
c3fe058f6b0e some general refactoring;
hertzhaft
parents: 401
diff changeset
456 // mouse move handler
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
457 function zoomMove(evt) {
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
458 pt2 = evtPosition(evt);
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
459 var rect = new Rectangle(pt1, pt2);
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
460 rect.normalize();
434
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
461 rect.clipTo(picRect);
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
462 // update zoom div
434
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
463 moveElement(zoomdiv, rect);
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
464 return stopEvent(evt);
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
465 }
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
466 }
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
467
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
468 Digilib.prototype.zoomBy = function(factor) {
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
469 // zooms by the given factor
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
470 var newarea = this.area.copy();
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
471 newarea.width /= factor;
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
472 newarea.height /= factor;
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
473 newarea.x -= 0.5 * (newarea.width - this.area.width);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
474 newarea.y -= 0.5 * (newarea.height - this.area.height);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
475 newarea = MAX_AREA.fit(newarea);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
476 this.setParamFromArea(newarea);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
477 this.display();
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
478 }
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
479
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
480
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
481 Digilib.prototype.zoomFullpage = function() {
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
482 // zooms out to show the whole image
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
483 this.params.set("wx", 0.0);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
484 this.params.set("wy", 0.0);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
485 this.params.set("ww", 1.0);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
486 this.params.set("wh", 1.0);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
487 this.display();
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
488 }
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
489
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
490
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
491 Digilib.prototype.moveCenter = function(on) {
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
492 // move visible area so that it's centered around the clicked point
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
493 if (this.isFullArea()) return; // nothing to do
434
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
494 // starting event capture
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
495 if (on) registerEvent("mousedown", this.scalerImg, moveCenterEvent);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
496 else unregisterEvent("mousedown", this.scalerImg, moveCenterEvent);
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
497 window.focus();
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
498
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
499 // our own reference to this for the local function
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
500 var digilib = this;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
501
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
502 function moveCenterEvent(evt) {
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
503 // move to handler
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
504 var pt = digilib.trafo.invtransform(evtPosition(evt));
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
505 var newarea = digilib.area.copy();
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
506 newarea.setCenter(pt);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
507 newarea.stayInside(MAX_AREA);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
508 // newarea = dlMaxArea.fit(newarea);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
509 // debugProps(newarea, "newarea");
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
510 // debugProps(dlArea, "dlArea");
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
511 if (newarea.equals(digilib.area)) return; // keep event handler
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
512 unregisterEvent("mousedown", digilib.scalerImg, moveCenterEvent);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
513 // set parameters
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
514 digilib.setParamFromArea(newarea);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
515 digilib.display();
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
516 }
434
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
517 }
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
518
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
519 Digilib.prototype.isFullArea = function(area) {
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
520 if (!area) area = this.area;
443
089adc9e2a5f placement of size menu
hertzhaft
parents: 440
diff changeset
521 // pixel by pixel is not always full area
089adc9e2a5f placement of size menu
hertzhaft
parents: 440
diff changeset
522 return (area.width == 1.0) && (area.height == 1.0) && ! hasFlag("clip");
434
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
523 }
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
524
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
525 Digilib.prototype.canMove = function(movx, movy) {
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
526 if (this.isFullArea()) return false;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
527 var x2 = this.area.x + this.area.width;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
528 var y2 = this.area.y + this.area.height;
429
813a155d1338 added showArrows() function (navigation arrows overlay)
hertzhaft
parents: 416
diff changeset
529 // debugProps(dlArea);
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
530 return ((movx < 0) && (this.area.x > 0))
434
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
531 || ((movx > 0) && (x2 < 1.0))
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
532 || ((movy < 0) && (this.area.y > 0))
434
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
533 || ((movy > 0) && (y2 < 1.0))
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
534 }
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
535
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
536 Digilib.prototype.moveBy = function(movx, movy) {
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
537 // move visible area by movx and movy (in units of ww, wh)
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
538 if (!this.canMove(movx, movy)) return; // nothing to do
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
539 var newarea = this.area.copy();
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
540 newarea.x += parseFloat(movx)*this.area.width;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
541 newarea.y += parseFloat(movy)*this.area.height;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
542 newarea = MAX_AREA.fit(newarea);
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
543 // set parameters
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
544 this.setParamFromArea(newarea);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
545 this.display();
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
546 }
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
547
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
548 Digilib.prototype.getRef = function(baseUrl) {
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
549 // returns a reference to the current digilib set
429
813a155d1338 added showArrows() function (navigation arrows overlay)
hertzhaft
parents: 416
diff changeset
550 if (!baseUrl) baseUrl
813a155d1338 added showArrows() function (navigation arrows overlay)
hertzhaft
parents: 416
diff changeset
551 = location.protocol
813a155d1338 added showArrows() function (navigation arrows overlay)
hertzhaft
parents: 416
diff changeset
552 + "//"
813a155d1338 added showArrows() function (navigation arrows overlay)
hertzhaft
parents: 416
diff changeset
553 + location.host
813a155d1338 added showArrows() function (navigation arrows overlay)
hertzhaft
parents: 416
diff changeset
554 + location.pathname;
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
555 var hyperlinkRef = baseUrl;
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
556 with (this.params) {
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
557 var ps = getAll(PARAM_ALL & ~(PARAM_DPI | PARAM_PAGES)); // all without ddpi, pt
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
558 }
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
559 if (ps.length > 0) hyperlinkRef += "?" + ps;
411
c3fe058f6b0e some general refactoring;
hertzhaft
parents: 401
diff changeset
560 return hyperlinkRef;
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
561 }
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
562
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
563 Digilib.prototype.getRefWin = function(type, msg) {
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
564 // shows an alert with a reference to the current digilib set
411
c3fe058f6b0e some general refactoring;
hertzhaft
parents: 401
diff changeset
565 if (! msg) msg = "URL reference to the current view";
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
566 prompt(msg, this.getRef());
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
567 }
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
568
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
569 Digilib.prototype.getQuality = function() {
411
c3fe058f6b0e some general refactoring;
hertzhaft
parents: 401
diff changeset
570 // returns the current q setting
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
571 for (var i = 0; i < 3; i++) {
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
572 if (this.flags.get("q"+i)) return i;
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
573 }
411
c3fe058f6b0e some general refactoring;
hertzhaft
parents: 401
diff changeset
574 return 1
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
575 }
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
576
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
577 Digilib.prototype.setQuality = function(qual) {
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
578 // set the image quality
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
579 if ((qual < 0)||(qual > 2)) return alert("Quality setting not supported");
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
580 for (var i = 0; i < 3; i++) this.flags.reset("q" + i);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
581 this.flags.set("q" + qual);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
582 this.display();
411
c3fe058f6b0e some general refactoring;
hertzhaft
parents: 401
diff changeset
583 }
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
584
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
585 Digilib.prototype.setQualityWin = function(msg) {
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
586 // dialog for setting quality
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
587 if (! msg) msg = "Quality (0..2)";
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
588 var q = this.getQuality();
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
589 var newq = window.prompt(msg, q);
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
590 if (newq) this.setQuality(newq);
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
591 }
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
592
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
593 Digilib.prototype.mirror = function(dir) {
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
594 // mirror the image horizontally or vertically
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
595 if (dir == "h") {
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
596 this.flags.toggle("hmir");
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
597 } else {
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
598 this.flags.toggle("vmir");
450
4255c09a8147 experimental intermediary release
robcast
parents: 445
diff changeset
599 }
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
600 this.display();
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
601 }
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
602
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
603 Digilib.prototype.gotoPage = function(gopage, keep) {
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
604 // goto given page nr (+/-: relative)
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
605 var oldpn = parseInt(this.params.get("pn"));
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
606 // set with relative=true uses the sign
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
607 this.params.set("pn", gopage, true);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
608 // now check the outcome
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
609 var pn = parseInt(this.params.get("pn"));
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
610 if (pn < 1) {
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
611 alert("No such page! (Page number too low)");
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
612 this.params.set("pn", oldpn);
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
613 return;
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
614 }
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
615 if (this.params.isSet("pt")) {
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
616 pt = parseInt(this.params.get("pt"))
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
617 if (pn > pt) {
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
618 alert("No such page! (Page number too high)");
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
619 this.params.set("pn", oldpn);
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
620 return;
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
621 }
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
622 }
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
623 if (keep) {
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
624 this.display(this.params.PARAM_ALL & ~this.params.PARAM_MARK); // all, no mark
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
625 } else {
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
626 this.display(this.params.PARAM_FILE | this.params.PARAM_MODE | this.params.PARAM_PAGES, this.params.MODE_QUAL | this.params.MODE_OTHER); // fn, pn, ws, mo + pt
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
627 }
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
628 }
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
629
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
630 Digilib.prototype.gotoPageWin = function() {
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
631 // dialog to ask for new page nr
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
632 var pn = this.params.get("pn");
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
633 var gopage = window.prompt("Go to page", pn);
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
634 if (gopage) this.gotoPage(gopage);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
635 }
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
636
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
637 Digilib.prototype.setParamWin = function(param, text, relative) {
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
638 // dialog to ask for new parameter value
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
639 var val = this.params.get(param);
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
640 var newval = window.prompt(text, val);
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
641 if (newval) {
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
642 this.params.set(param, newval, relative);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
643 this.display();
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
644 }
400
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
645 }
be66c85821ff simplyfications
hertzhaft
parents:
diff changeset
646
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
647 Digilib.prototype.showOptions = function(show) {
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
648 // show or hide option div
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
649 var elem = getElement("dloptions");
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
650 showElement(elem, show);
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
651 // FIX ME: get rid of the dotted line around the buttons when focused
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
652 }
411
c3fe058f6b0e some general refactoring;
hertzhaft
parents: 401
diff changeset
653
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
654 Digilib.prototype.showAboutDiv = function(show) {
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
655 // show or hide "about" div
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
656 var elem = getElement("about");
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
657 if (elem == null) {
443
089adc9e2a5f placement of size menu
hertzhaft
parents: 440
diff changeset
658 if (show) alert("About Digilib - dialog missing in HTML code!"
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
659 + "\nDigilib Version: " + digilibVersion
434
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
660 + "\JSP Version: " + jspVersion
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
661 + "\ndlLib Version: " + dllibVersion
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
662 + "\nbaseLib Version: " + baseLibVersion);
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
663 return;
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
664 }
443
089adc9e2a5f placement of size menu
hertzhaft
parents: 440
diff changeset
665 if (show) {
089adc9e2a5f placement of size menu
hertzhaft
parents: 440
diff changeset
666 getElement("digilib-version").innerHTML = "Digilib Version: " + digilibVersion;
089adc9e2a5f placement of size menu
hertzhaft
parents: 440
diff changeset
667 getElement("jsp-version").innerHTML = "JSP Version: " + jspVersion;
089adc9e2a5f placement of size menu
hertzhaft
parents: 440
diff changeset
668 getElement("baselib-version").innerHTML = "baseLib Version: " + baseLibVersion;
089adc9e2a5f placement of size menu
hertzhaft
parents: 440
diff changeset
669 getElement("dllib-version").innerHTML = "dlLib Version: " + dllibVersion;
089adc9e2a5f placement of size menu
hertzhaft
parents: 440
diff changeset
670 var aboutRect = getElementRect(elem);
089adc9e2a5f placement of size menu
hertzhaft
parents: 440
diff changeset
671 aboutRect.setCenter(getWinRect().getCenter());
089adc9e2a5f placement of size menu
hertzhaft
parents: 440
diff changeset
672 moveElement(elem, aboutRect);
089adc9e2a5f placement of size menu
hertzhaft
parents: 440
diff changeset
673 }
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
674 showElement(elem, show);
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
675 }
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
676
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
677 Digilib.prototype.loadBirdImage = function() {
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
678 var img = getElement("bird-image");
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
679 var src = "../servlet/Scaler?"
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
680 + this.params.getAll(this.params.PARAM_FILE)
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
681 + "&dw=" + BIRD_MAXX
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
682 + "&dh=" + BIRD_MAXY;
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
683 img.src = src;
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
684 }
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
685
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
686 Digilib.prototype.showBirdDiv = function(show) {
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
687 // show or hide "bird's eye" div
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
688 var startPos; // anchor for dragging
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
689 var newRect; // position after drag
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
690 var birdImg = getElement("bird-image");
434
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
691 var birdArea = getElement("bird-area");
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
692 var overlay = getElement("overlay");
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
693 showElement(birdImg, show);
434
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
694 // dont show selector if area has full size
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
695 if (!show || this.isFullArea()) {
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
696 // hide area
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
697 showElement(birdArea, false);
434
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
698 showElement(overlay, false);
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
699 return;
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
700 };
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
701 var birdImgRect = getElementRect(birdImg);
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
702 var area = this.area;
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
703 // scale area down to img size
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
704 var birdAreaRect = new Rectangle(
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
705 // what about borders ??
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
706 birdImgRect.x + birdImgRect.width * area.x,
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
707 birdImgRect.y + birdImgRect.height * area.y,
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
708 birdImgRect.width * area.width,
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
709 birdImgRect.height * area.height
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
710 );
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
711 moveElement(birdArea, birdAreaRect);
434
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
712 showElement(birdArea, true);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
713 moveElement(overlay, birdImgRect);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
714 showElement(overlay, true);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
715 registerEvent("mousedown", overlay, birdAreaStartDrag);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
716 registerEvent("mousedown", birdImg, birdAreaStartDrag);
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
717
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
718 // our own reference to this for local functions
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
719 var digilib = this;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
720
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
721 function birdAreaStartDrag(evt) {
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
722 // mousedown handler: start drag
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
723 startPos = evtPosition(evt);
434
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
724 unregisterEvent("mousedown", overlay, birdAreaStartDrag);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
725 unregisterEvent("mousedown", birdImg, birdAreaStartDrag);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
726 registerEvent("mousemove", document, birdAreaMove);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
727 registerEvent("mouseup", document, birdAreaEndDrag);
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
728 // debugProps(getElementRect(bird))
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
729 return stopEvent(evt);
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
730 }
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
731
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
732 function birdAreaMove(evt) {
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
733 // mousemove handler: drag
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
734 var pos = evtPosition(evt);
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
735 var dx = pos.x - startPos.x;
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
736 var dy = pos.y - startPos.y;
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
737 // move birdArea div, keeping size
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
738 newRect = new Rectangle(
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
739 birdAreaRect.x + dx,
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
740 birdAreaRect.y + dy,
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
741 birdAreaRect.width,
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
742 birdAreaRect.height);
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
743 // stay within image
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
744 newRect.stayInside(birdImgRect);
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
745 moveElement(birdArea, newRect);
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
746 showElement(birdArea, true);
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
747 return stopEvent(evt);
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
748 }
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
749
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
750 function birdAreaEndDrag(evt) {
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
751 // mouseup handler: reload page
434
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
752 unregisterEvent("mousemove", document, birdAreaMove);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
753 unregisterEvent("mouseup", document, birdAreaEndDrag);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
754 showElement(overlay, false);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
755 if (newRect == null) { // no movement happened
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
756 startPos = birdAreaRect.getCenter();
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
757 birdAreaMove(evt); // set center to click position
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
758 }
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
759 digilib.params.set("wx", cropFloat((newRect.x - birdImgRect.x) / birdImgRect.width));
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
760 digilib.params.set("wy", cropFloat((newRect.y - birdImgRect.y) / birdImgRect.height));
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
761 // zoomed is always fit
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
762 digilib.params.set("ws", 1);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
763 digilib.display();
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
764 return stopEvent(evt);
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
765 }
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
766 }
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
767
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
768 Digilib.prototype.showArrow = function(name, rect, show) {
429
813a155d1338 added showArrows() function (navigation arrows overlay)
hertzhaft
parents: 416
diff changeset
769 var arrow = getElement(name);
813a155d1338 added showArrows() function (navigation arrows overlay)
hertzhaft
parents: 416
diff changeset
770 moveElement(arrow, rect);
813a155d1338 added showArrows() function (navigation arrows overlay)
hertzhaft
parents: 416
diff changeset
771 showElement(arrow, show);
813a155d1338 added showArrows() function (navigation arrows overlay)
hertzhaft
parents: 416
diff changeset
772 }
813a155d1338 added showArrows() function (navigation arrows overlay)
hertzhaft
parents: 416
diff changeset
773
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
774 Digilib.prototype.showArrows = function() {
443
089adc9e2a5f placement of size menu
hertzhaft
parents: 440
diff changeset
775 // show the 4 arrow bars on top of scaler img according to current dlArea
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
776 if (defined(this.scalerImg.complete) && !this.scalerImg.complete && !browserType.isN4 ) {
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
777 alert("ERROR: scaler img not complete in showArrows!");
429
813a155d1338 added showArrows() function (navigation arrows overlay)
hertzhaft
parents: 416
diff changeset
778 }
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
779 var r = getElementRect(this.scalerImg);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
780 this.showArrow('up',
429
813a155d1338 added showArrows() function (navigation arrows overlay)
hertzhaft
parents: 416
diff changeset
781 new Rectangle(r.x, r.y, r.width, ARROW_WIDTH),
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
782 this.canMove(0, -1)
429
813a155d1338 added showArrows() function (navigation arrows overlay)
hertzhaft
parents: 416
diff changeset
783 );
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
784 this.showArrow('down',
429
813a155d1338 added showArrows() function (navigation arrows overlay)
hertzhaft
parents: 416
diff changeset
785 new Rectangle(r.x, r.y + r.height - ARROW_WIDTH, r.width, ARROW_WIDTH),
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
786 this.canMove(0, 1)
429
813a155d1338 added showArrows() function (navigation arrows overlay)
hertzhaft
parents: 416
diff changeset
787 );
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
788 this.showArrow('left',
429
813a155d1338 added showArrows() function (navigation arrows overlay)
hertzhaft
parents: 416
diff changeset
789 new Rectangle(r.x, r.y, ARROW_WIDTH, r.height),
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
790 this.canMove(-1, 0)
429
813a155d1338 added showArrows() function (navigation arrows overlay)
hertzhaft
parents: 416
diff changeset
791 );
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
792 this.showArrow('right',
429
813a155d1338 added showArrows() function (navigation arrows overlay)
hertzhaft
parents: 416
diff changeset
793 new Rectangle(r.x + r.width - ARROW_WIDTH, r.y, ARROW_WIDTH, r.height),
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
794 this.canMove(1, 0)
429
813a155d1338 added showArrows() function (navigation arrows overlay)
hertzhaft
parents: 416
diff changeset
795 );
813a155d1338 added showArrows() function (navigation arrows overlay)
hertzhaft
parents: 416
diff changeset
796 }
416
7e4c5617585b added constants for parameter sets;
hertzhaft
parents: 411
diff changeset
797
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
798 Digilib.prototype.calibrate = function(direction) {
434
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
799 // calibrate screen
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
800 var startPos; // anchor for dragging
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
801 var newRect; // position after drag
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
802 var calDiv = getElement("calibration");
439
65219f4fcf6b added osize and pixel-by-pixel;
hertzhaft
parents: 434
diff changeset
803 var pixel = calDiv.getElementsByTagName("p")[0];
434
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
804 var overlay = getElement("overlay");
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
805 moveElement(overlay, getWinRect());
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
806 showElement(overlay, true);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
807 var xDir = direction == "x";
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
808 moveCenter(false);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
809 registerEvent("mousedown", document, calibrationStartDrag);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
810
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
811 function calibrationStartDrag(evt) {
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
812 // mousedown handler: start drag
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
813 startPos = evtPosition(evt);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
814 unregisterEvent("mousedown", document, calibrationStartDrag);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
815 registerEvent("mousemove", document, calibrationMove);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
816 registerEvent("mouseup", document, calibrationEndDrag);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
817 newRect = new Rectangle(
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
818 startPos.x,
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
819 startPos.y,
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
820 xDir ? 1 : CALIBRATION_WIDTH,
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
821 xDir ? CALIBRATION_WIDTH : 1
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
822 );
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
823 moveElement(calDiv, newRect);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
824 showElement(calDiv, true);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
825 // debugProps(getElementRect(bird))
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
826 return stopEvent(evt);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
827 }
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
828
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
829 function calibrationMove(evt) {
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
830 // mousemove handler: drag
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
831 var pos = evtPosition(evt);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
832 var dx = (xDir) ? pos.x - startPos.x : CALIBRATION_WIDTH;
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
833 var dy = (xDir) ? CALIBRATION_WIDTH : pos.y - startPos.y;
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
834 // move birdArea div, keeping size
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
835 newRect = new Rectangle(startPos.x, startPos.y, dx, dy);
439
65219f4fcf6b added osize and pixel-by-pixel;
hertzhaft
parents: 434
diff changeset
836 pixel.innerHTML = (xDir ? dx : dy) + " px";
434
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
837 moveElement(calDiv, newRect);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
838 showElement(calDiv, true);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
839 return stopEvent(evt);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
840 }
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
841
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
842 function calibrationEndDrag(evt) {
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
843 // mouseup handler: calibrate
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
844 unregisterEvent("mousemove", document, calibrationMove);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
845 unregisterEvent("mouseup", document, calibrationEndDrag);
439
65219f4fcf6b added osize and pixel-by-pixel;
hertzhaft
parents: 434
diff changeset
846 if (xDir) {
65219f4fcf6b added osize and pixel-by-pixel;
hertzhaft
parents: 434
diff changeset
847 var val = newRect.width * 0.254; // ratio dm/inch
65219f4fcf6b added osize and pixel-by-pixel;
hertzhaft
parents: 434
diff changeset
848 cookie.add("ddpi", val);
65219f4fcf6b added osize and pixel-by-pixel;
hertzhaft
parents: 434
diff changeset
849 cookie.add("ddpix", val);
65219f4fcf6b added osize and pixel-by-pixel;
hertzhaft
parents: 434
diff changeset
850 } else {
65219f4fcf6b added osize and pixel-by-pixel;
hertzhaft
parents: 434
diff changeset
851 var val = newRect.height * 0.254;
65219f4fcf6b added osize and pixel-by-pixel;
hertzhaft
parents: 434
diff changeset
852 cookie.add("ddpiy", val);
65219f4fcf6b added osize and pixel-by-pixel;
hertzhaft
parents: 434
diff changeset
853 }
434
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
854 showElement(calDiv, false);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
855 showElement(overlay, false);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
856 moveCenter(true);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
857 return stopEvent(evt);
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
858 }
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
859 }
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
860
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
861 Digilib.prototype.originalSize = function(on) {
443
089adc9e2a5f placement of size menu
hertzhaft
parents: 440
diff changeset
862 // set osize flag, needs calibrated screen
089adc9e2a5f placement of size menu
hertzhaft
parents: 440
diff changeset
863 if (on) {
089adc9e2a5f placement of size menu
hertzhaft
parents: 440
diff changeset
864 var dpi = cookie.get("ddpi");
089adc9e2a5f placement of size menu
hertzhaft
parents: 440
diff changeset
865 if (dpi == null) {
089adc9e2a5f placement of size menu
hertzhaft
parents: 440
diff changeset
866 alert("Screen has not yet been calibrated - using default value of 72 dpi");
089adc9e2a5f placement of size menu
hertzhaft
parents: 440
diff changeset
867 dpi = 72;
089adc9e2a5f placement of size menu
hertzhaft
parents: 440
diff changeset
868 }
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
869 this.params.set("ddpi", dpi);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
870 this.flags.set("osize");
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
871 this.display();
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
872 } else {
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
873 this.flags.reset("osize");
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
874 }
439
65219f4fcf6b added osize and pixel-by-pixel;
hertzhaft
parents: 434
diff changeset
875 }
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
876
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
877 Digilib.prototype.pixelByPixel = function(on) {
443
089adc9e2a5f placement of size menu
hertzhaft
parents: 440
diff changeset
878 // sets clip flag
089adc9e2a5f placement of size menu
hertzhaft
parents: 440
diff changeset
879 if (on) {
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
880 this.flags.set("clip");
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
881 this.display();
443
089adc9e2a5f placement of size menu
hertzhaft
parents: 440
diff changeset
882 }
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
883 else this.flags.reset("clip");
439
65219f4fcf6b added osize and pixel-by-pixel;
hertzhaft
parents: 434
diff changeset
884 }
440
85aef29cc1da sizes menu;
hertzhaft
parents: 439
diff changeset
885
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
886 Digilib.prototype.pageWidth = function() {
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
887 var divSize = getElementSize(this.scalerDiv);
445
6154dfc67615 pageWidth (not yet working in IE)
hertzhaft
parents: 443
diff changeset
888 divSize.width -= INSET; // allow for scrollbars [Firefox bug?]
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
889 var imgSize = getElementSize(this.scalerImg);
445
6154dfc67615 pageWidth (not yet working in IE)
hertzhaft
parents: 443
diff changeset
890 if (imgSize.width < divSize.width) {
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
891 this.params.set("ws", cropFloat(divSize.width / imgSize.width));
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
892 this.display(this.params.PARAM_ALL & ~this.params.PARAM_DIM); // no zoom
445
6154dfc67615 pageWidth (not yet working in IE)
hertzhaft
parents: 443
diff changeset
893 };
6154dfc67615 pageWidth (not yet working in IE)
hertzhaft
parents: 443
diff changeset
894 // TODO: how to calculate correct width if zoom is on? (plus size?)
6154dfc67615 pageWidth (not yet working in IE)
hertzhaft
parents: 443
diff changeset
895 }
6154dfc67615 pageWidth (not yet working in IE)
hertzhaft
parents: 443
diff changeset
896
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
897 Digilib.prototype.resize = function(factor) {
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
898 this.params.set("ws", factor);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
899 this.showSizeMenu(false);
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
900 this.display();
440
85aef29cc1da sizes menu;
hertzhaft
parents: 439
diff changeset
901 }
85aef29cc1da sizes menu;
hertzhaft
parents: 439
diff changeset
902
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
903 Digilib.prototype.showSizeMenu = function(show) {
440
85aef29cc1da sizes menu;
hertzhaft
parents: 439
diff changeset
904 var menu = getElement("sizes");
443
089adc9e2a5f placement of size menu
hertzhaft
parents: 440
diff changeset
905 if (show) {
089adc9e2a5f placement of size menu
hertzhaft
parents: 440
diff changeset
906 // align menu with button
089adc9e2a5f placement of size menu
hertzhaft
parents: 440
diff changeset
907 var buttonPos = getElementPosition(getElement("size"));
089adc9e2a5f placement of size menu
hertzhaft
parents: 440
diff changeset
908 moveElement(menu, new Position(buttonPos.x - 50, buttonPos.y));
089adc9e2a5f placement of size menu
hertzhaft
parents: 440
diff changeset
909 }
089adc9e2a5f placement of size menu
hertzhaft
parents: 440
diff changeset
910 showElement(menu, show);
440
85aef29cc1da sizes menu;
hertzhaft
parents: 439
diff changeset
911 }
451
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
912
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
913
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
914 /********************************
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
915 * global variables
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
916 ********************************/
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
917
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
918 var dl = new Digilib();
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
919
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
920 /* old parameter function compatibility stuff */
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
921 function newParameter(a,b,c) {return dl.params.define(a,b,c)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
922 function resetParameter(a) {return dl.params.reset(a)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
923 function deleteParameter(a) {return dl.params.remove(a)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
924 function getParameter(a) {return dl.params.get(a)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
925 function setParameter(a,b,c) {return dl.params.set(a,b,c)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
926 function hasParameter(a) {return dl.params.isSet(a)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
927 function getAllParameters(a) {return dl.params.getAll(a)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
928 getQueryString = getAllParameters;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
929 function parseParameters(a) {return dl.params.parse(a)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
930 function getAllMarks() {return dl.marks.getAll()};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
931 getMarksQueryString = getAllMarks;
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
932 function addMark(evt) {return dl.marks.addEvent(evt)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
933 function deleteMark() {return dl.marks.pop()};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
934 function deleteAllMarks() {return dl.marks = new Marks()};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
935 function hasFlag(mode) {return dl.flags.get(mode)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
936 function addFlag(mode) {return dl.flags.set(mode)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
937 function removeFlag(mode) {return dl.flags.reset(mode)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
938 function toggleFlag(mode) {return dl.flags.toggle(mode)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
939 function getAllFlags() {return dl.flags.getAll()};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
940 /* old digilib function compatibility */
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
941 function setDLParam(e, s, relative) {dl.setDLParam(e, s, relative)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
942 function display(detail, moDetail) {dl.display(detail, moDetail)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
943 function setMark(reload) {dl.setMark(reload)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
944 function removeMark(reload) {dl.removeMark(reload)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
945 function zoomArea() {dl.zoomArea()};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
946 function zoomBy(factor) {dl.zoomBy(factor)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
947 function zoomFullpage() {dl.zoomFullpage()};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
948 function moveCenter(on) {dl.moveCenter(on)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
949 function isFullArea(area) {dl.isFullArea(area)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
950 function canMove(movx, movy) {dl.canMove(movx, movy)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
951 function moveBy(movx, movy) {dl.moveBy(movx, movy)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
952 function getRef(baseURL) {dl.getRef(baseURL)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
953 function getRefWin(type, msg) {dl.getRefWin(type, msg)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
954 function getQuality() {dl.getQuality()};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
955 function setQuality(qual) {dl.setQuality(qual)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
956 function setQualityWin(msg) {dl.setQualityWin(msg)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
957 function mirror(dir) {dl.mirror(dir)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
958 function gotoPage(gopage, keep) {dl.gotoPage(gopage, keep)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
959 function gotoPageWin() {dl.gotoPageWin()};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
960 function setParamWin(param, text, relative) {dl.setParamWin(param, text, relative)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
961 function showOptions(show) {dl.showOptions(show)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
962 function showBirdDiv(show) {dl.showBirdDiv(show)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
963 function showAboutDiv(show) {dl.showAboutDiv(show)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
964 function calibrate(direction) {dl.calibrate(direction)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
965 function originalSize(on) {dl.originalSize(on)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
966 function pixelByPixel(on) {dl.pixelByPixel(on)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
967 function pageWidth() {dl.pageWidth()};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
968 function resize(factor) {dl.resize(factor)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
969 function showSizeMenu(show) {dl.showSizeMenu(show)};
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
970
a6c83fa262b2 still somewhat experimental intermediary release
robcast
parents: 450
diff changeset
971
434
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
972 // :tabSize=4:indentSize=4:noTabs=true:
4eeabb5ed193 bug fixes;
hertzhaft
parents: 429
diff changeset
973