Obligement - L'Amiga au maximum

Jeudi 21 mars 2019 - 00:39  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles en d'autres langues


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Logiciels
 · Jeux
 · Scène démo
 · Divers


Jeux Amiga

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


Trucs et astuces

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


Glossaire

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


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


Test de ReqLib
(Article écrit par Stéphane Schreiber et extrait d'Amiga News Tech - juillet 1991)


Présentation

ReqLib est une bibliothèque Amiga standard, totalement réentrante, destinée à faciliter - et à uniformiser - la création de requêtes. Elle dispose notamment d'une puissante requête de fichiers (FileRequester) pouvant être utilisée en tant que requête pour les polices (FontRequester), d'une requête de couleur (ColorRequester) et d'une requête de chaînes (StringRequester) gérant des opérations de formatage du texte, façon printf().

ReqLib est un programme de Colin Fox (de Pyramid Designs) et de Bruce Dawson (de CygnusSoft Software). Il est librement distribuable, mais n'est pas placé dans le domaine public (c'est-à-dire que les sources ne sont pas fournis, et que vous n'avez pas le droit de modifier le code exécutable). Vous pouvez l'utiliser dans vos propres programmes, même commerciaux, sans payer ne serait-ce que l'ombre d'une redevance aux auteurs. A ma connaissance, de nombreux programmes utilisent déjà la req.library, dont The Art Department d'ASDG, Inc. et ImageLink d'Active Circuits, Inc.

Req.library s'utilise exactement comme une bibliothèque système (dos, intuition...) : il faut d'abord l'ouvrir, mémoriser son adresse de base, puis la fermer lorsqu'on n'en a plus besoin. Elle est évidemment utilisable aussi bien depuis l'assembleur que depuis le C (Aztec ou Lattice). En fait, n'importe quel langage, même l'AmigaBasic, convient !

Exemple d'ouverture en C :

ReqLib

Le même, en assembleur :

ReqLib

Ses fonctions

Partant de là, les fonctions listées ci-dessous (et classées par thème), disponibles.

Affichage d'une requête de type AutoRequest, mais plus évoluée :
  • SimpleRequest() : requête à un bouton.
  • TwoGadRequest() : requête à deux boutons.
  • TextRequest() : requête à trois boutons.
Affichage d'une requête de chaîne :
  • GetString : requête de chaîne de caractères.
  • GetLong : requête de nombre 32 bits.
Affichage d'un sélectionneur de fichier(s) ou de police(s) :
  • FileRequester()
  • PurgeFiles()
Affiche une requête de palette :
  • ColorRequester()
Création dynamique de gadgets (pour programmes réentrants) :
  • MakeGadget() : alloue un gadget booléen.
  • MakeString() : alloue un gadget de chaînes.
  • MakeProp() : alloue un gadget proportionnel.
  • MakeButton() : alloue un gadget booléen.
  • MakeScrollBar() : alloue un gadget proportionnel.
Gestion des gadgets proportionnels :
  • SetSize()
  • ReadLocation()
  • Setlocation()
Gestion des gadgets liés à une fenêtre :
  • LinkGadget()
  • LinkStringGadget()
  • LinkPropGadget()
Routines diverses :
  • DrawBox : dessine un rectangle d'un coup.
  • GetFontWidthAndHeight : renvoie la taille de la police.
  • RealTimeScroll : défilement suivant un ascenseur.
  • RawReyToAscii : conversion touches RAW en ASCII.
  • Center : centrage d'une fenêtre.
  • Format : formatage de texte à la sprintf().
Il serait vain de décrire ici toutes ces fonctions, une à une. L'archive de distribution contient un exemple d'utilisation de la req.library, ShowOffReq, démontrant une grande partie de ces fonctions (en fait, toutes celles qui ont un résultat visible à l'écran).

Utilisation

Une bibliothèque étant faite pour les programmeurs, divers fichiers includes sont fournis, tant pour les adeptes du C que pour ceux de l'assembleur. Ce sont req.h, reqbase.h et reqbase.i (étonnant, non ?) qu'il conviendra de placer dans votre répertoire "Include:Libraries/". Un fichier reqproto.h est également fourni, pour utilisation avec le Lattice. Concernant l'assembleur, reqbase.i est écrit comme les autres includes standards de Commodore, à savoir en utilisant les macros STRUCTURE, LABEL et autres LONG, et non avec la pseudo-instruction "rs" du Devpac (bien que Devpac comprenne également cette forme, l'assemblage est plus rapide avec "rs"). Par contre, reqbase.i contient également les définitions des Library Vector Offsets (_LV0xxx), alors qu'il eût été plus logique de les mettre à part, dans req_lib.i par exemple (ce pour rester conforme avec la structure des autres includes). Enfin, un fichier nommé macros.i contient devinez quoi ? Quelques macros destinées à vous faciliter la vie.

Deux autres fichiers objet, areqglue.o et lreqglue.o sont plus particulièrement destinés à être reliés avec votre code, C ou assembleur, suivant l'utilisation que vous désirez faire de la req.library. Il s'agit de ce que l'on nomme des routines "glue", c'est-à-dire des bouts de routines destinés à faciliter l'interfaçage avec d'autres routines, plus complexes. En l'occurrence, on y trouve les routines récupérant les paramètres depuis la pile dans les registres adéquats puis appelant les fonctions de la bibliothèque (ceci plus particulièrement pour le langage C) et la définition des fonctions SimpleRequest() et TwoGadRequest(), qui ne sont que des simplifications de l'appel à TextRequest, qui elle fait partie intégrante de la bibliothèque (heu... ça va, vous suivez encore ?), areqglue.o est destiné au compilateur ou à l'assembleur Aztec, tandis que lreqglue.o est destiné au Lattice.

Un petit programme supplémentaire, nommé CustomizeFile et dont le source est fourni, montre comment modifier/corriger les fonctions de la bibliothèque (avec SetFunction() d'exec.library) pour, par exemple, personnaliser la requête de fichiers.

Dernier point important, la documentation req.doc liste toutes les fonctions de la bibliothèque de manière détaillée, avec syntaxe, description des paramètres, effet, bogues connus... exactement à la manière du RKM Includes & AutoDocs.

Nom : ReqLib.
Auteurs : Colin Fox et Bruce Dawson.
Genre : création de requêtes.
Date : 1990.
Configuration minimale : Amiga OCS, 68000, 512 ko de mémoire.
Licence : freeware.
Téléchargement : Fish 400.


[Retour en haut] / [Retour aux articles]