<HTML> <HEAD> <TITLE>Programmation pour MGR</TITLE> </HEAD> <BODY> <H1>5. <A NAME="s5"></A>Programmation pour MGR</H1> <P> <A HREF="MGR-HOWTO.html#toc5">Contenu de cette section</A></P> <P>Le manuel des programmeurs <B>MGR</B>, l'interface des applications langage C, se trouvent dans le répertoire doc sous forme de fichier exploitable par troff/nroff. Il traite de concepts généraux, des appels fonction/macro contrôlant le serveur, d'un exemple d'application, avec index et glossaire. Porter le code client utilisé avec les anciennes versions de MGR demande le remplacement de <BLOCKQUOTE><CODE> <PRE> #include <mgr/mgr.h> </PRE> </CODE></BLOCKQUOTE> par <BLOCKQUOTE><CODE> <PRE> #include <term.h> #include <dump.h> </PRE> </CODE></BLOCKQUOTE> et des clients utilisant les vieux B_XOR, B_CLEAR, etc. au lieu de BIT_XOR, BIT_CLR et autres peuvent être adaptés en écrivant~: <BLOCKQUOTE><CODE> <PRE> #define OLDMGRBITOPS #include <mgr/mgr.h> </PRE> </CODE></BLOCKQUOTE> </P> <P>Compiler le code client demande en général des options telles que~: <BLOCKQUOTE><CODE> <PRE> -I/usr/mgr/include -L/usr/mgr/lib -lmgr </PRE> </CODE></BLOCKQUOTE> Vous pouvez obtenir un aperçu de l'interactivité des fonctions serveur <B>MGR</B> en lisant et essayant le pilote de terminal <CODE>mgr.el</CODE> pour GNU Emacs, qui met en oeuvre la bibliothèque interface <B>MGR</B> en Elisp. L'habitude qui consiste à s'enquérir de l'état du serveur a pour risque de se casser la figure si le client attend en même temps un grand volume de notification d'événements. Ce problème arrive lorsque une notification d'événement (asynchrone) survient quand une réponse à une demande (synchrone) était attendue. Si cela arrive dans la pratique (non habituel) alors les fonctions de demande d'état <B>MGR</B> doivent être intégrées avec votre boucle de manipulation d'événement.</P> <P>La seule fonction manquante pour les dessins dans le protocole <B>MGR</B> est celle de remplissage de surfaces autres que les rectangles. Il y a un nouveau code pour manipuler la carte des couleurs globale, et aussi pour l'allocation et la délivrance des indices de couleur appartenant à chaque fenêtre. Si vous voulez fouiller dans les progammes serveurs, vous trouverez le pilote de souris dans <CODE>mouse.*</CODE> et <CODE>mouse_get</CODE>, les abominables choses concernant l'interface clavier dans <CODE>kbd.c</CODE>, et l'interface vidéo dans les répertoires <CODE>src/libbitblit/*</CODE>. La procédure principale, plutôt l'initialisation, et la boucle d'entrée de niveau supérieur sont dans <CODE>mgr.c</CODE>, enfin l'interprétation des séquences d'échappement dans <CODE>put_window.c</CODE>.</P> <P></P> <HR> <P> Chapitre <A HREF="MGR-HOWTO-6.html">suivant</A>, Chapitre <A HREF="MGR-HOWTO-4.html">Précédent</A> <P> Table des matières de <A HREF="MGR-HOWTO.html#toc5">ce chapitre</A>, <A HREF="MGR-HOWTO.html#toc">Table des matières</A> générale</P> <P> <A HREF="MGR-HOWTO.html">Début</A> du document, <A HREF="#0"> Début de ce chapitre</A></P> </BODY> </HTML>