### Format des fichiers

- Affectation des icônes (ICONS.INF)
- Configuration générale (THING.INF)
- Configuration du bureau (xxxxyyyy.INF)
- Groupes d'objets (*.GRP)
- Ressource (THING.RSC)

### Format des fichiers, 'ICONS.INF'

Voir aussi :
  Icônes
  Thing Icon Manager

'ICONS.INF' contient la liste d'affectation des icônes. Cette liste définit quelles sont les icônes du fichier 'ICONS.RSC' associées aux différents lecteurs, fichiers et dossiers. Si le fichier 'ICONS.INF' est introuvable, ce sont les icônes standard de Thing qui sont utilisées par défaut.

Thing recherche le fichier 'ICONS.INF' dans le même répertoire que THING.APP et dans celui défini par la variable d'environnement THINGDIR, si celle-ci existe. La variable HOME est ignorée.

Structure de 'ICONS.INF' :
  - Les lignes vierges sont ignorées par Thing ;
  - Les lignes précédées par le caractère '#' sont ignorées par Thing ;
  - La longueur maximale d'une ligne ne doit pas excéder 510 caractères ;
  - 'ICONS.INF' n'est pas conservé en mémoire. De ce fait, les affectations et interprétations ne sont pas optimisées par des structures internes et c'est pourquoi il n'existe pas de fonction à l'intérieur de Thing pour modifier les affectations d'icônes.

Chaque ligne du fichier 'ICONS.INF' a le format suivant :

<type> "<Icône>" <joker>[,<joker>..] [<caractère/s>]
<type> | IFIL - Affectation pour les fichiers/programmes ; IFLD - Affectation pour les dossiers ; IDRV - Affectation pour les lecteurs ;
<Icône> | Description de l'icône dans le fichier 'ICONS.RSC' ;
<joker> | Un ou plusieurs masques (jokers), séparés par une virgule, peuvent être spécifiés. Il n'y a pas de différenciation entre les majuscules et les minuscules. '*.TXT', '*.txt', '*.Txt' sont considérés de la même façon. Les lecteurs peuvent être suivis d'une lettre correspondant à l'unité comme : IDRV "FLOPPY" A,B.
<caractère> | Eventuellement, un caractère peut être ajouté à une icône après le masque <joker>. Ce caractère doit être précédé d'un espace et non d'une virgule. En mode texte, ce caractère apparaîtra devant le nom du fichier. Il peut être utile pour repérer certains fichiers, surtout quand la fonte utilisée contient des caractères sous forme de symboles graphiques.

Voici un exemple :

      # Programmes individuels
      #
      IFIL "KOBOLD 2"   kobold_2.prg
      IFIL "PURE C"     pc.prg
      #
      # Fichiers
      #
      IFIL "APP"        *.prg,*.app
      IFIL "TOS"        *.tos,*.ttp
      IFIL "RSC"        *.rsc r
      IFIL "TXT"        *.txt,*.doc
      #
      # Dossiers
      #
      IFLD "AUTO DIR"   auto
      IFLD "GEMSYS DIR" gemsys
      #
      # Lecteurs
      #
      IDRV "DONALD" c
      IDRV "FILESYSTEM" i,u

Il est important de définir tous les fichiers, programmes et dossiers individuels avant ceux comportant des jokers (exemple : 'PC.PRG' avant '*.PRG'), car la liste est lue de haut en bas. Dans l'exemple ci-dessus, et si '*.PRG' est avant 'PC.PRG', l'icône affectée à 'PC.PRG' ne sera pas reconnue.

### Format des fichiers, THING.INF

'THING.INF' contient toutes les résolutions indépendamment des préférences (mise à part les affectations d'icônes). Thing recherche ce fichier dans le même répertoire que 'THING.APP' ainsi que dans le répertoire défini par les variables d'environnement THINGDIR et HOME, quand elles existent.

Les paramètres suivants sont sauvegardés dans 'THING.INF' :
  - Paramètres 'Fenêtres' ;
  - Paramètres 'TOS2GEM' ;
  - Paramètres 'Copie' ;
  - Paramètres 'Système' ;
  - Applications installées ;
  - Position et taille des fenêtres y compris celle de la console ;
  - Aspect 3D, clic droit et alignement d'icônes.

Structure de 'THING.INF' :
  - Les lignes vierges sont ignorées par Thing ;
  - Les lignes précédées du caractère '#' sont ignorées par Thing ;
  - La longueur maximale d'une ligne ne doit pas excéder 510 caractères ;
  - Chaque entrée est constituée de 4 caractères (mot-clé) suivie d'une description spécifique.

Vu que Thing évolue, la structure de ce fichier peut changer. L'entrée 'VERS' est une instruction pratique qui permet de connaître avec quelle version de Thing le fichier a été créé, par exemple :

VERS 61

61 pour la version 0.61, 100 pour la version 1.00, ...

Le numéro de version est généré par Thing et ne doit être modifié manuellement ! L'instruction 'VERS' a été introduite à partir de la version 0.24 de Thing. Cependant, le fichier 'THING.INF' peut servir pour n'importe quelle version, mais il sera interprété partiellement ou même complétement ignoré.

D'autres informations sur la structure des différentes lignes sont disponibles sur demande, mais à l'heure actuelle, il n'y a pas d'intérêt à décrire les données contenues dans 'THING.INF', car celles-ci sont différentes pour chaque version.

### Format des fichiers, configuration du bureau

La résolution d'écran, dépendante de la configuration du bureau est sauvegardée dans des fichiers nommés de la façon suivante :

      xxxxyyyy.Izz

'xxxx' correspond à la résolution horizontale et 'yyyy' à la résolution verticale en pixels. 'zz' indique le nombre de couleurs de la palette : 01 en monochrome, 02 pour 4 couleurs, 04 pour 16 couleurs, ... Par exemple, une résolution de 640x400 avec 2 couleurs aura un fichier nommé 06400400.I01.

Thing recherche ce fichier dans le même répertoire que 'THING.APP' ainsi que dans le répertoire défini par les variables d'environnement THINGDIR et HOME, quand elles existent.

### Format des fichiers, groupes d'objets

Pour chaque groupe d'objets est généré un fichier avec l'extension 'GRP'. Pour chaque fenêtre sont sauvées les informations suivantes :

  - Le titre du groupe ;
  - La position et la taille de la fenêtre ;
  - L'affichage sous forme d'icônes ou de texte.

Le contenu d'un fichier groupe est similaire aux autres fichiers de configuration.

Structure d'un fichier groupe '*.GRP' :
  - Les lignes vierges sont ignorées par Thing ;
  - Les lignes précédées du caractère '#' sont ignorées par Thing ;
  - La longueur maximale d'une ligne ne doit pas excéder 510 caractères ;
  - Chaque entrée est constituée de 4 caractères (mot-clé) suivie d'une description spécifique.

Contrairement aux autres fichiers de configuration, la structure des fichiers groupe restera compatible avec les futures versions de Thing.

La première entrée contient le titre du groupe, la position de la fenêtre, ... :

INFO "<titre>" <x> <y> <l> <h> <affichage> <sauvegarde>
<titre> | Titre du groupe jusqu'à 32 caractères ;
<x>, <y>, <l>, <h> | Position et taille de la fenêtre convertie en coordonnées système de 0/0 à 10000/10000 ;
<affichage> | Type d'affichage : 0 = icônes 1 = texte
<sauvegarde> | Sauvegarde automatique : 0 = non 1 = oui

Les objets des fichiers ont le format suivant :

OFIL "<titre>" <fichier> "<paramètres>"
<titre> | Titre du fichier dans la fenêtre jusqu'à 32 caractères ;
<fichier> | Nom du fichier ;
<paramètres> | Ligne de commande des paramètres pour le programme.

Les objets des dossiers ont le format suivant :

OFLD "<titre>" <répertoire> "<joker>"
<titre> | Titre du dossier dans la fenêtre jusqu'à 32 caractères ;
<répertoire> | Nom du dossier suivi d'un '\' ;
<joker> | Masque de fichiers ou '*' pour l'ensemble des fichiers.

Les objets sont affichés dans la fenêtre groupe dans l'ordre de la liste du fichier '*.GRP'. S'il n'y a pas de répertoire absolu spécifié pour les noms de fichiers et dossiers, Thing utilise le répertoire du fichier de groupe. Quelques options 'spéciales' comme '..\readme' et d'autres similaires sont autorisées. Egalement, le masque de fichier peut être omis (exemple : <joker> défini comme "").

Il est possible d'insérer des caractères spéciaux ainsi que des guillemets dans les titres sous forme de code ASCII. Toutefois, ceux-ci ne sont pas admis dans les noms des fichiers et dossiers.
         ASCII 1 ... 31        "@01" ... "@31"
         Guillemets (")        "@34"
         Arobace (@)           "@64"
Cette option peut être utilisée directement dans les programmes afin que ceux-ci puissent générer eux-mêmes des fichiers groupe ! Thing peut aussi ouvrir des fichiers groupe si le nom du groupe est transmis par un message AV_START ou AV_STARPROG. De cette façon, d'autres programmes peuvent intégrer cette fonctionnalité et transmettre à Thing une ouverture de fichier groupe.

### Format des fichiers, THING.RSC

Thing utilise actuellement un fichier ressource externe qui peut être édité à l'aide d'un éditeur comme Interface, ORCS, WERCS, ... Si vous tentez d'éditer ce fichier, portez une attention particulière à ce qui suit :

- Thing calcule les coordonnées à l'aide de la 'taille contour' (outline size) plut"t qu'avec la fonte système. Le premier objet du fichier 'THING.RSC' contient cet état sous forme de chaîne (objet n°1) dans le premier arbre :

  "8 16" ... signifie que le 'contour' (outline) du fichier est d'une taille de 8x16 pixels. Ce paramètre doit être modifié pour travailler avec une fonte système de remplacement qui peut, par exemple, être de 7x12, 8x8 pixels, ...

- Un fichier ressource modifié ne doit être en aucun cas diffusé ! Si vous créez une version dans une autre langue, faites-moi parvenir une copie que j'inclurais dans la version officielle. Actuellement sont disponibles les versions anglaise, allemande et française.

- Le fichier ressource est déjà limité à 64 Ko. Donc, si vous l'éditez à l'aide d'Interface, prenez soin de ne pas le sauver au format RSX, car le fichier sera trop gros !

- Tous les raccourcis clavier sont compatibles avec MagiC (ils peuvent être directement édités sous MagiC). En utilisant les intercalaires (index de cartes) dans les boîtes de dialogue, les raccourcis pour quelques boutons ne sont pas directement visibles, mais les définitions sont compatibles avec MagiC.

- Les raccourcis des menus peuvent également être modifiés. Seules les combinaisons [Shift]+[x] et [Shift]+[Control]+[x] sont autorisées. Le raccourci [Shift]+[Delete] pour 'Effacer' ne peut être retiré, mais d'autres raccourcis avec [Delete] peuvent être affectés.

- L'éditeur de ressource doit être capable de lire les 8 premiers octets du type d'objet correctement. Effectivement, l'ancien éditeur RCS de Digital Research ne gère pas ces octets correctement !

- Certaines boîtes de dialogue de Thing utilisent plusieurs pages sous forme d'intercalaires. Vérifiez que votre éditeur de ressource n'associe pas automatiquement les objets 'parent/enfant'.

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