Sophie

Sophie

distrib > Mandriva > 9.0 > i586 > by-pkgid > 0d5cd12c82d627a82c59047e1ba7b8a9 > files > 727

howto-html-fr-9.0-0.2mdk.noarch.rpm

<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&eacute;pertoire doc sous forme de fichier exploitable par
troff/nroff.
Il traite de concepts g&eacute;n&eacute;raux, des appels fonction/macro contr&ocirc;lant
le serveur, d'un exemple d'application, avec index et glossaire.
Porter le code client utilis&eacute; avec les anciennes versions de MGR demande
le remplacement de
<BLOCKQUOTE><CODE>
<PRE>
    #include &lt;mgr/mgr.h&gt;
</PRE>
</CODE></BLOCKQUOTE>

par
<BLOCKQUOTE><CODE>
<PRE>
    #include &lt;term.h&gt;
    #include &lt;dump.h&gt;
</PRE>
</CODE></BLOCKQUOTE>

et des clients utilisant les vieux B_XOR, B_CLEAR, etc. au lieu de BIT_XOR, BIT_CLR
et autres peuvent &ecirc;tre adapt&eacute;s en &eacute;crivant~:
<BLOCKQUOTE><CODE>
<PRE>
    #define OLDMGRBITOPS
    #include &lt;mgr/mgr.h&gt;
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Compiler le code client demande en g&eacute;n&eacute;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&ccedil;u de l'interactivit&eacute; 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&egrave;que interface <B>MGR</B>
en Elisp.
L'habitude qui consiste &agrave; s'enqu&eacute;rir de l'&eacute;tat du serveur a pour risque
de se casser la figure si le client attend en m&ecirc;me temps un grand volume
de notification d'&eacute;v&eacute;nements. Ce probl&egrave;me arrive lorsque une notification
d'&eacute;v&eacute;nement (asynchrone) survient quand une r&eacute;ponse &agrave; une demande
(synchrone) &eacute;tait attendue. Si cela arrive dans la pratique (non habituel)
alors les fonctions de demande d'&eacute;tat <B>MGR</B> doivent &ecirc;tre int&eacute;gr&eacute;es
avec votre boucle de manipulation d'&eacute;v&eacute;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&eacute;livrance des indices de couleur appartenant
&agrave; chaque fen&ecirc;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&eacute;o dans les r&eacute;pertoires <CODE>src/libbitblit/*</CODE>.
La proc&eacute;dure principale, plut&ocirc;t l'initialisation, et la boucle d'entr&eacute;e
de niveau sup&eacute;rieur sont dans <CODE>mgr.c</CODE>, enfin l'interpr&eacute;tation des
s&eacute;quences d'&eacute;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&eacute;c&eacute;dent</A>
<P>
Table des mati&egrave;res de <A HREF="MGR-HOWTO.html#toc5">ce chapitre</A>,
 <A HREF="MGR-HOWTO.html#toc">Table des mati&egrave;res</A> g&eacute;n&eacute;rale</P>
<P>
<A HREF="MGR-HOWTO.html">D&eacute;but</A> du document,
 <A HREF="#0"> D&eacute;but de ce chapitre</A></P>
</BODY>
</HTML>