+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IIPMooViewer 2.0 :: HTML5 High Resolution Image Viewer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/extended-toolbar.js b/src/extended-toolbar.js
new file mode 100644
index 0000000..fa067fa
--- /dev/null
+++ b/src/extended-toolbar.js
@@ -0,0 +1,226 @@
+/*
+ IIPMooViewer 2.0 - Extended Toolbar Extension
+ IIPImage Javascript Viewer
+
+ Copyright (c) 2013 Massimo Brero
+
+ ---------------------------------------------------------------------------
+ This file is part of IIPMooViewer 2.0 (hereinafter referred to as 'this program').
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see
+ ---------------------------------------------------------------------------
+
+*/
+
+/** Extends IIPMooViewer with a modular toolbar to provide user-friendly access to most options.
+* @param {String} toolbarId : id of the HTML 'div' of the toolbar.
+* @param {String} position : choice is 'inside' or 'outside'. Default is 'inside'.
+* Specifies if the toolbar appears
+* inside the viewer (= on top of it), or
+* outside the viewer (=next/above of it, depending on the orientation).
+* @param {String} orientation : choice is 'vertical' or 'horizontal'.
+* @param {String[]} buttons : Array of strings
+*/
+IIPMooViewer.implement({
+ createExtendedToolbar: function(toolbarId, position, orientation, buttons){
+ var _thisIIP = this; // local reference to 'this'
+ // Get a reference to the original toolbar - an HTML div must exists
+ var toolbar = document.getElementById(toolbarId);
+
+ if ( (typeof(toolbar)==='undefined') || (toolbar == null) ) {
+ var msg = "IIPMooViewer Extended Toolbar creation error :\nNo element ID given to IIPMooViewer createExtendedToolbar\(\) or\nInvalide id.\nThe toolbar will not be available.";
+ alert( msg );
+ return;
+ }
+
+ position = position || 'inside';
+ if (typeof(orientation)==='undefined') orientation = 'horizontal';
+ if (typeof(buttons)==='undefined') buttons = ['rotateanticlockwise', 'rotateclockwise', 'toggleNavigationWindow', 'getRegionalURL', 'zoomIn', 'zoomOut', 'reset', 'toggleFullscreen'];
+
+ // To suppress duplicate entries, keeping only the first occurence.
+ buttons = buttons.filter(function(elem, pos) {
+ return buttons.indexOf(elem) == pos;
+ })
+
+ /* Create the extended toolbar buttons for every valid array entry.
+ * Non existing options (malformed array entries) or meaningless buttons
+ * (i.e. toggleAnnotations if the annotation extension is not loaded)
+ * are ignored and therefor not created.
+ */
+ for (var i=0;i* Double Click to show/hide buttons * Press h to hide',
- 'annotationsDisabled': 'Annotations disabled Press "a" to re-enable'
+ 'annotationsDisabled': 'Annotations disabled Press "a" to re-enable',
+
+// extended-toolbar.js
+ 'annotButtonInactive': 'Draw an annotation (require authentication)',
+ 'conceptualAnnotButtonInactive': 'Draw a conceptual annotation (require authentication)',
+ 'transcriptionButtonInactive': 'Draw a transcription (require authentication)',
+ 'alertCantEdit': 'You need to be logged in to create create/edit/delete annotations or transcriptions.\nYou can register for free (Register button at the top of the page.)',
+ 'annotButton': 'Draw an annotation (rectangle)',
+ 'conceptualAnnotButton': 'Draw a conceptual annotation (rectangle)',
+ 'transcriptionButton': 'Draw a transcription (rectangle)',
+ 'rotateClockwise': 'Rotate clockwise image (-90°)',
+ 'rotateAnticlockwise': 'Rotate anti clockwise image (+90°)',
+ 'toggleNavWindow': 'Show/Hide Navigation Window',
+ 'toggleAnnotations': 'Show/Hide Annotations',
+ 'exportView': 'Export an image of the current view',
+ 'zoomIn': 'Zoom In',
+ 'zoomOut': 'Zoom Out',
+ 'resetView': 'Reset view',
+ 'toggleFullscreen': 'Go Fullscreen',
+// annotations-edit-mass.js
+ 'cantDrawRotate': 'You cannot create or edit an annotation while the image is rotated.',
+ 'cantEditAndDraw': 'You cannot create an annotation while editing an annotation. Please cancel or finish the edition first.',
+ 'selectionImpossible': 'The selection you made was impossible. Most probably because you started the selection outside of the image. Please start over.',
+ 'alreadyEditing': 'An annotation is currently edited. Please cancel before editing another one.',
+// iipmooviewer-2.0.js
+ 'cantRotateEditing': 'You cannot rotate the image while editing an annotation.'
};
diff --git a/src/lang/help.fr.js b/src/lang/help.fr.js
index 3dbd569..3f7eb08 100644
--- a/src/lang/help.fr.js
+++ b/src/lang/help.fr.js
@@ -1,4 +1,5 @@
IIPMooViewer.lang = {
+ // Default
'help': "Aide",
'scale': "Échelle mobile",
'navigate': "Pour naviguer dans l'image : faites glisser l'image dans la fenêtre principale, ou déplacez la zone de sélection dans la fenêtre de navigation, ou cliquez sur une zone dans la fenêtre de navigation",
@@ -12,5 +13,30 @@ IIPMooViewer.lang = {
'exitFullscreen': "Pour quitter le mode plein écran : appuyez sur la touche « Échap »",
'loading': "chargement",
'drag': "* Faites glisser pour déplacer la fenetre de navigation * Double-cliquez pour masquer/afficher les boutons * Appuyez sur la touche « h » pour masquer la fenêtre de navigation",
- 'annotationsDisabled': "Annotations désactivées Appuyez sur la touche « a » pour les réactiver"
+ 'annotationsDisabled': "Annotations désactivées Appuyez sur la touche « a » pour les réactiver",
+
+// extended-toolbar.js
+ 'annotButtonInactive': 'Ajouter une annotation (nécessite d\'être authentifié)',
+ 'conceptualAnnotButtonInactive': 'Ajouter une annotation conceptuelle (nécessite d\'être authentifié)',
+ 'transcriptionButtonInactive': 'Ajouter une transcription (nécessite d\'être authentifié)',
+ 'alertCantEdit': 'Vous devez être connecté pour pouvoir créer/modifier/supprimer des annotations ou des transcriptions.\nL\'inscription est gratuite (bouton "S\'enregister" en haut de la page.)',
+ 'annotButton': 'Dessiner une annotation (rectangle)',
+ 'conceptualAnnotButton': 'Dessiner une annotation conceptuelle (rectangle)',
+ 'transcriptionButton': 'Dessiner une transcription (rectangle)',
+ 'rotateClockwise': 'Pivoter l\'image dans le sens horaire (-90°)',
+ 'rotateAnticlockwise': 'Pivoter l\'image dans le sens antihoraire (+90°)',
+ 'toggleNavWindow': 'Montrer/Cacher la fenêtre de navigation',
+ 'toggleAnnotations': 'Montrer/Cacher les annotations',
+ 'exportView': 'Exporter une image de la vue courante',
+ 'zoomIn': 'Zoom avant',
+ 'zoomOut': 'Zoom arrière',
+ 'resetView': 'Réinitialiser la vue',
+ 'toggleFullscreen': 'Passer en mode plein écran',
+// annotations-edit-mass.js
+ 'cantDrawRotate': 'Vous ne pouvez pas créer ou éditer une annotation lorsque l\'image a été pivotée.',
+ 'cantEditAndDraw': 'Vous ne pouvez pas créer un annotation pendant l\'édition. Annuler ou terminer l\'édition.',
+ 'selectionImpossible': 'La sélection que vous avez faite est impossible. Vous avez probablement commencer la sélection hors de l\'image. Merci de recommander.',
+ 'alreadyEditing': 'Une annotation est en cours d\édition. Annuler l\édition actuel avant de pour pouvoir éditer une autre annotation.',
+// iipmooviewer-2.0.js
+ 'cantRotateEditing': 'Impossible de pivoter une image lors de l\'édition d\'une annotation.'
};