|
||||||||||||||||||||||||||||||||||||||||||||
|
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:. 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 :
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ù :
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 :
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.
|