Suivez-nous sur X
|
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
ALL
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
Programmation : GFA Basic - Manipuler les fichiers ".info"
(Article écrit par Denis Obriot et extrait d'Amiga News Tech - avril 1990)
|
|
Exploitation des fichiers ".info" en GFA Basic
Les fichiers ".info" ont toujours fasciné les utilisateurs d'Amiga. Cela est dû au fait qu'ils combinent des
éléments graphiques (des icônes et des fenêtres), des paramètres, des informations utiles comme la taille de
la pile mémoire pour les programmes et aussi la position de l'icône sur l'écran.
Malheureusement les fichiers ".info"
sont très difficilement exploitables en GFA Basic, car celui-ci ignore leur contenu au lancement du programme
et n'offre pas de moyen simple pour récupérer leurs paramètres. Par contre, lire leur contenu et le modifier
reste toujours possible. C'est ce que le programme ci-dessous fait en utilisant principalement la fonction
GetDiskObject qui nous renvoie toutes les informations nécessaires dans une structure appelée DiskObject.
PutDiskObject permet de sauver (éventuellement en le créant) une structure DiskObject dans un fichier ".info".
La fonction FreeDiskObject rend au système la mémoire utilisée par la structure DiskObject et les structures
qui en dépendent (plusieurs structures sont chargées en mémoire). Je vous renvoie encore une fois à l'ouvrage "ROM
Kernel Manual: Includes and Autodocs" si vous voulez avoir le contenu entier de la structure DiskObject.
Celle-ci offre la particularité de contenir une structure Gadget qui contient en fait la position et l'image
de l'icône et de pointer sur une structure NewWindow qui contient les paramètres de la fenêtre à ouvrir si
le fichier ".info" est celui d'un tiroir ou un disque.
Vous ne devez pas charger le fichier ".info" directement avec ce programme mais charger le fichier lui-même.
Pour un disque, il faut entrer "Disk" comme DF0:Disk pour l'icône de la disquette en DF0: et pour un répertoire,
il faut entrer le nom du répertoire sans "/" derrière. Si le fichier ".info" est introuvable, le programme
s'arrête automatiquement. Sinon, l'icône sera affichée dans une fenêtre ainsi que quelques informations dans
une autre fenêtre.
Pour sortir du programme, il faut appuyer sur les deux boutons de la souris à la fois.
Du côté de la programmation, il n'y a pas beaucoup de difficultés. Les fonctions GetDiskObject, PutDiskObject
et FreeDiskObject ont été réécrites car il semble que l'icon.library n'est pas accessible directement du GFA Basic.
Cela demande donc sa réouverture avec OpenLibrary et l'utilisation de RCALL. La fonction GetDiskObject demande
un nom de fichier sans ".info", ce qui est économique.
La partie de la structure DiskObject dont nous avons besoin est définie dans la procédure DiskObjStruct.
Ensuite le type du fichier ".info" est testé et affiché en clair. La partie suivante affiche l'icône du
fichier ".info" dans une fenêtre et attend le clic souris. La fin du programme vous permet de sauver l'icône
sous un autre nom et de changer les couleurs de la fenêtre si l'icône représentait un disque, un tiroir ou la corbeille.
Les différents types d'icônes
Les différents types d'icônes sont Disk, Drawer, Tool, Project, Garbage, Device et Kick.
- Disk représente l'icône d'un disque (disquette, disque dur ou RAM Disk).
- Drawer représente un tiroir.
- Tool représente un programme (outil).
- Project représente un fichier (texte, dessin, son, etc.) non exécutable.
- Garbage représente la corbeille (trashcan).
- Device représente un périphérique logique.
- Kick représente le Kickstart (fichier ROM).
Le fichier.info
J'ai pensé que vous saviez certainement ce qu'était un fichier ".info" et à quoi il servait.
Si vous ne les connaissez pas bien, étudiez-les en sélectionnant une icône au hasard et
en choisissant l'option "Info" dans le menu "Workbench". Vous pourrez découvrir ce que sont la "Stack Size",
les "Tool Types" et "Default Tool" dont il est question dans ce programme.
Ce programme a été volontairement bridé pour qu'il ne puisse pas causer d'ennuis dans
vos icônes. Certains champs sont délicats à manipuler, c'est pourquoi je ne les ai pas inclus
ici. Un fichier ".info" corrompu peut dans certains cas entraîner un plantage du système,
c'est pourquoi il vaut mieux être très méfiant si vous désirez modifier ou étendre ce programme.
|