Ajouter une icône dans le Dock par programmation

Stéphanie Tirtiat

- Titre : Ajouter une icône dans le Dock par programmation

- Auteur : Stéphanie Tirtiat

- Parution : 11 décembre 2006

- Licence : Copyright ® 2006 4D s.a. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

Produit : 4D 2004

Plateforme : Mac OS X ♪

Vous voulez ajouter l'icône de votre application dans le Dock de Mac OS X par programmation et faire en sorte que son nom s'affiche quand l'utilisateur passe la souris sur l'icône.

Nous allons utiliser les commandes UNIX avec la commande 4D LANCER PROCESS EXTERNE :

` ---------------------------------------------------
` Méthode de Jeremy Sullivan
` Créée le 13 mars 2006
` Modifiée par ST le 11 décembre 2006
` ---------------------------------------------------
` Description: ajoute une icône d'une application dans le Dock de Mac OS X
` ---------------------------------------------------
` Paramètres :
`   $1 TEXTE - nom de l'application telle qu'elle apparaîtra dans le Dock
`   $2 TEXTE - chemin Posix vers l'application .app
` ---------------------------------------------------

`méthode d'appel :
`m_AjoutDock ("Ma Super Application";"/Applications/SuperApp.app")

C_TEXTE($1;$2;$applicationName_t;$applicationPath_t)
C_TEXTE($command_t;$inputStream_t;$outputStream_t;$errorStream_t)

$applicationName_t:=$1  ` nom de mon application dans le Dock
$applicationPath_t:=$2  ` chemin posix

$command_t:="defaults write com.apple.dock persistent-apps -array-add "
$command_t:=$command_t+"'<dict><key>tile-data</key><dict><key>file-data</key><dict><key>_CFURLString</key"+"><string>"
$command_t:=$command_t+$applicationPath_t
$command_t:=$command_t+"</string><key>_CFURLStringType</key><integer>0"+"</integer></dict>"
$command_t:=$command_t+"<key>file-label</key><string>"+$applicationName_t+"</string>"
$command_t:=$command_t+"<key>file-type</key><integer>41</integer></dict>"
$command_t:=$command_t+"<key>tile-type</key><string>file-tile</string></dict>'"

LANCER PROCESS EXTERNE($command_t;$inputStream_t;$outputStream_t;$errorStream_t)
Si ($errorStream_t="") `pas d'erreur
` relancer le Dock
LANCER PROCESS EXTERNE("killall -HUP Dock";$inputStream_t;$outputStream_t;$errorStream_t)
Sinon
ALERTE("Erreur : "+$errorStream_t)
Fin de si

Voir la documentation de la commande 4D LANCER PROCESS EXTERNE
Voir aussi : Add applications to the Dock (via Apple Remote Desktop)