Obligement - L'Amiga au maximum

Vendredi 24 novembre 2017 - 21:22  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · 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 in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


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

 


Dossier : Les templates
(Article écrit par David Bonnet - décembre 2003)


Qu'est-ce qu'un template ?

Un template est une chaîne descriptive présentant la syntaxe d'une simple commande AmigaDOS ou d'un programme s'utilisant sous Shell (ou CLI). Il présente les différentes options de cette commande ou programme. Les paramètres ou arguments acceptés par les différentes options du programme y sont notés par des lettres, précédées d'un slash "/".

Pour mieux appréhender les différents arguments envisageables dans un template, considérons une commande fictive ABC. Pour obtenir son template, il vous suffit de taper dans un Shell "ABC ?". Considérons que vous obtenez alors ABC opt1/A, opt2/K, opt3/M, opt4a/S, opt5/N, opt6/T, option7=opt7/A/N, option8=opt8/K/N, opt9/F.

Des programmes comme Argue ou Gui4Cli utilisent les templates (sous forme de fichier texte) comme fichier de base pour la création d'une interface graphique. Avant d'envisager d'utiliser un de ces programmes, voyons à quels types d'argument correspondent les lettres que l'on rencontre dans les templates.

Les arguments d'un template

Ces arguments sont représentés par des lettres au nombre de sept (justement celles indiquées dans l'exemple ci-dessus) :

/A : pour "Always". Cela signifie qu'un argument est obligatoire avec l'option considérée. Si opt1 correspond à 3, on écrira donc "ABC 3".

/K : pour "Key". Dans ce cas, on doit utiliser le nom de l'option avec un des choix proposés par le programme. Si opt2 correspond à "pluie" ou à "soleil", il faudra entrer soit "ABC opt2=pluie", soit "ABC opt2=soleil", et non pas "ABC pluie" ou "ABC soleil". Cela ne fonctionnerait pas.

/M : pour "Multiple". L'argument accepte alors plusieurs données à la fois.

/S : pour "Switch". Cet argument active l'option considérée. Dans notre exemple, si l'on veut activer opt4a, on écrira "ABC opt4a". S'il s'agit de opt4b dont on a besoin, on écrira "ABC opt4b". En l'absence d'activation, une telle option est considérée comme égale à 0.

/N : pour "Number". L'argument fourni à la commande doit alors être obligatoirement un nombre. Si on utilise option5 et qu'on lui donne la valeur "10", on entrera "ABC opt5=10".

/T : pour "Toggle". L'argument ne peut avoir que deux formes possibles. Soit "yes", soit "no", ou encore "on" ou "off". Le programme doit savoir si on active ou désactive l'option, un peu comme un interrupteur doit toujours être en position "ouvert" ou "fermé".

/F : pour "Final". Cet argument est le plus rare de tous. L'argument est alors obligatoirement une chaîne de caractères, qui FINIT la commande. Tout ce qui suit à partir de cet argument est considéré comme faisant partie de la chaîne de caractères. C'est pourquoi il se trouve en fin de commande.

Ces arguments sont souvent combinés, comme le montre le cas de opt7, où l'on a /A/N, signifiant que l'argument est obligatoire et numérique. Dans notre exemple, "/K/N" signifie qu'on devra indiquer le nom de l'argument avec la valeur désirée. Ainsi, si opt8 correspond à 100, on entrera soit "ABC option8=100", soit "ABC opt8=100".

Pour plus d'informations, téléchargez sur Aminet l'excellente documentation (au format Amigaguide) AmigaDos_for_beginners.lha. C'est en anglais, mais vous y trouverez quantité d'autres informations sur le DOS Amiga. Vous pouvez également trouver un article de Mathias Parnaudeau sur le site www.gurumeditation.net.

Argue : petite présentation

Voyons maintenant une utilisation pratique des templates : celle qui consiste à récupérer celui d'un petit programme en ligne de commande (CLI), afin de lui créer une interface graphique MUI à l'aide d'Argue. Vous pouvez trouver ce programme dans les CD Aminet (Aminet Set 4 par exemple) ou sur le site AMinet (Argue.lha, C'est la version 1.3 ou 1.4. Impossible de savoir réellement, car la version 1.4 dont je dispose semble identique à la 1.3 : même le fichier Amigaguide est identique. Argue est assez ancien, et malheureusement n'est même plus développé depuis plusieurs années, ce qui l'empêche de tirer parti de toutes les fonctions de MUI. La page de l'auteur n'existe plus non plus. Néanmoins, de nombreuses petites interfaces graphiques ont été développées avec Argue afin de faciliter la prise en main de programmes tels que Frogger.

J'insiste néanmoins d'entrée sur le fait que les interfaces MUI générées à la volée par Argue ne sont pas redimensionnables, et la position de leurs différentes composantes (boutons, champs à compléter, boutons de sélectionneurs de fichiers...) est peu modifiable. Les interfaces MUI-Argue se ressemblent donc beaucoup entre elles, et les différents paramètres de commandes vont se retrouver répartis au mieux sur trois onglets. Aucune sous-fenêtre ne peut être générée.

Tout ça pour dire que Argue est une solution simple pour créer des interfaces MUI à de petits programmes, sans avoir à programmer votre interface MUI (dont certains principes ne sont pas évidents pour le novice). Wget ou Ghostscript, du fait de la multitude d'arguments de ces logiciels, deviennent vite ingérables avec une interface générée par Argue. De plus, il semble que Argue soit limité à un certain nombre d'arguments, car lors de mes premiers essais avec Ghostscript, j'avais eu un message d'erreur m'indiquant qu'il y avait trop d'arguments pour Argue.

La grammaire d'Argue

Considérons que vous avez maintenant l'archive d'Argue. Vous la désarchivez où bon semble. Maintenant, il vous reste à placer ARGUE dans C:.



Ensuite, lancez votre éditeur de texte préféré et jetez un coup d'oeil aux interfaces des répertoires "projects" ou "examples". Vous allez constater que le fichier de toute interface Argue doit commencer absolument par "@NEWFASHION". La ligne suivante doit être vide.

Les commandes d'Argue doivent être placées après chaque argument du template, entre crochets, comme cela : opt1/A [commande]. Dans ses versions antérieures à la 1.3, Argue utilisait des parenthèses. Cela fonctionne encore, mais pas avec certains programmes CLI. Donc, utilisez systématiquement les crochets dès maintenant. De manière à rendre plus explicite votre interface, vous pouvez aussi associer du texte à un argument, dans l'interface même. Pour cela, il vous faut écrire : opt1=le premier argument/A [help="c'est la première option]. Ainsi, dans l'interface apparaîtra le texte "le premier argument".

Avant d'aller plus loin, il convient de souligner qu'il ne faut pas le signe apostrophe à l'intérieur des crochets, même entre les guillemets contenant le texte des bulles d'aide. Cela est source de problèmes pour Argue.

La construction de l'interface se fait via un nombre limité de commandes qui sont :

1) Pour les popups :
  • [nopopup] Cela désactive tous les fenêtres surgissantes (popups).
  • [filepopup] Cela permet de créer un bouton pour ouvrir un sélectionneur de fichiers de type ASL.
  • [screenmodepopup] Cela permet d'accéder à la liste des écrans disponibles. Cela est utile si un argument nécessite le nom d'un mode écran.
  • [devicepopup] Cela donne accès à la liste de tous les devices présents dans Devs: et permet d'en sélectionner un.
  • [pubscreenmode] Cette commande permet de sélectionner un des écrans publiques présents au lancement de l'interface. Cette commande est peu utilisée.
  • [secretpopup] Cela permet d'entrer dans une fenêtre surgissante un mot de passe sous forme cryptée (les caractères sont représentés par un gros point). Utile si vous avez un argument requérant une information secrète.
  • [drivepopup] C'est similaire à [devicepopup], mais permet d'accéder à la liste des lecteurs pour en choisir un.
  • [candidatepopup] Cela permet de créer dans une fenêtre surgissante une liste prédéfinie dans laquelle vous sélectionnerez la proposition qui vous convient le mieux. Si vous avez une option MODEECRAN/K, et voulez proposer un mode à choisir dans une liste bien précise, vous pouvez alors écrire : MODEECRAN [can cc"PAL 320x256" "PAL 640x512" "VGA 640x480" "VGA 800x600"].
Avec les commandes de fenêtres surgissantes, peut aussi être utilisée la commande PRESET, afin de sélectionner par défaut un répertoire par exemple. Considérons la commande [filepopup preset=Work:bureautique]. Dans ce cas, le sélectionneur de fichier apparaîtra déjà positionné dans le répertoire "bureautique" de votre partition Work:

2) [help="le texte que vous souhaitez faire apparaître dans la bulle d'aide"] Cela sert à créer des bulles d'aide MUI. Si vous souhaitez faire tenir votre commentaire sur plusieurs lignes, il vous faudra utiliser le symbole circonflexe ^ juste avant le mot qui commencera la nouvelle ligne, et ainsi de suite.

3) [node] Cette commande permet d'appeler le paragraphe du fichier Amigaguide que vous avez spécifié avec le tooltype GUIDE (voir plus loin). Pour que cela fonctionne, il faut que vous placiez le curseur de la souris au niveau de l'argument pour lequel vous désirez avoir des explications, puis que vous pressiez la touche HELP.

4) Lorsque vous devez choisir une option parmi plusieurs arguments à activer (donc des arguments suivis de /S), il est possible de créer un bouton de cycle. Pour cela, créez un nouvel argument inexistant dans le template du programme CLI, suivi d'un /C (pour Choice). Imaginons que vous devez choisir entre l'option "BLANC/S" et son contraire "NOIR/S". Pour créer un bouton de cycle permettant de choisir entre ces deux options, il vous faudra créer un argument COULEUR/C. Le tout donnant COULEUR/C ["BLANC/S" "NOIR/S"].

Notez bien ici que /C est spécifique à la création de bouton cycle sous Argue et ne correspond pas à un nouvel argument des options d'un template.

5) [on] à la suite d'un argument /S, permet de créer une case à cocher, qui sera précochée.

6) [min=n default=n max=n] Ces trois commandes permettent respectivement d'attribuer à un argument /N, une valeur minimale, une valeur par défaut et une valeur maximale.

7) Enfin, vous pouvez proposer un choix précis et actualisable (à la différence des sélectionneurs prédéfinis par "candidatepopup" ou des boutons cycles) pour les options à choix multiples (/M). Pour cela, si vous avez une option FILE/M, acceptant plusieurs choix en même temps au sein d'une liste de fichiers situés tous dans "Work:Musique", vous devez écrire : FILE/M [DOSGATE=LIST >T:listedemorceaux Work:Musique PAT=(?#.mp3|?#.wav) GATEFILE="T:listedemorceaux" MULTI PREFIX="Work:Musique"].

Où :
  • LIST est la commande DOS LIST (tous ces arguments sont bien sûr ajoutables).
  • LIST>T:listedemorceaux crée dans T: le fichierdemorceaux à partir des éléments présents dans Work:Musique.
  • PAT (pour PATTERN) permet de prendre les fichiers correspondant uniquement aux extensions indiquées.
  • GATEFILE récupère le fichier créé par la commande LIST (dans T:).
  • MULTI permet la sélection multiple de fichiers (par défaut).
  • PREFIX permet de passer comme argument le chemin complet des fichiers au programme CLI.
Mise en pratique

Pour finir, je vous livre le "code" de mon interface pour la commande Wrap. Récupérez sur Aminet le programme Wrap. Nous allons lui construire une interface avec Argue. Comme tout programme CLI, vous devez le placer dans C:. Maintenant, ouvrez un Shell et tapez "wrap ? >RAM:WrapGUI". Vous obtenez le template de Wrap dans RAM: sous le nom WrapGUI. Sauvez-le sur votre disque dur.

Il doit se présente ainsi :

FILE/A, NEWFILE, L=LENTGH/K/N, TAB/K/N, P=PARA/K/N, STRIPCR/S, ADDCR/S

Maintenant, avec un éditeur de texte (Peditor, EditPad...), ouvrez le fichier nommé WRAPGUI. Voici le code source de l'interface :

@NEWFASHION

FILE/A [filepopup]
NEWFILE [filepopup]
L=LENGTH/K/N [help="Nombre de caractères par ligne. Maximum=1000; recommandé=80."]
TAB/K/N [help="Indique le nombre d'espaces devant^remplacer chaque tabulation rencontrée.^La valeur 0 efface toutes les tabulations.^Maximum=80."]
P=PARA/K/N [help="Permet de créer des paragraphes composés de lignes^séparées de N Retour(s) Chariot(s) dans le document original.^Maximum=30."]
STRIPCR/S [help="Permet de retirer les Retours Chariots dans les fichiers PC."]
ADDCR/S [help="Permet d'ajouter les Retours Chariots après chaque nouvelle ligne.^Combiné avec StripCR, cette option permet de reformater un fichier^texte tout en conservant le format PC."]

Une fois ce fichier enregistré sous le nom WrapGUI, il vous faut impérativement lui attribuer une icône. Pour finir, éditez les types d'outils de l'icône attribuée. S'il y en a déjà, retirez-les. Vous devez désormais entrer les types d'outils suivants :



COMMAND=C:WRAP : cela indique à Argue quel programme CLI appeler.
TITLE=WRAP : indique le titre de la fenêtre.
WINDOW_ID=WRAPGUI : indique un identifiant spécifique à l'interface créée afin de pouvoir sauver les préférences.
REQUIRES=13 : indique quelle version d'Argue est requise. Ici, c'est la 1.3.

Une fois tout cela fini, vous devriez obtenir le résultat suivant quand vous cliquez sur l'icône de l'interface :



Vous pouvez également ajouter le type d'outils USEKNOBS, qui permet de remplacer les glissières des arguments numériques par des potentiomètres. Pour les programmes CLI issus du monde UNIX (comme WGet, par exemple), vous devez ajouter le type d'outils, afin que les arguments qui sont dans ce cas tous précédés d'un trait d'union "-", puissent être gérés par Argue.

Il y a aussi moyen de lier l'interface à un fichier AmigaGuide particulier, par l'intermédiaire du type d'outils "GUIDE=nom du fichier amigaguide". Placez ce dernier dans le même répertoire que l'interface. Ce fichier sera appelé à chaque fois qu'une commande [node] fait référence à un de ses paragraphes. Enfin, si votre interface est très grande, vous pouvez la répartir sur trois onglets, grâce au type d'outils PAGEGROUP. D'autres types d'outils existent. Nous avons vu là les plus courants. Les autres vous seront utiles pour des besoins bien précis.

Je vous ai donné ici les bases d'Argue. A vous maintenant d'explorer les possibilités qu'il offre. Si besoin, vous pouvez me contacter à david.bonnet2 AT freesbee POINT fr ou GEO.amiga AT ifrance POINT com.


[Retour en haut] / [Retour aux articles]