(AV ~ Accessoire <-> Venus)
Thing gère tous les messages définis depuis le 26 juin 1995 et est par conséquent un excellent serveur 'AV'. De ce fait, il améliore les fonctionnalités des accessoires de bureau et les opérations sous système d'exploitation multitâches. Les noms de fichier entre guillemets ne sont pas encore supportés.
Dans la description suivante, Thing agit comme le 'serveur' et les accessoires et applications comme 'clients'.
Pour utiliser Thing comme serveur AV sous environnement multitâches, vous devez définir une variable d'environnement appelée AVSERVER. Celle-ci doit être définie de la façon suivante :
Voici quelques conseils pour l'intégration dans vos propres programmes :
|
Un client demande au serveur quelle fonction du protocole AV est gérée. Le serveur répond en envoyant un message VA_PROTOSTATUS.
Mot 3 : Bit 0 : VA_SETSTATUS
Bit 1 : VA_START
Bit 2 : AV_STARTED
Bit 3 : VA_FONTCHANGED
Bit 4 : Envoie et utilise les noms de fichier entre guillemets
Bit 5 : VA_PATH_UPDATE
Bit 6-15 : Réservé, toujours à 0
Mot 4 : Réservé, toujours à 0
Mot 5 : Réservé, toujours à 0
Mot 6+7 : Pointeur du nom, qui doit toujours être utilisé pour
appl_find() pour obtenir l'identification AES du client (8
caractères suivis par le code nul).
Répond par l'envoi d'un message AV_PROTOKOLL demandé par le client. La réponse, sous forme d'un mot, spécifie quelle fonction du protocole AV de Thing est supportée. Les messages en rouge ne doivent jamais être gérés par Thing.
Mot 3 : Bit 0 : AV_SENDKEY
Bit 1 : AV_ASKFILEFONT
Bit 2 : AV_ASKCONFONT, AV_OPENCONSOLE
Bit 3 : AV_ASKobjet
Bit 4 : AV_OPENWIND
Bit 5 : AV_STARTPROG
Bit 6 : AV_ACCWINDOPEN, AV_ACCWINDCLOSED
Bit 7 : AV_STATUS, AV_GETSTATUS
Bit 8 : AV_COPY_DRAGGED
Bit 9 : AV_PATH_UPDATE, AV_WHAT_IZIT, AV_DRAG_ON_WINDOW
Bit 10 : AV_EXIT
Bit 11 : AV_XWIND
Bit 12 : VA_FONTCHANGED
Bit 13 : AV_STARTED
Bit 14 : Envoie et utilise les noms de fichier entre guillemets
Bit 15 : AV_FILEINFO, VA_FILECHANGED
Mot 4 : Bit 0 : AV_COPYFILE, VA_FILECOPIED
Bit 1 : AV_DELFILE, VA_FILEDELETED
Bit 2 : AV_VIEW, VA_VIEWED
Bit 3 : AV_SETWINDPOS
Bit 4-15 : Réservé, toujours à 0
Mot 5 : Réservé, toujours à 0
Mot 6+7 : Pointeur des noms de programme des serveurs, préparé par
appl_find() (8 caractères suivis du code nul).
Demande le statut d'information sauvé par AV_STATUS. Un message VA_SETSTATUS est renvoyé en réponse. Il n'y a aucun paramètre associé à cette instruction.
Par ce message, un client peut demander au serveur n'importe quel statut d'information (pré- réglages, ...) et n'a pas besoin d'être renouvelé. Thing sauvegarde cette information comme élément dans le fichier 'THING.INF'.
Cette fonction est d'une utilité fondamentale pour les accessoires de bureau, car le TOS simple est (au mieux) équipé de tampons utilisables !
Mot 3+4 : Pointeur d'une chaîne de 256 caractères maximum qui ne doit
contenir aucun code de contr"le.
Répond au message AV_GETSTATUS. Thing échange le précédent statut d'information avec le client.
Mot 3+4 : Pointeur sur la chaîne sauvegardée ou code nul si
l'information n'est pas disponible.
Par ce message, un client peut envoyer à Thing n'importe quelle touche qui n'est pas utilisée par lui-même.
Mot 3 : Etat touche (ev_mmokstate) Mot 4 : 'Scan code' de la touche appuyée (ev_mkreturn)
Par ce message, un serveur transmet des paramètres aux accessoires de bureau ou à des applications lancées en parallèle.
Une caractéristique exceptionnelle : Thing peut aussi recevoir des messages VA_START. Dans la ligne de commande, un programme individuel ou un fichier peut être transmis. Les applications installées sont également prises en compte.
Les lignes de commande commençant avec le caractère ':' ne doivent pas être utilisées, car elles sont interprétées comme commandes internes !
Mot 3+4 : Pointeur de la ligne de commande. Les objets déplacés sur les
icônes par Drag&Drop réclament le nom de fichier en entier
(exemple : chemin, nom du fichier suivi d'un anti-slash '\').
Par ce message, le client peut demander la fonte courante utilisée pour les noms de fichier dans les fenêtres répertoire. Le serveur, l'identification et la taille (en points) de la fonte sont inclus dans le message VA_FILEFONT. Il n'y a pas de paramètres pour cette instruction.
Reportez-vous au message VA_FONTCHANGED pour plus d'informations.
Réponse à AV_ASKFILEFONT. Le serveur retourne l'identification et la taille (en points) de la fonte utilisée pour les noms de fichier dans les fenêtres répertoire.
Reportez-vous au message VA_FONTCHANGED pour plus d'informations.
Mot 3 : Identification de la fonte (vst_font) Mot 4 : Taille en points (vst_point)
Un client peut demander la fonte utilisée dans la fenêtre console. Le serveur répond en utilisant le message VA_CONFONT avec l'identification et la taille (en points) de la fonte. Il n'y a pas de paramètres pour cette instruction.
Reportez-vous au message VA_FONTCHANGED pour plus d'informations.
Thing utilise ce message pour répondre à un message AV_ASKCONFONT. Thing renvoie l'identification ainsi que la taille (en points) de la fonte courante utilisée dans la fenêtre console.
Reportez-vous au message VA_FONTCHANGED pour plus d'informations.
Mot 3 : Identification de la fonte (vst_font) Mot 4 : Taille en points (vst_point)
Thing ouvre une nouvelle fenêtre répertoire.
Mot 3+4 : Pointeur du chemin du répertoire ouvert.
Mot 5+6 : Pointeur du masque de fichier. '*.*' est interprété comme '*'
(tous les fichiers) par Thing.
Thing répond au client à AV_OPENWIND.
Mot 3 : 0 = Erreur.
!=0 = La fenêtre est ouverte et le répertoire réactualisé.
Thing lance un programme à la demande d'un client.
Mot 3+4 : Nom du programme avec le chemin complet (avec éventuellement
le nom du fichier). Si le nom du fichier est inclus, Thing
recherche pour l'application, le nom du fichier et transmet
celui-ci comme paramètre à l'application.
Mot 5+6 : Ligne de commande ou code nul si celle-ci n'existe pas.
Mot 7 : N'importe quelle valeur 16 bits, que VA_PROGSTART transmettra.
Répond à la demande d'un message AV_STARTPROG. Thing envoie toujours la réponse immédiatement (par exemple, après la fin des programmes lancés sous TOS simple qui ne sont pas considérés comme accessoires). Actuellement, le code retourné pour les programmes lancés est toujours 0.
Si Thing est quitté avant le lancement d'un programme (mode où Thing est retiré de la mémoire avant l'exécution ou mode mono-tâche sous MagiC), aucun message de réponse n'est envoyé.
Un client devra toujours recevoir un message d'erreur si le programme ne peut être exécuté.
Mot 3 : 0 = Erreur
!=0 = Programme exécuté
Mot 4 : Code retourné par le programme (s'il existe)
Mot 7 : Mot de 16 bits de AV_STARTPROG
Un client utilise ce message pour échanger avec Thing l'information qui a ouvert une fenêtre. Thing peut alors étendre sa gestion pour le Drag&Drop et l'accès à la fenêtre suivante (cycle window) pour recouvrir cette fenêtre.
Mot 3 : Gestion fenêtre AES
Thing envoie un message VA_DRAGACCWIND au client quand un ou plusieurs objets ont été déplacés sur sa fenêtre. La fenêtre doit avoir été au préalable reconnue avec Thing par le message AV_ACCWINDOPEN.
Reportez-vous au message AV_COPY_DRAGGED pour plus de précisions.
Mot 3 : Gestion fenêtre AES Mot 4 : Position X de la souris Mot 5 : Position Y de la souris Mot 6+7 : Pointeur de la chaîne contenant les noms d'objets
Un client échange des informations avec Thing quand il a fermé l'une de ses fenêtres. Ceci intervient seulement si un client ferme sa propre fenêtre. Sous TOS simple, les fenêtres des accessoires sont automatiquement fermées au lancement des applications et ce message n'est pas nécessaire.
Mot 3 : Gestion fenêtre AES
Un client informe Thing qu'un objet ou des objets ont été délivrés par VA_DRAGACCWIND et sont prêts pour la copie. Thing envoie au client une réponse avec VA_COPY_COMPLETE.
Mot 3 : Statut clavier à la réception de VA_DRAGACCWIND Mot 4+5 : Pointeur du chemin de destination
Réponse de Thing par AV_COPY_DRAGGED au client.
Mot 3 : 0 = Erreur ou interruption par l'utilisateur
!=0 = Les objets sont copiés et la fenêtre répertoire est
réactualisée si nécessaire
Un client informe Thing que le contenu d'un répertoire a été changé. Thing relit alors les répertoires appropriés ainsi que tous les sous-répertoires dans le chemin spécifié.
Mot 3+4 : Pointeur du chemin absolu (exemple : C:\AUTO\)
Un client réclame des informations sur une localisation d'une partie d'écran. Thing répond par un message VA_THAT_IZIT.
Mot 3 : Coordonnée X Mot 4 : Coordonnée Y
Réponse à une demande de message AV_WHAT_IZIT.
Mot 3 : Identification AES pour l'application appropriée
Mot 4 : Type d'objet
Mot 5+6 : Pointeur des noms d'objets ou code nul si aucun nom n'est
disponible.
Les différents types sont les suivants :
VA_OB_UNKNOWN (0) Inconnu (fenêtre console, bureau, ...) VA_OB_TRASHCAN (1) 'Poubelle' Gemini (n'existe pas avec Thing) VA_OB_SHREDDER (2) 'Destructeur de documents' Gemini (Shredder) VA_OB_CLIPBOARD (3) Presse-papiers VA_OB_FILE (4) Fichier VA_OB_FOLDER (5) Dossier ou fenêtre répertoire en arrière-plan VA_OB_DRIVE (6) Lecteur VA_OB_WINDOW (7) Fenêtre appartenant à une autre application
Un client informe Thing que des objets ont été posés quelque part. Thing fait le tri à l'endroit où ont été posés les objets et envoie un message VA_DRAG_COMPLETE.
Mot 3 : Position X de la souris Mot 4 : Position Y de la souris Mot 5 : Statut clavier Mot 6+7 : Pointeur de la chaîne contenant les noms des objets
Réponse au message AV_DRAG_ON_WINDOW.
Mot 3 : 0 = Rien de changé après le Drag&Drop
1 = Les objets spécifiés sont traités (copie, effacement, ...)
Un client informe Thing qu'il n'a pas respecté le protocole AV. Ceci à pour effet d'interrompre aussi tous les messages AV_ACCWINDOPEN messages.
Ce message doit être utilisé avant de quitter un programme si le programme en question ne peut utiliser le message AV_PROTOKOLL !
Mot 3 : Identification AES du client
Un client informe Thing qu'il a reçu et compris le message VA_START et qu'également la mémoire réservée pour la ligne de commande peut être libérée.
Pour l'instant, ce message est ignoré, car Thing ne réserve pas de mémoire supplémentaire pour les messages VA_START.
Mot 3+4 : Pointeur de la ligne de commande reçue par VA_START
Si l'une des fontes dans Thing est modifiée, tous les clients qui ont déjà demandé la fonte par AV_PROTOKOLL, sont informés.
Mot 3 : Identification de la fonte utilisée pour les répertoires
(vst_font)
Mot 4 : Taille en points de la fonte utilisée dans les répertoires
(vst_point)
Mot 5 : Identification de la fonte utilisée dans la fenêtre console
(vst_font)
Mot 6 : Taille en points de la fonte utilisée dans la fenêtre console
(vst_point)
Thing ouvre une fenêtre répertoire, comme avec AV_OPENWIND, mise à part qu'il existe d'autres options :
Mot 3+4 : Pointeur du chemin pour l'ouverture des répertoires
Mot 5+6 : Pointeur du masque (joker) pour les fichiers existants
Mot 7 : Bit 0 : Utilise la fenêtre courante active, si elle existe
Bit 1 : Utilise les jokers pour la sélection d'objets
Bit 2-15 : Réservé, toujours à 0
Réponse à AV_XWIND, comme pour VA_WINDOPEN.
Mot 3 : 0 = Erreur
!=0 = La fenêtre ouverte et le répertoire sont entièrement lus
(une fenêtre active devant être existante)
Le serveur appelle le visualiseur pour un fichier spécifique. Si aucun visualiseur n'est disponible, un message d'erreur est retourné à l'utilisateur.
Mot 3+4 : Pointeur des noms de fichiers destinés à être visualisés (seul
un fichier est autorisé).
Mot 5-7 : Réservé, toujours à 0
Réponse à AV_VIEW. Le serveur informe le client quels sont les fichiers à visualiser ou non. La réponse est immédiate et est toujours renvoyée si une erreur intervient. Autrement, en tâche de fond (multitâches), la réponse est reçue aussit"t que le visualiseur est actif. Sous TOS simple, la réponse est reçue après que le visualiseur soit quitté, au cas où le serveur n'ai pas déjà été quitté (par exemple : lorsque Thing est retiré de la mémoire avant le lancement du visualiseur).
Mot 3 : 0 = Erreur, 1 = Tout est correct Mot 4-7 : Réservé, toujours à 0
Affiche les informations sur les fichiers/dossiers (réponse à VA_FILECHANGED).
Mot 3+4 : Pointeur du nom du fichier ou du dossier. Plusieurs
fichiers/dossiers doivent être séparés par des espaces. Les
dossiers doivent se terminer par un anti-slash '\' !
Mot 5-7 : Réservé, toujours à 0
Réponse à AV_FILEINFO.
Mot 3+4 : Pointeur du nom du fichier/dossier transmis par AV_FILEINFO,
qui peut naturellement contenir un nouveau nom de
fichier/dossier.
Exemple : 'C:\ANNA.TXT C:\AUTO\' sera transmis. Si
l'utilisateur change 'ANNA.TXT' en 'ANNIE.TXT', la
chaîne du message sera modifiée en : 'C:\ANNIE.TXT
C:\AUTO\'
Mot 5-7 : Réservé, toujours à 0
Copie ou déplace des fichiers/dossiers (réponse à VA_FILECOPIED).
Mot 3+4 : Pointeur du ou des fichiers source et dossier(s) séparés par
des espaces. Les dossiers doivent se terminer par un anti-
slash '\'.
Mot 5+6 : Pointeur du dossier de destination
Mot 7 : Bit 0 : Efface l'original (déplacement)
Bit 1 : Renomme la copie
Bit 2 : Remplace la destination sans avertissement
Bit 3-15 : Réservé, toujours à 0
Réponse à AV_COPYFILE.
Mot 3 : 0 = Erreur, 1 = Tout est correct Mot 4-7 : Réservé, toujours à 0
Efface des fichiers/dossiers (réponse à VA_FILEDELETED).
Mot 3+4 : Pointeur des fichiers/dossiers devant être effacés, séparés
par des espaces. Les dossiers doivent se terminer par un anti-
slash '\'.
Mot 5-7 : Réservé, toujours à 0
Réponse à AV_DELFILE.
Mot 3 : 0 = Erreur, 1 = Tout est correct Mot 4-7 : Réservé, toujours à 0
AV_XWIND est une extension de AV_OPENWIND. Avec ce message, le client peut être informé de la position et de la taille de la fenêtre répertoire suivante (avec AV_XWIND ou AV_OPENWIND) à ouvrir. Les coordonnées sont données en coordonnées absolues.
Puisque par AV_XWIND, une fenêtre existante est activée au lieu qu'une nouvelle fenêtre soit ouverte, ce message n'a pas d'effet.
Mot 3 : Position X Mot 4 : Position Y Mot 5 : Largeur Mot 6 : Hauteur Mot 7 : Réservé, toujours à 0
Si le client a reconnu par AV_PROTOKOLL que le serveur supporte ce message, il informe celui-ci lorsqu'il modifie le contenu d'un répertoire ou d'un sous-répertoire. Le client doit alors relire tous les répertoires et sous-répertoires correspondants et, si nécessaire, fermer les sous-répertoires qui n'existent plus.
Mot 3+4 : Pointeur du répertoire, qui doit toujours se terminer par un
anti-slash '\'.
Mot 5-7 : Réservé, toujours à 0
Thing peut aussi être installé comme sélecteur de fontes pour d'autres applications, bien qu'à présent, seul ST-Guide (du 30/04/95 ou après) supporte cette option. Pour que cette option fonctionne bien, les critères suivants doivent être observés :
Email: Christian_Grunenberg@LB.maus.de
Une application appelle le sélecteur de fontes et reçoit en retour la sélection des fontes. Ensuite, elle répond par le message FONT_CHANGED.
Mot 3 : Traite la fenêtre affectée, ou valeur négative si la fonte a été
changée pour toutes les fenêtres
Mot 4 : Identification de la fonte ou 0
Mot 5 : Taille de la fonte en points
Mot 6 : Couleur de la fonte
Mot 7 : Attributs - Bit 0 : Gras
Bit 1 : Clair
Bit 2 : Italique
Bit 3 : Souligné
Bit 4 : Contour
Bit 5 : Ombré
Bit 6 : Inverse
Bit 7-15 : Réservé, toujours à 0
Réponse à FONT_SELECT. Thing informe l'application des nouvelles valeurs. Le mot 1 du message contient l'identification d'application de Thing.
Ce message est aussi retourné par Thing si la fonte est déplacée par Drag&Drop sur la fenêtre d'une autre application.
Installez WINX sous TOS simple pour que Thing puisse déterminer le détenteur de chaque fenêtre.
|
Thing comme émetteur
Thing actionne automatiquement ce protocole si un ou plusieurs objets d'une fenêtre sont tirés et posés sur une autre appartenant à une application, laquelle ne doit pas appartenir à un client AV et dont la fenêtre n'a pas été ouverte par AV_ACCWINDOPEN.
Thing peut même 'convertir' des messages Drag&Drop AV (AV_DRAG_ON_WINDOW) en messages de protocole Drag&Drop ! Pour cela, il est possible de rechercher des fichiers avec ParaFin et d'en envoyer le résultat à CoNnect par Drag&Drop...
Si le récepteur ne comprend pas le protocole Drag&Drop ou que le système (comme MagiC V2/TOS simple) ne le supporte pas, Thing essaye d'envoyer un message VA_START avec les noms des objets déplacés via la ligne de commande. Toutefois, le système doit reconnaître ses propres fenêtres. Un conseil : les utilisateurs sous TOS simple peuvent utiliser WINX.
Thing comme receveur
Par manque d'applications supportant ce protocole, je n'ai pas eu trop le temps d'effectuer des tests. Cependant, j'ai testé CAT (réseau Maus OLR) qui peut exporter des fichiers '*.TXT'.
Si un bloc '*.xxx' est tiré puis déposé sur le bureau, Thing demande un chemin pour sauver le fichier. Si un lecteur ou un autre objet est sélectionné comme destination, le chemin est affiché comme une ligne directrice. Si le bloc est tiré puis déposé sur le presse-papiers, Thing sauve automatiquement les données sous 'SCRAP.xxx' dans celui-ci.
Si un bloc de texte est posé sur la fenêtre d'une boîte de dialogue et que l'application supporte le Drag&Drop '*.TXT', alors le texte est inséré dans le champ courant. Ceci ne fonctionne seulement qu'avec quelques applications récentes.
Les blocs 'ARGS' sont gérés comme des messages VA_START. Ils sont transmis via la ligne de commande et sont simplement exécutés.
Les blocs 'chemin' se sont actuellement pas supportés et rejetés avec DD_NAK.
| Commandes des menus | Thing Icon Manager | Format des fichiers | Protocoles | Variables d'environnement |
| Thing et TOSWIN sous MiNT | Historique | Questions/Réponses | Souris et clavier | Sommaire |