comparison client/digitallibrary/jquery/jquery.digilib.js @ 610:cd9f657d49fa jquery

code for generating the buttons
author hertzhaft
date Fri, 14 Jan 2011 13:47:30 +0100
parents 435f81210a33
children 1b6202aba26e
comparison
equal deleted inserted replaced
609:435f81210a33 610:cd9f657d49fa
2 * digilib jQuery plugin 2 * digilib jQuery plugin
3 * 3 *
4 */ 4 */
5 5
6 (function($) { 6 (function($) {
7 7 var buttons = {
8 reference : {
9 onclick : "javascript:getRefWin()",
10 tooltip : "get a reference URL",
11 img : "reference.png"
12 },
13 zoomin : {
14 onclick : "javascript:dl.zoomBy(1.4)",
15 tooltip : "zoom in",
16 img : "zoom-in.png"
17 },
18 zoomout : {
19 onclick : "javascript:zoomBy(0.7)",
20 tooltip : "zoom out",
21 img : "zoom-out.png"
22 },
23 zoomarea : {
24 onclick : "javascript:zoomArea()",
25 tooltip : "zoom area",
26 img : "zoom-area.png"
27 },
28 zoomfull : {
29 onclick : "javascript:zoomFullpage()",
30 tooltip : "view the whole image",
31 img : "zoom-full.png"
32 },
33 pagewidth : {
34 onclick : "javascript:zoomFullpage('width')",
35 tooltip : "page width",
36 img : "pagewidth.png"
37 },
38 back : {
39 onclick : "javascript:gotoPage('-1')",
40 tooltip : "goto previous image",
41 img : "back.png"
42 },
43 fwd : {
44 onclick : "javascript:gotoPage('+1')",
45 tooltip : "goto next image",
46 img : "fwd.png"
47 },
48 page : {
49 onclick : "javascript:gotoPageWin()",
50 tooltip : "specify image",
51 img : "page.png"
52 },
53 bird : {
54 onclick : "javascript:toggleBirdDiv()",
55 tooltip : "show bird's eye view",
56 img : "birds-eye.png"
57 },
58 help : {
59 onclick : "javascript:toggleAboutDiv()",
60 tooltip : "about Digilib",
61 img : "help.png"
62 },
63 reset : {
64 onclick : "javascript:resetImage()",
65 tooltip : "reset image",
66 img : "reset.png"
67 },
68 mark : {
69 onclick : "javascript:setMark()",
70 tooltip : "set a mark",
71 img : "mark.png"
72 },
73 delmark : {
74 onclick : "javascript:removeMark()",
75 tooltip : "delete the last mark",
76 img : "delmark.png"
77 },
78 hmir : {
79 onclick : "javascript:mirror('h')",
80 tooltip : "mirror horizontally",
81 img : "mirror-horizontal.png"
82 },
83 vmir : {
84 onclick : "javascript:mirror('v')",
85 tooltip : "mirror vertically",
86 img : "mirror-vertical.png"
87 },
88 rot : {
89 onclick : "javascript:setParamWin('rot', 'Rotate (0..360) clockwise')",
90 tooltip : "rotate image",
91 img : "rotate.png"
92 },
93 brgt : {
94 onclick : "javascript:setParamWin('brgt', 'Brightness (-255..255)')",
95 tooltip : "set brightness",
96 img : "brightness.png"
97 },
98 cont : {
99 onclick : "javascript:setParamWin('cont', 'Contrast (0..8)')",
100 tooltip : "set contrast",
101 img : "contrast.png"
102 },
103 rgb : {
104 onclick : "javascript:setParamWin('rgb', '...')",
105 tooltip : "set rgb values",
106 img : "rgb.png"
107 },
108 quality : {
109 onclick : "javascript:setQualityWin('Quality (0..2)')",
110 tooltip : "set image quality",
111 img : "quality.png"
112 },
113 size : {
114 onclick : "javascript:toggleSizeMenu()",
115 tooltip : "set page size",
116 img : "size.png"
117 },
118 calibrationx : {
119 onclick : "javascript:calibrate('x')",
120 tooltip : "calibrate screen x-ratio",
121 img : "calibration-x.png"
122 },
123 scale : {
124 onclick : "javascript:toggleScaleMenu()",
125 tooltip : "change image scale",
126 img : "original-size.png"
127 },
128 options : {
129 onclick : "javascript:toggleOptionDiv()",
130 tooltip : "hide options",
131 img : "options.png"
132 },
133 SEP : {
134 img : "sep.png"
135 }
136 };
137
8 var defaults = { 138 var defaults = {
9 // base URL to Scaler servlet 139 // base URL to Scaler servlet
10 'scalerBaseUrl' : 'http://digilib.mpiwg-berlin.mpg.de/digitallibrary/servlet/Scaler', 140 'scalerBaseUrl' : 'http://digilib.mpiwg-berlin.mpg.de/digitallibrary/servlet/Scaler',
11 // list of Scaler parameters 141 // list of Scaler parameters
12 'scalerParamNames' : ['fn','pn','dw','dh','ww','wh','wx','wy','ws','mo', 142 'scalerParamNames' : ['fn','pn','dw','dh','ww','wh','wx','wy','ws','mo',
13 'rot','cont','brgt','rgbm','rgba','ddpi','ddpix','ddpiy'], 143 'rot','cont','brgt','rgbm','rgba','ddpi','ddpix','ddpiy'],
14 // mode of operation. 144 // mode of operation.
15 // fullscreen: takes parameters from page URL, keeps state in page URL 145 // fullscreen: takes parameters from page URL, keeps state in page URL
16 // embedded: takes parameters from Javascript options, keeps state inside object 146 // embedded: takes parameters from Javascript options, keeps state inside object
17 'interactionMode' : 'fullscreen' 147 'interactionMode' : 'fullscreen',
18 }; 148 // buttons
149 'buttons' : buttons,
150 // path to button images
151 'buttonsImagePath' : 'img/buttons/',
152 // button groups
153 'buttonsStandard' : ["reference","zoomin","zoomout","zoomarea","zoomfull","pagewidth","back","fwd","page","bird","SEP","help","reset","options"],
154 'buttonsSpecial' : ["mark","delmark","hmir","vmir","rot","brgt","cont","rgb","quality","size","calibrationx","scale","SEP","options"],
155 'buttonsCustom' : [],
156 };
19 157
20 // parameters from the query string 158 // parameters from the query string
21 var queryParams = {}; 159 var queryParams = {};
22 160
23 // affine geometry classes 161 // affine geometry classes
149 $elem.append($scaler); 287 $elem.append($scaler);
150 //$img.load(scalerImgLoaded); 288 //$img.load(scalerImgLoaded);
151 } 289 }
152 }; 290 };
153 291
292 // creates HTML structure for buttons in elem
293 var setupButtons = function ($elem, settings, buttonGroup) {
294 var $buttonDiv;
295 if (settings.interactionMode === 'fullscreen') {
296 // fullscreen -- create new
297 $buttonDiv = $elem.append('<div class="buttons"/>');
298 var buttonNames = settings[buttonGroup];
299 for (var i = 0; i < buttonNames.length; i++) {
300 var buttonName = buttonNames[i];
301 var buttonConfig = settings.buttons[buttonName];
302 var $button = buttondiv.append('<div class="button"/>');
303 $button
304 .attr('id', 'digilib-button-' + buttonName)
305 .bind('click', function(){ buttonConfig.onclick })
306 .append('<a/>')
307 .attr('title', buttonConfig.toolTip )
308 .append('<img class="button"/>')
309 .attr('src', settings.buttonsImagePath + buttonConfig.img);
310 };
311 }
312 return $buttonDiv;
313 }
314 };
315
154 // hook plugin into jquery 316 // hook plugin into jquery
155 $.fn.digilib = function(method) { 317 $.fn.digilib = function(method) {
156 if (methods[method]) { 318 if (methods[method]) {
157 return methods[method].apply(this, Array.prototype.slice.call(arguments, 1)); 319 return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
158 } else if (typeof(method) === 'object' || !method) { 320 } else if (typeof(method) === 'object' || !method) {