Couleur du label/étiquette dans le finder
Obi
Membre
Je ne savais pas trop dans quelle rubrique poster, alors j'ai choisi "Autres"
Dans une appli cocoa, j'aimerais pouvoir recuperer (et eventuellement changer) la couleur du label d'un fichier/dossier du finder.
Apres moultes recherches, j'ai vu qu'il y a 2 façon de faire, soit en appelant une fonction carbon, soit un applescript. Dans les 2 cas, je n'y connais rien et je patauge completement
Pour la version carbon, j'ai trouvé les 2 fonctions à appeller (GetSuiteLabel et SetSuiteLabel) dans la doc d'Apple et ce code :
Pour la version applescript, il y a ce code :
Que me conseillez-vous de faire ? Si vous avez un bout de code ou un url, je suis preneur
Dans une appli cocoa, j'aimerais pouvoir recuperer (et eventuellement changer) la couleur du label d'un fichier/dossier du finder.
Apres moultes recherches, j'ai vu qu'il y a 2 façon de faire, soit en appelant une fonction carbon, soit un applescript. Dans les 2 cas, je n'y connais rien et je patauge completement
Pour la version carbon, j'ai trouvé les 2 fonctions à appeller (GetSuiteLabel et SetSuiteLabel) dans la doc d'Apple et ce code :
( (FileInfo*)inCatInfo.finderInfo )->finderFlags & kColor
Pour la version applescript, il y a ce code :
Tell application "Finder" set label index of (some given file/folder/volume) to (a value between 0 and 7)
Que me conseillez-vous de faire ? Si vous avez un bout de code ou un url, je suis preneur
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Exemple de gestion des finder flags:
Quelques liens utiles:
MoreFilesX
Finder Flags
GetLabel
Faire attention à ne modifier que les flags voulus !
long flags; // valeurs initiales
flags&=~kColor;Â // effacement des bits de couleur
flags|=(3<<1);Â // nouvelle valeur
J'avais opté pour la piste applescript parce que j'avais trouvé des exemples plus compréhensible pour moi mais je vais essayer ton code.
Niveau performance, il y a une différence à ton avis ?
Sinon, sais-tu comment récuperer le nom des labels ? C'etait possible sur mac os 9 avec applescript en appellant "Finder preferences" mais ce n'est plus implementé dans mac os x
J'ai essayé de trouver où le finder pouvait stocker ces noms (dans les com.apple.finder et autres) mais sans succès pour le moment
Je ne pige pas grand chose en fait de ce types de fonctions, je ne connais que la programmation object de base (java en particulier)
Tu n'utilises pas la fonction GetLabel dans ton exemple, pourtant la doc parle de "labelNumber", "labelColor", "labelString", ce qui semble etre des informations parfaites pour moi.
Je décortique des exemples que j'ai trouvé mais ca m'enerve un peu de galerer pour refaire des bouts de code qui existent déjà
pour avoir le n° de la couleur, faire:
no_couleur=(flags & kColor)>>1;
Bon, c'est le bazar ! GetLabel ne donne pas les bonnes infos , donc je ne vois que applescript comme alternative...
Quand l'utilisateur modifie les noms des étiquettes, un fichier com.apple.Labels.plist est créé.
C'est ce que je constate
J'arrive à un resultat à peu près potable, j'ai pris des captures pour comparer. Je vais essayer d'ameliorer mais j'ai déjà grosso-modo ce que je voulais. Merci !
[Fichier joint supprimé par l'administrateur]