Merge branch 'master' of github.com:Sankore/Sankore-3.1

Conflicts:
	resources/sankore.qrc
	src/adaptors/UBSvgSubsetAdaptor.cpp
	src/adaptors/UBSvgSubsetAdaptor.h
	src/gui/UBDockPalette.cpp
	src/gui/UBDockPalette.h
	src/gui/UBLibPalette.cpp
	src/gui/UBNavigatorPalette.cpp
preferencesAboutTextFull
shibakaneki 14 years ago
commit 2539522f77
  1. 4
      Sankore_3.1.pro
  2. 1
      resources/i18n/sankore_ar.qm
  3. BIN
      resources/i18n/sankore_da.qm
  4. BIN
      resources/i18n/sankore_de.qm
  5. BIN
      resources/i18n/sankore_en.qm
  6. BIN
      resources/i18n/sankore_en_UK.qm
  7. BIN
      resources/i18n/sankore_es.qm
  8. BIN
      resources/i18n/sankore_fr.qm
  9. 173
      resources/i18n/sankore_fr.ts
  10. BIN
      resources/i18n/sankore_fr_CH.qm
  11. 173
      resources/i18n/sankore_fr_CH.ts
  12. BIN
      resources/i18n/sankore_it.qm
  13. 1
      resources/i18n/sankore_iw.qm
  14. BIN
      resources/i18n/sankore_ja.qm
  15. BIN
      resources/i18n/sankore_ko.qm
  16. BIN
      resources/i18n/sankore_nb.qm
  17. BIN
      resources/i18n/sankore_nl.qm
  18. BIN
      resources/i18n/sankore_pl.qm
  19. BIN
      resources/i18n/sankore_rm.qm
  20. BIN
      resources/i18n/sankore_ro.qm
  21. BIN
      resources/i18n/sankore_ru.qm
  22. BIN
      resources/i18n/sankore_sv.qm
  23. BIN
      resources/i18n/sankore_zh.qm
  24. 106
      resources/images/libpalette/FlashCategory.svg
  25. 89
      resources/images/libpalette/FlashIcon.svg
  26. BIN
      resources/images/library_close.png
  27. BIN
      resources/images/library_open.png
  28. BIN
      resources/images/pages_close.png
  29. BIN
      resources/images/pages_open.png
  30. BIN
      resources/images/toolbar/stylusTab.png
  31. 186
      resources/library/interactive/Graphme.wgt/Grapheur.xhtml
  32. 472
      resources/library/interactive/Graphme.wgt/JavaScript/jQuery/DD_roundies_0.0.2a.js
  33. 74
      resources/library/interactive/Graphme.wgt/JavaScript/jQuery/calculate.js
  34. 19
      resources/library/interactive/Graphme.wgt/JavaScript/jQuery/jquery-1.3.2.min.js
  35. 298
      resources/library/interactive/Graphme.wgt/JavaScript/jQuery/jquery-ui-1.7.2.custom.min.js
  36. 56
      resources/library/interactive/Graphme.wgt/JavaScript/jQuery/jquery.center.js
  37. 62
      resources/library/interactive/Graphme.wgt/JavaScript/jQuery/jquery.disable.text.select.js
  38. 140
      resources/library/interactive/Graphme.wgt/JavaScript/jQuery/jquery.easing.1.2.js
  39. 259
      resources/library/interactive/Graphme.wgt/JavaScript/jQuery/jquery.ubwidget.js
  40. 526
      resources/library/interactive/Graphme.wgt/JavaScript/jQuery/ubw-main.js
  41. 19
      resources/library/interactive/Graphme.wgt/JavaScript/jquery-1.3.2.min.js
  42. 62
      resources/library/interactive/Graphme.wgt/JavaScript/jquery.disable.text.select.js
  43. 9
      resources/library/interactive/WebBrowser.wgt/index.html
  44. 0
      resources/library/nonDistributedInteractivities/Geogebra.wgt/bin/geogebra.jar
  45. 0
      resources/library/nonDistributedInteractivities/Geogebra.wgt/bin/geogebra_cas.jar
  46. 0
      resources/library/nonDistributedInteractivities/Geogebra.wgt/bin/geogebra_export.jar
  47. 0
      resources/library/nonDistributedInteractivities/Geogebra.wgt/bin/geogebra_gui.jar
  48. 0
      resources/library/nonDistributedInteractivities/Geogebra.wgt/bin/geogebra_main.jar
  49. 0
      resources/library/nonDistributedInteractivities/Geogebra.wgt/bin/geogebra_properties.jar
  50. 0
      resources/library/nonDistributedInteractivities/Geogebra.wgt/config.xml
  51. 0
      resources/library/nonDistributedInteractivities/Geogebra.wgt/icon.png
  52. 0
      resources/library/nonDistributedInteractivities/Geogebra.wgt/images/loading.gif
  53. 0
      resources/library/nonDistributedInteractivities/Geogebra.wgt/index.html
  54. 8
      resources/sankore.qrc
  55. 52
      src/adaptors/UBSvgSubsetAdaptor.cpp
  56. 1
      src/adaptors/UBSvgSubsetAdaptor.h
  57. 2
      src/adaptors/publishing/UBDocumentPublisher.h
  58. 4
      src/board/UBBoardPaletteManager.cpp
  59. 2
      src/board/UBLibraryController.cpp
  60. 1
      src/core/UBApplication.h
  61. 11
      src/core/UBApplicationController.cpp
  62. 25
      src/desktop/UBDesktopAnnotationController.cpp
  63. 2
      src/document/UBDocumentController.cpp
  64. 5
      src/domain/UBW3CWidget.cpp
  65. 5
      src/gui/UBDockPalette.h
  66. 5
      src/gui/UBFloatingPalette.cpp
  67. 4
      src/gui/UBLibPalette.cpp
  68. 1
      src/gui/UBMainWindow.cpp
  69. 2
      src/gui/UBMainWindow.h
  70. 3
      src/gui/UBNavigatorPalette.cpp
  71. 1
      src/gui/UBUpdateDlg.cpp
  72. 5
      src/podcast/quicktime/UBAudioQueueRecorder.cpp
  73. 3
      src/podcast/quicktime/UBQuickTimeFile.cpp
  74. 10
      src/tools/UBAbstractDrawRuler.cpp
  75. 6
      src/tools/UBGraphicsTriangle.cpp
  76. 12
      src/tools/UBGraphicsTriangle.h
  77. 2
      src/transition/UniboardSankoreTransition.cpp

@ -7,8 +7,8 @@ CONFIG += debug_and_release \
no_include_pwd
VERSION_MAJ = 1
VERSION_MIN = 15
VERSION_TYPE = b # a = alpha, b = beta, r = release, other => error
VERSION_MIN = 20
VERSION_TYPE = r # a = alpha, b = beta, r = release, other => error
VERSION_PATCH = 00
VERSION = "$${VERSION_MAJ}.$${VERSION_MIN}.$${VERSION_TYPE}.$${VERSION_PATCH}"

@ -0,0 +1 @@
<クd<EFBFBD>箆!ソ`。スン

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -7,6 +7,10 @@
<source>Click to Return to Application</source>
<translation>Cliquer pour activer Sankoré</translation>
</message>
<message>
<source>background: url(:/images/bigUniboard.png); border: none;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DownloadDialog</name>
@ -45,12 +49,16 @@
<source>Open</source>
<translation>Ouvrir</translation>
</message>
<message>
<source>Ico</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>IntranetPodcastPublishingDialog</name>
<message>
<source>Publish Podcast to YouTube</source>
<translation type="unfinished">Publier le Podcast sur YouTube</translation>
<translation>Publier le Podcast sur YouTube</translation>
</message>
<message>
<source>Title</source>
@ -129,7 +137,7 @@
</message>
<message>
<source>Start Screen Recording</source>
<translation type="unfinished">Démarrer l&apos;enregistrement de l&apos;écran</translation>
<translation>Démarrer l&apos;enregistrement de l&apos;écran</translation>
</message>
<message>
<source>Marker</source>
@ -189,7 +197,7 @@
</message>
<message>
<source>Trap Flash Content</source>
<translation type="unfinished">Capturer Flash</translation>
<translation>Capturer Flash</translation>
</message>
<message>
<source>Web Trap</source>
@ -249,11 +257,11 @@
</message>
<message>
<source>Web Browsing</source>
<translation type="unfinished">Parcourir le Web</translation>
<translation>Parcourir le Web</translation>
</message>
<message>
<source>Small Line</source>
<translation type="unfinished">Ligne fine</translation>
<translation>Ligne fine</translation>
</message>
<message>
<source>Medium Line</source>
@ -261,11 +269,11 @@
</message>
<message>
<source>Large Line</source>
<translation type="unfinished">Ligne large</translation>
<translation>Ligne large</translation>
</message>
<message>
<source>Smalle Eraser</source>
<translation type="unfinished">Gomme fine</translation>
<translation>Gomme fine</translation>
</message>
<message>
<source>Medium Eraser</source>
@ -389,7 +397,7 @@
</message>
<message>
<source>Sankore 3.1</source>
<translation type="unfinished">Sankoré 3.1</translation>
<translation>Sankoré 3.1</translation>
</message>
<message>
<source>Show Desktop</source>
@ -397,7 +405,7 @@
</message>
<message>
<source>Ctrl+Shift+H</source>
<translation type="unfinished">Ctrl+Shift+H</translation>
<translation>Ctrl+Shift+H</translation>
</message>
<message>
<source>Rename Content</source>
@ -457,7 +465,7 @@
</message>
<message>
<source>Clear All Elements</source>
<translation type="unfinished">Effacer tous les éléments</translation>
<translation>Effacer tous les éléments</translation>
</message>
<message>
<source>Annotate Document</source>
@ -465,7 +473,7 @@
</message>
<message>
<source>Ctrl+I</source>
<translation type="unfinished">Ctrl+I</translation>
<translation>Ctrl+I</translation>
</message>
<message>
<source>Erase Annotation</source>
@ -473,11 +481,11 @@
</message>
<message>
<source>Ctrl+E</source>
<translation type="unfinished">Ctrl+E</translation>
<translation>Ctrl+E</translation>
</message>
<message>
<source>Highlight </source>
<translation type="unfinished">Mettre en surbrillance</translation>
<translation>Mettre en surbrillance</translation>
</message>
<message>
<source>Ctrl+M</source>
@ -561,7 +569,7 @@
</message>
<message>
<source>Pause Podcast Recording</source>
<translation type="unfinished">Mettre en pause l&apos;enregistrement</translation>
<translation>Mettre en pause l&apos;enregistrement</translation>
</message>
<message>
<source>Podcast Config</source>
@ -581,7 +589,7 @@
</message>
<message>
<source>Show Sankore Widgets Editor</source>
<translation type="unfinished">Afficher l&apos;éditeur d&apos;Apps Sankoré</translation>
<translation>Afficher l&apos;éditeur d&apos;Apps Sankoré</translation>
</message>
<message utf8="true">
<source>Hide Sankoré</source>
@ -818,6 +826,14 @@
<source>Password:</source>
<translation>Mot de passe:</translation>
</message>
<message>
<source>DUMMY ICON</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>INTRO TEXT DUMMY</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ProxyDialog</name>
@ -841,6 +857,10 @@
<source>Save username and password for future use</source>
<translation>Sauver nom utilisateur &amp; mot de passe</translation>
</message>
<message>
<source>ICON</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>
@ -855,13 +875,6 @@
<translation type="unfinished">Accueil</translation>
</message>
</context>
<context>
<name>QuaZipFile</name>
<message>
<source>ZIP/UNZIP API error %1</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBAbstractPublisher</name>
<message>
@ -1097,16 +1110,9 @@
<source>Page %1</source>
<translation>Page %1</translation>
</message>
<message numerus="yes">
<source>Are you sure you want to remove %n page(s) from the selected document &apos;%1&apos;?</source>
<translation type="unfinished">
<numerusform></numerusform>
<numerusform></numerusform>
</translation>
</message>
<message>
<source>The document &apos;%1&apos; has been generated with a newer version of Sankore (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation type="unfinished"></translation>
<translation>Ce document &apos;%1&apos; a é créé avec une version plus récente de Sankoré (%2). En l&apos;ouvrant, vous risquez de perdre certains éléments. Désirez-vous continuer?</translation>
</message>
</context>
<context>
@ -1167,19 +1173,19 @@
</message>
<message>
<source>Credentials has to not been filled out yet.</source>
<translation type="unfinished"></translation>
<translation>Les informations n&apos;ont pas encore é remplies.</translation>
</message>
<message>
<source>Uploading Sankore File on Web.</source>
<translation type="unfinished"></translation>
<translation>Fichier Sankoré en cours d&apos;import sur le Web.</translation>
</message>
<message>
<source>Document uploaded correctly on the web.</source>
<translation type="unfinished"></translation>
<translation>Document correctment importé sur le Web.</translation>
</message>
<message>
<source>Failed to upload document on the web.</source>
<translation type="unfinished"></translation>
<translation>L&apos;import Web du document a échoué.</translation>
</message>
</context>
<context>
@ -1192,19 +1198,12 @@
<source>Copying page %1/%2</source>
<translation>Copie de la page %1/%2 en cours</translation>
</message>
<message numerus="yes">
<source>%1 pages copied</source>
<translation type="unfinished">
<numerusform></numerusform>
<numerusform></numerusform>
</translation>
</message>
</context>
<context>
<name>UBDropMeWidget</name>
<message>
<source>Drop here</source>
<translation type="unfinished">Déposer ici</translation>
<translation>Déposer ici</translation>
</message>
</context>
<context>
@ -1231,7 +1230,7 @@
</message>
<message>
<source>Export to Sankore Format</source>
<translation type="unfinished"></translation>
<translation>Export au format Sankoré</translation>
</message>
</context>
<context>
@ -1351,19 +1350,19 @@
</message>
<message>
<source>Importing file %1...</source>
<translation type="unfinished">Importation du fichier %1...</translation>
<translation>Importation du fichier %1...</translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation type="unfinished"></translation>
<translation>L&apos;import du fichier %1 a échoué.</translation>
</message>
<message>
<source>Import successful.</source>
<translation type="unfinished">Importation terminée.</translation>
<translation>Importation terminée.</translation>
</message>
<message>
<source>Import failed.</source>
<translation type="unfinished"></translation>
<translation>L&apos;import a échoué.</translation>
</message>
</context>
<context>
@ -1378,11 +1377,11 @@
</message>
<message>
<source>Sankore 3.1 (*.ubz)</source>
<translation type="unfinished">Sankore 3.1 (*.ubz)</translation>
<translation>Sankore 3.1 (*.ubz)</translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation type="unfinished"></translation>
<translation>L&apos;import du fichier %1 a échoué.</translation>
</message>
</context>
<context>
@ -1457,7 +1456,7 @@
</message>
<message>
<source>Back to folder</source>
<translation type="unfinished">Retour au répertoire</translation>
<translation>Retour au répertoire</translation>
</message>
<message>
<source>Remove from favorites</source>
@ -1495,7 +1494,7 @@
<name>UBLibraryController</name>
<message>
<source>Added 1 Image to Library</source>
<translation>1 images ajoutées à la bibiliothèque</translation>
<translation>1 image ajoutées à la bibiliothèque</translation>
</message>
<message>
<source>Audios</source>
@ -1505,7 +1504,7 @@
<message>
<source>Movies</source>
<comment>Movies category element</comment>
<translation type="unfinished">Vidéos</translation>
<translation>Vidéos</translation>
</message>
<message>
<source>Pictures</source>
@ -1529,11 +1528,11 @@
</message>
<message>
<source>Creating image thumbnail for %1.</source>
<translation type="unfinished">Création de la vignette pour %1.</translation>
<translation>Création de la vignette pour %1.</translation>
</message>
<message>
<source>Adding to page failed for item %1.</source>
<translation type="unfinished">Impossible d&apos;ajouter %1 à la page courrante.</translation>
<translation>Impossible d&apos;ajouter %1 à la page courrante.</translation>
</message>
<message>
<source>Interactivities</source>
@ -1547,7 +1546,7 @@
<message>
<source>Animations</source>
<comment>Animations category element</comment>
<translation type="unfinished"></translation>
<translation>Animations</translation>
</message>
</context>
<context>
@ -1600,7 +1599,7 @@ Voulez-vous ignorer les erreurs pour ce serveur?</translation>
</message>
<message>
<source>Sankore has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation type="unfinished"></translation>
<translation>Sankoré a perdu l&apos;accès au dossier de document &apos;%1&apos;. Malheurheusement l&apos;application doit être fermée pour éviter tout risque de corruption de vos fichiers. Les dernières modifications effectuées risquent d&apos;être perdues.</translation>
</message>
</context>
<context>
@ -1663,7 +1662,7 @@ Voulez-vous ignorer les erreurs pour ce serveur?</translation>
</message>
<message>
<source>Sankore Cast</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
</context>
<context>
@ -1681,34 +1680,34 @@ Voulez-vous ignorer les erreurs pour ce serveur?</translation>
<name>UBProxyLoginDlg</name>
<message>
<source>Proxy Login</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>Username:</source>
<translation type="unfinished">Nom d&apos;utilisateur:</translation>
<translation>Nom d&apos;utilisateur:</translation>
</message>
<message>
<source>Password:</source>
<translation type="unfinished">Mot de passe:</translation>
<translation>Mot de passe:</translation>
</message>
</context>
<context>
<name>UBPublicationDlg</name>
<message>
<source>Publish document on the web</source>
<translation type="unfinished"></translation>
<translation>Publier le document sur le web</translation>
</message>
<message>
<source>Title:</source>
<translation type="unfinished"></translation>
<translation>Titre:</translation>
</message>
<message>
<source>Description:</source>
<translation type="unfinished"></translation>
<translation>Description:</translation>
</message>
<message>
<source>Publish</source>
<translation type="unfinished">Publier</translation>
<translation>Publier</translation>
</message>
</context>
<context>
@ -1719,7 +1718,7 @@ Voulez-vous ignorer les erreurs pour ce serveur?</translation>
</message>
<message>
<source>Trash</source>
<translation type="unfinished">Corbeille</translation>
<translation>Corbeille</translation>
</message>
<message>
<source>Images</source>
@ -1761,7 +1760,7 @@ Voulez-vous ignorer les erreurs pour ce serveur?</translation>
</message>
<message>
<source>Triangle</source>
<translation type="unfinished"></translation>
<translation>Equerre</translation>
</message>
</context>
<context>
@ -1817,7 +1816,11 @@ Veuillez redémarrer l&apos;application pour accéder aux documents mis à jour.
</message>
<message>
<source>Updating file </source>
<translation type="unfinished"></translation>
<translation>Mise à jour du fichier</translation>
</message>
<message>
<source>Please wait the import process will start soon...</source>
<translation>Merci de patienter, le processus d&apos;import va commencer...</translation>
</message>
</context>
<context>
@ -1838,7 +1841,7 @@ Veuillez redémarrer l&apos;application pour accéder aux documents mis à jour.
<name>UBWebPublisher</name>
<message>
<source>Publish Document on Sankore Web</source>
<translation type="unfinished"></translation>
<translation>Publier le document sur Planète Sankoré</translation>
</message>
</context>
<context>
@ -2095,7 +2098,7 @@ Veuillez redémarrer l&apos;application pour accéder aux documents mis à jour.
</message>
<message>
<source>Clear Recent Searches</source>
<translation type="unfinished">Supprimer l&apos;historique de recherches</translation>
<translation>Supprimer l&apos;historique de recherches</translation>
</message>
</context>
<context>
@ -2106,7 +2109,7 @@ Veuillez redémarrer l&apos;application pour accéder aux documents mis à jour.
</message>
<message>
<source>Add to Current Document</source>
<translation type="unfinished">Ajouter au document courant</translation>
<translation>Ajouter au document courant</translation>
</message>
<message>
<source>PDF</source>
@ -2118,7 +2121,7 @@ Veuillez redémarrer l&apos;application pour accéder aux documents mis à jour.
</message>
<message>
<source>Download PDF Document: would you prefer to download the PDF file or add it to the current Sankore document?</source>
<translation type="unfinished"></translation>
<translation>Téléchargement du PDF: préférez-vous téléchargemer le fichier PDF ou l&apos;ajouter à votre document Sankoré actuellement ouvert ?</translation>
</message>
</context>
<context>
@ -2148,7 +2151,7 @@ Veuillez redémarrer l&apos;application pour accéder aux documents mis à jour.
</message>
<message>
<source>Uniboard</source>
<translation type="unfinished">Sankoré</translation>
<translation>Sankoré</translation>
</message>
<message>
<source>Category</source>
@ -2253,11 +2256,11 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Attach Downloadable PDF Version</source>
<translation type="unfinished">Attacher la version PDF</translation>
<translation>Attacher la version PDF</translation>
</message>
<message>
<source>Attach Downloadable Uniboard File (UBZ)</source>
<translation type="unfinished">Attacher le fichier Sankoré (UBZ)</translation>
<translation>Attacher le fichier Sankoré (UBZ)</translation>
</message>
<message>
<source>Warning: This documents contains video, which will not be displayed properly on the Web</source>
@ -2270,6 +2273,10 @@ p, li { white-space: pre-wrap; }
<source>Uniboard Documents</source>
<translation>Documents Uniboard</translation>
</message>
<message>
<source>1</source>
<translation></translation>
</message>
</context>
<context>
<name>preferencesDialog</name>
@ -2291,7 +2298,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Show Page with External Browser</source>
<translation type="unfinished">Ouvrir la page dans un navigateur Web externe</translation>
<translation>Ouvrir la page dans un navigateur Web externe</translation>
</message>
<message>
<source>Virtual Keyboard</source>
@ -2299,15 +2306,15 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Keyboard button size:</source>
<translation type="unfinished">Taille des touches du clavier virtuel:</translation>
<translation>Taille des touches du clavier virtuel:</translation>
</message>
<message>
<source>Positioned at the Top (recommended for tablets)</source>
<translation type="unfinished">Positionné en haut (recommandé pour les tablettes)</translation>
<translation>Positionné en haut (recommandé pour les tablettes)</translation>
</message>
<message>
<source>Positioned at the Bottom (recommended for white boards)</source>
<translation type="unfinished">Positionné en bas (recommandé pour les tableaux blancs)</translation>
<translation>Positionné en bas (recommandé pour les tableaux blancs)</translation>
</message>
<message>
<source>Display Text Under Button</source>
@ -2351,7 +2358,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Stylus Palette</source>
<translation type="unfinished">Barre d&apos;outil du stylet</translation>
<translation>Barre d&apos;outil du stylet</translation>
</message>
<message>
<source>Horizontal</source>
@ -2375,7 +2382,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Licences</source>
<translation type="unfinished">Licences</translation>
<translation>Licences</translation>
</message>
<message>
<source>OpenSSl</source>
@ -2632,15 +2639,15 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Network</source>
<translation type="unfinished"></translation>
<translation>Réseau</translation>
</message>
<message>
<source>Community</source>
<translation type="unfinished"></translation>
<translation>Communauté</translation>
</message>
<message>
<source>User/Pass:</source>
<translation type="unfinished"></translation>
<translation>Nom d&apos;utilisateur/Mot de passe:</translation>
</message>
</context>
<context>

Binary file not shown.

@ -7,6 +7,10 @@
<source>Click to Return to Application</source>
<translation>Cliquer pour activer Sankoré</translation>
</message>
<message>
<source>background: url(:/images/bigUniboard.png); border: none;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DownloadDialog</name>
@ -45,12 +49,16 @@
<source>Open</source>
<translation>Ouvrir</translation>
</message>
<message>
<source>Ico</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>IntranetPodcastPublishingDialog</name>
<message>
<source>Publish Podcast to YouTube</source>
<translation type="unfinished">Publier le Podcast sur YouTube</translation>
<translation>Publier le Podcast sur YouTube</translation>
</message>
<message>
<source>Title</source>
@ -129,7 +137,7 @@
</message>
<message>
<source>Start Screen Recording</source>
<translation type="unfinished">Démarrer l&apos;enregistrement de l&apos;écran</translation>
<translation>Démarrer l&apos;enregistrement de l&apos;écran</translation>
</message>
<message>
<source>Marker</source>
@ -189,7 +197,7 @@
</message>
<message>
<source>Trap Flash Content</source>
<translation type="unfinished">Capturer Flash</translation>
<translation>Capturer Flash</translation>
</message>
<message>
<source>Web Trap</source>
@ -249,11 +257,11 @@
</message>
<message>
<source>Web Browsing</source>
<translation type="unfinished">Parcourir le Web</translation>
<translation>Parcourir le Web</translation>
</message>
<message>
<source>Small Line</source>
<translation type="unfinished">Ligne fine</translation>
<translation>Ligne fine</translation>
</message>
<message>
<source>Medium Line</source>
@ -261,11 +269,11 @@
</message>
<message>
<source>Large Line</source>
<translation type="unfinished">Ligne large</translation>
<translation>Ligne large</translation>
</message>
<message>
<source>Smalle Eraser</source>
<translation type="unfinished">Gomme fine</translation>
<translation>Gomme fine</translation>
</message>
<message>
<source>Medium Eraser</source>
@ -389,7 +397,7 @@
</message>
<message>
<source>Sankore 3.1</source>
<translation type="unfinished">Sankoré 3.1</translation>
<translation>Sankoré 3.1</translation>
</message>
<message>
<source>Show Desktop</source>
@ -397,7 +405,7 @@
</message>
<message>
<source>Ctrl+Shift+H</source>
<translation type="unfinished">Ctrl+Shift+H</translation>
<translation>Ctrl+Shift+H</translation>
</message>
<message>
<source>Rename Content</source>
@ -457,7 +465,7 @@
</message>
<message>
<source>Clear All Elements</source>
<translation type="unfinished">Effacer tous les éléments</translation>
<translation>Effacer tous les éléments</translation>
</message>
<message>
<source>Annotate Document</source>
@ -465,7 +473,7 @@
</message>
<message>
<source>Ctrl+I</source>
<translation type="unfinished">Ctrl+I</translation>
<translation>Ctrl+I</translation>
</message>
<message>
<source>Erase Annotation</source>
@ -473,11 +481,11 @@
</message>
<message>
<source>Ctrl+E</source>
<translation type="unfinished">Ctrl+E</translation>
<translation>Ctrl+E</translation>
</message>
<message>
<source>Highlight </source>
<translation type="unfinished">Mettre en surbrillance</translation>
<translation>Mettre en surbrillance</translation>
</message>
<message>
<source>Ctrl+M</source>
@ -561,7 +569,7 @@
</message>
<message>
<source>Pause Podcast Recording</source>
<translation type="unfinished">Mettre en pause l&apos;enregistrement</translation>
<translation>Mettre en pause l&apos;enregistrement</translation>
</message>
<message>
<source>Podcast Config</source>
@ -581,7 +589,7 @@
</message>
<message>
<source>Show Sankore Widgets Editor</source>
<translation type="unfinished">Afficher l&apos;éditeur d&apos;Apps Sankoré</translation>
<translation>Afficher l&apos;éditeur d&apos;Apps Sankoré</translation>
</message>
<message utf8="true">
<source>Hide Sankoré</source>
@ -818,6 +826,14 @@
<source>Password:</source>
<translation>Mot de passe:</translation>
</message>
<message>
<source>DUMMY ICON</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>INTRO TEXT DUMMY</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ProxyDialog</name>
@ -841,6 +857,10 @@
<source>Save username and password for future use</source>
<translation>Sauver nom utilisateur &amp; mot de passe</translation>
</message>
<message>
<source>ICON</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>
@ -855,13 +875,6 @@
<translation type="unfinished">Accueil</translation>
</message>
</context>
<context>
<name>QuaZipFile</name>
<message>
<source>ZIP/UNZIP API error %1</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBAbstractPublisher</name>
<message>
@ -1097,16 +1110,9 @@
<source>Page %1</source>
<translation>Page %1</translation>
</message>
<message numerus="yes">
<source>Are you sure you want to remove %n page(s) from the selected document &apos;%1&apos;?</source>
<translation type="unfinished">
<numerusform></numerusform>
<numerusform></numerusform>
</translation>
</message>
<message>
<source>The document &apos;%1&apos; has been generated with a newer version of Sankore (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation type="unfinished"></translation>
<translation>Ce document &apos;%1&apos; a é créé avec une version plus récente de Sankoré (%2). En l&apos;ouvrant, vous risquez de perdre certains éléments. Désirez-vous continuer?</translation>
</message>
</context>
<context>
@ -1167,19 +1173,19 @@
</message>
<message>
<source>Credentials has to not been filled out yet.</source>
<translation type="unfinished"></translation>
<translation>Les informations n&apos;ont pas encore é remplies.</translation>
</message>
<message>
<source>Uploading Sankore File on Web.</source>
<translation type="unfinished"></translation>
<translation>Fichier Sankoré en cours d&apos;import sur le Web.</translation>
</message>
<message>
<source>Document uploaded correctly on the web.</source>
<translation type="unfinished"></translation>
<translation>Document correctment importé sur le Web.</translation>
</message>
<message>
<source>Failed to upload document on the web.</source>
<translation type="unfinished"></translation>
<translation>L&apos;import Web du document a échoué.</translation>
</message>
</context>
<context>
@ -1192,19 +1198,12 @@
<source>Copying page %1/%2</source>
<translation>Copie de la page %1/%2 en cours</translation>
</message>
<message numerus="yes">
<source>%1 pages copied</source>
<translation type="unfinished">
<numerusform></numerusform>
<numerusform></numerusform>
</translation>
</message>
</context>
<context>
<name>UBDropMeWidget</name>
<message>
<source>Drop here</source>
<translation type="unfinished">Déposer ici</translation>
<translation>Déposer ici</translation>
</message>
</context>
<context>
@ -1231,7 +1230,7 @@
</message>
<message>
<source>Export to Sankore Format</source>
<translation type="unfinished"></translation>
<translation>Export au format Sankoré</translation>
</message>
</context>
<context>
@ -1351,19 +1350,19 @@
</message>
<message>
<source>Importing file %1...</source>
<translation type="unfinished">Importation du fichier %1...</translation>
<translation>Importation du fichier %1...</translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation type="unfinished"></translation>
<translation>L&apos;import du fichier %1 a échoué.</translation>
</message>
<message>
<source>Import successful.</source>
<translation type="unfinished">Importation terminée.</translation>
<translation>Importation terminée.</translation>
</message>
<message>
<source>Import failed.</source>
<translation type="unfinished"></translation>
<translation>L&apos;import a échoué.</translation>
</message>
</context>
<context>
@ -1378,11 +1377,11 @@
</message>
<message>
<source>Sankore 3.1 (*.ubz)</source>
<translation type="unfinished">Sankore 3.1 (*.ubz)</translation>
<translation>Sankore 3.1 (*.ubz)</translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation type="unfinished"></translation>
<translation>L&apos;import du fichier %1 a échoué.</translation>
</message>
</context>
<context>
@ -1457,7 +1456,7 @@
</message>
<message>
<source>Back to folder</source>
<translation type="unfinished">Retour au répertoire</translation>
<translation>Retour au répertoire</translation>
</message>
<message>
<source>Remove from favorites</source>
@ -1495,7 +1494,7 @@
<name>UBLibraryController</name>
<message>
<source>Added 1 Image to Library</source>
<translation>1 images ajoutées à la bibiliothèque</translation>
<translation>1 image ajoutées à la bibiliothèque</translation>
</message>
<message>
<source>Audios</source>
@ -1505,7 +1504,7 @@
<message>
<source>Movies</source>
<comment>Movies category element</comment>
<translation type="unfinished">Vidéos</translation>
<translation>Vidéos</translation>
</message>
<message>
<source>Pictures</source>
@ -1529,11 +1528,11 @@
</message>
<message>
<source>Creating image thumbnail for %1.</source>
<translation type="unfinished">Création de la vignette pour %1.</translation>
<translation>Création de la vignette pour %1.</translation>
</message>
<message>
<source>Adding to page failed for item %1.</source>
<translation type="unfinished">Impossible d&apos;ajouter %1 à la page courrante.</translation>
<translation>Impossible d&apos;ajouter %1 à la page courrante.</translation>
</message>
<message>
<source>Interactivities</source>
@ -1547,7 +1546,7 @@
<message>
<source>Animations</source>
<comment>Animations category element</comment>
<translation type="unfinished"></translation>
<translation>Animations</translation>
</message>
</context>
<context>
@ -1600,7 +1599,7 @@ Voulez-vous ignorer les erreurs pour ce serveur?</translation>
</message>
<message>
<source>Sankore has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation type="unfinished"></translation>
<translation>Sankoré a perdu l&apos;accès au dossier de document &apos;%1&apos;. Malheurheusement l&apos;application doit être fermée pour éviter tout risque de corruption de vos fichiers. Les dernières modifications effectuées risquent d&apos;être perdues.</translation>
</message>
</context>
<context>
@ -1663,7 +1662,7 @@ Voulez-vous ignorer les erreurs pour ce serveur?</translation>
</message>
<message>
<source>Sankore Cast</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
</context>
<context>
@ -1681,34 +1680,34 @@ Voulez-vous ignorer les erreurs pour ce serveur?</translation>
<name>UBProxyLoginDlg</name>
<message>
<source>Proxy Login</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>Username:</source>
<translation type="unfinished">Nom d&apos;utilisateur:</translation>
<translation>Nom d&apos;utilisateur:</translation>
</message>
<message>
<source>Password:</source>
<translation type="unfinished">Mot de passe:</translation>
<translation>Mot de passe:</translation>
</message>
</context>
<context>
<name>UBPublicationDlg</name>
<message>
<source>Publish document on the web</source>
<translation type="unfinished"></translation>
<translation>Publier le document sur le web</translation>
</message>
<message>
<source>Title:</source>
<translation type="unfinished"></translation>
<translation>Titre:</translation>
</message>
<message>
<source>Description:</source>
<translation type="unfinished"></translation>
<translation>Description:</translation>
</message>
<message>
<source>Publish</source>
<translation type="unfinished">Publier</translation>
<translation>Publier</translation>
</message>
</context>
<context>
@ -1719,7 +1718,7 @@ Voulez-vous ignorer les erreurs pour ce serveur?</translation>
</message>
<message>
<source>Trash</source>
<translation type="unfinished">Corbeille</translation>
<translation>Corbeille</translation>
</message>
<message>
<source>Images</source>
@ -1761,7 +1760,7 @@ Voulez-vous ignorer les erreurs pour ce serveur?</translation>
</message>
<message>
<source>Triangle</source>
<translation type="unfinished"></translation>
<translation>Equerre</translation>
</message>
</context>
<context>
@ -1817,7 +1816,11 @@ Veuillez redémarrer l&apos;application pour accéder aux documents mis à jour.
</message>
<message>
<source>Updating file </source>
<translation type="unfinished"></translation>
<translation>Mise à jour du fichier</translation>
</message>
<message>
<source>Please wait the import process will start soon...</source>
<translation>Merci de patienter, le processus d&apos;import va commencer...</translation>
</message>
</context>
<context>
@ -1838,7 +1841,7 @@ Veuillez redémarrer l&apos;application pour accéder aux documents mis à jour.
<name>UBWebPublisher</name>
<message>
<source>Publish Document on Sankore Web</source>
<translation type="unfinished"></translation>
<translation>Publier le document sur Planète Sankoré</translation>
</message>
</context>
<context>
@ -2095,7 +2098,7 @@ Veuillez redémarrer l&apos;application pour accéder aux documents mis à jour.
</message>
<message>
<source>Clear Recent Searches</source>
<translation type="unfinished">Supprimer l&apos;historique de recherches</translation>
<translation>Supprimer l&apos;historique de recherches</translation>
</message>
</context>
<context>
@ -2106,7 +2109,7 @@ Veuillez redémarrer l&apos;application pour accéder aux documents mis à jour.
</message>
<message>
<source>Add to Current Document</source>
<translation type="unfinished">Ajouter au document courant</translation>
<translation>Ajouter au document courant</translation>
</message>
<message>
<source>PDF</source>
@ -2118,7 +2121,7 @@ Veuillez redémarrer l&apos;application pour accéder aux documents mis à jour.
</message>
<message>
<source>Download PDF Document: would you prefer to download the PDF file or add it to the current Sankore document?</source>
<translation type="unfinished"></translation>
<translation>Téléchargement du PDF: préférez-vous téléchargemer le fichier PDF ou l&apos;ajouter à votre document Sankoré actuellement ouvert ?</translation>
</message>
</context>
<context>
@ -2148,7 +2151,7 @@ Veuillez redémarrer l&apos;application pour accéder aux documents mis à jour.
</message>
<message>
<source>Uniboard</source>
<translation type="unfinished">Sankoré</translation>
<translation>Sankoré</translation>
</message>
<message>
<source>Category</source>
@ -2253,11 +2256,11 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Attach Downloadable PDF Version</source>
<translation type="unfinished">Attacher la version PDF</translation>
<translation>Attacher la version PDF</translation>
</message>
<message>
<source>Attach Downloadable Uniboard File (UBZ)</source>
<translation type="unfinished">Attacher le fichier Sankoré (UBZ)</translation>
<translation>Attacher le fichier Sankoré (UBZ)</translation>
</message>
<message>
<source>Warning: This documents contains video, which will not be displayed properly on the Web</source>
@ -2270,6 +2273,10 @@ p, li { white-space: pre-wrap; }
<source>Uniboard Documents</source>
<translation>Documents Uniboard</translation>
</message>
<message>
<source>1</source>
<translation></translation>
</message>
</context>
<context>
<name>preferencesDialog</name>
@ -2291,7 +2298,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Show Page with External Browser</source>
<translation type="unfinished">Ouvrir la page dans un navigateur Web externe</translation>
<translation>Ouvrir la page dans un navigateur Web externe</translation>
</message>
<message>
<source>Virtual Keyboard</source>
@ -2299,15 +2306,15 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Keyboard button size:</source>
<translation type="unfinished">Taille des touches du clavier virtuel:</translation>
<translation>Taille des touches du clavier virtuel:</translation>
</message>
<message>
<source>Positioned at the Top (recommended for tablets)</source>
<translation type="unfinished">Positionné en haut (recommandé pour les tablettes)</translation>
<translation>Positionné en haut (recommandé pour les tablettes)</translation>
</message>
<message>
<source>Positioned at the Bottom (recommended for white boards)</source>
<translation type="unfinished">Positionné en bas (recommandé pour les tableaux blancs)</translation>
<translation>Positionné en bas (recommandé pour les tableaux blancs)</translation>
</message>
<message>
<source>Display Text Under Button</source>
@ -2351,7 +2358,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Stylus Palette</source>
<translation type="unfinished">Barre d&apos;outil du stylet</translation>
<translation>Barre d&apos;outil du stylet</translation>
</message>
<message>
<source>Horizontal</source>
@ -2375,7 +2382,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Licences</source>
<translation type="unfinished">Licences</translation>
<translation>Licences</translation>
</message>
<message>
<source>OpenSSl</source>
@ -2632,15 +2639,15 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Network</source>
<translation type="unfinished"></translation>
<translation>Réseau</translation>
</message>
<message>
<source>Community</source>
<translation type="unfinished"></translation>
<translation>Communauté</translation>
</message>
<message>
<source>User/Pass:</source>
<translation type="unfinished"></translation>
<translation>Nom d&apos;utilisateur/Mot de passe:</translation>
</message>
</context>
<context>

Binary file not shown.

@ -0,0 +1 @@
<クd<EFBFBD>箆!ソ`。スン

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -0,0 +1,106 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In -->
<!DOCTYPE svg [
<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
]>
<svg version="1.2" baseProfile="tiny"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
x="0px" y="0px" width="96px" height="96px" viewBox="0 0 96 96" overflow="visible" xml:space="preserve">
<defs>
</defs>
<g id="XMLID_1_">
<path fill="none" stroke="#000000" stroke-miterlimit="10" d="M0.8,63.9"/>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="38.2183" y1="69.75" x2="38.2183" y2="0.75">
<stop offset="0" style="stop-color:#B7B6B7"/>
<stop offset="1" style="stop-color:#D9D9DE"/>
<a:midPointStop offset="0" style="stop-color:#B7B6B7"/>
<a:midPointStop offset="0.4847" style="stop-color:#B7B6B7"/>
<a:midPointStop offset="1" style="stop-color:#D9D9DE"/>
</linearGradient>
<path fill="url(#SVGID_1_)" d="M75.7,17.1V12c0-1.2-1-2.3-2.3-2.3H30.7V3.8c0-1.7-1.3-3-3-3h-24c-1.7,0-3,1.3-3,3v60
c0,3.3,1.1,6,2.8,6c1.7,0,2.7-2.7,3.2-6l5.7-44.4c0.2-1.2,1.3-2.2,2.6-2.2H75.7"/>
<path fill="none" stroke="#000000" stroke-miterlimit="10" d="M0.8,63.9"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="45.7817" y1="69.7832" x2="45.7817" y2="17.0337">
<stop offset="0" style="stop-color:#ECECED"/>
<stop offset="1" style="stop-color:#FFFFFF"/>
<a:midPointStop offset="0" style="stop-color:#ECECED"/>
<a:midPointStop offset="0.4847" style="stop-color:#ECECED"/>
<a:midPointStop offset="1" style="stop-color:#FFFFFF"/>
</linearGradient>
<path fill="url(#SVGID_2_)" d="M3.5,69.7c1.7,0,2.7-2.7,3.2-6l5.8-44.4C12.6,18,13.8,17,15,17l71.1,0.1c1.2,0,2.1,1,1.9,2.2
l-7.9,42.2c-0.2,1.2-0.8,3.2-1.2,4.3c0,0-1.5,3.9-3.2,3.9L4.3,69.7L3.5,69.7z"/>
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="47.1133" y1="69.75" x2="47.1133" y2="19.7076">
<stop offset="0" style="stop-color:#C7C8CC"/>
<stop offset="4.531335e-03" style="stop-color:#C8C9CD"/>
<stop offset="0.1361" style="stop-color:#D5D5DA"/>
<stop offset="0.2577" style="stop-color:#D9D9DE"/>
<stop offset="1" style="stop-color:#E5E5E9"/>
<a:midPointStop offset="0" style="stop-color:#C7C8CC"/>
<a:midPointStop offset="0.3095" style="stop-color:#C7C8CC"/>
<a:midPointStop offset="0.2577" style="stop-color:#D9D9DE"/>
<a:midPointStop offset="0.4847" style="stop-color:#D9D9DE"/>
<a:midPointStop offset="1" style="stop-color:#E5E5E9"/>
</linearGradient>
<path fill="url(#SVGID_3_)" d="M6.2,69.8c1.6,0,2.6-2.5,3.1-5.7l5.5-42.2c0.2-1.2,1.3-2.1,2.5-2.1h68.9c1.2,0,2,1,1.8,2.1
l-7.6,40.1c-0.2,1.2-0.8,3-1.2,4.1c0,0-1.5,3.7-3.1,3.7H6.9H6.2z"/>
<g>
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="3.6626" y1="43.4033" x2="75.8658" y2="43.4033">
<stop offset="0" style="stop-color:#828584"/>
<stop offset="6.628114e-03" style="stop-color:#878A89"/>
<stop offset="3.552453e-02" style="stop-color:#999C9C"/>
<stop offset="6.966200e-02" style="stop-color:#A6A9A9"/>
<stop offset="0.1136" style="stop-color:#AEB0B1"/>
<stop offset="0.2025" style="stop-color:#B0B2B3"/>
<stop offset="0.4962" style="stop-color:#ADAFB0"/>
<stop offset="0.6903" style="stop-color:#A5A7A7"/>
<stop offset="0.8549" style="stop-color:#969999"/>
<stop offset="1" style="stop-color:#828584"/>
<a:midPointStop offset="0" style="stop-color:#828584"/>
<a:midPointStop offset="0.1707" style="stop-color:#828584"/>
<a:midPointStop offset="0.2025" style="stop-color:#B0B2B3"/>
<a:midPointStop offset="0.7846" style="stop-color:#B0B2B3"/>
<a:midPointStop offset="1" style="stop-color:#828584"/>
</linearGradient>
<path fill="url(#SVGID_4_)" d="M3.7,69c0.7-0.3,1.7-1.9,2.3-5.4l5.7-44.4c0.2-1.6,1.7-2.9,3.3-2.9h60.8v1.5H15
c-0.9,0-1.7,0.7-1.8,1.6L7.5,63.8c-0.7,4.3-2,6.5-3.7,6.6L3.7,69z"/>
</g>
<path fill="none" stroke="#828584" stroke-width="1.5" stroke-miterlimit="10" d="M75.7,17.1V12c0-1.2-1-2.3-2.3-2.3H30.7V3.8
c0-1.7-1.3-3-3-3h-24c-1.7,0-3,1.3-3,3v60c0,3.3,1.1,6,2.8,6"/>
<path fill="none" stroke="#828584" stroke-width="1.5" stroke-miterlimit="10" d="M75.8,17.1h10.3c1.2,0,2.1,1,1.9,2.2l-7.8,42.2
c-0.2,1.2-0.8,3.2-1.2,4.3c0,0-1.5,3.9-3.2,3.9H3.5"/>
</g>
<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="53.6504" y1="83.4883" x2="53.6504" y2="37.084">
<stop offset="0" style="stop-color:#D35F5F"/>
<stop offset="1" style="stop-color:#F66C6C"/>
<a:midPointStop offset="0" style="stop-color:#D35F5F"/>
<a:midPointStop offset="0.5" style="stop-color:#D35F5F"/>
<a:midPointStop offset="1" style="stop-color:#F66C6C"/>
</linearGradient>
<path fill="url(#SVGID_5_)" d="M59.2,41.6c-5.9,5-8.4,13.2-10.1,17.4c-2.3,5.7-3.7,8.7-6.5,12.2c-2.8,3.3-8.3,3.1-8.3,3.1v9.2
c0,0,7.9,0.5,13.8-4.5c4.6-3.9,7.2-9.8,8.9-14.2h11.1v-9.2h-7.3c1.1-2.3,2.3-4.2,3.9-6.2c2.8-3.3,8.3-3.1,8.3-3.1v-9.2
C73,37.1,65.1,36.6,59.2,41.6z"/>
<path fill="#C30101" d="M59.2,44.6c-4.4,5-7.4,13.2-9.1,17.4c-2.3,5.7-4,9.4-7.5,12.2c-2.9,2.3-8.3,2.1-8.3,2.1v7.2
c0,0,7.9,0.5,13.8-4.5c4.6-3.9,7.2-9.8,8.9-14.2h11.1v-9.2h-7.3c1.1-2.3,2.3-4.2,3.9-6.2c2.8-3.3,8.3-3.1,8.3-3.1v-7.2
C73,39.1,64.4,38.6,59.2,44.6z"/>
<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="33.8525" y1="60.3037" x2="72.5508" y2="60.3037">
<stop offset="0" style="stop-color:#D80101"/>
<stop offset="1" style="stop-color:#F72121"/>
<a:midPointStop offset="0" style="stop-color:#D80101"/>
<a:midPointStop offset="0.5" style="stop-color:#D80101"/>
<a:midPointStop offset="1" style="stop-color:#F72121"/>
</linearGradient>
<path fill="url(#SVGID_6_)" d="M58.7,44.6c-4.4,5-7.4,13.2-9.1,17.4c-2.3,5.7-4,9.4-7.5,12.2c-2.9,2.3-8.3,2.1-8.3,2.1v5.2
c0,0,8.2,0.8,13.8-4.5c4.2-4,6.2-9.8,7.9-14.2h12.1v-7.2l-9.3,1.6c0.7-2.6,2.6-6.7,4.4-8.7c4.1-4.5,9.8-4.2,9.8-4.2v-5.2
C72.6,39.1,64,38.6,58.7,44.6z"/>
<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="58.3408" y1="56.4512" x2="68.0664" y2="56.4512">
<stop offset="0" style="stop-color:#D35F5F"/>
<stop offset="1" style="stop-color:#F66C6C"/>
<a:midPointStop offset="0" style="stop-color:#D35F5F"/>
<a:midPointStop offset="0.5" style="stop-color:#D35F5F"/>
<a:midPointStop offset="1" style="stop-color:#F66C6C"/>
</linearGradient>
<polygon fill="url(#SVGID_7_)" points="68.1,57.2 58.3,57.2 60.8,55.7 68.1,55.7 "/>
<path fill="none" stroke="#7E0606" stroke-linejoin="round" stroke-miterlimit="10" d="M59.2,41.6c-5.9,5-8.4,13.2-10.1,17.4
c-2.3,5.7-3.7,8.7-6.5,12.2c-2.8,3.3-8.3,3.1-8.3,3.1v9.2c0,0,7.9,0.5,13.8-4.5c4.6-3.9,7.2-9.8,8.9-14.2h11.1v-9.2h-7.3
c1.1-2.3,2.3-4.2,3.9-6.2c2.8-3.3,8.3-3.1,8.3-3.1v-9.2C73,37.1,65.1,36.6,59.2,41.6z"/>
</svg>

After

Width:  |  Height:  |  Size: 6.7 KiB

@ -0,0 +1,89 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In -->
<!DOCTYPE svg [
<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
]>
<svg version="1.2" baseProfile="tiny"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
x="0px" y="0px" width="96px" height="96px" viewBox="0 0 96 96" overflow="visible" xml:space="preserve">
<defs>
</defs>
<path fill="#FFFFFF" d="M40.2,0.8c-3.3,0-39.5,0-39.5,0v79h60c0,0,0-57.8,0-60.7c0-1.7-0.8-3.9-1.8-5.1c-1.6-1.9-10.3-9.1-12.1-10.8
C45.7,2.1,41.2,0.8,40.2,0.8z"/>
<image width="55" height="72" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADcAAABICAYAAABSr21SAAAACXBIWXMAAAsSAAALEgHS3X78AAAA
GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAOFJREFUeNrsmbEOgkAUBG+JnQL+
/1d6IDVqDImYSC7Q3Ftne4vJPHZRdcvjnCrNtW915POqGe4oaJOCZI+EMHB7AJWH+5yCpe8usjO3
pFRISHOlFpsUPFtywsNtASqPsc9ydaLt+kQ1GMG90n0APuEmK7g34Fk2z9x3FmGWcFZt+cuetblT
kjGcrM0Zq6MtKRTM0ZaY4yydd462BI4pwBxwhW3JVx7gaEvMAfff75b8+gUcU4A52hJzTAFtiTna
EnOcJVPAFNCWnCVwTIHx38a0Jc8ccMABxxTQlsBVl4cAAwAfQzexj9E6ZQAAAABJRU5ErkJggg==" transform="matrix(1 0 0 1 3.5 4.5)">
</image>
<image width="29" height="24" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAYCAYAAAAGXva8AAAACXBIWXMAAAsSAAALEgHS3X78AAAA
GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAjJJREFUeNqclm1S4zAMhiWlMHsD
9v6HAkqZblk+Bn7ABZhY2JZky447CQ1orKSNH7+SLHcH3fU9z5zGMM8whwAh2xzvza/29+YG4YKL
RkBmdhaAg/iBW+jr2ys/vzzzxVADFqg46b9bRF2MwU+nEx//Hfkipf4SMAsYBARefRqDmMEPhwNv
hnqVBhQHFAwKlodefQ4519zf7+/5YqWKa8DgwPW5qrdcxwK8u7vl/cOefw9dWa8uqfmaqdcbODyO
w019aMuFdUR/UzwsY/IQEYgoW/Kzxb9RgdF5Xp0WdFIZ9ROEOjlGkAJpmgScTT5/+v/UgOlqmpYb
HBWIVUULUVAaKSmMhgKcHDg/U0t7ej2neWIHBAfMEBfODKpKJ1NtalXx+8d7Bu/GPByoYufH78Tl
YoirJllQ2jalsvwiNQqodj6nrhC8Om85pCWPBJOFdKrPzEen/PPri7PSlNe+igUUX4hLJzZpUIxp
2ShsO2OTHiqVbWEu4e3BbWVWnoUmdr/oJxi6ltnEdxBigTc5PQcmWXKkxNxFFFlTQu5UcpdTU6xQ
hS8KyYNtZcFUcu1FyFI8Bci82OxNTTjFw+odgTMuCDmlOJ0uaKFlrq3RKV1uNWpzugVcz9gIQz3c
u0OgbWsGrAWFiLD6c6Ov6nSS9Ac62KHvN6q2TOhC/Of6Gndr0L64suIRsAH7bYONf7YjrYHRTdAc
Z4Mm40fr87utv2vshWETQdz8/q+ga/AtMLt+BBgAihO9fP/BydQAAAAASUVORK5CYII=" transform="matrix(1 0 0 1 29.5 4.5)">
</image>
<path fill="#FFFFFF" d="M43.7,16.4c1.8,0,10.5-0.2,12.1,0.4c1.6,0.7,4,4.5,4,6.5v-8.5L39.9,1.3c0,0,2.4,2.2,3.1,4.8
C43.7,8.7,43.7,16.4,43.7,16.4z"/>
<path fill="none" stroke="#A1A9AD" stroke-width="1.5" stroke-linejoin="round" stroke-miterlimit="10" d="M41.5,0.8
c-3.3,0-40.8,0-40.8,0v79h60c0,0,0-57.4,0-60.2c0-0.8-0.1-3.5-1-4.7C58.2,12.9,48,4.1,46.1,2.4C45,1.3,42.4,0.8,41.5,0.8z"/>
<path fill="#FFFFFF" d="M40.2,0.8c-3.3,0-39.5,0-39.5,0v79h60c0,0,0-57.8,0-60.7c0-1.7-0.8-3.9-1.8-5.1c-1.6-1.9-10.3-9.1-12.1-10.8
C45.7,2.1,41.2,0.8,40.2,0.8z"/>
<image width="55" height="72" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADcAAABICAYAAABSr21SAAAACXBIWXMAAAsSAAALEgHS3X78AAAA
GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAOFJREFUeNrsmbEOgkAUBG+JnQL+
/1d6IDVqDImYSC7Q3Ftne4vJPHZRdcvjnCrNtW915POqGe4oaJOCZI+EMHB7AJWH+5yCpe8usjO3
pFRISHOlFpsUPFtywsNtASqPsc9ydaLt+kQ1GMG90n0APuEmK7g34Fk2z9x3FmGWcFZt+cuetblT
kjGcrM0Zq6MtKRTM0ZaY4yydd462BI4pwBxwhW3JVx7gaEvMAfff75b8+gUcU4A52hJzTAFtiTna
EnOcJVPAFNCWnCVwTIHx38a0Jc8ccMABxxTQlsBVl4cAAwAfQzexj9E6ZQAAAABJRU5ErkJggg==" transform="matrix(1 0 0 1 3.5 4.5)">
</image>
<image width="29" height="24" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAYCAYAAAAGXva8AAAACXBIWXMAAAsSAAALEgHS3X78AAAA
GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAiJJREFUeNqclktLxDAQx/Nob8qu
+iFEL4IeRG+in1oRX6CIIoooeFDwGyh4a9rYyew0j0623c3ukD7S/Gamk38qRdJ+fv8s9HVdO2ua
pjtGM93x9tamFEs0yQGttT2oMSbqPbwRe7s7cikoAaERiAeato8jprGHB/uj4Iq7CJFS761x1jTW
AdAhn3pw6OLq2o6GhlGGYLL2LHHAOjg64bNhKiNOz87tqPSGUJwwLh43YWCYYm9VVYnKVO4YntVK
i6IoxMnxkRyd3qFmbZKR9uf+swJs4FW0v8urGzZqlaZWyvm1ALfDITBeSSWkki7CsiyF1hqvtfdu
7+7tQpHCQ6nBG/HnSiiFVujCpbQsStcDGAzGPTw+RWA1nazIHIyDKxXDwGByB2yjdJaAYczzy6sd
jJSLEh5GoJzBVDexpkhLBBLUO6fF2/uHAxc5YAimB2GJYK9dMVFBwRioWmtV/K6DTKCDeD8Lxclt
BAaY1rhu0aiw/Pg4U6rLCEQK9vn1bVkZDPU3lUQve6i7GCEqFTnCZQmAFDEr+JwGe+mrg2t1J4te
uWhJ9YuOIpa5rS1Up9RSR2LJ9NC02qmwWCUYAw7TmkL7y8xH667llsw8MJ3HO5DIQlP4XM3jwH1g
P8rBtT4k7lxxpeBwD84pG6V2Y30iR+303HIaipITGbC16aoc/W3DbfShA+E5p9vQSOcX/prLwYda
uLEs9Qm5CJzbxf4FGADWJXT0zm6P3AAAAABJRU5ErkJggg==" transform="matrix(1 0 0 1 29.5 4.5)">
</image>
<path fill="#FFFFFF" d="M43.7,16.4c1.8,0,10.5-0.2,12.1,0.4c1.6,0.7,4,4.5,4,6.5v-8.5L39.9,1.3c0,0,2.4,2.2,3.1,4.8
C43.7,8.7,43.7,16.4,43.7,16.4z"/>
<path fill="none" stroke="#A1A9AD" stroke-width="1.5" stroke-linejoin="round" stroke-miterlimit="10" d="M41.5,0.8
c-3.3,0-40.8,0-40.8,0v79h60c0,0,0-57.4,0-60.2c0-0.8-0.1-3.5-1-4.7C58.2,12.9,48,4.1,46.1,2.4C45,1.3,42.4,0.8,41.5,0.8z"/>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="31.4927" y1="93.2764" x2="31.4927" y2="46.8726">
<stop offset="0" style="stop-color:#D25F5F"/>
<stop offset="1" style="stop-color:#EA6C6C"/>
<a:midPointStop offset="0" style="stop-color:#D25F5F"/>
<a:midPointStop offset="0.5" style="stop-color:#D25F5F"/>
<a:midPointStop offset="1" style="stop-color:#EA6C6C"/>
</linearGradient>
<path fill="url(#SVGID_1_)" d="M37,51.4c-5.9,5-8.4,13.2-10.1,17.4c-2.3,5.7-3.7,8.7-6.5,12.2c-2.8,3.3-8.3,3.1-8.3,3.1v9.2
c0,0,7.9,0.5,13.8-4.5c4.6-3.9,7.2-9.8,8.9-14.2h11.1v-9.2h-7.3c1.1-2.3,2.3-4.2,3.9-6.2c2.8-3.3,8.3-3.1,8.3-3.1v-9.2
C50.8,46.9,42.9,46.4,37,51.4z"/>
<path fill="#C10B1D" d="M37,54.4c-4.4,5-7.4,13.2-9.1,17.4c-2.3,5.7-4,9.4-7.5,12.2c-2.9,2.3-8.3,2.1-8.3,2.1v7.2
c0,0,7.9,0.5,13.8-4.5c4.6-3.9,7.2-9.8,8.9-14.2h11.1v-9.2h-7.3c1.1-2.3,2.3-4.2,3.9-6.2c2.8-3.3,8.3-3.1,8.3-3.1v-7.2
C50.8,48.9,42.3,48.4,37,54.4z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="11.6943" y1="70.0918" x2="50.3926" y2="70.0918">
<stop offset="0" style="stop-color:#D50B1B"/>
<stop offset="1" style="stop-color:#E32E2D"/>
<a:midPointStop offset="0" style="stop-color:#D50B1B"/>
<a:midPointStop offset="0.5" style="stop-color:#D50B1B"/>
<a:midPointStop offset="1" style="stop-color:#E32E2D"/>
</linearGradient>
<path fill="url(#SVGID_2_)" d="M36.6,54.4c-4.4,5-7.4,13.2-9.1,17.4c-2.3,5.7-4,9.4-7.5,12.2C17,86.1,11.7,86,11.7,86v5.2
c0,0,8.2,0.8,13.8-4.5c4.2-4,6.2-9.8,7.9-14.2h12.1v-7.2L36.2,67c0.7-2.6,2.6-6.7,4.4-8.7c4.1-4.5,9.8-4.2,9.8-4.2v-5.2
C50.4,48.9,41.8,48.4,36.6,54.4z"/>
<path fill="none" stroke="#7E1518" stroke-linejoin="round" stroke-miterlimit="10" d="M37,51.4c-5.9,5-8.4,13.2-10.1,17.4
c-2.3,5.7-3.7,8.7-6.5,12.2c-2.8,3.3-8.3,3.1-8.3,3.1v9.2c0,0,7.9,0.5,13.8-4.5c4.6-3.9,7.2-9.8,8.9-14.2h11.1v-9.2h-7.3
c1.1-2.3,2.3-4.2,3.9-6.2c2.8-3.3,8.3-3.1,8.3-3.1v-9.2C50.8,46.9,42.9,46.4,37,51.4z"/>
</svg>

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

@ -23,18 +23,7 @@
<script type="text/javascript">
// <![CDATA[
// --- Variables nécessaires au fonctionnement du widget ---
$(document).ready(function(){
$(document).disableTextSelect();
$("input").mouseover(function(){
$(document).enableTextSelect();
});
$("input").mouseout(function(){
$(document).disableTextSelect();
});
//$("input").change(function(){$(this).trigger('blur');});
});
var loadingFlag = false
var largeur = 500
var hauteur = 400
var graphique = ""
@ -67,6 +56,177 @@
var decalageY = 0
var lineWidth = 3
$(document).ready(function(){
if(window.sankore){
$("#inputEq").val(sankore.preference("functionData", ""));
$("#inputTeinte").val(sankore.preference("functionColor",""));
$("#inputValeur").val(sankore.preference("functionValue","0"));
$("#inputSaturation").val(sankore.preference("functionSaturation","0"));
$("#inputRouge").val(sankore.preference("functionRed","255"));
$("#inputVert").val(sankore.preference("functionGreen","0"));
$("#inputBleu").val(sankore.preference("functionBlue","0"));
$("#inputOpacity").val(sankore.preference("functionOpacity","1"));
idColor = sankore.preference("functionColorId","");
actualiserGraph();
if(sankore.preference("simplefx","0") == 1)
$("#checkDerivee").attr("checked", "checked");
else
$("#checkDerivee").removeAttr('checked');
if(sankore.preference("hardfx","0") == 1)
$("#checkDerivee2").attr("checked", "checked");
else
$("#checkDerivee2").removeAttr('checked');
actualiserGraph();
$("#aireG").val(sankore.preference("squareUnderFrom","-5"));
$("#aireD").val(sankore.preference("squareUnderTo","5"));
calculerAire();
$("#inputX").val(sankore.preference("calculateThePoint","0"));
execute($("#inputEq").val());
if(sankore.preference("checkboxDraw","0") == 1)
$("#checkAire").attr("checked", "checked");
else
$("#checkAire").removeAttr('checked');
actualiserGraph();
$("#selectTheme").val(sankore.preference("selectedTheme","noir"));
changerTheme($("#selectTheme").val());
$("#selectMethodeAffichage").val(sankore.preference("graphicalMethodDisplaying", "canvas"));
$("#zoomDefaut").val(sankore.preference("defaultZoom", "4"));
reinitialiserZoom($("#zoomDefaut").val());
if(sankore.preference("showGrid","1") == 1)
$("#checkGrille").attr("checked", "checked");
else
$("#checkGrille").removeAttr('checked');
if(sankore.preference("showAxis","1") == 1)
$("#checkAxes").attr("checked", "checked");
else
$("#checkAxes").removeAttr('checked');
if(sankore.preference("showScale","1") == 1)
$("#checkEchelle").attr("checked", "checked");
else
$("#checkEchelle").removeAttr('checked');
actualiserGraph();
$("#inputTaille").val(sankore.preference("thickness", "3"));
actualiserGraph();
$("#inputDecalageX").val(sankore.preference("offsetDiagrammX", "0"));
decalageX = parseFloat($("#inputDecalageX").val())
$("#inputDecalageY").val(sankore.preference("offsetDiagrammY", "0"));
decalageY = parseFloat($("#inputDecalageY").val())
$("#inputPrecision").val(sankore.preference("accuracyGraph", "0.02"));
precision = parseFloat($("#inputPrecision").val());
$("#selectAffichage3D").val(sankore.preference("styleOf3DShow", "surfaces"));
reinitialiserZoom(5);
$("#inputPrecision3D").val(sankore.preference("accuracyFunction", "0.2"));
precisionFonction3D = parseFloat($("#inputPrecision3D").val());
$("#selectRouge3D").val(sankore.preference("redColor", "plus"));
$("#selectVert3D").val(sankore.preference("greenColor", "moins"));
$("#selectBleu3D").val(sankore.preference("blueColor", "tout"));
checkCouleurs3D();
$("#couleur3Dgenerale").val(sankore.preference("3DGeneralColor", "0"));
checkCouleurs3D();
actualiserGraph();
$("#borneXGauche").val(sankore.preference("xAxisFrom", "-5"));
$("#borneXDroite").val(sankore.preference("xAxisTo", "5"));
$("#borneYGauche").val(sankore.preference("yAxisFrom", "-5"));
$("#borneYDroite").val(sankore.preference("yAxisTo", "5"));
actualiserGraph();
loadingFlag = true;
}
$(document).disableTextSelect();
$("input, select").mouseover(function(){
$(document).enableTextSelect();
});
$("input, select").mouseout(function(){
$(document).disableTextSelect();
});
$("body").mouseout(function(){
if(window.sankore && loadingFlag){
sankore.setPreference("functionData",$("#inputEq").val());
sankore.setPreference("xAxisFrom",$("#borneXGauche").val());
sankore.setPreference("xAxisTo",$("#borneXDroite").val());
sankore.setPreference("yAxisFrom",$("#borneYGauche").val());
sankore.setPreference("yAxisTo",$("#borneYDroite").val());
sankore.setPreference("functionColor",$("#inputTeinte").val());
sankore.setPreference("functionValue",$("#inputValeur").val());
sankore.setPreference("functionSaturation",$("#inputSaturation").val());
sankore.setPreference("functionRed",$("#inputRouge").val());
sankore.setPreference("functionGreen",$("#inputVert").val());
sankore.setPreference("functionBlue",$("#inputBleu").val());
sankore.setPreference("functionOpacity",$("#inputOpacity").val());
sankore.setPreference("functionColorId", idColor);
if ($('#checkDerivee').is(":checked"))
sankore.setPreference("simplefx","1");
else
sankore.setPreference("simplefx","0");
if ($('#checkDerivee2').is(":checked"))
sankore.setPreference("hardfx","1");
else
sankore.setPreference("hardfx","0");
sankore.setPreference("squareUnderFrom", $("#aireG").val());
sankore.setPreference("squareUnderTo", $("#aireD").val());
sankore.setPreference("calculateThePoint", $("#inputX").val());
if ($('#checkAire').is(":checked"))
sankore.setPreference("checkboxDraw","1");
else
sankore.setPreference("checkboxDraw","0");
sankore.setPreference("selectedTheme", $("#selectTheme").val());
sankore.setPreference("graphicalMethodDisplaying", $("#selectMethodeAffichage").val());
sankore.setPreference("defaultZoom", $("#zoomDefaut").val());
if ($('#checkGrille').is(":checked"))
sankore.setPreference("showGrid","1");
else
sankore.setPreference("showGrid","0");
if ($('#checkAxes').is(":checked"))
sankore.setPreference("showAxis","1");
else
sankore.setPreference("showAxis","0");
if ($('#checkEchelle').is(":checked"))
sankore.setPreference("showScale","1");
else
sankore.setPreference("showScale","0");
sankore.setPreference("styleOf3DShow", $("#selectAffichage3D").val());
sankore.setPreference("accuracyFunction", $("#inputPrecision3D").val());
sankore.setPreference("redColor", $("#selectRouge3D").val());
sankore.setPreference("greenColor", $("#selectVert3D").val());
sankore.setPreference("blueColor", $("#selectBleu3D").val());
sankore.setPreference("3DGeneralColor", $("#couleur3Dgenerale").val());
sankore.setPreference("thickness", $("#inputTaille").val());
sankore.setPreference("offsetDiagrammX", $("#inputDecalageX").val());
sankore.setPreference("offsetDiagrammY", $("#inputDecalageY").val());
sankore.setPreference("accuracyGraph", $("#inputPrecision").val());
}
});
});
//alert(navigator.appName+" ; "+navigator.appVersion+" ; "+navigator.userAgent)
// ------------- Fonctions du widgets -------------
@ -382,7 +542,7 @@
</select> <br/>
Zoom default:
<input value="5" class="smallInput" id="zoomDefaut"/>
<input type="button" onclick='reinitialiserZoom(document.getElementById("zoomDefaut").value)' value="Reset zoom"/> <br/>
<input type="button" onclick='reinitialiserZoom(document.getElementById("zoomDefaut").value)' value="Update zoom"/> <br/>
<br/>
<input type="checkbox" id="checkGrille" checked="true" onclick="actualiserGraph()"/><label for="checkGrille">Show grid</label> <br/>
<input type="checkbox" id="checkAxes" checked="true" onclick="actualiserGraph()"/><label for="checkAxes">Show axis</label> <br/>

@ -0,0 +1,472 @@
/**
* DD_roundies, this adds rounded-corner CSS in standard browsers and VML sublayers in IE that accomplish a similar appearance when comparing said browsers.
* Author: Drew Diller
* Email: drew.diller@gmail.com
* URL: http://www.dillerdesign.com/experiment/DD_roundies/
* Version: 0.0.2a
* Licensed under the MIT License: http://dillerdesign.com/experiment/DD_roundies/#license
*
* Usage:
* DD_roundies.addRule('#doc .container', '10px 5px'); // selector and multiple radii
* DD_roundies.addRule('.box', 5, true); // selector, radius, and optional addition of border-radius code for standard browsers.
*
* Just want the PNG fixing effect for IE6, and don't want to also use the DD_belatedPNG library? Don't give any additional arguments after the CSS selector.
* DD_roundies.addRule('.your .example img');
**/
var DD_roundies = {
ns: 'DD_roundies',
IE6: false,
IE7: false,
IE8: false,
IEversion: function() {
if (document.documentMode != 8 && document.namespaces && !document.namespaces[this.ns]) {
this.IE6 = true;
this.IE7 = true;
}
else if (document.documentMode == 8) {
this.IE8 = true;
}
},
querySelector: document.querySelectorAll,
selectorsToProcess: [],
imgSize: {},
createVmlNameSpace: function() { /* enable VML */
if (this.IE6 || this.IE7) {
document.namespaces.add(this.ns, 'urn:schemas-microsoft-com:vml');
}
if (this.IE8) {
document.writeln('<?import namespace="' + this.ns + '" implementation="#default#VML" ?>');
}
},
createVmlStyleSheet: function() { /* style VML, enable behaviors */
/*
Just in case lots of other developers have added
lots of other stylesheets using document.createStyleSheet
and hit the 31-limit mark, let's not use that method!
further reading: http://msdn.microsoft.com/en-us/library/ms531194(VS.85).aspx
*/
var style = document.createElement('style');
document.documentElement.firstChild.insertBefore(style, document.documentElement.firstChild.firstChild);
if (style.styleSheet) { /* IE */
try {
var styleSheet = style.styleSheet;
styleSheet.addRule(this.ns + '\\:*', '{behavior:url(#default#VML)}');
this.styleSheet = styleSheet;
} catch(err) {}
}
else {
this.styleSheet = style;
}
},
/**
* Method to use from afar - refer to it whenever.
* Example for IE only: DD_roundies.addRule('div.boxy_box', '10px 5px');
* Example for IE, Firefox, and WebKit: DD_roundies.addRule('div.boxy_box', '10px 5px', true);
* @param {String} selector - REQUIRED - a CSS selector, such as '#doc .container'
* @param {Integer} radius - REQUIRED - the desired radius for the box corners
* @param {Boolean} standards - OPTIONAL - true if you also wish to output -moz-border-radius/-webkit-border-radius/border-radius declarations
**/
addRule: function(selector, rad, standards) {
if (typeof rad == 'undefined' || rad === null) {
rad = 0;
}
if (rad.constructor.toString().search('Array') == -1) {
rad = rad.toString().replace(/[^0-9 ]/g, '').split(' ');
}
for (var i=0; i<4; i++) {
rad[i] = (!rad[i] && rad[i] !== 0) ? rad[Math.max((i-2), 0)] : rad[i];
}
if (this.styleSheet) {
if (this.styleSheet.addRule) { /* IE */
var selectors = selector.split(','); /* multiple selectors supported, no need for multiple calls to this anymore */
for (var i=0; i<selectors.length; i++) {
this.styleSheet.addRule(selectors[i], 'behavior:expression(DD_roundies.roundify.call(this, [' + rad.join(',') + ']))'); /* seems to execute the function without adding it to the stylesheet - interesting... */
}
}
else if (standards) {
var moz_implementation = rad.join('px ') + 'px';
this.styleSheet.appendChild(document.createTextNode(selector + ' {border-radius:' + moz_implementation + '; -moz-border-radius:' + moz_implementation + ';}'));
this.styleSheet.appendChild(document.createTextNode(selector + ' {-webkit-border-top-left-radius:' + rad[0] + 'px ' + rad[0] + 'px; -webkit-border-top-right-radius:' + rad[1] + 'px ' + rad[1] + 'px; -webkit-border-bottom-right-radius:' + rad[2] + 'px ' + rad[2] + 'px; -webkit-border-bottom-left-radius:' + rad[3] + 'px ' + rad[3] + 'px;}'));
}
}
else if (this.IE8) {
this.selectorsToProcess.push({'selector':selector, 'radii':rad});
}
},
readPropertyChanges: function(el) {
switch (event.propertyName) {
case 'style.border':
case 'style.borderWidth':
case 'style.padding':
this.applyVML(el);
break;
case 'style.borderColor':
this.vmlStrokeColor(el);
break;
case 'style.backgroundColor':
case 'style.backgroundPosition':
case 'style.backgroundRepeat':
this.applyVML(el);
break;
case 'style.display':
el.vmlBox.style.display = (el.style.display == 'none') ? 'none' : 'block';
break;
case 'style.filter':
this.vmlOpacity(el);
break;
case 'style.zIndex':
el.vmlBox.style.zIndex = el.style.zIndex;
break;
}
},
applyVML: function(el) {
el.runtimeStyle.cssText = '';
this.vmlFill(el);
this.vmlStrokeColor(el);
this.vmlStrokeWeight(el);
this.vmlOffsets(el);
this.vmlPath(el);
this.nixBorder(el);
this.vmlOpacity(el);
},
vmlOpacity: function(el) {
if (el.currentStyle.filter.search('lpha') != -1) {
var trans = el.currentStyle.filter;
trans = parseInt(trans.substring(trans.lastIndexOf('=')+1, trans.lastIndexOf(')')), 10)/100;
for (var v in el.vml) {
el.vml[v].filler.opacity = trans;
}
}
},
vmlFill: function(el) {
if (!el.currentStyle) {
return;
} else {
var elStyle = el.currentStyle;
}
el.runtimeStyle.backgroundColor = '';
el.runtimeStyle.backgroundImage = '';
var noColor = (elStyle.backgroundColor == 'transparent');
var noImg = true;
if (elStyle.backgroundImage != 'none' || el.isImg) {
if (!el.isImg) {
el.vmlBg = elStyle.backgroundImage;
el.vmlBg = el.vmlBg.substr(5, el.vmlBg.lastIndexOf('")')-5);
}
else {
el.vmlBg = el.src;
}
var lib = this;
if (!lib.imgSize[el.vmlBg]) { /* determine size of loaded image */
var img = document.createElement('img');
img.attachEvent('onload', function() {
this.width = this.offsetWidth; /* weird cache-busting requirement! */
this.height = this.offsetHeight;
lib.vmlOffsets(el);
});
img.className = lib.ns + '_sizeFinder';
img.runtimeStyle.cssText = 'behavior:none; position:absolute; top:-10000px; left:-10000px; border:none;'; /* make sure to set behavior to none to prevent accidental matching of the helper elements! */
img.src = el.vmlBg;
img.removeAttribute('width');
img.removeAttribute('height');
document.body.insertBefore(img, document.body.firstChild);
lib.imgSize[el.vmlBg] = img;
}
el.vml.image.filler.src = el.vmlBg;
noImg = false;
}
el.vml.image.filled = !noImg;
el.vml.image.fillcolor = 'none';
el.vml.color.filled = !noColor;
el.vml.color.fillcolor = elStyle.backgroundColor;
el.runtimeStyle.backgroundImage = 'none';
el.runtimeStyle.backgroundColor = 'transparent';
},
vmlStrokeColor: function(el) {
el.vml.stroke.fillcolor = el.currentStyle.borderColor;
},
vmlStrokeWeight: function(el) {
var borders = ['Top', 'Right', 'Bottom', 'Left'];
el.bW = {};
for (var b=0; b<4; b++) {
el.bW[borders[b]] = parseInt(el.currentStyle['border' + borders[b] + 'Width'], 10) || 0;
}
},
vmlOffsets: function(el) {
var dims = ['Left', 'Top', 'Width', 'Height'];
for (var d=0; d<4; d++) {
el.dim[dims[d]] = el['offset'+dims[d]];
}
var assign = function(obj, topLeft) {
obj.style.left = (topLeft ? 0 : el.dim.Left) + 'px';
obj.style.top = (topLeft ? 0 : el.dim.Top) + 'px';
obj.style.width = el.dim.Width + 'px';
obj.style.height = el.dim.Height + 'px';
};
for (var v in el.vml) {
var mult = (v == 'image') ? 1 : 2;
el.vml[v].coordsize = (el.dim.Width*mult) + ', ' + (el.dim.Height*mult);
assign(el.vml[v], true);
}
assign(el.vmlBox, false);
if (DD_roundies.IE8) {
el.vml.stroke.style.margin = '-1px';
if (typeof el.bW == 'undefined') {
this.vmlStrokeWeight(el);
}
el.vml.color.style.margin = (el.bW.Top-1) + 'px ' + (el.bW.Left-1) + 'px';
}
},
vmlPath: function(el) {
var coords = function(direction, w, h, r, aL, aT, mult) {
var cmd = direction ? ['m', 'qy', 'l', 'qx', 'l', 'qy', 'l', 'qx', 'l'] : ['qx', 'l', 'qy', 'l', 'qx', 'l', 'qy', 'l', 'm']; /* whoa */
aL *= mult;
aT *= mult;
w *= mult;
h *= mult;
var R = r.slice(); /* do not affect original array */
for (var i=0; i<4; i++) {
R[i] *= mult;
R[i] = Math.min(w/2, h/2, R[i]); /* make sure you do not get funky shapes - pick the smallest: half of the width, half of the height, or current value */
}
var coords = [
cmd[0] + Math.floor(0+aL) +','+ Math.floor(R[0]+aT),
cmd[1] + Math.floor(R[0]+aL) +','+ Math.floor(0+aT),
cmd[2] + Math.ceil(w-R[1]+aL) +','+ Math.floor(0+aT),
cmd[3] + Math.ceil(w+aL) +','+ Math.floor(R[1]+aT),
cmd[4] + Math.ceil(w+aL) +','+ Math.ceil(h-R[2]+aT),
cmd[5] + Math.ceil(w-R[2]+aL) +','+ Math.ceil(h+aT),
cmd[6] + Math.floor(R[3]+aL) +','+ Math.ceil(h+aT),
cmd[7] + Math.floor(0+aL) +','+ Math.ceil(h-R[3]+aT),
cmd[8] + Math.floor(0+aL) +','+ Math.floor(R[0]+aT)
];
if (!direction) {
coords.reverse();
}
var path = coords.join('');
return path;
};
if (typeof el.bW == 'undefined') {
this.vmlStrokeWeight(el);
}
var bW = el.bW;
var rad = el.DD_radii.slice();
/* determine outer curves */
var outer = coords(true, el.dim.Width, el.dim.Height, rad, 0, 0, 2);
/* determine inner curves */
rad[0] -= Math.max(bW.Left, bW.Top);
rad[1] -= Math.max(bW.Top, bW.Right);
rad[2] -= Math.max(bW.Right, bW.Bottom);
rad[3] -= Math.max(bW.Bottom, bW.Left);
for (var i=0; i<4; i++) {
rad[i] = Math.max(rad[i], 0);
}
var inner = coords(false, el.dim.Width-bW.Left-bW.Right, el.dim.Height-bW.Top-bW.Bottom, rad, bW.Left, bW.Top, 2);
var image = coords(true, el.dim.Width-bW.Left-bW.Right+1, el.dim.Height-bW.Top-bW.Bottom+1, rad, bW.Left, bW.Top, 1);
/* apply huge path string */
el.vml.color.path = inner;
el.vml.image.path = image;
el.vml.stroke.path = outer + inner;
this.clipImage(el);
},
nixBorder: function(el) {
var s = el.currentStyle;
var sides = ['Top', 'Left', 'Right', 'Bottom'];
for (var i=0; i<4; i++) {
el.runtimeStyle['padding' + sides[i]] = (parseInt(s['padding' + sides[i]], 10) || 0) + (parseInt(s['border' + sides[i] + 'Width'], 10) || 0) + 'px';
}
el.runtimeStyle.border = 'none';
},
clipImage: function(el) {
var lib = DD_roundies;
if (!el.vmlBg || !lib.imgSize[el.vmlBg]) {
return;
}
var thisStyle = el.currentStyle;
var bg = {'X':0, 'Y':0};
var figurePercentage = function(axis, position) {
var fraction = true;
switch(position) {
case 'left':
case 'top':
bg[axis] = 0;
break;
case 'center':
bg[axis] = 0.5;
break;
case 'right':
case 'bottom':
bg[axis] = 1;
break;
default:
if (position.search('%') != -1) {
bg[axis] = parseInt(position, 10) * 0.01;
}
else {
fraction = false;
}
}
var horz = (axis == 'X');
bg[axis] = Math.ceil(fraction ? (( el.dim[horz ? 'Width' : 'Height'] - (el.bW[horz ? 'Left' : 'Top'] + el.bW[horz ? 'Right' : 'Bottom']) ) * bg[axis]) - (lib.imgSize[el.vmlBg][horz ? 'width' : 'height'] * bg[axis]) : parseInt(position, 10));
bg[axis] += 1;
};
for (var b in bg) {
figurePercentage(b, thisStyle['backgroundPosition'+b]);
}
el.vml.image.filler.position = (bg.X/(el.dim.Width-el.bW.Left-el.bW.Right+1)) + ',' + (bg.Y/(el.dim.Height-el.bW.Top-el.bW.Bottom+1));
var bgR = thisStyle.backgroundRepeat;
var c = {'T':1, 'R':el.dim.Width+1, 'B':el.dim.Height+1, 'L':1}; /* these are defaults for repeat of any kind */
var altC = { 'X': {'b1': 'L', 'b2': 'R', 'd': 'Width'}, 'Y': {'b1': 'T', 'b2': 'B', 'd': 'Height'} };
if (bgR != 'repeat') {
c = {'T':(bg.Y), 'R':(bg.X+lib.imgSize[el.vmlBg].width), 'B':(bg.Y+lib.imgSize[el.vmlBg].height), 'L':(bg.X)}; /* these are defaults for no-repeat - clips down to the image location */
if (bgR.search('repeat-') != -1) { /* now let's revert to dC for repeat-x or repeat-y */
var v = bgR.split('repeat-')[1].toUpperCase();
c[altC[v].b1] = 1;
c[altC[v].b2] = el.dim[altC[v].d]+1;
}
if (c.B > el.dim.Height) {
c.B = el.dim.Height+1;
}
}
el.vml.image.style.clip = 'rect('+c.T+'px '+c.R+'px '+c.B+'px '+c.L+'px)';
},
pseudoClass: function(el) {
var self = this;
setTimeout(function() { /* would not work as intended without setTimeout */
self.applyVML(el);
}, 1);
},
reposition: function(el) {
this.vmlOffsets(el);
this.vmlPath(el);
},
roundify: function(rad) {
this.style.behavior = 'none';
if (!this.currentStyle) {
return;
}
else {
var thisStyle = this.currentStyle;
}
var allowed = {BODY: false, TABLE: false, TR: false, TD: false, SELECT: false, OPTION: false, TEXTAREA: false};
if (allowed[this.nodeName] === false) { /* elements not supported yet */
return;
}
var self = this; /* who knows when you might need a setTimeout */
var lib = DD_roundies;
this.DD_radii = rad;
this.dim = {};
/* attach handlers */
var handlers = {resize: 'reposition', move: 'reposition'};
if (this.nodeName == 'A') {
var moreForAs = {mouseleave: 'pseudoClass', mouseenter: 'pseudoClass', focus: 'pseudoClass', blur: 'pseudoClass'};
for (var a in moreForAs) {
handlers[a] = moreForAs[a];
}
}
for (var h in handlers) {
this.attachEvent('on' + h, function() {
lib[handlers[h]](self);
});
}
this.attachEvent('onpropertychange', function() {
lib.readPropertyChanges(self);
});
/* ensure that this elent and its parent is given hasLayout (needed for accurate positioning) */
var giveLayout = function(el) {
el.style.zoom = 1;
if (el.currentStyle.position == 'static') {
el.style.position = 'relative';
}
};
giveLayout(this.offsetParent);
giveLayout(this);
/* create vml elements */
this.vmlBox = document.createElement('ignore'); /* IE8 really wants to be encased in a wrapper element for the VML to work, and I don't want to disturb getElementsByTagName('div') - open to suggestion on how to do this differently */
this.vmlBox.runtimeStyle.cssText = 'behavior:none; position:absolute; margin:0; padding:0; border:0; background:none;'; /* super important - if something accidentally matches this (you yourseld did this once, Drew), you'll get infinitely-created elements and a frozen browser! */
this.vmlBox.style.zIndex = thisStyle.zIndex;
this.vml = {'color':true, 'image':true, 'stroke':true};
for (var v in this.vml) {
this.vml[v] = document.createElement(lib.ns + ':shape');
this.vml[v].filler = document.createElement(lib.ns + ':fill');
this.vml[v].appendChild(this.vml[v].filler);
this.vml[v].stroked = false;
this.vml[v].style.position = 'absolute';
this.vml[v].style.zIndex = thisStyle.zIndex;
this.vml[v].coordorigin = '1,1';
this.vmlBox.appendChild(this.vml[v]);
}
this.vml.image.fillcolor = 'none';
this.vml.image.filler.type = 'tile';
this.parentNode.insertBefore(this.vmlBox, this);
this.isImg = false;
if (this.nodeName == 'IMG') {
this.isImg = true;
this.style.visibility = 'hidden';
}
setTimeout(function() {
lib.applyVML(self);
}, 1);
}
};
try {
document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}
DD_roundies.IEversion();
DD_roundies.createVmlNameSpace();
DD_roundies.createVmlStyleSheet();
if (DD_roundies.IE8 && document.attachEvent && DD_roundies.querySelector) {
document.attachEvent('onreadystatechange', function() {
if (document.readyState == 'complete') {
var selectors = DD_roundies.selectorsToProcess;
var length = selectors.length;
var delayedCall = function(node, radii, index) {
setTimeout(function() {
DD_roundies.roundify.call(node, radii);
}, index*100);
};
for (var i=0; i<length; i++) {
var results = document.querySelectorAll(selectors[i].selector);
var rLength = results.length;
for (var r=0; r<rLength; r++) {
if (results[r].nodeName != 'INPUT') { /* IE8 doesn't like to do this to inputs yet */
delayedCall(results[r], selectors[i].radii, r);
}
}
}
}
});
}

@ -0,0 +1,74 @@
/*
* 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 <http://www.gnu.org/licenses/>.
*/
function addChar(input, character) {
if(input.value == null || input.value == "0")
input.value = character
else
input.value += character
}
function cos(form) {
form.display.value = Math.cos(form.display.value);
}
function sin(form) {
form.display.value = Math.sin(form.display.value);
}
function tan(form) {
form.display.value = Math.tan(form.display.value);
}
function sqrt(form) {
form.display.value = Math.sqrt(form.display.value);
}
function ln(form) {
form.display.value = Math.log(form.display.value);
}
function exp(form) {
form.display.value = Math.exp(form.display.value);
}
function deleteChar(input) {
input.value = input.value.substring(0, input.value.length - 1)
}
function changeSign(input) {
if(input.value.substring(0, 1) == "-")
input.value = input.value.substring(1, input.value.length)
else
input.value = "-" + input.value
}
function square(form) {
form.display.value = eval(form.display.value) * eval(form.display.value)
}
function checkNum(str) {
for (var i = 0; i < str.length; i++) {
var ch = str.substring(i, i+1)
if (ch < "0" || ch > "9") {
if (ch != "/" && ch != "*" && ch != "+" && ch != "-" && ch != "."
&& ch != "(" && ch!= ")") {
$("#display").text("ERROR");
return false
}
}
}
return true
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,56 @@
jQuery.fn.center = function(params) {
var options = {
vertical: true,
horizontal: true
}
op = jQuery.extend(options, params);
this.each(function(){
//initializing variables
var $self = jQuery(this);
//get the dimensions using dimensions plugin
var width = $self.width();
var height = $self.height();
//get the paddings
var paddingTop = parseInt($self.css("padding-top"));
var paddingBottom = parseInt($self.css("padding-bottom"));
//get the borders
var borderTop = parseInt($self.css("border-top-width"));
var borderBottom = parseInt($self.css("border-bottom-width"));
//get the media of padding and borders
var mediaBorder = (borderTop+borderBottom)/2;
var mediaPadding = (paddingTop+paddingBottom)/2;
//get the type of positioning
var positionType = $self.parent().css("position");
// get the half minus of width and height
var halfWidth = (width/2)*(-1);
var halfHeight = ((height/2)*(-1))-mediaPadding-mediaBorder;
// initializing the css properties
var cssProp = {
position: 'absolute'
};
if(op.vertical) {
cssProp.height = height;
cssProp.top = '50%';
cssProp.marginTop = halfHeight;
}
if(op.horizontal) {
cssProp.width = width;
cssProp.left = '50%';
cssProp.marginLeft = halfWidth;
}
//check the current position
if(positionType == 'static') {
$self.parent().css("position","relative");
}
//aplying the css
$self.css(cssProp);
});
};

@ -0,0 +1,62 @@
/**
* .disableTextSelect - Disable Text Select Plugin
*
* Version: 1.1
* Updated: 2007-11-28
*
* Used to stop users from selecting text
*
* Copyright (c) 2007 James Dempster (letssurf@gmail.com, http://www.jdempster.com/category/jquery/disabletextselect/)
*
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
**/
/**
* Requirements:
* - jQuery (John Resig, http://www.jquery.com/)
**/
(function($) {
if ($.browser.mozilla) {
$.fn.disableTextSelect = function() {
return this.each(function() {
$(this).css({
'MozUserSelect' : 'none'
});
});
};
$.fn.enableTextSelect = function() {
return this.each(function() {
$(this).css({
'MozUserSelect' : ''
});
});
};
} else if ($.browser.msie) {
$.fn.disableTextSelect = function() {
return this.each(function() {
$(this).bind('selectstart.disableTextSelect', function() {
return false;
});
});
};
$.fn.enableTextSelect = function() {
return this.each(function() {
$(this).unbind('selectstart.disableTextSelect');
});
};
} else {
$.fn.disableTextSelect = function() {
return this.each(function() {
$(this).bind('mousedown.disableTextSelect', function() {
return false;
});
});
};
$.fn.enableTextSelect = function() {
return this.each(function() {
$(this).unbind('mousedown.disableTextSelect');
});
};
}
})(jQuery);

@ -0,0 +1,140 @@
/*
* jQuery EasIng v1.1.2 - http://gsgd.co.uk/sandbox/jquery.easIng.php
*
* Uses the built In easIng capabilities added In jQuery 1.1
* to offer multiple easIng options
*
* Copyright (c) 2007 George Smith
* Licensed under the MIT License:
* http://www.opensource.org/licenses/mit-license.php
*/
// t: current time, b: begInnIng value, c: change In value, d: duration
jQuery.extend( jQuery.easing,
{
easeInQuad: function (x, t, b, c, d) {
return c*(t/=d)*t + b;
},
easeOutQuad: function (x, t, b, c, d) {
return -c *(t/=d)*(t-2) + b;
},
easeInOutQuad: function (x, t, b, c, d) {
if ((t/=d/2) < 1) return c/2*t*t + b;
return -c/2 * ((--t)*(t-2) - 1) + b;
},
easeInCubic: function (x, t, b, c, d) {
return c*(t/=d)*t*t + b;
},
easeOutCubic: function (x, t, b, c, d) {
return c*((t=t/d-1)*t*t + 1) + b;
},
easeInOutCubic: function (x, t, b, c, d) {
if ((t/=d/2) < 1) return c/2*t*t*t + b;
return c/2*((t-=2)*t*t + 2) + b;
},
easeInQuart: function (x, t, b, c, d) {
return c*(t/=d)*t*t*t + b;
},
easeOutQuart: function (x, t, b, c, d) {
return -c * ((t=t/d-1)*t*t*t - 1) + b;
},
easeInOutQuart: function (x, t, b, c, d) {
if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
return -c/2 * ((t-=2)*t*t*t - 2) + b;
},
easeInQuint: function (x, t, b, c, d) {
return c*(t/=d)*t*t*t*t + b;
},
easeOutQuint: function (x, t, b, c, d) {
return c*((t=t/d-1)*t*t*t*t + 1) + b;
},
easeInOutQuint: function (x, t, b, c, d) {
if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
return c/2*((t-=2)*t*t*t*t + 2) + b;
},
easeInSine: function (x, t, b, c, d) {
return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
},
easeOutSine: function (x, t, b, c, d) {
return c * Math.sin(t/d * (Math.PI/2)) + b;
},
easeInOutSine: function (x, t, b, c, d) {
return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
},
easeInExpo: function (x, t, b, c, d) {
return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
},
easeOutExpo: function (x, t, b, c, d) {
return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
},
easeInOutExpo: function (x, t, b, c, d) {
if (t==0) return b;
if (t==d) return b+c;
if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
},
easeInCirc: function (x, t, b, c, d) {
return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
},
easeOutCirc: function (x, t, b, c, d) {
return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
},
easeInOutCirc: function (x, t, b, c, d) {
if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
},
easeInElastic: function (x, t, b, c, d) {
var s=1.70158;var p=0;var a=c;
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
if (a < Math.abs(c)) { a=c; var s=p/4; }
else var s = p/(2*Math.PI) * Math.asin (c/a);
return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
},
easeOutElastic: function (x, t, b, c, d) {
var s=1.70158;var p=0;var a=c;
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
if (a < Math.abs(c)) { a=c; var s=p/4; }
else var s = p/(2*Math.PI) * Math.asin (c/a);
return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
},
easeInOutElastic: function (x, t, b, c, d) {
var s=1.70158;var p=0;var a=c;
if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5);
if (a < Math.abs(c)) { a=c; var s=p/4; }
else var s = p/(2*Math.PI) * Math.asin (c/a);
if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
},
easeInBack: function (x, t, b, c, d, s) {
if (s == undefined) s = 1.70158;
return c*(t/=d)*t*((s+1)*t - s) + b;
},
easeOutBack: function (x, t, b, c, d, s) {
if (s == undefined) s = 1.70158;
return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
},
easeInOutBack: function (x, t, b, c, d, s) {
if (s == undefined) s = 1.70158;
if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
},
easeInBounce: function (x, t, b, c, d) {
return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
},
easeOutBounce: function (x, t, b, c, d) {
if ((t/=d) < (1/2.75)) {
return c*(7.5625*t*t) + b;
} else if (t < (2/2.75)) {
return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
} else if (t < (2.5/2.75)) {
return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
} else {
return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
}
},
easeInOutBounce: function (x, t, b, c, d) {
if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
}
});

@ -0,0 +1,259 @@
(function($) {
jQuery.fn.ubwidget = function(options) {
var settings = jQuery.extend({}, jQuery.fn.ubwidget.defaults, options);
DD_roundies.addRule('.ubw-standard-corners', '5px', true);
DD_roundies.addRule('.ubw-button-corners', '4px', true);
DD_roundies.addRule('.ubw-i-corners', '4px', true);
$(window)
.bind("blur", function(event){
})
.trigger("focus");
return this.each(function() {
var ubwbody = $(this)
.addClass("ubw-body");
var ubwcontainer = $("<div></div>")
.append(ubwbody)
.addClass("ubw-container")
.css({
width:settings.width,
height:settings.height
})
.disableTextSelect();
$('body').append(ubwcontainer);
});
};
// Default options
jQuery.fn.ubwidget.defaults = {
width:200,
height:250
};
// Shadows
jQuery.fn.ubwshadows = function(settings){
var shadow = $("<div class='ubw-shadow'></div>")
.addClass("ubw-standard-corners")
.css({
backgroundColor:"#333377",
opacity:".1",
filter: "alpha(opacity = 10)",
position:"absolute",
top:settings.t,
left:settings.l,
width:settings.w,
height:settings.h
});
$(this).before(shadow);
};
jQuery.fn.ubwbutton = function(size, arrows) {
var arrows = typeof(arrows) != "undefined" ? arrows = arrows : arrows = {top:0, right:0, bottom:0, left:0};
var button = null;
var scale = 0.20;
var url = "";
var buttonbody;
return this.each(function() {
button = $(this)
.addClass("ubw-button-wrapper")
.css({zIndex:0});
url = $(this).find("img").attr("src");
url = url.split(".");
var buttonContent = $("<table cellpadding='0' cellspacing='0' border='0' width='auto' height='100%'><tr><td height='auto' width='auto' valign='middle' align='center'></td></tr></table>")
.addClass("ubw-button-content");
buttonContent.find("td").html($(this).html());
$(this).empty();
var buttonCanvas = $("<div></div>")
.addClass("ubw-button-canvas")
.appendTo(button)
.html('<table width="auto" height="auto" cellpadding="0" cellspacing="0"><tr><td class="ubw-button-arrowTop" align="center"><img style="visibility:hidden; margin-bottom:-1px" src="images/arrows_out/top.png"></td></tr><tr><td><table width="auto" height="auto" border="0" cellpadding="0" cellspacing="0"><tr><td class="ubw-button-arrowLeft"><img style="visibility:hidden; margin-right:-1px" src="images/arrows_out/left.png"></td><td class="ubw-button-body"></td><td class="ubw-button-arrowRight"><img style="visibility:hidden; margin-left:-1px" src="images/arrows_out/right.png"></td></tr></table></td></tr><tr><td class="ubw-button-arrowBottom" align="center"><img style="visibility:hidden; margin-top:-1px" src="images/arrows_out/bottom.png"></td></tr></table>');
if(arrows.top)buttonCanvas.find(".ubw-button-arrowTop").children("img").css({visibility:"visible"});
if(arrows.right)buttonCanvas.find(".ubw-button-arrowRight").children("img").css({visibility:"visible"});
if(arrows.bottom)buttonCanvas.find(".ubw-button-arrowBottom").children("img").css({visibility:"visible"});
if(arrows.left)buttonCanvas.find(".ubw-button-arrowLeft").children("img").css({visibility:"visible"});
var buttonBody = buttonCanvas.find(".ubw-button-body")
.addClass("ubw-button-out")
.append(buttonContent)
.bind("mouseenter", buttonOverHandler)
.bind("mouseleave", buttonOutHandler)
.bind("mousedown", buttonDownHandler)
.bind("mouseup", buttonUpHandler)
.css({
width:size.w,
height:size.h
});
button.width(size.w+9).height(size.h+2);
buttonbody = buttonBody.find(".ubw-button-content");
});
function buttonOverHandler(e) {
buttonbody.find("img").attr("src", url[0]+"_over.png");
button.css({
zIndex:1
});
};
function buttonOutHandler(e){
buttonbody.find("img").attr("src", url[0]+".png");
button.css({
zIndex:0
});
};
function buttonDownHandler(e){
buttonbody.find("img").attr("src", url[0]+"_over_down.png");
};
function buttonUpHandler(e){
url[0] = url[0].replace("_down", "");
buttonbody.find("img").attr("src", url[0]+"_over.png");
};
};
jQuery.fn.ubwtoggle = function(activated, _firstFunc, _secondFunc) {
var activated = typeof(activated) != "undefined" ? activated = 1 : activated = 0;
return this.each(function(){
var button = $(this);
var buttonBody = button.find(".ubw-button-body");
var img = buttonBody.find("img");
var imgsrc = img.attr("src");
var firstFunc = _firstFunc;
var secondFunc = _secondFunc;
buttonBody
.toggle(
function(){
img.css({visibility:"hidden"});
firstFunc();
},
function(){
img.css({visibility:"visible"});
secondFunc();
}
);
if(activated){
buttonBody.trigger("click");
};
});
};
jQuery.fn.ubwidget.sliderbutton = function() {
};
jQuery.fn.ubwidget.inspector = function(_position, content, button){
var position = {x:_position.x, y:_position.y};
var catcher = $("<div id='ubw-catcher'></div>")
.css({
position:"absolute",
width:"100%",
height:"100%"
})
.mousedown(function(){
inspector.hide();
removeDropShadow();
catcher.hide();
//resizeubcanvas()
});
$("body").append(catcher);
catcher.hide();
var inspector = $("<div class='ubw-inspector'></div>")
.css({
left:position.x,
top:position.y
})
.append(content)
.appendTo($("body"))
.hide()
.disableTextSelect();
var inspectorWidth = inspector.width();
var inspectorHeight = inspector.height();
var windowWidth = $(window).width();
var windowHeight = $(window).height();
$("body").prepend(button);
button.addClass("ubw-rounded")
.click(function(){
catcher.show();
inspector.show();
dropShadow();
resizeubcanvas()
});
function dropShadow (){
inspector.ubwshadows({w:inspectorWidth+23,h:inspectorHeight+22,l:55,t:55})}
function removeDropShadow (){
$(".ubw-shadow").remove()}
// !!
$(".ubw-shadow")
.mousedown(function(){
inspector.hide();
removeDropShadow();
catcher.hide();
resizeubcanvas()
});
function resizeWidget(w, h){
window.resizeTo(w+2, h+2);
$("#indicator").remove();
var indicator = $("<div id='indicator'></div>")
.css({
width:w,
height:h,
position:"absolute",
left:0,
top:0,
border:"1px solid #ff0000"
});
//$("body").prepend(indicator);
}
function resizeubcanvas(){
if(inspector.css("display")=="none"){
resizeWidget(windowWidth, windowHeight);
return 0;
};
var inspectorbottom = inspector.position().top+inspector.height()+40;
var inspectorright = inspector.position().left+inspector.width()+40;
if($(window).height()<inspectorbottom){
resizeWidget($(window).width(), inspectorbottom)};
if($(window).width()<inspectorright){
resizeWidget(inspectorright, $(window).height())};
}
};
})(jQuery);

@ -0,0 +1,526 @@
/*
* 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 <http://www.gnu.org/licenses/>.
*/
function init(){
var h = 292;
var w = 160;
var wh = h+6;
var ww = w+6;
var clickFlag = false;
var ubwidget = $("#ubwidget").ubwidget({
width:w,
height:h
});
var historyTab = $("<div></div>")
.css({
height:h,
marginRight:0,
width:20,
float:"left",
backgroundImage:"url(images/historytab.png)",
backgroundRepeat:"no-repeat"
})
.toggle(
function(){
resizeWidget(370, 294);
historyPanel.show();
$(".ubw-container").css({
backgroundImage:"url(images/back.png)",
width:328
});
if(window.sankore){
window.sankore.setPreference('historyTab', "visible");
};
},
function(){
resizeWidget(200, 294);
historyPanel.hide();
$(".ubw-container").css({
backgroundImage:"url(images/back_small.png)",
width:160
});
if(window.sankore){
window.sankore.setPreference('historyTab', "hidden");
};
}
)
.hover(
function(){
$(this).css({
backgroundImage:"url(images/historytabOver.png)"
});
},
function(){
$(this).css({
backgroundImage:"url(images/historytab.png)"
});
}
)
.appendTo($("body"));
var space = $("<div></div>");
space.css({
width:5,
height:1,
float:"left"
});
var keysPanel = $("<div id='keysPanel'></div>").css({
float:"left"
});
var mode = "standard";
var calc = "";
var displayTrunk = "";
var historyTrunk = "";
var lastHistory = "";
var subtrunk = 0;
var itrunk = 0;
var trunkpos = 0;
var lastchar = {
type:"NaN",
value:"null"
};
var inparenthesis = false;
var erase = false;
var abtn;
var readyToCompute = false;
var lastResult = "0";
var gDecimalSeparator = "";
var gThousandsSeparator = "";
var gDecimalCode = 0;
var gDecimalString = "";
var gError = false;
var historyTxt = "0";
var display = $("<div id='display'>0</div>")
.addClass("ubw-inputbox")
.css({
padding:"12px",
marginLeft:"2px",
marginBottom:"9px",
marginTop:7,
backgroundImage:"url(images/display.png)",
fontSize:"22px",
fontFamily:"Arial, Helvetica, Sans-serif",
color:"#777788",
width:118,
height:28,
overflow:"hidden",
textAlign:"right",
});
var standardPanel = $("<div></div>").css({
float:"left"
});
var cKeySize = {
w:33,
h:36
};
var btn7 = $("<div><img src='images/touche7.png'/></div>").ubwbutton({
w:cKeySize.w,
h:cKeySize.h
})
.mousedown(function(){
appendToDisplay("7", 1)
});
var btn8 = $("<div><img src='images/touche8.png'/></div>").ubwbutton({
w:cKeySize.w,
h:cKeySize.h
})
.mousedown(function(){
appendToDisplay("8", 1)
});
var btn9 = $("<div><img src='images/touche9.png'/></div>").ubwbutton({
w:cKeySize.w,
h:cKeySize.h
})
.mousedown(function(){
appendToDisplay("9", 1)
});
var btnDiv = $("<div><img src='images/touchediv.png'/></div>").ubwbutton({
w:cKeySize.w,
h:cKeySize.h
})
.mousedown(function(){
appendToDisplay("/", 0)
});
var btn4 = $("<div><img src='images/touche4.png'/></div>").ubwbutton({
w:cKeySize.w,
h:cKeySize.h
})
.mousedown(function(){
appendToDisplay("4", 1)
});
var btn5 = $("<div><img src='images/touche5.png'/></div>").ubwbutton({
w:cKeySize.w,
h:cKeySize.h
})
.mousedown(function(){
appendToDisplay("5", 1)
});
var btn6 = $("<div><img src='images/touche6.png'/></div>").ubwbutton({
w:cKeySize.w,
h:cKeySize.h
})
.mousedown(function(){
appendToDisplay("6", 1)
});
var btnMul = $("<div><img src='images/touchef.png'/></div>").ubwbutton({
w:cKeySize.w,
h:cKeySize.h
})
.mousedown(function(){
appendToDisplay("*", 0)
});
var btn1 = $("<div><img src='images/touche1.png'/></div>").ubwbutton({
w:cKeySize.w,
h:cKeySize.h
})
.mousedown(function(){
appendToDisplay("1", 1)
});
var btn2 = $("<div><img src='images/touche2.png'/></div>").ubwbutton({
w:cKeySize.w,
h:cKeySize.h
})
.mousedown(function(){
appendToDisplay("2", 1)
});
var btn3 = $("<div><img src='images/touche3.png'/></div>").ubwbutton({
w:cKeySize.w,
h:cKeySize.h
})
.mousedown(function(){
appendToDisplay("3", 1)
});
var btnSou = $("<div><img src='images/touchem.png'/></div>").ubwbutton({
w:68,
h:34
})
.mousedown(function(){
appendToDisplay("-", 0)
});
var btn0 = $("<div><img src='images/touche0.png'/></div>").ubwbutton({
w:cKeySize.w,
h:cKeySize.h
})
.mousedown(function(){
appendToDisplay("0", 1)
});
var btnDot = $("<div><img src='images/touchedot.png'/></div>").ubwbutton({
w:cKeySize.w,
h:cKeySize.h
})
.mousedown(function(){
appendToDisplay(".", 1)
});
var btnC = $("<div><img src='images/touchec.png'/></div>").ubwbutton({
w:cKeySize.w,
h:cKeySize.h
})
.mousedown(function(){
reset()
});
var btnAdd = $("<div><img src='images/touchep.png'/></div>").ubwbutton({
w:68,
h:34
})
.mousedown(function(){
appendToDisplay("+", 0)
});
var btnPaL = $("<div><img src='images/touchepg.png'/></div>").ubwbutton({
w:cKeySize.w,
h:cKeySize.h
})
.mousedown(function(){
appendToDisplay("(", 1)
});
var btnPaR = $("<div><img src='images/touchepd.png'/></div>").ubwbutton({
w:cKeySize.w,
h:cKeySize.h
})
.mousedown(function(){
appendToDisplay(")", 1)
});
var btnEqu = $("<div><img src='images/toucheeq.png'/></div>").ubwbutton({
w:cKeySize.w,
h:cKeySize.h
})
.mousedown(function(){
compute()
});
var historyPanel = $("<div id='historyPanel'></div>")
.css({
backgroundImage:"url(images/historyback.png)",
width:"auto",
height:"auto",
float:"left",
marginLeft:3,
marginRight:2,
marginTop:6
})
.hide();
var historyBox = $("<textarea id='historyBox'></textarea>")
.css({
padding:10,
fontSize:"20px",
fontFamily:"Arial, Helvetica, Sans-serif",
width:143,
height:236,
backgroundColor:"transparent",
resize:"none",
border:"none",
overlay:"none",
color:"#eeeeee"
})
.val("0");
historyPanel.append(historyBox);
var stop = $("<div></div>");
var sleft = $("<div></div>");
var sright = $("<div></div>");
stop.css({
width:140
})
.append(btnAdd).append(btnSou)
.append(btn7).append(btn8).append(btn9).append(btnMul)
.append(btn4).append(btn5).append(btn6).append(btnDiv);
sleft.css({
width:105,
float:"left"
})
.append(btn1).append(btn2).append(btn3)
.append(btn0).append(btnDot).append(btnC);
sright.css({
width:45,
float:"left"
})
.append(btnEqu);
standardPanel.css({
width:150
})
.append(stop)
.append(sleft).append(sright);
keysPanel
.append(display)
.append(standardPanel);
ubwidget
.append(historyPanel)
.append(keysPanel);
if(window.sankore){
historyTxt = window.sankore.preference('historyTxt', historyTxt);
var ht = window.sankore.preference('historyTab', "hidden");
$("#historyBox").val(historyTxt);
if(ht === "visible"){
historyTab.trigger("click");
};
}
function resizeWidget(w, h){
window.sankore.resize(w+2, h+2);
}
function compute(){
var result = eval(calc)
$("#display").text(updateDisplay(result));
lastResult = result;
lastchar.type = "Nan";
lastchar.value = "";
calc = "";
$("#historyBox").val($("#historyBox").val()+historyTrunk+"\n= "+updateDisplay(result)+"\n\n");
$("#historyBox").scrollTop(99999);
displayTrunk = "";
historyTrunk = "";
if(window.sankore){
window.sankore.setPreference('historyTxt', $("#historyBox").val());
};
lastHistory = $("#historyBox").val();
}
function reset(){
$("#display").text("0");
calc="";
displayTrunk="";
historyTrunk="";
$("#historyBox").val(lastHistory);
$("#historyBox").scrollTop(99999);
}
function formatNumberWithDelimiters(number) {
var delimiter = gThousandsSeparator;
var numString = number.toString();
if (!numString)
return "0";
var dot = numString.indexOf(gDecimalSeparator);
if (dot == -1)
dot = numString.length;
var stop = numString.length-dot;
var characteristic = numString.substr(0, dot);
if (!parseInt(characteristic))
return numString;
// see if it's a negative number
var numIsNegative = (parseInt(characteristic) < 0)
var newNumber = "";
var delimiterCount = Math.floor((characteristic.length-1) / 3);
var extras = characteristic.length % 3;
if (!extras && characteristic.length > 2)
extras = 3;
if (extras)
newNumber = newNumber + characteristic.substr(0, extras);
for (var i=0;i< delimiterCount; i++) {
if ( (0 == i) && numIsNegative && (extras == 1))
newNumber = newNumber + characteristic.substr(extras + (i * 3), 3);
else
newNumber = newNumber + delimiter + characteristic.substr(extras + (i * 3), 3);
}
return (dot ? (newNumber + numString.substr(dot, stop)) : newNumber);
}
function formatNumberWithScientificNotation(number) {
if (number == 0)
return number;
var numString = number.toString();
if (!numString)
return "0";
var num = new Number(numString);
var sci = num.toExponential(5);
if (sci == "NaN")
sci = formatNumberWithDelimiters(numString);
if (!sci)
return "0";
return sci;
}
function updateDisplay(number){
if(String(number).length > 8){
number = formatNumberWithScientificNotation(number);
}
else{
number = number;
}
return number;
}
function appendToDisplay(_char, v){
var char = _char;
// Display
if($("#historyBox").val() === "0"){
$("#historyBox").val("");
};
if(char == "-" && lastchar.type == "NaN"){
char = "m";
};
// char is a number
if(char <= 0 || char > 0 || char == "." || char == "m" || char == "(" || char == ")"){
if(char == "m"){
char = "-";
};
if(lastchar.type == "NaN"){
displayTrunk = "";
};
if(lastchar.value == "." && char == "."){
calc = calc.substr(0, calc.length-1);
displayTrunk = displayTrunk.substr(0, displayTrunk.length-1);
};
calc += String(char);
displayTrunk += String(char);
historyTrunk += String(char);
lastchar.type = "Number";
}
// char is an operator
else {
if(calc.length === 0){
var endCalc = calc;
calc = lastResult + endCalc;
historyTrunk = updateDisplay(lastResult);
}
if(lastchar.type == "NaN"){
calc = calc.substr(0, calc.length-1);
calc += char;
$("#historyBox").val($("#historyBox").val().substr(0, $("#historyBox").val().length-1));
}
else{
try{
calc = eval(calc) + String(char);
}catch(e){}
}
lastchar.type = "NaN";
try{
displayTrunk = eval(calc.substr(0, calc.length-1));
}catch(e){}
$("#historyBox").val($("#historyBox").val()+historyTrunk+char);
$("#historyBox").scrollTop(99999);
historyTrunk = "";
}
lastchar.value = char;
$("#display").text(updateDisplay(displayTrunk));
}
$("#historyBox").click(function(){
if(!clickFlag){
$(this).select();
clickFlag = true;
}
else{
clickFlag = false;
$(this).blur();
}
});
$(document).disableTextSelect();
};

File diff suppressed because one or more lines are too long

@ -0,0 +1,62 @@
/**
* .disableTextSelect - Disable Text Select Plugin
*
* Version: 1.1
* Updated: 2007-11-28
*
* Used to stop users from selecting text
*
* Copyright (c) 2007 James Dempster (letssurf@gmail.com, http://www.jdempster.com/category/jquery/disabletextselect/)
*
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
**/
/**
* Requirements:
* - jQuery (John Resig, http://www.jquery.com/)
**/
(function($) {
if ($.browser.mozilla) {
$.fn.disableTextSelect = function() {
return this.each(function() {
$(this).css({
'MozUserSelect' : 'none'
});
});
};
$.fn.enableTextSelect = function() {
return this.each(function() {
$(this).css({
'MozUserSelect' : ''
});
});
};
} else if ($.browser.msie) {
$.fn.disableTextSelect = function() {
return this.each(function() {
$(this).bind('selectstart.disableTextSelect', function() {
return false;
});
});
};
$.fn.enableTextSelect = function() {
return this.each(function() {
$(this).unbind('selectstart.disableTextSelect');
});
};
} else {
$.fn.disableTextSelect = function() {
return this.each(function() {
$(this).bind('mousedown.disableTextSelect', function() {
return false;
});
});
};
$.fn.enableTextSelect = function() {
return this.each(function() {
$(this).unbind('mousedown.disableTextSelect');
});
};
}
})(jQuery);

@ -8,7 +8,6 @@
<title>Web Browser</title>
<link rel="stylesheet" type="text/css" href="css/main.css">
<script src="scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
<!--DEFAULT FR-->
</head>
<body>
@ -43,6 +42,9 @@
if(window.sankore){
url = window.sankore.preference("url", "");
if(sankore.preference("browserHistory", ""))
references = sankore.preference("browserHistory", "").split(",");
currentHistory = parseInt(sankore.preference("browserIndex", "0"));
}else{
url = "";
};
@ -141,6 +143,8 @@
if(window.sankore){
window.sankore.setPreference("url", $("#textbox").val());
window.sankore.setPreference("browserHistory", references.toString());
window.sankore.setPreference("browserIndex", currentHistory);
};
$("#embeded-content").hide();
@ -152,6 +156,9 @@
clearTimeout(resizer);
resizerIndex = 0;
$("#web-content")
.attr("width", globalWidth - 25)
.attr("height", globalHeight - 90);
$("#web-content").show();
return false;
};

@ -203,7 +203,6 @@
<file>images/toolbar/tutorial.png</file>
<file>images/edit-mode.svg</file>
<file>images/save.svg</file>
<file>images/toolbar/stylusTab.png</file>
<file>images/libpalette/social.png</file>
<file>images/navig_arrow.png</file>
<file>images/flags/ar.png</file>
@ -308,5 +307,12 @@
<file>images/virtual.keyboard/29/capslock.png</file>
<file>images/virtual.keyboard/29/tab.png</file>
<file>images/toolPalette/cacheTool.png</file>
<file>images/libpalette/FlashCategory.svg</file>
<file>images/libpalette/FlashIcon.svg</file>
<file>images/toolbar/stylusTab.png</file>
<file>images/library_close.png</file>
<file>images/library_open.png</file>
<file>images/pages_close.png</file>
<file>images/pages_open.png</file>
</qresource>
</RCC>

@ -902,6 +902,7 @@ bool UBSvgSubsetAdaptor::UBSvgSubsetWriter::persistScene()
{
QGraphicsItem *item = items.takeFirst();
UBGraphicsPolygonItem *polygonItem = qgraphicsitem_cast<UBGraphicsPolygonItem*> (item);
if (polygonItem && polygonItem->isVisible())
@ -1078,6 +1079,13 @@ bool UBSvgSubsetAdaptor::UBSvgSubsetWriter::persistScene()
continue;
}
UBGraphicsTriangle *triangle = qgraphicsitem_cast<UBGraphicsTriangle*> (item);
if (triangle && triangle->isVisible())
{
triangleToSvg(triangle);
continue;
}
}
if (openStroke)
@ -1905,7 +1913,9 @@ void UBSvgSubsetAdaptor::UBSvgSubsetReader::graphicsItemFromSvg(QGraphicsItem* g
{
if (!svgX.isNull() && !svgY.isNull())
{
gItem->setPos(svgX.toString().toFloat(), svgY.toString().toFloat());
#ifndef Q_WS_X11
gItem->setPos(svgX.toString().toFloat(), svgY.toString().toFloat());
#endif
}
}
@ -2540,7 +2550,6 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::protractorToSvg(UBGraphicsProtractor
</ub:protractor>
*/
mXmlWriter.writeStartElement(UBSettings::uniboardDocumentNamespaceUri, "protractor");
mXmlWriter.writeAttribute("x", QString("%1").arg(item->rect().x()));
@ -2607,6 +2616,39 @@ UBGraphicsProtractor* UBSvgSubsetAdaptor::UBSvgSubsetReader::protractorFromSvg()
return protractor;
}
void UBSvgSubsetAdaptor::UBSvgSubsetWriter::triangleToSvg(UBGraphicsTriangle *item)
{
/**
*
* sample
*
<ub:triangle x="250" y="150" width="122" height="67"...>
</ub:triangle>
*/
mXmlWriter.writeStartElement(UBSettings::uniboardDocumentNamespaceUri, "triangle");
mXmlWriter.writeAttribute("x", QString("%1").arg(item->boundingRect().x()));
mXmlWriter.writeAttribute("y", QString("%1").arg(item->boundingRect().y()));
mXmlWriter.writeAttribute("width", QString("%1").arg(item->boundingRect().width()));
mXmlWriter.writeAttribute("height", QString("%1").arg(item->boundingRect().height()));
mXmlWriter.writeAttribute("transform", toSvgTransform(item->sceneMatrix()));
mXmlWriter.writeAttribute("orientation", UBGraphicsTriangle::orientationToStr(item->getOrientation()));
QString zs;
zs.setNum(item->zValue(), 'f'); // 'f' keeps precision
mXmlWriter.writeAttribute(UBSettings::uniboardDocumentNamespaceUri, "z-value", zs);
UBItem* ubItem = dynamic_cast<UBItem*>(item);
if (ubItem)
{
mXmlWriter.writeAttribute(UBSettings::uniboardDocumentNamespaceUri, "uuid", UBStringUtils::toCanonicalUuid(ubItem->uuid()));
}
mXmlWriter.writeEndElement();
}
UBGraphicsTriangle* UBSvgSubsetAdaptor::UBSvgSubsetReader::triangleFromSvg()
{
UBGraphicsTriangle* triangle = new UBGraphicsTriangle();
@ -2620,16 +2662,18 @@ UBGraphicsTriangle* UBSvgSubsetAdaptor::UBSvgSubsetReader::triangleFromSvg()
QStringRef svgY = mXmlReader.attributes().value("y");
QStringRef svgWidth = mXmlReader.attributes().value("width");
QStringRef svgHeight = mXmlReader.attributes().value("height");
QStringRef orientationStringRef = mXmlReader.attributes().value("orientation");
UBGraphicsTriangle::UBGraphicsTriangleOrientation orientation = UBGraphicsTriangle::orientationFromStr(orientationStringRef);
triangle->setOrientation(orientation);
if (!svgX.isNull() && !svgY.isNull() && !svgWidth.isNull() && !svgHeight.isNull())
if (!svgX.isNull() && !svgY.isNull() && !svgWidth.isNull() && !svgHeight.isNull())
{
triangle->setRect(svgX.toString().toFloat(), svgY.toString().toFloat(), svgWidth.toString().toFloat(), svgHeight.toString().toFloat(), orientation);
}
triangle->setVisible(true);
triangle->setVisible(true);
return triangle;
}

@ -214,6 +214,7 @@ class UBSvgSubsetAdaptor
void compassToSvg(UBGraphicsCompass *item);
void protractorToSvg(UBGraphicsProtractor *item);
void cacheToSvg(UBGraphicsCache* item);
void triangleToSvg(UBGraphicsTriangle *item);
void writeSvgElement();
private:

@ -21,7 +21,7 @@
#include "ui_webPublishing.h"
#include "UBAbstractPublisher.h"
#define DOCPUBLICATION_URL "http://planetsankore-staging.devxwiki.com/xwiki/bin/view/CreateResources/UniboardUpload?xpage=plain&outputSyntax=plain"
#define DOCPUBLICATION_URL "http://planete.sankore.org/xwiki/bin/view/CreateResources/UniboardUpload?xpage=plain&outputSyntax=plain"
#define XWIKI_ORIGIN_HEADER "http://sankore.devxwiki.com"
typedef struct

@ -60,11 +60,11 @@
UBBoardPaletteManager::UBBoardPaletteManager(QWidget* container, UBBoardController* pBoardController)
: QObject(container)
, mKeyboardPalette(0)
, mContainer(container)
, mBoardControler(pBoardController)
, mStylusPalette(0)
, mZoomPalette(0)
, mKeyboardPalette(0)
, mNavigPalette(NULL)
, mLibPalette(NULL)
, mBackgroundsPalette(0)
@ -132,7 +132,9 @@ void UBBoardPaletteManager::setupPalettes()
if (UBPlatformUtils::hasVirtualKeyboard())
{
mKeyboardPalette = UBKeyboardPalette::create(0);
#ifndef Q_WS_MAC
mKeyboardPalette->setParent(mContainer);
#endif
}
mZoomPalette = new UBZoomPalette(mContainer);

@ -245,7 +245,7 @@ QList<UBLibElement*> UBLibraryController::rootCategoriesList()
element->setMoveable(false);
categories << element;
categoryImage = new QImage(":images/libpalette/InteractivesCategory.svg");
categoryImage = new QImage(":images/libpalette/FlashCategory.svg");
element = new UBLibElement(eUBLibElementType_Folder, mAnimationUserDirectoryPath, tr("Animations", "Animations category element"));
element->setThumbnail(categoryImage);
element->setMoveable(false);

@ -34,7 +34,6 @@ class UBControlView;
class UBPreferencesController;
class UBResources;
class UBSettings;
class UBLicense;
class UBPersistenceManager;
class UBApplicationController;
class UBDocumentController;

@ -519,15 +519,10 @@ void UBApplicationController::ftpCommandFinished(int id, bool error)
mFtp->close();
}
else{
// 3 stand for the third command we have sent
// in our case
// 1->connect
// 2->login
// 3->get
if (id == 3){
QString updateString = QString(mFtp->readAll());
QString responseString = QString(mFtp->readAll());
if (!responseString.isEmpty() && responseString.contains("version:") && responseString.contains("url:")){
mFtp->close();
downloadJsonFinished(updateString);
downloadJsonFinished(responseString);
}
}
}

@ -51,6 +51,7 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent)
, mTransparentDrawingView(0)
, mTransparentDrawingScene(0)
, mDesktopPalette(NULL)
, mKeyboardPalette(0)
, mDesktopToolsPalette(NULL)
, mDesktopPenPalette(NULL)
, mDesktopMarkerPalette(NULL)
@ -65,7 +66,6 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent)
, mbArrowClicked(false)
, mBoardStylusTool(UBStylusTool::Pen)
, mDesktopStylusTool(UBStylusTool::Selector)
, mKeyboardPalette(0)
{
mTransparentDrawingView = new UBBoardView(UBApplication::boardController, 0); // deleted in UBDesktopAnnotationController::destructor
@ -73,7 +73,7 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent)
mTransparentDrawingView->setAttribute(Qt::WA_TranslucentBackground, true);
// !!!! Should be included into Windows after QT recompilation
#ifdef Q_WS_MAC
//mTransparentDrawingView->setAttribute(Qt::WA_MacNoShadow, true);
mTransparentDrawingView->setAttribute(Qt::WA_MacNoShadow, true);
#endif
mTransparentDrawingView->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint | Qt::Window);
mTransparentDrawingView->setCacheMode(QGraphicsView::CacheNone);
@ -104,7 +104,9 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent)
mKeyboardPalette->setParent(mTransparentDrawingView);
#endif
connect(mKeyboardPalette, SIGNAL(keyboardActivated(bool)), mTransparentDrawingView, SLOT(virtualKeyboardActivated(bool)));
#ifdef Q_WS_X11
connect(mKeyboardPalette, SIGNAL(moved(QPoint)), this, SLOT(refreshMask()));
#endif
}
connect(mDesktopPalette, SIGNAL(uniboardClick()), this, SLOT(goToUniboard()));
@ -115,8 +117,6 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent)
connect(mDesktopPalette, SIGNAL(minimizeStart(eMinimizedLocation)), this, SLOT(onDesktopPaletteMinimize()));
connect(UBApplication::mainWindow->actionVirtualKeyboard, SIGNAL(triggered(bool)), this, SLOT(showKeyboard(bool)));
// connect(mDesktopPalette, SIGNAL(showVirtualKeyboard(bool)), this, SLOT());
connect(mTransparentDrawingView, SIGNAL(resized(QResizeEvent*)), this, SLOT(onTransparentWidgetResized()));
@ -158,9 +158,10 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent)
connect(&mHoldTimerMarker, SIGNAL(timeout()), this, SLOT(markerActionReleased()));
connect(&mHoldTimerEraser, SIGNAL(timeout()), this, SLOT(eraserActionReleased()));
#ifdef Q_WS_X11
connect(mDesktopPalette, SIGNAL(moving()), this, SLOT(refreshMask()));
connect(mLibPalette, SIGNAL(resized()), this, SLOT(refreshMask()));
#endif
onDesktopPaletteMaximized();
}
@ -176,8 +177,11 @@ void UBDesktopAnnotationController::showKeyboard(bool show)
if(show)
UBDrawingController::drawingController()->setStylusTool(UBStylusTool::Selector);
mKeyboardPalette->setVisible(show);
updateMask(true);
// mDesktopPalette->showVirtualKeyboard(show);
#ifdef Q_WS_X11
updateMask(true);
#endif
}
}
@ -349,7 +353,6 @@ void UBDesktopAnnotationController::showWindow()
{
QRect desktopRect = QApplication::desktop()->screenGeometry(mDesktopPalette->pos());
//mDesktopPalette->move((desktopRect.right() - (mDesktopPalette->width() + 20)), desktopRect.top() + 150);
mDesktopPalette->move(5, desktopRect.top() + 150);
mWindowPositionInitialized = true;
@ -385,7 +388,7 @@ void UBDesktopAnnotationController::stylusToolChanged(int tool)
if(eTool != UBStylusTool::Selector && eTool != UBStylusTool::Text)
{
if(mKeyboardPalette->m_isVisible)
UBApplication::mainWindow->actionVirtualKeyboard->activate(QAction::Trigger);
UBApplication::mainWindow->actionVirtualKeyboard->activate(QAction::Trigger);
}
updateBackground();
@ -439,8 +442,6 @@ void UBDesktopAnnotationController::goToUniboard()
UBPlatformUtils::setDesktopMode(false);
// UBApplication::mainWindow->actionVirtualKeyboard->setEnabled(true);
emit restoreUniboard();
}
@ -799,8 +800,6 @@ void UBDesktopAnnotationController::onDesktopPaletteMinimize()
*/
void UBDesktopAnnotationController::onTransparentWidgetResized()
{
// qDebug() << "mTransparentDrawingView (" << mTransparentDrawingView->width() << "," << mTransparentDrawingView->height() << ")";
// qDebug() << "mLibPalette (" << mLibPalette->width() << "," << mLibPalette->height() << ")";
mLibPalette->resize(mLibPalette->width(), mTransparentDrawingView->height());
}

@ -70,7 +70,7 @@ UBDocumentController::UBDocumentController(UBMainWindow* mainWindow)
, mToolsPalette(0)
, mToolsPalettePositionned(false)
, mTrashTi(0)
, mKeyboardPalette(0)
, mKeyboardPalette(0)
{
setupViews();
setupToolbar();

@ -40,7 +40,6 @@ UBW3CWidget::UBW3CWidget(const QUrl& pWidgetUrl, QWidget *parent)
{
QString path = pWidgetUrl.toLocalFile();
QDir potentialDir(path);
if (!path.endsWith(".wgt") && !path.endsWith(".wgt/") && !potentialDir.exists())
@ -58,7 +57,7 @@ UBW3CWidget::UBW3CWidget(const QUrl& pWidgetUrl, QWidget *parent)
int width = 300;
int height = 150;
QFile configFile(path + "/config.xml");
QFile configFile(path + "config.xml");
configFile.open(QFile::ReadOnly);
QDomDocument doc;
@ -202,6 +201,8 @@ UBW3CWidget::UBW3CWidget(const QUrl& pWidgetUrl, QWidget *parent)
connect(page()->mainFrame(), SIGNAL(javaScriptWindowObjectCleared()), this, SLOT(javaScriptWindowObjectCleared()));
connect(UBApplication::boardController, SIGNAL(activeSceneChanged()), this, SLOT(javaScriptWindowObjectCleared()));
QWebView::load(mMainHtmlUrl);
setFixedSize(QSize(width, height));
mNominalSize = QSize(width, height);

@ -99,8 +99,9 @@ protected:
QTime mClickTime;
/** The mouse pressed position */
QPoint mMousePressPos;
///** The palette icon */
//QPixmap mIcon;
// /** The palette icon */
// QPixmap mIcon;
// QPixmap mCollapsedIcon;
/** The tab orientation */
eUBDockTabOrientation mTabsOrientation;
/** The h position of the tab */

@ -33,8 +33,9 @@ UBFloatingPalette::UBFloatingPalette(Qt::Corner position, QWidget *parent)
setAttribute(Qt::WA_MacAlwaysShowToolWindow);
#endif
#ifdef Q_WS_MAC
//setAttribute(Qt::WA_MacNonActivatingToolWindow);
//setAttribute(Qt::WA_MacNoShadow);
setAttribute(Qt::WA_MacAlwaysShowToolWindow);
setAttribute(Qt::WA_MacNonActivatingToolWindow);
setAttribute(Qt::WA_MacNoShadow);
#endif
}

@ -31,7 +31,9 @@ UBLibPalette::UBLibPalette(QWidget *parent, const char *name):UBDockPalette(pare
, mDropWidget(NULL)
{
setOrientation(eUBDockOrientation_Right);
//mIcon = QPixmap(":images/paletteLibrary.png");
//mCollapsedIcon = QPixmap(":images/library_open.png");
//mIcon = QPixmap(":images/library_close.png");
setAcceptDrops(true);
resize(UBSettings::settings()->libPaletteWidth->get().toInt(), parentWidget()->height());

@ -28,7 +28,6 @@ UBMainWindow::UBMainWindow(QWidget *parent, Qt::WindowFlags flags)
, mBoardWidget(0)
, mWebWidget(0)
, mDocumentsWidget(0)
, mSankoreWebDocumentWidget(0)
{
Ui::MainWindow::setupUi(this);

@ -60,8 +60,6 @@ class UBMainWindow : public QMainWindow, public Ui::MainWindow
QWidget *mBoardWidget;
QWidget *mWebWidget;
QWidget *mDocumentsWidget;
QWebView* mSankoreWebDocumentWidget;
};
#endif /* UBMAINWINDOW_H_ */

@ -32,7 +32,8 @@ UBNavigatorPalette::UBNavigatorPalette(QWidget *parent, const char *name):UBDock
{
setOrientation(eUBDockOrientation_Left);
setMaximumWidth(300);
//mIcon = QPixmap(":images/paletteNavigator.png");
//mCollapsedIcon = QPixmap(":images/pages_open.png");
//mIcon = QPixmap(":images/pages_close.png");
resize(UBSettings::settings()->navigPaletteWidth->get().toInt(), height());
mLastWidth = 300;

@ -168,6 +168,7 @@ void UBUpdateDlg::onBrowse()
void UBUpdateDlg::onUpdate()
{
mProgressLabel = new QLabel(mProgressWidget);
mProgressLabel->setText(tr("Please wait the import process will start soon..."));
mProgressLayout = new QHBoxLayout();
mProgressLayout->addWidget(mProgressLabel);
mProgressWidget->setLayout(mProgressLayout);

@ -349,7 +349,10 @@ void UBAudioQueueRecorder::audioQueueInputCallback (void *inUserData, AudioQueue
void UBAudioQueueRecorder::emitNewWaveBuffer(AudioQueueBufferRef pBuffer,
int inNumberPacketDescriptions, const AudioStreamPacketDescription *inPacketDescs)
{
emit newWaveBuffer(pBuffer->mAudioData, pBuffer->mAudioDataByteSize, inNumberPacketDescriptions, inPacketDescs);
AudioStreamPacketDescription* tmpPackages = (AudioStreamPacketDescription*)malloc(inNumberPacketDescriptions *sizeof(AudioStreamPacketDescription));
memcpy(tmpPackages,inPacketDescs,inNumberPacketDescriptions * sizeof(AudioStreamPacketDescription));
emit newWaveBuffer(pBuffer->mAudioData, pBuffer->mAudioDataByteSize, inNumberPacketDescriptions, tmpPackages);
qreal level = 0;
UInt32 size;

@ -629,6 +629,9 @@ void UBQuickTimeFile::appendAudioBuffer(void* pBuffer, long pLength, int inNumbe
}
}
}
#ifdef Q_WS_MACX
free((void*)inPacketDescs);
#endif
}

@ -107,9 +107,15 @@ QFont UBAbstractDrawRuler::font() const
}
void UBAbstractDrawRuler::StartLine(const QPointF& position, qreal width)
{}
{
Q_UNUSED(position);
Q_UNUSED(width);
}
void UBAbstractDrawRuler::DrawLine(const QPointF& position, qreal width)
{}
{
Q_UNUSED(position);
Q_UNUSED(width);
}
void UBAbstractDrawRuler::EndLine()
{}

@ -29,12 +29,12 @@ const UBGraphicsTriangle::UBGraphicsTriangleOrientation UBGraphicsTriangle::sDef
UBGraphicsTriangle::BottomLeft;
UBGraphicsTriangle::UBGraphicsTriangle()
: QGraphicsPolygonItem()
, UBAbstractDrawRuler()
: UBAbstractDrawRuler()
, QGraphicsPolygonItem()
, angle(0)
, mResizing1(false)
, mResizing2(false)
, mRotating(false)
, angle(0)
{
setRect(sDefaultRect, sDefaultOrientation);

@ -66,12 +66,24 @@ class UBGraphicsTriangle : public UBAbstractDrawRuler, public QGraphicsPolygonIt
if (str == "TopRight") return TopRight;
return sDefaultOrientation;
}
static QString orientationToStr(UBGraphicsTriangleOrientation orientation)
{
QString result;
if (orientation == 0) result = "BottomLeft";
else if (orientation == 1) result = "BottomRight";
else if (orientation == 2) result = "TopLeft";
else if (orientation == 3) result = "TopRight";
return result;
}
void setRect(const QRectF &rect, UBGraphicsTriangleOrientation orientation)
{
setRect(rect.x(), rect.y(), rect.width(), rect.height(), orientation);
}
void setRect(qreal x, qreal y, qreal w, qreal h, UBGraphicsTriangleOrientation orientation);
void setOrientation(UBGraphicsTriangleOrientation orientation);
UBGraphicsTriangleOrientation getOrientation() const {return mOrientation;}
QRectF rect() const {return boundingRect();}
UBGraphicsScene* scene() const;

@ -111,7 +111,7 @@ bool UniboardSankoreTransition::checkPage(QString& sankorePagePath)
file.close();
QString sankoreDirectory = sankorePagePath.left(sankorePagePath.indexOf("/page"));
;
sankoreDirectory = QUrl::fromLocalFile(sankoreDirectory).toString();
QString documentString(documentByteArray);

Loading…
Cancel
Save