|
||||||||||||||||||||||||||||||||||||||||||||
|
Voici le logiciel du domaine public le plus évènementiel depuis Xoper. Son auteur, Lee Robert Willis, le désigne comme étant un "interface builder" pour Amiga. Pour les incultes, je rappelle que Interface Builder est un des logiciels les plus importants sur NeXT, permettant de créer une application presque entièrement à la souris, en écrivant le minimum de code. L'auteur L'auteur de Precognition est un jeune américain nommé Lee Robert Willis. Il travaille pour la société Loral Defense Systems. Il se définit lui-même comme étant, le jour, un "contractant aux douces manières", qui se transforme la nuit en "Amiga-Man". Une sorte de Dr Jekill & Mr Hide ! En fait, j'ai pu discuter avec lui de nombreuses fois. C'est un gars épatant, qui fait vraiment du très bon boulot. Vous pouvez lui envoyer vos remarques et vos suggestions par courrier électronique (Lee_Robert_Willis@cup.portal.com), il vous répondra sans doute avec plaisir et intérêt (ne l'ennuyez pas trop pour rien quand même...). Precognition 1.0 La première version de Precognition (1.0) contient un gros exécutable (Precognition), un fichier objet (Precognition.o), le source C d'un "main()" standard qui contient toutes les inits nécessaires (Std_main.c) et un certain nombre de fichiers includes. Le programme principal (Precognition) fait environ 170 ko. Il permet de créer, à la souris, toute la partie interface de votre application. Ensuite, on peut générer automatiquement le source C (commenté) correspondant. Il ne reste plus alors qu'à compiler ce source avec votre compilateur préféré, relier l'objet avec precognition.o et éventuellement std_main.o (on peut ne pas l'utiliser), et lancer l'application. Facilité et puissance Deux choses remarquables sont dans Precognition. Tout d'abord, la facilité d'utilisation du logiciel : tout se manipule à la souris. Ensuite, la puissance du source C généré : Precognition ne se contente pas de créer des déclarations et des structures (comme GadToolsbox), mais il génère un véritable programme ! Vous n'avez plus qu'à "compléter" le source, sans vous soucier de la gestion de l'interface ! ![]() Figure 1 Au lancement, Precognition ouvre son propre écran, contenant trois fenêtres (Application, Gadgets, Graphics) et deux menus (Project, Edit). "Application" est la fenêtre... de votre application. Vous pouvez la renommer, changer sa taille et sa position, ajouter ou enlever les gadgets IDCMP standard (closewindow, windowdepth, windowdrag, windowsize), fixer une taille max/min, etc. Tout ceci se fait au moyen de l'option "Window Properties" du menu "Edit". Il n'est pas possible de créer une application avec plusieurs fenêtres. Notons encore que Precognition ne gère pas les menus. La fenêtre "Gadgets" propose une banque de gadgets. Vous pouvez ajouter un de ces gadgets à la fenêtre de votre application simplement en déplaçant un gadget à l'endroit où vous voulez qu'il se trouve dans votre fenêtre. Ensuite, grâce à l'option "Objet Properties", vous pouvez éditer les caractéristiques des gadgets. Par exemple, et selon le type du gadget, les variables associées, les labels, les listes de paramètres, etc. Tout ce qui concerne l'aspect visuel des gadgets est géré entièrement à la souris. Vous pouvez placer un gadget au pixel près ou sur une grille, changer sa taille horizontale ou verticale. Avec un lasso, vous pouvez sélectionner plusieurs gadgets à la fois, afin de les aligner à droite, à gauche, de les centrer ou de les déplacer ensemble ! Il faut à peine une minute pour créer la figure 2 ! ![]() Figure 2 La figure 3 montre l'édition des paramètres de notre "ListEditor", tandis que la figure 4 montre notre fenêtre d'application, telle quelle apparaîtra à l'exécution. La petite fenêtre "Graphics" propose deux types d'objets graphiques. Ces objets ne réagissent pas aux actions de l'utilisateur : leur rôle et uniquement de "décorer" votre fenêtre, en ajoutant éventuellement des informations utiles. Une fois que votre fenêtre d'application est terminée, il ne vous reste plus qu'à générer le source C correspondant, grâce à l'option "Write Code" du menu "Project". ![]() Figure 3 ![]() Figure 4 Precognition ne permet pour l'instant que de générer du source C. Mais ce source est d'une puissance encore jamais atteinte par les générateurs d'interfaces traditionnels (GadToolsBox, PowerWindows...). Plutôt qu'un long discours, je vous propose d'examiner ici le source correspondant à la fenêtre d'application de la figure 4. Rien n'a été ajouté ou modifié. ![]() ![]() ![]() On peut également remarquer que ce source a été judicieusement commenté par Precognition : il ne vous reste plus qu'à remplacer les commentaires "/* YOUR CODE HERE */" par vos propres petites routines. Tout ce qui concerne la mise en oeuvre de votre interface est entièrement gérée par Precognition. Plus besoin d'ouvrir une fenêtre, d'attendre un message dans un port de communication, de recopier ce message, de le traiter, etc. C'est la facilité et la souplesse absolue ! Un seul reproche cependant : s'il est vraiment très facile de récupérer la valeur d'un gadget booléen ou proportionnel, ou même d'un CycleGadget, il est par contre, assez difficile de savoir quelle option a été sélectionnée dans une liste d'options (ListEditor). Ceci m'amène tout naturellement à vous parler des défauts de Precognition. Les défauts Eh oui, il y en a. Pas beaucoup, c'est vrai, et ce sont des défauts de jeunesse qui seront corrigés dans la prochaine version. En premier lieu, il est impossible de sauver le travail accompli. Comprenez qu'une fois le code généré, vous n'avez aucun moyen de quitter Precognition et de reprendre plus tard la conception de votre interface (comme PowerWindows le permet, avec ses fichiers ".pw"). C'est très ennuyeux, car si vous quittez Precognition en ayant oublié un gadget, vous devez tout recommencer ! Ensuite, Precognition gère lui-même tous ces types de gadgets. Ceci vient du fait qu'il a été conçu et programmé avec une approche orientée objet. C'est très bien d'un point de vue purement conceptuel, mais en contrepartie, les exécutables sont assez gros. D'autre part, Precognition utilise un fichier objet C (precognition.o) contenant ses propres fonctions de traitement. Tout ce fichier est donc ajouté systématiquement à votre propre fichier objet par l'éditeur de liens, ce qui garantit une taille minimum de 70 ko pour le moindre exécutable ! Autre défaut : Precognition ne gère pas les menus et les fenêtres multiples. Dans la plupart des applications, des gadgets bien placés sur une fenêtre sont suffisants, mais pour de gros programmes, des menus sont presque toujours nécessaires. Dernier défaut : l'auteur a choisi de rafraîchir lui-même les fenêtres d'application (pour les habitués, il utilise des "SimpleRefresh Windows"). Ceci entraîne un certain ralentissement dans l'affichage, et il arrive même que le programme se "bloque" (deadlock) si on clique un peu trop vite sur les gadgets. La prochaine version 1.1 Tous ces défauts sont corrigés dans la version 1.1. Si j'en parle, c'est que je l'ai déjà testée en partie, Lee Willis m'ayant aimablement envoyé sa nouvelle version. En particulier, dans la version 1.1, Precognition utilise une bibliothèque C (precognition.lib) beaucoup plus économe en mémoire, et il est aussi question d'une bibliothèque "run-time" (les bibliothèques de votre tiroir Libs:) et d'une version spécifiquement destinée au système 2.0. D'ailleurs, Lee attend vos suggestions à ce sujet, et il prendra sa décision en fonction du plus grand nombre de demandes, car il ne peut pas développer toutes les versions à la fois. Conclusion Precognition est réellement un outil sensationnel ! Une fois que vous l'avez utilisé, il est impossible de revenir à PowerWindows ou à GadToolsBox. Sa grande force, c'est la puissance du source C qu'il génère. Aucun outil, à ma connaissance, ne peut rivaliser avec lui dans ce domaine. En attendant la prochaine version, on ne peut que féliciter son auteur, et l'encourager à continuer dans cette entreprise !
|