### Protocoles

- Protocole AV
- Protocole des fontes
- Drag&Drop

### Protocole AV

Le protocole AV a été développé pour être utilisé avec le bureau alternatif Gemini. Gemini intègre un bureau (Venus) et une ligne de commande appelée Mupfel. Afin que Venus puisse communiquer avec les accessoires de bureau, le protocole AV a été développé et est grandement usité aujourd'hui :

(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 :

MagiC
  Entrez '#_ENV AVSERVER=THING' dans le fichier 'MAGX.INF' (doit être ajouté avant '#_CTR').

MultiTOS
  Entrez 'setenv AVSERVER=THING' dans le fichier 'MINT.CNF'.

Les instructions suivantes sont supportées par Thing :

- AV_PROTOKOLL
- AV_ASKFILEFONT
- AV_OPENWIND
- AV_ACCWINDOPEN
- AV_STATUS
- AV_COPY_DRAGGED
- AV_WHAT_IZIT
- AV_EXIT
- AV_XWIND
- AV_FILEINFO
- AV_DELFILE
- AV_SENDKEY

- AV_ASKCONFONT
- AV_STARTPROG
- AV_ACCWINDCLOSED
- AV_GETSTATUS
- AV_PATH_UPDATE
- AV_DRAG_ON_WINDOW
- AV_STARTED
- AV_VIEW
- AV_COPYFILE
- AV_SETWINDPOS
- VA_PATH_UPDATE
- VA_FONTCHANGED

Voici quelques conseils pour l'intégration dans vos propres programmes :

- Sous TOS simple, seule l'application (principale) 0 peut agir comme serveur AV. En environnement multitâches, comme MagiC ou MultiTOS, vous devez vérifier la présence d'un serveur AV dans la variable d'environnement AVSERVER.

- Si un programme utilise AV_PROTOKOLL, il doit utiliser également AV_EXIT avant d'être quitté.

- Un programme doit toujours attendre le retour de VA_PROTOSTATUS avant d'utiliser un autre message AV ! Il se peut que le serveur courant ne transmette pas tous les messages du protocole AV.

- Tous les blocs mémoire qui sont utilisés pour transmettre les noms de fichier, les paramètres, ... doivent être alloués en mode 'global' sous MultiTOS (conseil : Mxalloc(<taille>,0x42)) ! Autrement, il peut y avoir un problème d'accès mémoire.

- Tous les noms de fichiers et dossiers doivent être exprimés sous forme complète (exemple : 'i:\test.txt').

- Si le serveur supporte les noms de fichiers entre guillemets, ceux-ci peuvent être entre deux caractères '. Si un guillemet fait déjà partie d'un nom de fichier, celui-ci sera répété :

  d:\lettre à rené devient 'd:\lettre à rené'

  d:\image d'antan devient 'd:\image d''antan'

- S'il y a plus d'un nom de fichier/dossier, les noms doivent être séparés par un seul espace (code ASCII 32).

- Les noms des dossiers doivent se terminer par un anti-slash '\' (code ASCII 92). Exemple : 'i:\lettres\' (la version 1.a de Gemini ne semblait faire ceci).

- Pour générer un accès à la fenêtre suivante 'global' (window cycling), les clients AV doivent envoyer un [Control]+[W] au serveur par le message AV_SENDKEY.

### Protocole AV, AV_PROTOKOLL

AV_PROTOKOLL (0x4700) serveur <- client (26 juin 1995)

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).

### Protocole AV, VA_PROTOSTATUS

VA_PROTOSTATUS (0x4701) serveur -> client (26 juin 1995)

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).

### Protocole AV, AV_GETSTATUS

AV_GETSTATUS (0x4703) serveur <- client (11 novembre 1994)

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.

### Protocole AV, AV_STATUS

AV_STATUS (0x4704) serveur <- client (11 novembre 1994)

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.

### Protocole AV, VA_SETSTATUS

VA_SETSTATUS (0x4705) serveur -> client (11 novembre 1994)

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.

### Protocole AV, AV_SENDKEY

AV_SENDKEY (0x4710) serveur <- client (11 novembre 1994)

Par ce message, un client peut envoyer à Thing n'importe quelle touche qui n'est pas utilisée par lui-même.

Note
  Thing et Gemini acceptent [Control]+[W] pour procéder à un accès à la fenêtre suivante 'global' (Window cycling). Toutes les fenêtres ouvertes de n'importe quel client AV sont prises en compte. L'état touche (ev_mmokstate) est 0x0004, le 'scan code' (ev_mkreturn) est 0x1107.

      Mot 3 : Etat touche (ev_mmokstate)
      Mot 4 : 'Scan code' de la touche appuyée (ev_mkreturn)

### Protocole AV, VA_START

VA_START (0x4711) serveur -> client (11 novembre 1994)

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 '\').

### Protocole AV, AV_ASKFILEFONT

AV_ASKFILEFONT (0x4712) serveur <- client (11 novembre 1994)

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.

### Protocole AV, VA_FILEFONT

VA_FILEFONT (0x4713) serveur -> client (11 novembre 1994)

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)

### Protocole AV, AV_ASKCONFONT

AV_ASKCONFONT (0x4714) serveur <- client (11 novembre 1994)

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.

### Protocole AV, VA_CONFONT

VA_CONFONT (0x4715) serveur -> client (11 novembre 1994)

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)

### Protocole AV, AV_OPENWIND

AV_OPENWIND (0x4720) serveur <- client (11 novembre 1994)

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.

### Protocole AV, VA_WINDOPEN

VA_WINDOPEN (0x4721) serveur -> client (11 novembre 1994)

Thing répond au client à AV_OPENWIND.

      Mot 3 :   0 = Erreur.
              !=0 = La fenêtre est ouverte et le répertoire réactualisé.

### Protocole AV, AV_STARTPROG

AV_STARTPROG (0x4722) serveur <- client (11 novembre 1994)

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.

### Protocole AV, VA_PROGSTART

VA_PROGSTART (0x4723) serveur -> client (11 novembre 1994)

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

### Protocole AV, AV_ACCWINDOPEN

AV_ACCWINDOPEN (0x4724) serveur <- client (11 novembre 1994)

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

### Protocole AV, VA_DRAGACCWIND

VA_DRAGACCWIND (0x4725) serveur -> client (11 novembre 1994)

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.

Note
  Le statut clavier pour d'autres réponses du client (comme AV_COPY_DRAGGED) devient nécessaire. Il doit, à la réception de VA_DRAGACCWIND, vérifier la valeur retournée par evnt_multi().

Par exemple : la structure 'EVENT' doit être vérifiée en utilisant EvntMulti() et non par l'envoi d'une réponse par graf_mkstate() !

      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

### Protocole AV, AV_ACCWINDCLOSED

AV_ACCWINDCLOSED (0x4726) serveur <- client (11 novembre 1994)

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

### Protocole AV, AV_COPY_DRAGGED

AV_COPY_DRAGGED (0x4728) serveur <- client (11 novembre 1994)

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

### Protocole AV, VA_COPY_COMPLETE

VA_COPY_COMPLETE (0x4729) serveur -> client (11 novembre 1994)

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

### Protocole AV, AV_PATH_UPDATE

AV_PATH_UPDATE (0x4730) serveur <- client (11 novembre 1994)

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\)

### Protocole AV, AV_WHAT_IZIT

AV_WHAT_IZIT (0x4732) serveur <- client (11 novembre 1994)

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

### Protocole AV, VA_THAT_IZIT

VA_THAT_IZIT (0x4733) serveur -> client (11 novembre 1994)

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

### Protocole AV, AV_DRAG_ON_WINDOW

AV_DRAG_ON_WINDOW (0x4734) serveur <- client (11 novembre 1994)

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

### Protocole AV, VA_DRAG_COMPLETE

VA_DRAG_COMPLETE (0x4735) serveur -> client (11 novembre 1994)

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, ...)

### Protocole AV, AV_EXIT

AV_EXIT (0x4736) serveur <- client (11 novembre 1994)

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

### Protocole AV, AV_STARTED

AV_STARTED (0x4738) serveur <- client (11 novembre 1994)

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

### Protocole AV, VA_FONTCHANGED

VA_FONTCHANGED (0x4739) serveur -> client (11 novembre 1994)

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.

Note
  Malheureusement, TreeView 2.4, programmé par Stephan Gerle, ne réagit pas à ce message si Thing envoie explicitement à TreeView (applications nommées 'TREEVIEW') un message VA_FILEFONT. Ceci n'est pas une solution idéale mais est d'une fonctionnalité pratique.

      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)

### Protocole AV, AV_XWIND

AV_XWIND (0x4740) serveur <- client (11 novembre 1994)

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

### Protocole AV, VA_XOPEN

VA_XOPEN (0x4741) serveur -> client (11 novembre 1994)

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)

### Protocole AV, AV_VIEW

AV_VIEW (0x4751) serveur <- client (26 juin 1995)

Le serveur appelle le visualiseur pour un fichier spécifique. Si aucun visualiseur n'est disponible, un message d'erreur est retourné à l'utilisateur.

Note
  A la différence de Gemini V1.a, Thing reconnaît quelles applications sont installées pour chaque type de fichiers. Avec ce message, Thing peut exécuter l'application correspondante (exemple : un simple visualiseur d'image IMG au lieu d'un programme de dessin).

      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

### Protocole AV, VA_VIEWED

VA_VIEWED (0x4752) serveur -> client (26 juin 1995)

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

### Protocole AV, AV_FILEINFO

AV_FILEINFO (0x4753) serveur <- client (26 juin 1995)

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

### Protocole AV, VA_FILECHANGED

VA_FILECHANGED (0x4754) serveur -> client (26 juin 1995)

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

### Protocole AV, AV_COPYFILE

AV_COPYFILE (0x4755) serveur <- client (26 juin 1995)

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

### Protocole AV, VA_FILECOPIED

VA_FILECOPIED (0x4756) serveur -> client (26 juin 1995)

Réponse à AV_COPYFILE.

      Mot 3 :   0 = Erreur, 1 = Tout est correct
      Mot 4-7 : Réservé, toujours à 0

### Protocole AV, AV_DELFILE

AV_DELFILE (0x4757) serveur <- client (26 juin 1995)

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

### Protocole AV, VA_FILEDELETED

VA_FILEDELETED (0x4758) serveur -> client (26 juin 1995)

Réponse à AV_DELFILE.

      Mot 3 :   0 = Erreur, 1 = Tout est correct
      Mot 4-7 : Réservé, toujours à 0

### Protocole AV, AV_SETWINDPOS

AV_SETWINDPOS (0x4759) serveur <- client (26 juin 1995)

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

### Protocole AV, VA_PATH_UPDATE

VA_PATH_UPDATE (0x4760) serveur -> client (26 juin 1995)

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

### Protocole des fontes

- FONT_SELECT
- FONT_CHANGED

Depuis la version 0.4, Thing gère les plus importantes fonctions de ce protocole, comme Christian Grunenberg l'a défini.

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 :

- Thing doit être lancé en même temps que l'application, soit comme un accessoire de bureau sous TOS simple ou en environnement multitâches.

- La variable d'environnement 'FONTSELECT' doit être définie par 'THING'.

Ce qui suit est une description des messages supportés par Thing. Pour avoir l'ensemble de ce protocole (en allemand), contactez Christian Grunenberg :

### Protocole des fontes, FONT_SELECT

FONT_SELECT (0x7A19) Application -> Thing

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

### Protocole des fontes, FONT_CHANGED

FONT_CHANGED (0x7A18) Application <- Thing

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 accepte aussi ce message en tant que récepteur et réactualise la fenêtre affichée comme demandé.

### Drag&Drop

Ce protocole a été introduit par Atari pour MultiTOS et devrait être supporté par MagiC.

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