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 : Amiga E - asl.library
(Article écrit par Pierre Girard et extrait d'Amiga News - février 1997)
|
|
Ce mois-ci, j'ai choisi de ne pas vous brusquer en vous proposant un article sur les requêtes et plus particulièrement sur
l'asl.library. Comme je suis sûr que vous êtes encore dans le coma depuis les fêtes de fin d'année, on va faire simple.
Finalité
D'abord, pourquoi choisir l'asl.library alors que le domaine public fournit des remplacements plus avantageux comme
par exemple la fabuleuse reqtools.library ? Pourquoi ? Je vais vous le dire. Tout simplement parce que :
- L'asl.library est facile à programmer.
- Elle permet de créer des programmes qui tournent sur n'importe quel Amiga (>=V36), qu'il possède ou non la reqtools.
- Ceux qui préfèrent la reqtools peuvent tout à fait modifier l'asl.library pour avoir la reqtools à la place (MCP,
reqchange, etc.).
Voilà pour l'intérêt de la chose. Maintenant, voyons ce que nous propose cette bibliothèque qui ne possède que six fonctions
dont trois sont obsolètes, trois types de requêtes sont disponibles et sont définis par les types ASL_FileRequest, ASL_FontRequest
et ASL_ScreenModeRequest. Comme vous l'aurez sans doute compris, ces trois types correspondent respectivement aux fenêtres de
requêtes de fichiers, de polices de caractères et d'écrans. On peut y accéder grâce à trois fonctions : AllocAslRequest(reqtype,
taglist), AslRequest(requester, tags) et FreeAslRequest(requester). Les deux premières fonctions ont comme paramètres des tags
qu'il sera ici trop long de décrire tellement ils sont nombreux (223 si j'ai bien compté). Nous verrons donc les
principaux d'entre eux.
Les programmes sont courts ce mois-ci, car ils ont uniquement pour but de vous montrer comment insérer des requêtes
dans des applications plus lourdes.
La requête de fichier
Il est très facile à mettre en oeuvre et s'inspire de celui que l'on peut trouver dans les exemples du RKRM. Passées
les initialisations que tout le monde connaît maintenant, on vérifie la version du Kickstart et celle de l'asl.library. Puis
on alloue (on définit une structure) une requête ASL grâce à la fonction, ô combien évocatrice, AllocAslRequest(). Il
y a deux choses à préciser : le type (ici une requête de fichiers) et les tags. C'est là que la bât blesse si l'on n'a pas les
Autodocs. Bon, tout le monde aurait pu trouver la syntaxe de la largeur, etc., mais sans une bonne documentation, allez
donc trouver comment changer le titre de la fenêtre (ASL_HAIL). Hé, hé, hé...
Bon, le délire est passé. Continuons sur l'affichage de la requête. Un petit appel à AslRequest() et hop, c'est magique.
Reste à dépouiller les résultats. Ici. il n'y a pas beaucoup de champs de la structure qui nous intéressent. Avec
req.drawer et req.file, on a déjà tout ce que l'on demande, à savoir le chemin complet du fichier sélectionné.
La requête de polices de caractères
La démarche générale reste la même. Seuls les tags changent, mais je vous laisse le soin de les découvrir par vous-même.
En ce qui concerne les polices de caractères, le principal élément à récupérer est le nom de la police, mais les attributs
comme le style, la taille, la couleur, etc. sont aussi importants. En effet, si l'on veut par la suite, charger la police
telle que la désire l'utilisateur, c'est quand même relativement utile. Nous affichons donc via un WriteF() les attributs
(Structure attr), c'est-à-dire le nom, la taille le style et les "flags" (préférences), puis les couleurs d'écriture et de
fond ainsi que le mode de dessin (complément...). Vue la place qu'il me reste sur la page, je pense qu'il est inutile
de s'attarder sur la requête de mode d'écran qui est pourtant indispensable dans une application un tant soit peu sérieuse.
Je ne peux que vous dire que si le fonctionnement général reste le même, il faudra vous reporter aux Autodocs pour connaître
toutes les options disponibles.
Bon, il est tard...
...et comme mon stock de bières s'épuise (comme moi), je vais en terminer avec ce chapitre finalement facile à appréhender.
J'aurais aussi voulu vous parler de la fameuse "colorwheel" (vous savez, la palette en forme de roue) mais le A4, c'est un
peu petit. Si je reçois du courrier à ce propos, je ferai peut-être un effort. En parlant de courrier, vous ne seriez pas un
peu fainéant par hasard ? Allez, bonne nuit !
|