XPlatform icon

LiveCodeClips scripts version 2.20

La pile LiveCodeClips.rev contient un certain nombre de scripts multi-plateformes permettant de réaliser des piles fonctionnant dans tous les environnements systèmes. Il y a aussi des astuces LiveCode mises en exemple. Libre à vous de vous de fouiner dedans et de vous en inspirer pour vos propres réalisations !

Sommaire
Adresses du texte d'un mailAidesaisie noms et ruesAlertprompt 2.0Analyse d'une erreur RevolutionBarre d'avancementCalendariconCalendrierCancelPending suppression message en attenteChronomètreClonage répertoiresColornamesContenu ClipboarddataConversion texteditConvertir au format LegacyDatesDragdataDécoder un fichierExemples AppleScript avec LiveCodeFichier tri par itemFichiersfonctions stacksGroupe Plus-MoinsHypercardIcones des boîtes de dialogueJet de déKeydown sur un champs listeLaunchLecture Colors StylesLecture de ResourcesLibimage AScriptLibLibimage BackupstackLibimage CustomslibLibimage ImagesToolsLibimage LCDownloadlibLibimage Revo2HTMLLibimage XPlatformLimiter les lignes saisies dans un champsLineoffset en sérieLire plist MacintoshMail Apple export en HTMLmakeExcelMise à jour LibimagesPile ChooseListPile pour importer une imagePile pour transfertsPréférences d'une pile XPStackPrefs()RawkeyupRecherche SpotlightRedimensionner les colonnes d'un champsSendAppleMailStackRipperSéparateur de champsTableau triéTitleWidth d'un boutonTri des boutons d'un groupeVisual EffectVérifier connection à InternetWhatclickedXpask/ Xpanswerfile (with type)XPdefaultbrowserCorrection accents fichiers UbuntuXPFileList parambuilderXpfolderpath()XPGetMetas lecture metas d'une pageZipper sans Resource Fork

Les « Libimages » de LiveCodeClips

J'ai regroupé - au sein d'images prêtes à copier-coller - des ensembles de scripts servant souvent comme : déterminer l'environnement technique, accéder aux réglages système, manipuler des images, etc. Tout ceci se fait habituellement avec une pile spécialisée qu'il n'y a plus qu'à mettre « in use » ; l'inconvénient de ceci est que si l'on veut diffuser une pile, il faut le faire en incluant l'autre pile.
Je voulais une sorte de plugin Livecode constitué d'un objet unique et qui puisse se placer dans n'importe quelle pile autonome. Et j'ai pensé à une image pour que l'objet ait une icone.
J'ai donc pompeusement baptisé « Libimage » des images contenant les scripts et les custom properties nécessaires à leur bon fonctionnement.
Elles fonctionnent en "backscripts", c'est à dire qu'elles interprètent les messages après tous les objets de la pile, à comme une "stack in use".

bouton scripts d'insertion Installer une Libimage dans une pile

Il est conseillé de les coller dans un groupe que l'on rendra invisible et ensuite de mettre à l'endroit approprié le script d'insertion (et de retrait) des backscripts. Ceci se fait au moyen du bouton « scripts d'insertion » :

activation des scripts d'une libimageUn dialogue permet de choisir le message qui activera la Libimage (preOpenStack, preOpenCard...) et celui qui la retirera des backscripts.
Exemple de script généré :
on preOpenBackground
  insert the script of image "XPlatform" into back
end preOpenBackground
on CloseCard
  remove the script of image "XPlatform" from back
end CloseCard

Mise à jour d'une Libimage

Un outil permet de vérifier les Libimages installées dans vos piles et de les remplacer par une version plus récente dans LiveCodeClips sans être obligé de la réinstaller.

Les cartes de LiveCodeClips

Boutons de commande
aide et nouvelle version Permet d'accéder à la présente aide en ligne, ainsi que vérifier la disponibilité d'une nouvelle version.
test du handlerPermet de tester le script de la carte.
installationPermet d'installer les éléments présents sur la carte.

Adresses du texte d'un mailiRevTool

outil d'extraction d'adresses mail du texte d'un messageRécupère les adresses mail et les noms contenus dans le texte d'un message.
Enregistrez votre message au format texte et glissez le fichier obtenu sur la dragzone métallisée.
Vous pouvez également copier une portion du texte du message et cliquer la dragzone.
Les adresses mail sont récupérées sous la forme d'une liste <nom, adresse mail> séparée par des tabulations et des retours ligne.


Aidesaisie noms et ruesiXPlatForm

Ce script présent dans la Libimage XPlatfForm permet de placer en capitale l'initiale de chaque mot en tenant compte « de l'usage orthographique » français : dans un patronyme, la particule n'est pas capitalisée et dans les noms de rue, il est plus correct de ne pas capitaliser les articles. Bien utile pour un carnet d'adresses !

Syntaxe :
Aidesaisie(string,[cmode])
cmode
: paramètre facultatif indiquant comment convertir le string;


Alertprompt 2.0RevoAlert

AlertPrompt est une alternative au « Answer » classique : le message est affiché pendant le délai nécessaire à la lecture du message et disparaît sans que l'utilisateur ait besoin de cliquer un bouton "OK".
Modifié pour ajouter une barre d'avancement d'un traitement de lot.

Commande ou fonctionUsage et paramètres
alert [typealerte],message,[dontclose] Affiche un message pendant le temps nécessaire à la lecture et le fait disparaître automatiquement.
Syntaxe :
typealerte peut être vide ou prendre les valeurs : stop, info, warning, note ou le nom d'une image de la pile (taille maxi 27 x 27px).
message: message affiché
dontclose : vide : le groupe se masque automatiquement. "dontclose" : le groupe reste affiché.

alert "info","Message d'information"
groupe alertprompt alert "stop","Message d'erreur"
groupe alertprompt alert "","Pas d'icone"
initProgress nbitems,message,[hideOK],[typealerte] Initialise le traitement d'un lot d'éléments en déclarant le nombre d'éléments à traiter, le message affiché pendant, l'affichage ou non d'un bouton Stop permettant de l'arrêter et l'icone qui l'illustre.
Syntaxe :
nbitems : nombre d'éléments à traiter.
message: message affiché
hideOK : visibilité du bouton stop permettant d'arrêter le traitement : "hideOK" le masque.
typealerte : stop, info& ou nom d'une image.

initProgress 20, "Message traitement",,"info" groupe alertprompt
progressShow [compteur],[message] Affiche l'avancement du traitement pour un élément donné : barre d'avancement.
Syntaxe :
compteur : valeur du compteur dans la boucle. Passer ici rien (incrément automatique de 1) ou valeur de compteur.
message: le changer si nécessaire.

progressShow
groupe alertprompt progressShow 10,"Veuillez patienter."
GetStopRequest() Fonction permettant de tester si l'utilisateur a cliqué le bouton Stop pendant le traitement.
Syntaxe :
à invoquer dans le traitement d'un item pour quitter la boucle repeat.

if GetStopRequest() then exit repeat
CloseAlertPrompt Permet de fermer le message affiché.
Syntaxe :
Aucun paramètre, masquage du groupe.

CloseAlertPrompt

Avant de copier le groupe, déterminez sa largeur au moyen de la barre de réglages :

largeur groupe alertprompt

Copiez le script à placer au niveau des handlers de la pile principale au moyen du bouton Placer le script généré dans le Presse-Papier.. Le script s'appliquera à tous les groupes alertprompt des substacks de la pile.


Analyse d'une erreur Revolutionrevobug

La pile "revErrorDisplay" contient le libellé correspondant aux codes d'erreur décelés par Revolution.
Ces codes ne sont pas directement interprétables et la fonction ErrorLabels() explicite leur sens.
On peut clarifier les choses en mettant ce handler dans une pile :

on errorDialog x
  answer error ErrorLabels(x)
end errorDialog


Barre d'avancementiRevTool

Barre d'avancement

Un modèle de pile visualisant l'exécution d'un traitement.
Le bouton « stop » permet d'interrompre le traitement en cours.
Passer par the dialogdata la liste des éléments à traiter et appeler la pile en mode "palette".
on AppelPile
  set the dialogdata to liste_données
  palette stack [nom de la pile barre]
  answer the dialogdata &"lignes traitées" -- en retour, nombre de lignes traitées
end AppelPile

Script de la pile à adapter :
on DoProcess
  (…)
    -- partie à personnaliser
    put "Traitement "&J &"/" &maxi into fld "avance"
    [traitement d'une ligne de données]
    --
  (…)
end DoProcess


CalendariconRevoCalendar

Groupes formant une icone de calendrier à la date donnée en paramètre.

icones calendrier

La date en paramètre doit être au format « short system date » (format correspondant à l'affichage régional).
get "25/12/1995"
call "SetCalendarDate "&it to grp "[nom du groupe calendrier]"

A défaut de date, le calendrier affiche la date du jour :
call "SetCalendarDate" to grp "[nom du groupe calendrier]"

Choisissez le modèle de calendrier et cliquez sur le bouton « Installer… » pour copier le groupe.


CalendrierRevoCalendar

Groupe calendrier

Groupe permettant la saisie d'une date dans un calendrier.
Basé sur FLC calendar.rev de The Flexible Learning Company. Utilise la libimage XPLatForm pour déterminer le premier jour de la semaine afin de mettre en forme le calendrier selon l'usage dans le pays de l'utilisateur.
A l'ouverture de la carte faire :
send "SetCalendar" to grp "calendar"

La date par défaut est celle du jour. On peut également passer une date initiale en secondes :
send "SetCalendar " &quote &myDate &quote to grp "calendar"

Le résultat est retourné dans la globale gCalResult.Le bouton OK retourne la date choisie en secondes et le bouton Annuler retourne "cancel".

Cliquez le bouton « Installer …» pour copier le groupe dans une carte. Si le groupe doit être installé seul dans une pile, cliquer le bouton « modèle de script de pile » pour copier un template de script de pile.


CancelPending suppression message en attenteiRevTool

Script permettant de purger un message de la file d'attente. « the pendingmessages » contient tous les messages planifiés par une instruction du genre :
send message to object in 20

Ce script permet de les détruire si besoin.
Syntaxe :
CancelPending pMsg
pMsg : nom du message à éliminer ou "all" pour vider toute la file d'attente.


Chronomètrerevochrono

Chronomètre pour mesurer la performance (temps d'exécution) d'un script.
Installer le script dans votre pile.
Faire un premier appel à Chrono en début du traitement à chronométrer
Deuxième appel à Chrono[message facultatif] en fin de traitement : affiche le temps écoulé depuis le premier appel en secondes et millièmes.

on exemple
  Chrono -- premier appel
  sortcds
  Chrono "Tri des cartes et construction index" -- deuxième appel en fin de traitement
end exemple


Clonage répertoiresclonefolder

Clonage répertoires

Recrée à un autre endroit l'arborescence des répertoires d'un répertoire précis, sans les fichiers qu'ils contiennent.


Colornamesrevocolornames

Noms des couleurs de Revolution

Noms des couleurs de Revolution : outil affichant la valeur correspondante RGB et hexa. Cliquer sur la valeur RGB ou hexa équivalente la copie.


Contenu Clipboarddatarevoclip

Permet de visualiser le contenu du Presse-Papier (clipboardData) sur toutes les clés existantes : text, html, rtf, etc.


Conversion texteditiRevTool

Conversion textedit

Utilise TextEdit pour procéder aux conversions de documents d'un type vers un autre : par exemple, word vers html.


Convertir au format LegacyconvertLegacy

dragzone Glissez sur la dragzone les piles que vous souhaitez convertir à une version antérieure.

Les piles converties sont créées dans un dossier « Legacy stacks » sur le Bureau.

Si la version de moteur LiveCode est inférieure à 3, les piles sont enregistrées au format 2.4 (MetaCard), sinon au format 2.7 (Revolution). Ne fonctionne qu'en environnement « Developpement ».


Dates

formats de dates

Exemples de divers formats de la date.
Cocher un format de date pour visualiser le résultat.


Dragdata

les différents mode de DragDataOutil de démonstration des données obtenues lors d'un drag selon le paramètre donné à dragdata.
Choisissez le type de drag et glissez sur la dragzone un fichier ou une portion de texte.


Décoder un fichieriXPlatForm

outil de décodageTente de déterminer le charset d'un fichier; s'il n'est pas trouvé, affiche une pile permettant de prévisualiser le fichier et de choisir un charset, puis propose de le convertir.
Glissez sur la Dragzone le fichier à analyser ou cliquez le bouton « Test ».
Utilise la fonction xpConvertTextfile() appartenant la Libimage XPlatForm pour déterminer l'encodage d'un fichier contenu dans la globale gdocCharset (3 items : charset,type de saut de ligne,type de fichier).

modèle pile PreviewA défaut de pouvoir déterminer l'encodage, le handler affiche un modèle de pile « preview » pour demander à l'utilisateur de choisir le charset le plus proche. Une prévisualisation du fichier permet de se rendre compte si le charset choisi convient.

Propose ensuite la conversion du fichier avec les éléments trouvés ou choisis.

Cliquez le bouton « Installer… » pour installer au choix la pile Preview ou le handler de conversion du fichier.


Exemples AppleScript avec LiveCodeiAScript

Exemples de scripts de la Librairie-image AScriptLib

Exemples de scripts de la Librairie-image AScriptLib

Fichier tri par item

tri fichier par item

Script permettant de trier un fichier texte sur un item donné.

Cliquez le bouton bouton copier « copier… » pour copier le le script de tri généré.


Fichiers

liste de fichiers sous RevolutionExemple de script listant les fichiers d'un répertoire au moyen de la fonction XPFileList() de XPlatForm.
Le script explore les répertoires inclus dans le répertoire sélectionné, peut filtrer par type de fichier, faire la somme des tailles par type de fichier, etc.


fonctions stacks

Différentes fonctions permettant de recenser des piles :

Fonctions stacks

Groupe Plus-MoinsGroupe-Plus-Moins_btns

Groupe Plus-MoinsGroupe de 2 boutons destinés, par exemple, à créer une nouvelle carte ou en supprimer une.
Chaque bouton possède 3 icones : normal, désactivé et contrasté.
L'outil affiche un modèle pour chaque bouton : vous pouvez modifier le nom, le label, le tooltip, ainsi que le script.
Apportez les modifications nécessaires au modèle et copiez votre groupe personnalisé avec le bouton « Installer… ». Collez-le à l'endroit désiré.


HypercardRevoFromHyperCard

HyperCard est mort, quel génie ce Bill AtkinsonOn peut importer une pile HyperCard dans LiveCode. La pile convertie possède une propriété "HCAddressing" qui vaut "true" et qui permet à LiveCode d'interpréter automatiquement les scripts faisant référence à des champs ou boutons de fond ou de carte.
Le script de cette carte permet de remettre la propriété à "false" (à condition d'adapter auparavant les scripts en conséquence : supprimer la référence au fond).


Icones des boîtes de dialogueiRevTool

Sous Mac OSX, LiveCode gère deux icones dans les dialogues Answer, Ask et Ask password:

On peut personnaliser ces icones en alimentant 2 variables globales :
grevAppIcon -- id de l'icone application
gREVSmallAppIcon -- id de la "small icon" de l'application qui se place en bas à droite de la grande icone :"information", "question", "error" ou "warning".
Le bouton « Installer… » fournit un modèle de script installant les icones spécifiques et restaurant les valeurs standards.


Jet de dé

jet de déUn dé à lancer : animation sur un bouton qui se déplace en changeant d'icone.
Juste pour l'exemple…


Keydown sur un champs listeiRevTool

Keydown sur un champs liste

Script de prépositionnement sur la ligne commençant par les caractères tapés.
Le script positionne une puce sur la ligne choisie.
Peut être adapté pour positionner un ou plusieurs boutons de traitement de la ligne sélectionnée.


Launchrevolaunch

Lancer un fichier avec une applicationLancer une appli ou un fichier avec une appli (ne marche pas avec un document html).


Lecture Colors Stylesrevocolrstyles

Lecture des attributs de couleurs d'une feuille CSS

Script lisant les couleurs d'une feuille de styles css pour colorier les champs avec la couleur de fond.

La feuille de style possède des sélecteurs dont le nom correspond à celui d'un champs de l'exemple. En cliquant le champs, on peut changer la couleur de fond et celle du texte.
Le bouton « Restaurer couleurs » rétablit les couleurs d'origine.
Le bouton « générer CSS » applique les changements à feuille de style et produit sur le Bureau une page HTML que l'on peut visualiser.
Exemple à transposer.


Lecture de ResourcesrevoResedit

Lecture du resource fork de fichiers Macintosh

Les fichiers Macintosh possèdent 2 branches : un datas-fork (partie données) identique à un fichier classique ASCII et un resource-fork, ou fichier de ressources, structuré en entités diverses représentant des données système : icônes, menus, strings, etc.
Cet exemple permet de lire le resource fork et de vider « en clair » certaines ressources : TEXT, STR, STR# …
Le nom court du fichier ne doit pas dépasser 31 caractères pour pouvoir être lu (contrainte du Resource Manager qui provient de l'architecture Classic, antérieure à OSX). Sous OS X, LiveCode restitue le nom des ressources sous une forme inversée (GOLD au lieu de DLOG, par exemple) : le script les restitue d'une manière correcte.


Libimage AScriptLib version 2.02image library AScriptLib à coller dans votre pile

Cette librairie-image contient des fonctions pilotées par AppleScript sous MacOSX. Requiert l'installation de la Libimage XPlatform. Seul « ChangeFileDate » fonctionne aussi sous Windows et Linux.

Commande ou fonctionUsage et paramètres
GetFinderComment(theItem)rend le commentaire Finder de l'élément theItem.
exemple : if the platform = "macos" then put getFinderComment(theFilePath) into theComment...
SetFinderComment theItem, Commentairemet le commentaire Finder à l'élément theItem.
theItem=path d'un fichier ou dossier.
GetFinderLabel(theItem)rend l'étiquette Finder de l'élément theItem
SetFinderLabel theItem, thelabelmet l'étiquette Finder thelabel (0 à 7) à l'élément theItem.
GetkMDItemDescription(theItem)rend la description de l'élément.
GetFromWhere(theItem)rend l'URL de téléchargement de l'élément.
ChangeFileDate theItem, adatechange la date de l'élément (fonctionne sous MacOSX, Windows, Linux).
La date en entrée est exprimée en secondes.
exemple : case "decalage"
  -- décalage dates de modification
  add decal to dmodif
  ChangeFileDate theFilePath,dmodif
  break
getFileCreator(theItem)rend le créateur de l'élément.
GetFolderSize(theItem)rend la taille totale des fichiers contenus par l'élément theItem en octets.
SendAppleMail pagecontent, maildestinataire, nomdestinataire, sujet, mailsender, PJpathCrée un message dans AppleMail.
  1. pagecontent : texte du message. Peut être du texte ou du html ou l'URL d'un fichier ou d'une page.
  2. maildestinataire : adresse mail du destinataire.
  3. nomdestinataire : nom du destinataire.
  4. sujet : sujet du message.
  5. mailsender : nom et adresse mail du compte expéditeur (facultatif).
  6. PJpath : chemin d'accès à une pièce jointe.
Le message créé est automatiquement enregistré en brouillons. La fonction détecte automatiquement si le contenu du message est stylé. Exemple sur la carte SendAppleMail.
getDefAppfromFileOSX(theItem)rend l'application par défaut pour ouvrir l'élément.
AfficheFinderWindow titreMet au premier plan la fenêtre Finder désignée par le titre.
desktopIconsize()Rend la taille des icones du Bureau en pixels.
DesktopPosition(theItem)Rend la position de l'icone de l'élément theItem sur le Bureau.
FinderOpenWindows()Liste le nom et la position de chaque fenêtre ouverte dans le Finder.
ReadDeskTopBG()Rend la couleur du bureau, l'image qui le décore et le délai de changement de cette image.
GUIScriptingWasEnabled()Rend l'état (true ou false) d'activation de l’accès pour les périphériques d’aide.
openAccessPanelOuvre le panel « Accès universel » des Préférences Système.
isFinderbusy()Indique si le Finder exécute une tâche de copie de fichiers.
HideItem [type]Masque un élément fichier ou dossier.
type facultatif; si "folder", permet de sélectionner un dossier, sinon un fichier.
the result retourne "cancel" si aucun élément n'a été sélectionné, sinon le path de l'élément choisi.
ShowItem [type]Rend visible un élément masqué.
type facultatif; si "folder", permet de sélectionner un dossier, sinon un fichier.
the result retourne "cancel" si aucun élément n'a été sélectionné, sinon le path de l'élément choisi.
Move2Trash theItemMet l'élément theItem dans la Corbeille.
exemple :

Move2Trash theFilePath
...

BatteryState()Indique si l'ordinateur est branché sur le secteur.
exportFolderIcon(theItem)Crée sur le Bureau une image foldericon.png à partir de l'icone du dossier spécifié.
Coupdoeil(theItem)Donne un aperçu d'un fichier texte désigné par son path.
ExportModule application, destinationpath, MenuStart, MenuEndDéclenche l'export des données iCal et AddressBook
application : iCal ou AddressBook ;
destinationpath : emplacement où l'archive est exportée ;
MenuStart et MenuEnd : fourchette de rubriques du menu Fichier dans laquelle se trouve le sous-menu Exporter. Exemple :

ExportModule "AddressBook",Lmyfolder,10,13
...

getVolumeInfos(volName)Restitue les caractéristiques diskutils d'un volume dans un array : monté ou non, verrouillé ou non, format, protocole d'accès, etc.
DiskWriteable(folderpath)indique si le volume sur lequel se trouve le folder folderpath est verrouillé en écriture.
macosSUD()nom du disque de démarrage.
ejectDisk(volname)Démonte le volume spécifié.
debugAppleScriptCrée un script AppleScript (ou un fichier texte) sur le bureau à partir du dernier appel effectué (dump du script généré).

Libimage Backupstack version 1.69image library Backupstack à coller dans votre pile

Libimage de sauvegarde d'une pile, qui exporte dans un fichier les données de chaque carte et permet de les réimporter dans une nouvelle version de la pile. Le fichier généré est en fait un script qui regénère chaque le carte en alimentant son contenu.
Backupstack permet d'ajouter à la pile un mot de passe :

Scripts très complets, mais à tester ! : vérifiez l'exhaustivité de la sauvegarde dans le contexte propre à votre pile. Sauvegardez votre pile avant d'installer la gestion du mot de passe utilisateur : ce mot de passe cryptant la pile, vous pourriez ne plus pouvoir l'ouvrir en cas de fausse manip dans la programmation ou d'oubli du mot de passe.

Appel initial de Backupstack

Les scripts sont incorporés à l'image qu'il suffit de copier puis de coller dans la pile désirée.
A l'ouverture de votre pile, il faut appeler les scripts contenus dans la Libimage au moyen des instructions suivantes (par exemple).
on preopenstack
  insert the script of image "Backupstack" into back (…)
end preopenstack
on closestack
  remove the script of image "Backupstack" from back
end closestack

CommandeUtilisation
ExportBackUpDatasExporte les données de la pile sous forme d'un script. Ce script recrée les cartes une par une en alimentant le contenu (ou l'état) des différents objets : champs, cases à cocher, customs properties, boutons et images. Les players ne sont pas sauvegardés.
ajout de la global gExportBackUpDatasNames pour utiliser le short name des contrôles sauvegardés au lieu de l'ID; doit être mise à «true» dans ce cas.
importBackUpDatasPermet de choisir un fichier de sauvegarde et de le réimporter dans la pile pour recréer les cartes dans l'état de la sauvegarde.
ExportGeometryScript d'export de la géométrie de la carte courante (rect des contrôles).
MakeSaveItemsListCrée dans la pile une custom property contenant l'ID des objets de fond à sauver : champs, cases à cocher et groupes de boutons radio.
ClipSaveItemsNamesRetourne le nom des objets de fond à sauver.
DeleteCards [booléen]Sans paramètre, détruit la carte courante; avec la valeur "true", réinitialise la pile sans aucune donnée : à faire avant un importBackUpDatas.
ChangeAdminPwdCrée un mot de passe Administrateur dans la pile qui sera demandé avant de faire un ExportBackUpDatas ou un importBackUpDatas; protège la confidentialité du contenu de la pile.
CheckAdminPWDExige le mot de passe Administrateur préalablement à une action. A placer dans un script si besoin.
initPwdEnvtDemande un mot de passe Utilisateur. S'il est absent, le crée dans la pile. Si le mot de passe est erroné, ferme la pile.
setPwdCrée ou modifie le mot de passe Utilisateur dans la pile.
GetGroupIconScriptCrée pour un ensemble de boutons un script de réallocation des icones par leur nom.
Message à envoyer à l'objet (groupe, carte, etc.) et script dans le Presse-Papier.

Libimage Customslib version 1.4image library Customslib à coller dans votre pile

Libimage de gestion des custom properties de tous les objets : piles, cartes, contrôles.
Tous les messages doivent être envoyés à l'objet dont on veut manipuler les custom properties :

Send "exportcustoms2file" to this card

MessageUsage sur target
exportcustoms2fileExporte chaque custom de la target sous la forme d'un fichier texte.
setCustomProp [propName,filePath]aucun paramètre : demande un fichier texte ".txt", alimente la custom par le contenu du fichier et donne à la custom le nom du fichier sans l'extension.
"filePath" path d'un fichier : alimente la custom par le contenu du fichier. Si "propName" est fourni donne ce nom à la custom, sinon donne à la custom le nom du fichier sans l'extension.
importCustomsfromFolderDemande un dossier contenant les fichiers texte à importer en customs. Chaque custom property a comme nom le nom du fichier sans l'extension : un fichier "myProperty.txt" créera une custom "myProperty" dans la target.
DeleteAllCustomsDétruit le customset (toutes les custom properties) de la target.
deleteCustom propNameDétruit la custom property "propName" de la target.
RenameProp propName,NewNameRenomme "NewName" la property "propName".

En exemple, un inspecteur permettant de visualiser les customs, de les importer et exporter à partir de fichiers. Les boutons ont une bulle d'info permettant se savoir ce qu'ils font.

Inspecteur de custom properties

Libimage ImagesTools version 1.45image library ImagesTools à coller dans votre pile

Libimage de manipulation d'images et d'extraction des données EXIF. Réalisée à partir de getExif1.4(<filePath>) -- http://homepage.mac.com/udi/
Intègre les routines de manipulation d'images antérieurement implémentées dans XPlatform (SetthumbSize,SetThumb ,ExportThumbImage et ResizeObject) et AppleScriptLib (getImageLegende).
Requiert l'installation de XPlatform et AppleScriptLib.
Nouveautés v 1.3: support de la librairie Perl ExifTool de Phil Harvey si elle est installée dans le système. Voir ici pour l'installation d'exiftool.
Correction d'un bug sous Yosemite et El Capitan pour lesquels Exiftool n'est plus installé au même endroit qu'auparavant.

CommandeUtilisation
ReadExifDatas(imagepath)Alimente un array dans la globale exifdatas :
put ReadExifDatas(path_image) into exifdatas
Clé de l'arrayValeur retournée, si elle existe :
"angle"angle de l'image en degrés.
"caption"légende exif de l'image : (en général, série de blancs). Voir getImageLegende pour lire une légende IPTC ou une description SpotLight.
"dateexif"date exif de l'image en secondes.
"dateolder"date la plus ancienne en secondes de l'image.
"dateori"date de prise de vue en secondes de l'image.
"XResolution"résolution en largeur.
"YResolution"résolution en hauteur.
"Software"logiciel de l'appareil.
"ExposureTime"temps d'exposition.
"ExifVersion"version d'exif.
"ApertureValue"diaphragme utilisé.
"FocalLength"longueur focale.
"ExifImageWidth"largeur image en pixels.
"ExifImageHeight"hauteur image en pixels.
getImageLegende(imagepath)Rend la légende IPTC de l'image imagepath (chemin d'accès à l'image); si la légende IPTC n'existe pas, tente de lire la légende kMDItemDescription (Metadatas SpotLight Mac OS X).
Nouveauté v 1.2 :considère comme vide une légende qui ne contient que des espaces.
exemple :

 put getImageLegende(imagepath) into iptcLegend

SetthumbSize largeur, [hauteur]Définit la largeur et la hauteur d'un thumb. A faire préalablement à l'appel aux commandes : SetThumb, ExportThumbImage et ResizeObject. Les dimensions du thumb étant stockées dans une locale, on ne fait appel à la commande que pour changer les dimensions du thumb.

  SetthumbSize 250

SetThumb (paramètres)Importe un fichier (et redimensionne) dans une image ou un player. Les dimensions de l'image originale sont mémorisée dans la globale gImageOriginalSize. A traiter par l'envoi d'un "send" à l'objet dans lequel le fichier est importé. Paramètres séparés par des commas :
  • "new image" ou "new player" : crée un nouvel objet
  • filepath : chemin du fichier contenant les données (image ou vidéo)
  • name : donne à l'objet le nom du fichier
  • tooltip : met le tooltip de l'objet le nom du fichier
  • imageData : après avoir redimensionné l'image aux dimensions du thumb, compresse les données de l'image.
  • angle [valeur en degrés] : tourne l'image.

on exemple1 listImages
  -- création de miniatures d'images ayant pour nom et tooltip le nom du fichier
  SetthumbSize 300
  repeat for each line filepath in listImages
    put "new image" &cr & filepath &cr &"imagedata" &cr &"name" &cr &"tooltip" into commande
    send "SetThumb" && commande to this card
  end repeat
end exemple1

on exemple2 filepath
  -- import des données d'une image ou d'une vidéo dans une image ou un player existant
  SetthumbSize 500
  send "SetThumb " &" & filepath &" to image id 1028
  send "SetThumb " &" & filepath &" to player id 1029
end exemple2

ExportThumbImage (paramètres)Exporte l'objet sous forme de fichier image, de variable ou vers une autre image. A traiter par l'envoi d'un "send" à l'objet à traiter. Paramètres séparés par des lignes :
  • ligne 1 : mode d'export de l'objet :
    1. "file (filepath)" : chemin de l'image exportée.
    2. "var" : the result retourne le text de l'image exportée.
    3. "(name d'une image)" : exporte vers l'image donnée en paramètre.
  • autres lignes :
    • CompressFormat : JPEG,GIF ou PNG. Facultatif dans le cas d'un file car déduit de l'extension du fichier de destination.
    • "rect (snapshotRect)" facultatif. Par défaut, le rectangle de l'objet source.

on makeThumb
  put "file" && Thumbfolder &ThumbName into filepath
  if option_vers_image then
    send "ExportThumbImage " &filepath to image "thumbviewImage"
  else send "ExportThumbImage " &filepath to player "thumbviewPlayer"
end makeThumb

ResizeObjectRedimensionne aux dimensions du thumb une image ou un player. A traiter par l'envoi d'un "send" à l'objet à traiter.

send "ResizeObject" to image "imagethumb"

CheckExiftoolVérifie que la librairie ExifTool est installée sur votre plateforme. Retourne le numéro de version d'Exiftool, alimente la globale global gExiftoolOK (true ou false) et détermine à quel emplacement se trouve la library.
Les fonction et handler suivants requièrent Exiftool pour fonctionner (gExiftoolOK=true).
ReadIPTCDatas(imagepath)lit l'orientation de l'image et les dates DateTimeOriginal, CreateDate et ModifyDate.
GetCaptionAbstract(imagepath)lit la légende IPTC de l'image.
GetXMPDescription(imagepath)lit la description XMP de l'image.
GetAuthor(imagepath)lit l'auteur de l'image.
GetKeywords(imagepath)lit les mots-clés de l'image.
GetTitle(imagepath)lit le titre de l'image.
getOrientation(imagepath)rend l'angle de rotation de l'image en degrés.
SetImageLegende imagepathalimente la légende IPTC de l'image, sa description XMP et sa légende TIF.
SetAuthor imagepathalimente le creator et l'artist de l'image.
SetKeywords imagepathalimente les mots-clés de l'image (IPTC:Keywords et XMP-dc:Subject).
SetTitle imagepathalimente le titre (ObjectName) de l'image.
RotateImageOrientation imagepath,deltaAnglechange l'orientation de l'image en fonction de la rotation deltaAngle (multiple de 90°).
getimagestrings(folderpath)retourne le caption-abstract, title, keywords, creator, date de prise de vue et angle de chaque image de la directory folderpath séparés par des tabulations ; utile pour des ensembles volumineux d'images.
AlignDates imagepathMet la date du fichier à celle de la prise de vue.
ShiftDate imagepath,decalage (nombre de secondes)décale toutes les dates de l'image imagepath de n secondes.
getmoviestrings(folderpath)retourne la description, title, keywords, Author et CreateDate de chaque film de la directory folderpath séparés par des tabulations.
SetMovieAuthor videopathalimente l'Author de la vidéo.
SetMovieDescription videopathalimente la description de la vidéo.
SetMovieKeywords videopathalimente les keywords de la vidéo.
imageRotate SourceImagePath, Angle, Crop, DestFilePathEffectue la rotation d'une image selon un angle quelconque et l'exporte dans un autre fichier.
SourceImagePath : path de l'original;
Angle : angle de rotation en degrés ;
Crop : "true" pour conserver le rectangle de l'image originelle ;
DestFilePath : path de l'image générée.
getPDFtag(filePath, [tagName])Extrait les tags présents dans un fichier pdf.
filePath : path du fichier pdf;
tagName : nom du tag à extraire : AppleKeywords,Author,CreateDate,Creator,Keywords,ModifyDate,Producer,Subject,Title,Trapped. Par défaut, CreateDate, la date d'impression
exiftoolVersion()rend le n° de version d'exiftool installé.
debugImageTExporte sous forme de fichier la dernière commande ExifTool exécutée.

Libimage LCDownloadlib version 1.3image library LCDownloadlib à coller dans votre pile

Une libimage pour télécharger une URL.

test de libimage LCDownloadlib

Libimage Revo2HTML version 1.5image library Revo2HTML à coller dans votre pile

Demande la sélection d'une pile et l'exporte les scripts de tous les objets sous forme d'une page HTML créée sur le Bureau.
Les customs properties de chaque objet sont listées avant son script.

Syntaxe :
exportRevo2html [garderformat]
garderformat
: paramètre facultatif;

Les scripts d'une pile cryptée par mot de passe ne sont pas extraits.


Libimage XPlatform version 2.26image library XPlatform à coller dans votre pile

Permet de réaliser des scripts fonctionnant sur toutes les plateformes et de réaliser des équivalences d'emplacements de dossiers, par exemple : « Documents » sur Mac et « Mes documents » sur Windows.

Appel initial de la Library XPlatform

Les scripts sont incorporés à l'image qu'il suffit de copier puis de coller dans la pile désirée.
Ces scripts chargent les paramètres d'environnement (locales) de la plateforme : version du système, langue de l'utilisateur et organisation du Bureau.
A l'ouverture de votre pile, il faut appeler les scripts contenus dans l'image au moyen des instructions suivantes (par exemple).
on preopenstack (ou preopencard& )
  insert the script of image "XPlatform" into back
  LookPlatform -- à placer pour initialiser les globales d'environnement !
  [...]
end preopenstack
on closestack
  remove the script of image "XPlatform" from back
end closestack

L'appel initial renseigne les globales suivantes :

globaleutilisation
gSystemVerséquivaut à la propriété "the platform", mais distingue OSX et Classic. Valeur gérées : MacOS9, MacOSX, Windows, Ubuntu.
gDistributiondistribution Linux ou version du système.
gdecimalVersversion décimale système.
gHasXDGSupportsupport (ou non) du bureau MacOS, Windows ou XDG Linux.
gMachineCharsetcodage des noms de fichiers.
gUserlangagelangage de l'utilisateur.
gLongUserNameNom développé de l'utilisateur.
gDecimalSepséparateur décimal.
gThousandSepséparateur de milliers.
gDeviseCode devise.
gFractionalLongueur sous-unité devise.
gfirstWeekdayPremier jour semaine.
gcurrentEngineversion décimale moteur.
gXPFolderpathResultéquivaut à « the result » consécutif à l'appel de XPFolderpath() : contient "folder not found" lorsque le dossier n'existe pas.

Commandes et fonctions disponibles

commande ou fonctionusage et exemples
LookPlatformInitialise les globales d'environnement : à faire juste après le placement de la Libimage en backscripts.
XPFileList(theFolder, extensionsList, attributs)fonction listant les fichiers (ou les dossiers) contenus par theFolder, avec une ligne pour chaque élément. Les items sont séparées par des tabulations, le premier item étant le nom (ou le fullpath) du fichier, suivi des attributs demandés.
Plus de détails sur XPFileList parambuilder
XPDirKeys()Rend les noms de sélecteurs de répertoire du Bureau utilisateur propres à la plateforme. Valeurs créées par LookPlatform.
XPusableFolders()filtre les dossiers correspondant à un paquet (MacOS).
XPwarningMessage d'alerte envoyé lorsque la structure du Bureau ne peut être déterminée (Linux sans architecture XDG).
XPFolderpath(selector)Retourne un dossier défini par un sélecteur "commun" : desktop, applications, documents, etc. Plus de détails sur Xpfolderpath().
reveal <répertoire>ouvre dans le navigateur de fichier le répertoire précisé.
XPCopyFolder folderToCopy, destinationFolderRemplace revCopyFolder en corrigeant le bug de ce dernier lorsque le path d'un des paramètres contient des caractères spéciaux.
XPGetFolderSize(folderpath)fonction donnant la taille des éléments contenus par le dossier folderpath en octets.
HFSname(élément)path du dossier parent de l'élément.
leafname(élément)nom court de l'élément (fichier ou dossier).
stsLongFilePath()d'après Ken Ray Sons - Thunder Software : corrige le problème des noms de fichiers longs dans un dragdata["files"]
FilterFileswithExtension(FileList,extensionsList)filtre les fichiers selon la liste d'extensions fichier ("jpg,png" par exemple).
FileExtension(filename)Rend l'extension du fichier filename, par exemple jpg pour image.jpg.
XPAnswerFolder(myPrompt, [defaultpath])équivaut à : answer folder "message" [with folderParDéfaut].
XPanswerPGM(myPrompt, [defaultpath])answer program "message",répertoire programmes par défaut.
XPaskfileType(myPrompt, [defFileName,theTypes])équivaut à : ask file "message" [with CheminParDéfaut with type]. Plus de détails sur XPaskfileType.
XPAnswerFile(myPrompt, [defaultpath],[myTypes])
XPAnswerFiles pour sélectionner plusieurs fichiers.
équivaut à : answer file "message" [with defaultpath with type]. Plus de détails sur XPAnswerFile.
XPCodeImage(filepath)Encode en base64 une image et donne une data url de la forme :data:image/png (ou jpeg, gif, etc.);base64,iVBORw0KGgo& (codage de l'image).
XPdecodeImage(data url, filepath)Décode la data url d'une image et crée un fichier à l'emplacement spécifié.
XPFile2URL theContent, theURL, [codage]Remplace un «put theContent into url theURL». theURL peut commencer par "file:", "binfile:" ou "ftp"; par défaut, "file:" est pris.
codage est facultatif : "B64" convertit le contenu en base64, "C" compresse le contenu, "C64"convertit le contenu en base64 et le compresse.
Corrige un problème Linux dans lequel le fichier créé est considéré à tort comme un exécutable.
XPGetCodedUrl(x,codage)Lit le contenu d'une url codée ou non.
CoerceExtension(theFile, theTypes)fonction contraignant la création d'un fichier avec l'extension donnée en paramètre.
xpMimeType(filepath)Retourne le mime type du fichier spécifié.
Readwebaddress(path)fonction de lecture d'un raccourci internet : webloc, url ou desktop.
xpFileEncoding(path)Retourne 3 items :
  1. le charset d'un fichier : repère d'abord une éventuelle marque indiquant qu'il s'agit d'un fichier Unicode ; en l'absence de celle-ci, extrait le charset s'il s'agit d'un fichier html ou vCard, à défaut restitue "n/a".
  2. le type de retour-ligne : Mac, Unix, Windows ou "n/a". Permet de présumer de quel type d'encodage il s'agit.
  3. l'extension du fichier.

put xpFileEncoding(x) into gdocCharset
XPDefaultApp(filepath)Rend l'application par défaut pour ouvrir le fichier filepath.
XPDefaultBrowser( [protocol])Chemin d'accès au programme gérant par défaut le protocole spécifié (http, ftp, mailto). A défaut de protocole, le navigateur internet par défaut.
Sur les Linux « anciens », le protocole n'est pas toujours trouvé dans les mimetypes et la fonction retourne "".
XPDefaultTextEditor()Chemin d'accès à l'Éditeur de texte par défaut.
getAppFromMimeLux(mimetype)fonction rendant sous Linux l'application par défaut pour ouvrir un fichier du mimetype donné en paramètre.
return getAppFromMimeLux("text/html")
XPLaunch filepath, [appPath]Remplace la commande Launch qui ne marche pas toujours.
filepath est le chemin d'accès au fichier,appPath est celui de l'application pour l'ouvrir; s'il n'est pas précisé, le fichier est ouvert avec l'appli par défaut.
XPLaunchWithBrowser theBrowser,theUrlOuvre l'URL theUrl avec le navigateur theBrowser.
Aidesaisie(string,[cmode])Aidesaisie capitalise les noms et les libellés de rues.
makeExcel(theText,header,exportmode)Voir MakeExcel.
dedoublelines(x)Supprime les lignes en double de x.
XPCleanDupItems(itemslist, [itemdelimiter], [sortType])Élimine les doublons et les items vides d'une liste d'items séparées par mydelimiter.
itemslist : liste à traiter.
itemdelimiter : séparateur d'items (par défaut : comma).
sortType : text,international,numeric,datetime,important,orderkeep. Spécifie un tri de la liste en sortie.
  • text,international,numeric,datetime : applique le tri correspondant ;
  • important : place en premier les items les plus fréquemment rencontrés dans la liste ;
  • orderkeep : élimine les doubles en conservant l'ordre initial des items.
CleanSpaces(string)Retourne une chaîne en éliminant les espaces de début et de fin.
XReplace(string, chaîne à chercher,valeur de remplacement)Remplace toutes le occurrences de la chaîne à chercher par la valeur de remplacement dans un conteneur.
XPChangeCase(string, [style de casse])Met en majuscules ou minuscules une chaîne de caractères en tenant compte des voyelles accentuées.
string : chaîne à traiter.
style de casse :
  • lower : minuscules (valeur par défaut) ;
  • upper : majuscules ;
  • words : capitalise la première lettre de chaque mot ;
  • phrase : capitalise la première lettre de la phrase.
XPChiffreEnLettres(tAmount,tDevise,tUserlangage)Convertit un montant en lettres avec le code devise. Fonctionne uniquement avec un langage français.
XPformatNumber(nombre)Formate un nombre en utilisant les réglages locaux : séparateur décimal et séparateur de milliers. Si ce n'est pas un nombre, retourne la donnée inchangée.

Exemple : get XPformatNumber(1235.678) retourne 1 235,68 € pour un système français.

XPlibsize(size)Convertit la taille d'un fichier en Ko et multiples (Mo, Go...).
XPRemoveDiacritics( string)Retire les voyelles accentuées d'une chaîne de caractères en les remplaçant par de simples voyelles.
XPTime(temps, unité)Convertit un temps en clair par exemple : «1h 23 mn 15s».
temps : temps à convertir;
unité : par défaut des secondes (secs), des milliseconds ou des ticks.
whichTabItem()dans un champ de type table, rend le numéro de colonne sélectionné.
ConvertOOClipConvertit en texte tabulé le Presse-Papier de Open Office.
XPCheckConnection()Teste la connection à l'internet.
Rend les valeurs suivantes :
  1. = Connecté
  2. = Non connecté à Internet
  3. = Connexion Internet défectueuse
  4. = Non connecté au réseau
XPtrace content[,nomfichier]Vide content dans un fichier "nomfichier" sur le Bureau. Si nomfichier n'est pas stipulé, le fichier sera "trace.txt"
ascii2UTF8(string)Convertit la chaine de caractères ASCII en UTF-8.
ascii2UTF16(string, pTextEncoding)Convertit la chaine de caractères ASCII en UTF-16LE ou BE selon plateforme.
UTF2ascii(string)Convertit la chaine de caractères de UTF-8 en ASCII.
UTF16toAscii(string[, pTextEncoding])Convertit la chaine de caractères UTF-16LE (ou UTF-16BE selon valeur fournie dans pTextEncoding) en ASCII.
xpConvertTextfile( filepath,[charset])Convertit en ascii le fichier filepath si le charset de ce dernier est trouvé (ou fourni en paramètre).
Si le charset n'est pas fourni, tente de le déterminer au moyen de xpFileEncoding(path).
Voir Décoder un fichier, exemple utilisant cette fonction pour déterminer le charset d'un fichier, s'il n'est pas trouvé affichant une pile permettant de prévisualiser le fichier et de choisir le charset, puis enfin de le convertir.
Ucode(string, OutputFormat, ConvertAll)Codage de caractères Unicode.
string : Texte à convertir;
OutputFormat : %hexa (valeur par défaut), %decimal ou javascript;
ConvertAll : "all" code tout, sinon uniquement les caractères spéciaux.
XPGetMetas(contenu d'une page HTML)Alimente un array stocké dans la globale gExtMetas restituant les valeurs des metas trouvés dans le contenu de la page.
XPTitle2URL(titre)Crée le nom d'une page HTML d'après son titre en éliminant les articles et les caractères accentués.
Exemple : "Langue de veau aux câpres" donne "langue_veau_capres.html"
XPbuildKeywords(Text, [WordSeparator],[MotsExclus])Crée une liste de mots-clés à partir d'un texte.
  • Text : le texte dont on désire extraire des mots-clés ;
  • WordSeparator : caractère de séparation des mots dans le texte, par défaut espace ;
  • MotsExclus : liste de mots à exclure de la sélection. XPlatForm possède une liste par défaut.
Élimine tous les mots de moins de 4 caractères et les nombres et retourne jusqu'à 50 mots-clés en minuscules par ordre de fréquence décroissante dans le texte.
HTMLtext2CSS(htmltext)Convertit le htmltext d'un champs en un bloc stylé sans saut de ligne. Remplacer cr par "<br>" pour obtenir les sauts de ligne.
XPStackPrefs()path d'un fichier de préférences associé à la pile.
XPExportPrefs(valeurs,nomprefs,[mycodage])Exporte les réglages propres à une pile :
valeurs : un script affectant une valeur à une variable globale ou à une propriété, par exemple :
get the hilite of btn "zipper" of card id 1002 of me
put "set the hilite of btn " & quote & "zipper" & quote & " of card id 1002 of me to " & it &cr after zz
XPExportPrefs zz, "mesOptions"

s'il y a des globales, il faut les passer en tête de flux, on ne peut pas envoyer des locales.
nomprefs : par défaut le nom de la pile.
mycodage : par défaut UTF-8.
XPreadprefs([nomprefs,mycodage])Lit le fichier de préférences et exécute le script ligne à ligne :
nomprefs : par défaut le nom de la pile.
mycodage : codage du fichier lu, par défaut UTF-8.

Limiter les lignes saisies dans un champsiRevTool

limiter nombre de lignes saisissables

Outil générant un script permettant de limiter le nombre de lignes saisissables dans un champs.
Choisissez le nombre de lignes maxi désiré, la longueur souhaitée pour le champs et un style d'arrondi.
L'outil génère un groupe « légende » comportant une icone d'effacement du contenu.
Cliquez le bouton « Installer… » pour copier le groupe généré ou le script approprié seulement.


Lineoffset en sérieiRevTool

Utilise LineOffset() de manière itérative pour retrouver toutes les occurrences d'une même chaîne.
Peut être transposé à itemOffset(), WordOffset(), etc.

Function SearchLines stringToSearch,Content
  -- utilise LineOffset de manière itérative
  -- rend le numéro des lignes où le motif recherché est trouvé
  put "" into myResult
  put 0 into line2skip -- nombre de lignes à ignorer
  repeat
    get lineOffset(stringToSearch,Content,line2skip) -- par rapport au point de départ, numéro de la prochaine ligne où se trouve la chaîne recherchée.
    if it = 0 then exit repeat
    add it to line2skip -- ajouter it, car c'est un nombre relatif !
    put line2skip &comma after myResult
  end repeat
  delete char -1 of myResult
  return myResult
end SearchLines


Lire plist MacintoshiRevTool

Un script pour lire le contenu d'une plist Macintosh; exemple avec un simulateur de votre Bureau.
Ne fonctionne actuellement que pour Capitan.


Mail Apple export en HTMLRevo2mail

export de messages en html

Enregistrer le message au format « Source du message brut ».
Glisser le fichier obtenu sur la dragzone pour le convertir en page html.


makeExceltemplate_makeXCEL

Cette fonction appartient à XPlatform.

makeExcel(theText,header,exportmode)

theText: texte à convertir (format Iso ou Mac); chaque cellule est séparée des autres par une tabulation
header : descripteurs du type de chaque colonne du tableau, séparés par une virgule;
valeurs supportées :

descripteurtype colonneformat Excel
Ttexte 
Mmontant avec centimes0.00
MLmontant long avec séparateurs de milliers#,##0.00
MFmontant monnaie (devise du pays)#,##0.00" eur"
Ientier 0
Ddate jour-mois-and-mm-yyyy
%pourcentage0.00%
Hheureh:mm:ss
DHdate et heured-mm-yyyy\ h:mm:ss
Enotation scientifique##0.0E+00
Ffraction#" "??-??
=Ignorer la colonne 

exportmode : mode d'export des données.

Le fichier généré est de l'UTF-8.

Outil de paramétrage du header pour makeExcel

Destiné à affecter visuellement les descripteurs du header, il permet de générer le script d'export correspondant. Mais rien n'empêche de donner les valeurs directement, par exemple :
put "T,M,M,%,M,M,MF" into myheader

Cliquez d'abord le bouton importer import du fichier tabulé dans MakeExcel pour ouvrir un fichier tabulé :

en-tête vide

L'exemple affiché est une facture de garagiste. La ligne verte en haut est destinée à accueillir les formats de chaque colonne de la feuille qui sera exportée par makeExcelfile ; par défaut, le format est texte.

Choisissez ensuite pour chaque colonne le format qui vous convient le mieux en cliquant l'en-tête de la colonne. Un menu local permet de choisir le format approprié.

choix du format de cellule SYLK

Une fois les formats précisés, exportez le fichier au format désiré et voyez si le résultat vous convient. export de texte tabulé au format SYLK, CSV ou TSV

Générez ensuite un script correspondant aux réglages choisis avec le bouton Placer le script généré dans le Presse-Papier. qui le place dans le Presse-Papier.

on makeExcelfile filecontent
   -- alimenter <filecontent> avant !
   ask file "Enregistrer la feuille de calcul :" with "extrait.slk"
   if it = "" then exit to top
   put it into fnom
   put makeExcel(filecontent,"T,M,M,%,M,M,MF","slk") into myOut
   XPfile2Url myOut,it
end makeExcelfile

N'oubliez pas de copier la library XPlatform dans votre pile…

Utilisation de l'outil pour makeExcel comme convertisseur

suppression de lignes

Une fois le fichier tabulé importé, vous pouvez vous servir de makeExcel comme convertisseur : le bouton suppression de lignes permet d'éliminer les lignes superflues.


Mise à jour LibimagesiRevTool

outil de mise à jour des Libimages

Affiche la version des Libimages installées dans vos piles et de les mettre à jour (version plus récente présente dans LiveCodeClips).
Le bouton «Export» enregistre le tableau au format CSV.


Pile ChooseListChooseList

exemple avec chooselistModèle de pile affichant une liste ou tableau et retournant la valeur ou le n° des lignes sélectionnées.

Exemple de sélection disjointe sur un tableau :

Alimenter la variable the dialogdata avec la liste à présenter en séparant chaque ligne par un "CR". Si la liste est tabulée, elle est présentée comme une tableau (colonnes).
Alimenter la variable global gChooselist, qui gère la présentation, comme suit :
Ligne 1 : [prompt] message affiché au dessus de la liste.
Ligne 2 : (5 items facultatifs) [selection_mode],[modeResultat],[listeWidth],[colSeparator],[cadrage] :

  1. selection_mode : 1 = une seule ligne à la fois (valeur par défaut), 2 = multi-lignes, 3 = sélection disjointe.
  2. modeResultat : true pour obtenir la liste des numéros de lignes choisies séparée par des virgules, false (valeur par défaut) pour obtenir le texte sélectionné.
  3. listeWidth : largeur en pixels d'affichage de la liste ou auto (valeur par défaut) : affichage sur toute sa largeur dans la limite de la taille de l'écran.
  4. colSeparator : tab par défaut, chaîne de caractères séparant les items dans la liste; les constantes : backslash, colon, comma, empty, null, quote, slash et space sont acceptées.Les constantes : cr, crlf, lf, linefeed et return sont interdites.
  5. cadrage : la valeur target place la fenêtre au plus près du point cliqué pour appeler la liste.

Ligne 3 : valeur ou rang de la ligne présélectionnée (facultatif).
Ligne 4 : labels à imposer aux boutons « Choisir » et « Annuler », séparés par une virgule (facultatif). Les boutons ne sont pas redimensionnés.
Résultat : Texte sélectionné ou numéros d'ordre des lignes choisies dans la liste, "Cancel" sinon.
En mettant « ? » dans gChooselist, la présente aide est affichée.

L'outil placé sur la carte permet de paramétrer les éléments de présentation de la liste et de les copier au moyen de l'icone copier.

dialogue paramétrage ChooseList

Pile pour importer une imageplaceimage

Pile pour importer une imagePile permettant de sélectionner une portion d'une image pour l'importer dans une carte. La pile utilise la Libimage ImagesTools. Elle permet de faire des rotations de l'image, de zoomer sur l'original en le déplaçant à l'intérieur du rectangle de sélection.

Cliquez le bouton « Installer… » pour installer la pile dans une autre pile.

Appeler la pile en mode "modal" après avoir alimenté the dialogdata de la façon suivante :
Ligne 1 : path d'une image ;
Ligne 2 : longueur et largeur en pixels (ex : "250,200") de la portion à extraire.

En retour, the dialogdata vaut "cancel" si l'utilisateur à annulé le traitement, sinon il contient le "text" de la portion d'image sélectionnée ; ce text peut être placé dans une image pré-existante.
Exemple de script :

on placerExtrait imagepath
  set the dialogdata to imagepath & cr & "250,200"
  modal stack "template_captureimage"
  put the dialogdata into theimgDatas
  if theimgDatas = "cancel" then exit to top
  -- retourne un "text" d'image importable directement dans une autre image
  set the text of image "thumb" to theimgDatas
end placerExtrait


Pile pour transfertstransfert

pile de transferts FTP

Cette pile comporte 3 onglets :

Le script d'installation permet de choisir le nom de la substack installée dans la pile principale.

Paramètres

dialogdata en entréedialogdata en sortie
ligne 1, 2 items :
Onglet préaffiché [Transfert,Disque,FTP ou all],
[booléen « disabler les autres »] : permet d'interdire l'accès aux autres onglets, par exemple : "transfert,true" ne permet que d'accéder à cet onglet.
Valeur par défaut : "all".
pour tous les onglets : "Cancel" si l'on clique le bouton "Annuler"
  • pour l'onglet Transfert : deux items : (sélection des cartes : "all" ou "selection") et (destination : "ordinateur" ou "serveur")
  • pour l'onglet FTP : "FTP" si l'url est OK, crée une custom ftpurl dans la pile principale.
  • pour l'onglet Disque : "Disque" crée une custom basicUrl dans la pile principale.
Exploitez les customs basicUrl et ftpurl pour transférer les données à l'emplacement désiré.
ligne 2, 2 items déterminant l'option proposée à l'utilisateur pour le transfert : transférer toutes les cartes ou une sélection [all ou selection],
destination par défaut [ordinateur ou serveur].
Valeurs par défaut : "all,ordinateur".

Un outil permet de préparer les paramètres à passer en dialogdata à la pile transferts.

outil de saisie des paramètres dialogdata de la pile transferts.

Copiez les paramètres au moyen de l'icone copier.


Préférences d'une pile XPStackPrefs()iXPlatForm

La fonction XPStackPrefs() appartient à la Libimage XPlatForm et restitue le path d'un fichier dans lequel vous pourrez enregistrer des options.

Paramètre

Un nom quelconque. Par défaut, XPStackPrefs() prend le "short name" de la pile courante.

Résultat

[chemin d'accès aux préférences]/[nom donné en paramètre]/[nom de la plateforme].data", par exemple :

sous MacOSX :   /Users/NomUser/Library/Preferences/MaPileMacOSX prefs.data
sous Windows :   C:/Documents and Settings/NomUser/Application Data/MaPileWindows prefs.data

Astuce : le fichier de préférences peut être un script initialisant les variables nécessaires. A l'ouverture de la pile, on le lit et on l'exécute :

on exportprefsglobales
      -- Exemple d'export de globales et de propriétés
         -- chargement des globales…
      put the rect of this stack into gprevStakRect
      put 9 into gAppCellDelimiter
      put "anything" into gAppcreator

      -- nom des globales à exporter…
      put "gprevStakRect,gAppCellDelimiter,gAppcreator" into myList
      -- déclaration des globales en première ligne du script généré…
      put "Global " &myList & cr into valeurs

      repeat for each item aGlobal in myList
            do "get " & aGlobal
            -- si la globale contient plusieurs lignes : remplacement des retours ligne
            replace cr with "^r" in it
            put "get " & quote & it & quote & cr after valeurs
            put "replace " & quote & "^r" & quote & "with cr in it" & cr after valeurs
            put "put it into " & aGlobal & cr after valeurs
      end repeat
      put "set the mark of this card to " & the mark of this card &cr after valeurs
      -- écriture dans le fichier mesOptionsxxxxx prefs.data
      XPExportPrefs valeurs,"mesOptions"
end exportprefsglobales

on readprefs
      -- lecture des valeurs stockées
      XPreadprefs "mesOptions"
      -- (suite d'instructions après lecture)
end readprefs


RawkeyupiRevTool

Affiche le keycode de la clé pressée.

Affiche le keycode de la clé pressée.
Contient le modèle d'un script "on rawkeyUp" avec un trigger sur les valeurs courantes.
transposable à RawKeyDown.


Recherche SpotlightiRevTool

champs de recherche SpotLight

Ce groupe comporte un champs de recherche permettant de filtrer un index au moyen du message "placeindex".
Un bouton permet d'effacer la recherche entrée.

outil SpotLight

L'outil présent sur la carte permet de paramétrer la largeur du champs.
Copiez votre groupe avec le bouton « Installer… ».
Collez-le à l'endroit désiré et mettez en place votre script de filtrage des données.

Exemple de filtrage d'une globale "myIndex" :
on placeindex
  put line 1 of fld "filter" into mySelector
  if mySelector <> "" then filter myIndex with "*" &mySelector &"*"
  put myIndex into fld "index"
end placeindex


Redimensionner les colonnes d'un champsiRevTool

Un script pour redimensionner la largeur des colonnes d'un champs tableau selon la largeur effective du contenu.
Faire un send "resetchamps" au champs concerné.


SendAppleMailmailAppleScript

Exemple de mail HTML avec AppleScript (Mac OSX seulement).

Le script génère un message stylé ou pas avec AppleMail.
Utilise le handler "SendAppleMail" de la Libimage AScriptlib.
Un jeu de paramètres permet de tester différents scénarios.

paramètres

StackRipperburnstack

Revolution Stack Ripper est une transposition à LiveCode de mcRipper, un ripper MetaCard, et a surtout été un exercice destiné à étudier comment recréer des objets par script.
Que fait-il ?

Revolution Stack Ripper

Avertissement
Sauvegardez soigneusement l'original de votre pile avant de procéder : la pile a été soigneusement testée et elle n'affecte normalement pas une pile rippée ; mais on ne peut garantir un tel fonctionnement dans tous les cas de figure.
Lors d'un Burn, la pile est recréée avec le même nom que la pile originale : pour éviter les conflits, l'original doit être fermé.
Utilisation
Ouvrez «Revolution Stack Ripper».
Cliquer le bouton «Rip».
Cliquer le bouton «Save» pour enregistrer le texte produit au format xml.
Cliquer le bouton «load» pour charger un rippage xml.
Cliquer le bouton «Burn» pour générer une pile.
Limitations


Séparateur de champsiRevTool

exemple de séparateur verticalExemple de poignées permettant de déplacer la limite de 2 champs juxtaposés.

Choisissez le modèle (horizontal ou vertical) au moyen des boutons radios.
Cliquez le bouton « Installer… » pour copier le bouton poignée.
Groupez ensembles vos deux champs juxtaposés (auxquels vous attribuez le short name que vous voulez) et éditez le groupe.
Collez-le bouton poignée entre les deux champs à séparer, puis éditez le script pour modifier les 3 constantes :

constant CfldGauche="A",CfldDroit="B",Cscrlimite=80

Redimensionnez le bouton poignée à la largeur et longueur désirée : les champs s'ajusteront.
Le script fait apparaître automatiquement les scrollbars des champs lorsque le nombre de lignes qu'ils contiennent excède leur hauteur.


Tableau triéChooseList

feuille de calcul avec tri des colonnesGroupe formant un tableau dont on peut trier les lignes.
Les colonnes peuvent être re-dimensionnées au moyen de la souris et les lignes peuvent être triées en cliquant le titre des colonnes.
Les boutons permettent de copier, coller et effacer le contenu du tableau.

Cliquez sur le bouton « Installer… » pour copier le groupe dans une autre pile.


TitleWidth d'un boutoniRevTool

largeur title boutonCette propriété n'est pas accessible dans l'inspecteur standard : un inspecteur pour le faire.
titleWidth et labelWidth sont synonymes;
positionner la propriété ne sert à mon avis que dans le cas des "option menu" : pour les autres styles de bouton, je ne vois pas l'intérêt.


Tri des boutons d'un groupeiRevTool

Réarrange un groupe de boutons en fonction de la largeur et de la hauteur du groupe.
Cliquer le bouton « Installer… » pour copier le script ; Il peut être adapté à d'autres objets.
Envoyer un send send "Placebuttons" au groupe après avoir installé le script au niveau du groupe.

Les boutons « avant » :

boutons non classés

Les boutons « après » :

boutons non classés

Visual EffectiRevTool

Composez l'effet visuel désiré au moyen des menus ;
copiez les instructions générées au moyen du bouton « Installer… » ;

Visual effect

N'oubliez pas qu'un effet visuel ne marche qu'après un « go cd… ».


Vérifier connection à InternetiXPlatForm

Appelle la fonction XPCheckConnection() de XPlatForm pour faire un test de connection à internet.

Rend les valeurs suivantes :

  1. = Connecté
  2. = Non connecté à Internet
  3. = Connexion Internet défectueuse
  4. = Non connecté au réseau

Whatclicked

Variables LiveCode alimentées par un click dans un champsUn script permettant de visualiser les différentes variables LiveCode utilisables dans le clic et la sélection d'un champ de texte.


Xpask/ Xpanswerfile (with type)iXPlatForm

scripts x-platform ouvrir / enregistrerUn générateur de script pour ouvrir ou créer un fichier d'une façon portable dans tous les environnements avec la libimage XPlatForm.

Les scripts peuvent être générés selon trois modes :

Copiez le script généré au moyen de l'icone copier.

Les fonctions remplaçantes de ask et answer file
function XPaskfileType myPrompt,[theFile,theTypes]

function XPAnswerFile myPrompt,[theFolder,theTypes]

function XPAnswerFolder myPrompt,[theFolder]
myPrompt est le message affiché dans le dialogue
theTypes est la liste des types de fichiers désirés. par exemple :
  • "document word|doc|W8BN"
  • "images web|jpg,gif,png,bmp|JPEG,GIFf,PNGf,BMPf"
  • "Pages web|html,htm,php,txt,css|TEXT"
Dans un type, le caractère «|» sépare 3 items : un libellé générique, une liste d'extensions de fichiers et une liste de filetypes OS X.
theFile et theFolder représentent la destination désirée.

XPdefaultbrowseriXPlatForm

Rend le navigateur, le mail et le client FTP par défaut au moyen de la fonction XPDefaultBrowser([protocol] de la libimage XPlatForm.
Protocole spécifié : http (valeur par défaut), ftp, mailto.

applications par défaut

Le bouton "Mime Type" donne le type Mime d'un fichier.

Le bouton "Encoder image..." donne une data url de l'image en base 64.


Correction accents fichiers Ubuntuubuntumac

Réencode correctement les noms de fichiers importés depuis un Mac vers Ubuntu.

Les fichiers de MacOs dont le nom contient des accents peuvent poser des problèmes quand on les importe dans Ubuntu. Si l'on liste le contenu d'une directory, que l'on cherche à utiliser les éléments, certains sont vus comme inexistants même si la machine fonctionne en UTF-8. Pourquoi ? (Voir cette page Wikipedia sur l’équivalence Unicode.)
En effet, UTF-8 permet d’encoder les caractères accentués de deux façons différentes :

MacOS encode les caractères de manière décomposée, notamment les caractères accentués. Sous Linux, on peut corriger cela avec l’utilitaire convmv :

convmv -f utf8 -t utf8 --nfc -r --notest <dossier>

Au cas où le Terminal retourne La commande « convmv » n'a pas été trouvée, mais peut être installée… tapez :
sudo apt install convmv
Utilisez cette carte pour faire vos conversions, une fois convmv installé.


XPFileList parambuilderiXPlatForm

Outil de création des paramètres nécessaires à la fonction XPFileList()

XPFileList parambuilder

XPFileList() appartient à la Libimage XPlatForm et donne une liste des fichiers (ou des dossiers) avec une ligne pour chaque élément. Les items sont séparées par des tabulations, le premier item étant le nom (ou le fullpath) du fichier, suivi des attributs demandés :
XPFileList(theFolder,extensionsList,attributs)

Saisissez les extensions de fichiers souhaitées et les attributs de filtrage (visibilité, sous dossiers, fullpath) puis cliquez dans l'ordre souhaité les attributs désirés. Le script est généré automatiquement et peut être testé.
Copiez le script généré au moyen de l'icone copier.

Paramètres de XPFileList
theFolderChemin complet du dossier à explorer.
extensionsListListe d'extensions de fichiers : "jpg,png,gif" par exemple ou "folders" pour obtenir une liste des dossiers. Si le paramètre est vide, tous les fichiers. Le mode "folders" est exclusif du mode « liste d'extensions ». Pour obtenir tous les dossiers et tous les fichiers, faire un premier appel avec "folders" et un second avec "", fusionner les deux résultats.
attributs partie 1Partie présentation et filtrage : (ordre quelconque).
"subfolders"explorer le dossier de départ et tous les dossiers qu'il contient.
"fullpath"retourner le chemin d'accès complet de chaque élément. Implicite si "subfolders" est spécifié.
Filtrage:Tous les éléments, éléments visibles seulement ou éléments invisibles seulement.
attributs partie 2Propriétés retournées pour chaque élément :
l'ordre des attributs détermine l'ordre des items retournées dans le résultat.
  • item 1 : toujours le nom ou le full path de l'élément
  • item 2 : la propriété n°1
  • etc.
"size"taille du fichier en octets (Mac OS, taille du data fork)
"rfsize"taille du resource fork en octets (Mac OS)
"sum"taille totale (data + resource fork) en octets
"creatortype"creator et type (Mac OS)
"creation"date de création en secondes (Mac OS et Windows)
"modification"date de modification en secondes
"last-access"date dernier accès en secondes (Unix et Windows)
"last-backup"date dernier backup en secondes (Mac OS)
"owner"propriétaire du fichier (Unix)
"group"groupe propriétaire (Unix)
"permissions"permissions

La fonction donne une erreur si un attribut n'existe pas.

Xpfolderpath()iXPlatForm

XPfolderpath() appartient à la Libimage XPlatForm et remplace la fonction specialFolderPath() qui rend le chemin d'un dossier du Bureau Utilisateur en fonction d'un sélecteur.
Dans LiveCode, les sélecteurs de dossier utilisables par specialFolderPath dépendent de la plateforme.
XPfolderpath permet d'utiliser les valeurs de sélecteur propres à chaque plateforme système, mais aussi un jeu de « valeurs communes » d'une plateforme à une autre :

ValeurDossier correspondant selon plateforme
ApplicationsApplications, Program Files, /usr/bin
DesktopBureau, DeskTop
DocumentsDocuments, "Mes Documents", etc.
DownloadsDossier de téléchargements; sous Mac OS et Windows, répertoire choisi par l'utilisateur pour les téléchargements.
FavoritesFavorites, Favoris
FontsFonts
HomeDossier ou Profil de l'utilisateur.
ImagesImages, "Images de User"
KeyChainsDossier contenant les fichiers Trousseau d'accès de l'utilisateur (OS X et Windows seulement).
MoviesVidéos, "Vidéos de User"
MusicMusique, "Musique de User"
Preferencesréglages de l'utilisateur (Préférences, Application Data)
Systemrépertoire du système : System, WINDOWS, /lib
System32(Windows seulement).
Shared folderDossier partagé entre les comptes (OS X seulement).
Temporaryfichiers temporaires : TEMP
TrashCorbeille.
userAppleScriptsDossier de scripts AppleScript de l'utilisateur (OS X).
userApplicationSupportDonnées utilisateur de Support aux applications (OS X).
userLibraryBibliothèque de l'utilisateur (OS X seulement).

Le nom restitué tient compte de la langue du compte utilisateur.
La variable globale gXPFolderpathResult rend "Folder not found" lorsqu'il n'existe pas de dossier correspondant au sélecteur fourni, elle est vide sinon.

Un outil permet de tester Xpfolderpath() :

outil Xpfolderpath()

En déroulant chacun des menus, vous pouvez voir le path du dossier correspondant sur votre plateforme, s'il existe.
Ouvrez l'emplacement correspondant au moyen du bouton Ouvrir l'emplacement..


XPGetMetas lecture metas d'une pageiXPlatForm

Fonction de lecture des metas d'une page HTML appartenant à la libimage XPlatForm : alimente un array dans la global gExtMetas avec les clés suivantes si elles sont trouvées dans le contenu d'une page HTML.

Valeur des metas
Clé gExtMetasValeur de meta
charsetcharset de la page.
isHTML5booléen indiquant que la page est en HTML5.
langagelangue de la page.
titletitle.
descriptiondescription.
robotsmeta robots.
datecreadate création(*)
(dcterms.created ou Date-Creation-yyyymmdd).
datemodifdate de modification(*)
(dcterms.modified ou Date-Revision-yyyymmdd).
smaporderordre de la page dans un plan de site.
smaptitletitre abrégé de la page dans un plan de site.
dateindexdate d'index(*)
(dcterms.issued ou Date-index-yyyymmdd).

(*) meta dépendant du doctype de la page : html4 ou html5.


Zipper sans Resource Forklivecodezip

Routine pour Mac OS X compressant un répertoire et les fichiers qu'il contient au format ZIP compatible Windows et Linux (la partie resource-fork des fichiers Mac est ignorée).
Syntaxe :
CompressFormatPC theSource,theDestination
  theSource
: path du répertoire /Users/UserName/Documents)
  theDestination : path de l'archive (/Users/UserName/Desktop/archive.zip


Histoire d'un passage de Revolution Studio 2.7.4 à LiveCodeCommunity 9.6.3

Le 3/10/2022, arrivée de mon nouvel iMac sous Monterey qui remplace un autre iMac sous El Capitan que j'avais depuis 13 ans ; en migrant les données, je constate qu'un certain nombre d'applications n'est plus compatible avec le nouveau système, Revolution notamment. Heureusement, je trouve encore un LiveCodeCommunity 9.6.3, gratuit, pour me permettre de transposer mes piles au nouvel environnement système.

Format des piles et environnement

J'envisage d'abord une stratégie de portage des piles au nouvel environnement, puis d'enregistrer les piles au format Revolution 2.7 pour continuer de m'en servir sur mes vieux ordinateurs. Mais l'ajout de nouvelles propriétés et fonctions fait que, souvent, une pile « rétro-enregistrée» ne fonctionne pas et quelquefois ne s'ouvre même pas. Et comme LiveCodeCommunity 9.6.3 fonctionne sous Capitan, on peut passer à cette version sur toutes les machines.

Problèmes de compatibilité

Impressions sur la nouvelle version du produit

Il faut un peu de temps pour s'habituer au nouveau style des outils :

Le style de l'interface est plus moderne mais il est globalement moins ergonomique.

Cette interface est modernisée grâce au « Datagrid » si j'ai bien compris, mais comme ce n'est pas documenté, je n'ai pas envie de chercher des heures comment peaufiner l'aspect des champs et boutons : Datagrid me sert à rien.

Une approche logique aurait été de rendre LiveCode « CSS compatible » : en soi, LiveCode est un browser HTML, un certain nombre de propriétés css sont gérées et il y a une stratégie tournée vers le web ; alors pourquoi réinventer l'eau chaude ?

Problèmes de migration

La migration des piles à la nouvelle version m'a réservé quelques surprises :

Bilan avril 2023

La migration a été bien laborieuse : presque un mois de tâtonnements pour rétablir le fonctionnement de mes principales piles. 4 mois encore, pour fignoler et avec un gain d'ergonomie minime : au fond, une version 2.7.4 compatible 64 bits aurait suffi. Je pensais trouver beaucoup de nouvelles possibilités, ce n'est à mon avis pas le cas.

Problèmes rencontrés avec Ubuntu

En conclusion : LiveCode peut fonctionner sous Linux si l’installateur fonctionne lui-même (L'installation sur Fedora38 échoue "Failed to load library 'gdk' (tried libgdk-x11-2.0.so.0) "), mais il faudra résoudre certains problèmes propres à la distribution.

Historique des versions de LiveCodeClips
dateversionévolutions
19/01/20242.20 Carte convmv permettant de corriger les accents de fichiers importés.
XPlatform 2.26 : adaptations à Ubuntu. Préférences piles placées dans ".config" (/home/username/.config).
Libimage Revo2HTML 1.5: nouvelle version extrayant les scripts et les colorisant dans un champs caché.
Libimage backupstack 1.69: ajout de ExportMarkedCDs.
15/04/20232.19 Adaptations à l'environnement LiveCode 9 :
XPlatform 2.24 : adaptation XPFileList(); nouvelles fonctions XPExportPrefs et XPreadprefs pour gérer les préférences. Correction de bug sur XPChiffreEnLettres() et XPlibsize()
ImagesTools 1.45 : amélioration de la prise en charge des images SVG ;
AScriptlib 2.02 : adaptation getvolumes(), Volspecs(), ExportModule(backup iCal/Addressbook).
backupstack 1.68 : codage en base64 de toutes les custom exportées, ajout d'une global gExportbackupTag; la table des éléments sauvegardés (saveitems) est maintenant une liste d'ID.
4/06/20212.18 Pile redimensionnable.
XPlatform 2.21 : fonction Ucode() codant les caractères accentués vers Unicode. Ajout fonction XPTimes(). Codage de dataurl SVG en utf-8.
ImagesTools 1.43 : imageRotate, getPDFtag().
AScriptlib 1.99 : script «coupdoeil» pour afficher l'aperçu d'un texte. Intégration du backup iCal/Addressbook. Correction bug sur GetkMDItemDescription.
12/04/20192.17 ImagesTools 1.41 : ajout GetDimensions(), erasegps et cameraModel.
XPlatForm 2.20 : fonctions RTF.
AScriptlib 1.96 : ajout de Safaritext().
30/06/20172.16 XPlatForm 2.18 : routine de conversion d'un montant en chiffres et incorporation des scripts makeExcel; fonction osxversion rendant le systemversion de OS X.
backupstack 1.64 : nouveau script d'export des objets de carte.
nouvelle carte Conversion Textedit.
17/05/20162.15 XPlatForm 2.15 : ajout des fonction XPMimeType() type mime fichier, XPCodeImage() encodage d'une image en data url, XPdecodeImage() conversion data url base64 en fichier image, XPCopyFolder copie d'un répertoire et XPlibsize() taille d'un fichier en Ko et multiples.
prise en compte bug LaunchServices avec Yosemite et El Capitan.
AScriptlib 1.94 : exportFolderIcon, nouvelle version de SendAppleMail pour El Capitan
20/11/20152.14 XPlatForm 2.14 : correction bug XPusableFolders() et sur systemversion() mal gérée à partir de Yosemite.
AScriptLib 1.92 : Batterystate()et Move2Trash.
ImagesTools 1.38 : global gImageOriginalSize enregistrant les dimensions d'une image redimensionnée par un SetThumb. Ajout du path complet vers exiftool pour Mac OS X Yosemite et El Capitan.
Pile ChooseList : gestion de la touche entrée.
1/7/20152.13 XPlatForm 2.13 : commande XPLaunch pour remplacer Launch qui ne marche pas toujours. ConvertOOClip conversion Presse-Papier OpenOffice Calc (données tabulées).
AScriptLib 1.9 : ajout de showItem et hideItem pour afficher/cacher un élément fichier. openAccessPanel adapté à Yosemite. Script SendAppleMail (texte stylé ou pas) adapté pour Yosemite, fonctionne sous Snow Leopard.
ImagesTools 1.37 : correction d'un bug sur les rotations d'images.
3/12/20142.12 AlertPrompt 2.0 : ajout à l'alerte d'une barre d'avancement de traitement d'un lot.
Libimages AScriptLib 1.8 pour la fonction isFinderBusy(), Backupstack 1.6 pour corriger un bug sur les groupes de boutons radio, ImagesTools 1.36 pour la gestion des données IPTC des films et XPlatForm 2.12 pour les fonctions XReplace(), CleanSpaces().
28/06/20142.11 ImagesTools 1.35 pour le handler AlignDates et correction bugs sur "creator" et de problèmes sur keywords accentués
18/03/20142.10AScriptLib 1.7 pour les fonctions volspecs(), VolNamefrompath(), GetFolderSize() et DesktopPosition().
XPlatForm 2.09 pour les fonctions XPChangeCase(), XPCleanDupItems(), HTMLtext2CSS(), XPBuildKeywords(), XPTitle2URL() et XPGetFolderSize().
ImagesTools 1.34 pour le handler RotateImageOrientation et les fonctions getimagestrings()et ShiftDates().
31/07/20132.09XPlatForm 2.07 pour les encodages et ajout pile CharSetPreview permettant de choisir par prévisualisation le charset d'un fichier. Revue de la documentation en ligne de la pile.
2/07/20132.08Libimages XPlatform 2.06 (amélioration de xpFileEncoding()), ImagesTools 1.32 (correction bug sur affichage gifs animés) et BackupStack 1.53 (globale gExportBackUpDatasNames="true" pour utiliser le short name au lieu de l'ID des contrôles sauvegardés; Export de la géométrie d'une carte).
9/05/20132.07Mise à niveau de la documentation.
26/03/20132.06XPlatform 2.05 : XPGetMetas() lecture des metas d'une page HTML, XPCheckConnexion() vérification de la connexion internet.
ImagesTools 1.31 correction d'un bug en export image.
AppleScript 1.62 ajout de nouvelles fonctions.
2/11/20122.05Libimage ImagesTools v 1.3 : support de la library ExifTool si elle est installée dans le système.
AScriptLib 1.61 pour corriger un problème lorsqu'il y a plusieurs lignes dans le commentaire Finder d'un fichier.
XPlatform 2.03 : alimente la globale gLongUserName : nom développé du compte utilisateur.
1/10/20122.04Libimage ImagesTools v 1.2: certains appareils ou programmes initialisent la légende d'une image avec des espaces; considère qu'elle est absente dans ce cas.
28/09/20122.03Libimage XPlatform v 2.02 avec fonction XPusableFolders() de filtrage des dossiers correspondant à un paquet (Mac OS X).
Libimage Backupstack v 1.5 gérant les champs dont le texte est dans une police Unicode.
25/08/20122.02Libimage ImagesTools v 1.1 ne rendant que les données exif renseignées.
Revue script positionnement boutons et documentation en ligne.
2/07/20122.01Nouvelle Libimage « ImagesTools » regroupant les scripts de EXIFlib, les scripts « images » de XPlatform et les scripts IPTC de AScriptLib.
26/06/20122.0Nouveaux noms de sélecteurs de dossier pour la Libimage XPLatForm.
Ajout d'un paramètre à XPdefaultBrowser() pour mailto et ftp.
Optimisation du modèle de pile ChooseList (size auto, trame grisée, géométrie, scrollbar auto).
7/06/20121.5Correction bug XPFileList avec des fichiers ou dossiers dont le nom contient une tabulation ou une virgule.
28/03/20121.40fonction XPFileList() cataloguant les fichiers ou dossiers contenus dans un répertoire avec les attributs désirés.
8/03/20121.3Libimage XPlatForm : scripts d'import/export d'images dans une pile.
9/01/20121.2Libimage LCDownloadlib.
19/12/20111.1Outil de gestion des versions de Libimages. Amélioration du navigateur de customs StackBrowser.
1/12/20111.0Première version intégrant la pile XPlatFormScripts et les Libimages AScriptlib, BackupStack et Custom_lib.