The English version

Creation d'un Assistant sous X11 avec Tcl-TK et libsx

Introduction

Les environement de fenetrage contiennent un element d'aide a l'utilisateur: L'assistant.

Un assistant est un programme qui par une succession d'ecran va permet de configurer un logiciel, une peripherie ...

On peut le definir graphiquement par 4 elements:

  1. A gauche une image (ici /usr/lib/tk/demo/images/earth.gif)
  2. En bas a droite : 3 boutons ( Precedent, Suivant, Annuler )
  3. En Haut a droite: Un titre et une descrpition de l'ecran
  4. Au milieu a droite: Divers element d'interface.

Le monde UNIX n'etant pas, a la base graphique, le concept d'asssistant ne s'est pas beaucoup developpe.

Or grace a tcl-tk, on peut par exemple realiser un assistant rapidement. Les ecrans ci-dessus sont des captures d'ecrans, d'un assistant realise en tcl-tk pour facilite l'ajout d'un utilisateur.

De meme la librairie libsx offre beaucoup de facilite pour le developpement d'un assistant.


Architecture logiciel : Comment ca marche !

FonctionParametre
InputEcran Numero du nouvel ecran
OutputEcran Numero de l'ancien ecran
Ces deux fonctions permettent d'influer durant l'utilisation de l'assistant sur ce dernier. La fonction InputEcran est apelle quand on rentre dans un ecran. Inversement La fonction OutputEcran est appele quand on sort de l'ecran, elle retourne un boolean, et dit si l'on peut changer d'ecran. Elles ont toutes deux comme parametres, le numero de l'ecran concerne par l'action. Il vous suffira de faire un switch case sur ce nombre et d'agir a votre aise.

Exemple: InputEcran en C:

switch (n)

{case 2 : sprintf(homedir,"/home/%s",nomuser);

SetStringEntry(Whomedir,homedir);

break;...

OutEcran en C:

switch (n) { case 0: strcpy(nomuser,GetStringEntry(Wnomuser));

if (strchr(nomuser,' ')!=NULL) {printf("Nom user contient des espaces");

GetYesNo("Nom user contient des espaces");

return(FALSE);

... Ici le return FALSE indique que l'on ne veut pas changer d'ecran, qu'il y a une erreur.

Exemple Assistant AddUser

  1. En tcl-Tk.
  2. Source de l'assistant en tcl-tk

  3. En C avec la librairie libsx
  4. Source de l'assistant en C

Demande AIDE pour le developpement d'autres assistants

I NEED YOU
Pour developper plein autres assistants, j'ai besoin de bonne volontee. Les prochains assistants pouront etre:
  1. Assistants environement ( tcl-tk, bash ,window manager : fvwm, after step ..)
  2. Assistants Samba
  3. Installation de serveur WEB
  4. Creation d'une page WEB.
  5. ...

Travaux futures:

Ecrire un assistant en MOTIF et aussi pour le mode texte grace a dialog. Il pourrait etre interressant de le faire aussi par script CGI.

Une fois les differents squellettes d'assistants crees dans divers langages, il serait interressant de faire un mecanisme de template, pour creer a volontee des assistants dans divers langage

charles vidal octobre 1998