Table des Matières Tracker     Index Tracker

Scripts pour le Tracker

Chaque fenêtre du Tracker possède une propriété "Poses" qui représente le contenu de la fenêtre. Chaque Poses, à son tour, définit les deux propriétés "Entry" et "Selection". Une "Entry" est un élément de la fenêtre, e.g. un fichier ou un répertoire, alors qu'une "Selection" représente une "Entry" sélectionnée.

Quand une fenêtre du Tracker reçoit un message avec une propriété "Poses", il supprime le spécificateur courant de la pile des spécificateurs puis envoie le message à la vue qui gère la propriété "Poses". A partir de là, les propriétés "Entry" et "Selection" sont traitées. Par exemple, le fonction suivante renvoie le nombre d'entrées présentes dans une fenêtre donnée du Tracker :

   int32 CountEntries(const char *name)
   {
      int32 count;
      BMessage message, reply;
      
      // on prépare la requête
      message.what = B_COUNT_PROPERTIES;
      message.AddSpecifier("Entry");
      message.AddSpecifier("Poses");
      message.AddSpecifier("Window", name);
      
      // envoi de la requête et récupération de la réponse
      BMessenger("application/x-vnd.Be-TRAK").SendMessage(&message, &reply);
      
      // renvoi du résultat
      if (reply.FindInt32("result", &count) == B_OK)
      return count;
      
      return -1;
   }

L'API de script du Tracker définit plusieurs méthodes pour spécifier les entrées dans une "Poses". Ces méthodes sont résumées ci-dessous :

Spécificateur Description
B_DIRECT_SPECIFIER Utilisé pour spécifier Poses ou Selection.
B_INDEX_SPECIFIER "index" contient un index (int32) des fichiers dans Poses. Les valeurs limites sont spécifiés par deux indices.
'sref' "refs" contient les entry_refs des fichiers spécifiés.
'sprv' Se réfère à l'élément qui suit immédiatement le fichier dont le entry_ref se trouve dans "data."
'snxt' Se réfère à l'élément qui précède immédiatement le fichier dont le entry_ref se trouve dans "data".

N'oubliez surtout pas que les autres programmes (ou l'utilisateur) peuvent également ajouter ou supprimer des entrées à la vue et à Selection ; il ne faut donc pas se fier aux indices pour désigner un fichier particulier. Pour cela il vaut mieux utiliser entry_refs.


La Propriété Entry

Message Spécificateur Signification
B_COUNT_PROPERTIES B_DIRECT_SPECIFIER Compte les entrées dans Poses.
B_DELETE_PROPERTY 'sref',
B_INDEX_SPECIFIER
Déplace le Entry spécifié vers la corbeille.
B_EXECUTE_PROPERTY 'sref',
B_INDEX_SPECIFIER
Effectue une action équivalente à l'ouverture des éléments spécifiés dans le Tracker.
B_GET_PROPERTY B_DIRECT_SPECIFIER Renvoie les entry_refs de toutes les entrées du Poses courant.
B_GET_PROPERTY B_INDEX_SPECIFIER Renvoie le entry_ref spécifié.
B_GET_PROPERTY 'sprv', 'snxt' Renvoie le entry_ref du entry précédent ou suivant le entry_ref spécifié. Renvoie également l'index du fichier dans "index."


La Propriété Selection

Message Specificateur Signification
B_COUNT_PROPERTIES B_DIRECT_SPECIFIER Compte le nombre d'éléments sélectionnés dans Poses.
B_CREATE_PROPERTY B_DIRECT_SPECIFIER Ajoute des éléments au Selection courant. Ceux-ci peuvent être spécifiés comme des entry_refs ou des int32s dans le tableau "data".
B_DELETE_PROPERTY 'sref',
B_INDEX_SPECIFIER
Supprime des éléments du Selection courant.
B_GET_PROPERTY B_DIRECT_SPECIFIER Renvoie les entry_refs des éléments de Selection.
B_GET_PROPERTY 'sprv', 'snxt' Renvoie l'entry_ref du fichier précédent ou suivant un élément donné. Renvoie l'index du fichier dans "index."
B_SET_PROPERTY B_DIRECT_SPECIFIER Efface le Selection courant et lui affecte les valeurs données dans "data." Accepte également entry_refs dans "data" pour déterminer le nouveau Selection.
B_SET_PROPERTY 'sprv', 'snxt' Efface le Selection courant et y stocke les valeurs des entry_refs précédent ou suivant ceux spécifiés dans "data."


Table des Matières Tracker     Index Tracker


The Be Book,
...in lovely HTML...
for BeOS Release 5.

Copyright © 2000 Be, Inc. All rights reserved..