<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
 <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 <META NAME="GENERATOR" CONTENT="lfparser_2.46">
 <META NAME="LFCATEGORY" CONTENT="SoftwareDevelopment">
 <link rel="icon" href="../../common/images/lf-16.png" type="image/png">
 <TITLE>lf332, SoftwareDevelopment: Programmazione di GUI con GTK - parte 3</TITLE>
<style type="text/css">
<!--
 td.top {font-family: Arial,Geneva,Verdana,Helvetica,sans-serif; font-size:12 }
 pre { font-family:monospace,Courier }
 pre.code { font-family:monospace,Courier;background-color:#aedbe8; }
 p.cl { color:#EE9500 }
 a.nodec { text-decoration:none }
 p.trans { font-size:8pt; text-align:right }
 p.clbox { width:50%; alignment:center; background-color:#FFD700; 
           border-style:none; border-width:medium; border-color:#FFD700; 
           padding:0.5cm;  text-align:center }
 p.code { width:80%; alignment:center; background-color:#aedbe8; 
          border-style:none; border-width:medium; border-color:#aedbe8; 
          padding:0.1cm;  text-align:left }
 p.foot { background-color:#AAAAAA; color:#FFFFFF; border-style:none; 
          border-width:medium; border-color:#AAAAAA; padding:0.5cm ; 
          margin-top:0.1cm; margin-right:1cm; margin-left:1cm; 
          text-align:center }
 .mark  { background-color:#e6e6ff }
-->
</style>
 
</HEAD>
<BODY bgcolor="#ffffff" text="#000000">
 <!-- this is generated html code. NEVER use this file for your
 translation work. Instead get the file with the same article number
 and .meta.shtml in its name. Translate this meta file and then
 use lfparser program to generate the final article -->
 <!-- lfparser can be obtained from http://main.linuxfocus.org/~guido/dev/lfparser.html -->

<!-- this is used by a number of tools:
 =LF=AUTHOR: &Ouml;zcan     G&uuml;ng&ouml;r
 =LF=CAT___: SoftwareDevelopment
 =LF=TITLE_: Programmazione di GUI con GTK - parte 3
 =LF=NUMBER: 332
 =LF=ANAME_: article332.shtml
 -->

<!-- 2pdaIgnoreStart -->

<!-- start navegation bar, style=2 -->
 <!-- top navegation bar -->
 <TABLE summary="topbar_1" cellspacing="0" cellpadding="0" border="0" align="center" width="90%">
   <TR bgcolor="#2e2292">
     <TD class="top"><TABLE summary="topbar_1_logo" cellspacing="0" cellpadding="0" border="0" width=
       "100%">
         <TR><TD width="319"><IMG src="../../common/images/logolftop_319x45.gif"
           alt="[LinuxFocus-icon]" width="319" height="45" align="left" 
           border="0"></TD>

           <TD class="top">
             <TABLE summary="topbar_1_links" width="100%">
               <TR align="right">
                 <TD class="top">
                 <A class="nodec" href="index.shtml"><FONT color=
                 "#DDDDDD" size="2">&lt;--</FONT></A> &nbsp;| 
                 <A class="nodec" href="../index.shtml"><FONT color=
                 "#DDDDDD" size="2">Home</FONT></A> &nbsp;| 
                 <A class="nodec" href="../map.html"><FONT color=
                 "#DDDDDD" size="2">Mappa</FONT></A> &nbsp;| 
                 <A class="nodec" href="../indice.html"><FONT color=
                 "#DDDDDD" size="2">Indice</FONT></A> &nbsp;| 
                 <A class="nodec" href="../Search/index.shtml"><FONT color=
                 "#DDDDDD" size="2">Cerca</FONT></A> </TD>
               </TR>

               <TR align="right">
                 <TD class="top">
                   <HR width="100%" noshade size="1">
                 </TD>
               </TR>
             </TABLE>
           </TD>
         </TR>
       </TABLE>
     </TD>
   </TR>
 </TABLE>
 <!-- end top navegation bar -->
 <!-- blue bar -->
 <TABLE summary="topbar_2" cellspacing="0" cellpadding="0" border="0" align="center"
 width="90%">
   <TR bgcolor="#00ffff">
     <TD><IMG src="../../common/images/transpix.gif" width="1" height=
     "2" alt=""></TD>
   </TR>
 </TABLE>
 <!-- end blue bar -->
 <!-- bottom navegation bar -->
 <TABLE summary="topbar_3" cellspacing="0" cellpadding="0" border="0" align="center"
 width="94%">
   <TR bgcolor="#000000">
     <TD>
       <TABLE summary="topbar_3_links" cellspacing="0" cellpadding="1" border="0" width=
       "100%">
         <TR align="center">
           <TD WIDTH="20%"><A class="nodec" href="../News/index.shtml"><FONT color=
           "#FFFFFF">News</FONT></A> </TD>
           <TD WIDTH="5%"><FONT color="#FFFFFF">|</FONT> </TD>
           <TD WIDTH="20%"><A class="nodec" href="../Archives/index.html"><FONT color=
           "#FFFFFF">Archivo</FONT></A> </TD>
           <TD WIDTH="5%"><FONT color="#FFFFFF">|</FONT> </TD>
           <TD WIDTH="20%"><A class="nodec" href="../Links/index.html"><FONT color=
           "#FFFFFF">Link</FONT></A> </TD>
           <TD WIDTH="5%"><FONT color="#FFFFFF">|</FONT> </TD>
           <TD WIDTH="20%"><A class="nodec" href="../aboutus.html"><FONT color=
           "#FFFFFF">Cose LF</FONT></A> </TD>
         </TR>
       </TABLE>
     </TD>
   </TR>
 </TABLE>
 <!-- end bottom navegation bar -->
<!-- stop navegation bar -->

<!-- SSI_INFO -->

<!-- tr_staticssi include virtual -->
<!-- tr_staticssi exec cmd -->
<!-- addedByLfdynahead ver 1.5 --><TABLE ALIGN="right" border=0><TR><TD ALIGN="right"><FONT SIZE="-1" FACE="Arial,Helvetica">Questo documento &egrave; disponibile in: <A href="../../English/March2004/article332.shtml">English</a> &nbsp;<A href="../../Castellano/March2004/article332.shtml">Castellano</a> &nbsp;<A href="../../ChineseGB/March2004/article332.shtml">ChineseGB</a> &nbsp;<A href="../../Deutsch/March2004/article332.shtml">Deutsch</a> &nbsp;<A href="../../Francais/March2004/article332.shtml">Francais</a> &nbsp;<A href="../../Italiano/March2004/article332.shtml">Italiano</a> &nbsp;<A href="../../Nederlands/March2004/article332.shtml">Nederlands</a> &nbsp;<A href="../../Russian/March2004/article332.shtml">Russian</a> &nbsp;<A href="../../Turkce/March2004/article332.shtml">Turkce</a> &nbsp;</FONT></TD></TR></TABLE><br>
 


<!-- SSI_INFO STOP -->
<!-- 2pdaIgnoreStop -->

<!-- SHORT BIO ABOUT THE AUTHOR -->
<TABLE ALIGN=LEFT BORDER=0  WIDTH="190" summary="about the author">
<TR>
<TD>

<img src="../../common/images/OzcanGungor.jpg" alt=
    "Ozcan Gungor" width="114" height="147">
<BR>   &Ouml;zcan G&uuml;ng&ouml;r <br> <small>&lt;ozcangungor(at)netscape.net&gt;</small>
<BR><BR>
<I>L'autore:</I><BR>
<!-- aboutauthor_start -->

    Attualmente sto facendo il servizio militare come amministratore di
    sistema e programmatore web con Linux e Oracle.

    
<!-- aboutauthor_stop -->
<!-- TRANSLATED TO it -->
<BR><BR><I>Tradotto in Italiano da:</I><BR>
Alessandro Pellizzari <small>&lt;alex(at)neko.it&gt;</small>
<br>
<!--
 =LF=TRANSTO=it: Alessandro Pellizzari
-->
<!-- TRANSLATED TO STOP -->
<BR><i>Contenuto</i>:
<UL>
  <LI><A HREF="#332lfindex0">Toggle Button</A></LI>
  <LI><A HREF="#332lfindex1">Check Button</A></LI>
  <LI><A HREF="#332lfindex2">Label (Etichette)</A></LI>
  <LI><A HREF="#332lfindex3">ToolTip</A></LI>
  <LI><A HREF="#332lfindex4">
     Combo Box</A></LI>
  <LI><A HREF="http://cgi.linuxfocus.org/cgi-bin/lftalkback?anum=332">Discussioni su quest'articolo</A></LI>
</UL>

</TD></TR></TABLE>
<!-- HEAD OF THE ARTICLE -->
<br>&nbsp;
<table border="0"><tr><td>
<H2>Programmazione di GUI con GTK - parte 3</H2>
 <img src="../../common/images/illustration295.jpg" alt="GTK"
    width="195" height="172">
<!-- ABSTRACT OF THE ARTICLE -->
<P><i>Premessa</i>:
<P>
<!-- articleabstract_start -->
<p>
    In questa serie di articoli impareremo come scrivere interfacce grafiche
    (GUI) usando GTK. Non ho idea di quanto durer&agrave;. Per capire questi articoli
    dovete conoscere le seguenti cose riguardo la programmazione in C:</p><ul><li>Variabili</li><li>Funzioni</li><li>Puntatori</li></ul>
    Si raccomanda di leggere gli articoli precedenti:<br><a href="../May2003/article295.shtml">Programmazione GUI
    conGTK</a>,<br><a href="../July2003/article303.shtml">Programmazione GUI
    con GTK - parte 2</a> .<br>

     Questo articolo &egrave; un po' pi&ugrave; corto degli altri perch&eacute; sto facendo il
     servizio militare.<br>
<!-- articleabstract_stop -->

<br><!-- HR divider --><center><font color="#8282e0"><b>_________________ _________________ _________________</b></font></center><br>
</td></tr></table>
<!-- BODY OF THE ARTICLE -->


    <A NAME="332lfindex0">&nbsp;</A>
<H3>Toggle Button</H3>


    <p>Questo bottone assomiglia a un normale bottone ma ha due stati: premuto
    o non premuto. Per creare un toggle button si deve usare una delle seguenti
    funzioni:</p>
<pre class="code">
GtkWidget *toggle=gtk_toggle_button_new(void);
GtkWidget *toggle=gtk_toggle_button_new_with_label(const gchar *label);
</pre>

	<p>La prima crea un toggle button senza un'etichetta (label), mentre
	la seconda aggiunge una stringa come etichetta al bottone.<br>

	Potete impostare lo stato con la seguente funzione:<br>
    </p>
<pre class="code">
gtk_toggle_button_set_active (GtkToggleButton *toggle_button,
                              gboolean is_active);
</pre>

    <p>dove <i>toggle_button</i> &egrave; il bottone di cui volete cambiare lo stato
    e <i>is_active</i> &egrave; lo stato (0 or 1). Quando &egrave; 0 il pulsante &egrave; "non
    premuto"; quando &egrave; 1 il pulsante &egrave; "premuto".</p>

    <p>Per conoscere lo stato del pulsante si pu&ograve; usare questa funzione:</p>
<pre class="code">
gboolean gtk_toggle_button_get_active(GtkToggleButton *button);
</pre>

    <p>L'evento "toggled" pu&ograve; essere collegato a un bottone toggle.</p>

    <p>Ecco un esempio:</p>
<pre class="code">
#include &lt;gtk/gtk.h&gt;
void togg(GtkWidget *widget, gpointer *data){
   if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data)))
    g_print("Lo stato &egrave; 1\n");
   else
    g_print("Lo stato &egrave; 0\n");
}

int main( int argc,char *argv[] )
   {

   GtkWidget *window;
   GtkWidget *button;

   gtk_init (&amp;argc, &amp;argv);

   /* Create a new window */
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_title (GTK_WINDOW (window), "Toggle Button");

   /* Connect destroy event to the window. */
   gtk_signal_connect (GTK_OBJECT (window), "destroy",
                       GTK_SIGNAL_FUNC(gtk_main_quit), NULL);

   /* Creates a toggle button */
   button=gtk_toggle_button_new_with_label("Sono un toggle button");

   /* Add the button to window */
   gtk_container_add(GTK_CONTAINER(window),button);

   /* Connect "toggled" event to the button */
   gtk_signal_connect (GTK_OBJECT (button), "toggled",
                       GTK_SIGNAL_FUNC(togg),(gpointer *)button);

   gtk_widget_show(button);
   gtk_widget_show (window);

   gtk_main ();
   return(0);
}
</pre>

    <A NAME="332lfindex1">&nbsp;</A>
<H3>Check Button</H3>


    <p>Il check button (conosciuto anche come check box) &egrave; una sotto-classe
    del toggle button. Pu&ograve; essere usato per scegliere diverse opzioni.<br>
	Per creare un check button si usano le seguenti funzioni:</p>
<pre class="code">
GtkWidget* gtk_check_button_new (void);
GtkWidget* gtk_check_button_new_with_label (const gchar *label);
</pre>

    <p>Funzionano allo stesso modo delle rispettive funzioni per i toggle button.</p>

    <p>Esempio :</p>
<pre class="code">
#include &lt;gtk/gtk.h&gt;
void togg(GtkWidget *widget, gpointer *data){
   if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data)))
       g_print("Lo stato &egrave; 1\n");
   else
    g_print("Lo stato &egrave; 0\n");
}

int main( int argc,char *argv[] )
{

    GtkWidget *window;
    GtkWidget *button;

    gtk_init (&amp;argc, &amp;argv);

    /* Create a new window */
    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title (GTK_WINDOW (window), "Check Button");

    /* Connect destroy event to the window. */
    gtk_signal_connect (GTK_OBJECT (window), "destroy",
                        GTK_SIGNAL_FUNC(gtk_main_quit), NULL);

    /* Creates a check button */
    button=gtk_check_button_new_with_label("Sono un check button");

    /* Add the button to window */
    gtk_container_add(GTK_CONTAINER(window),button);

    /* Connect "toggled" event to the button */
    gtk_signal_connect (GTK_OBJECT (button), "toggled",
                        GTK_SIGNAL_FUNC(togg), (gpointer *)button);
    gtk_widget_show(button);
    gtk_widget_show (window);

    gtk_main ();
    return(0);
}
</pre>

    <A NAME="332lfindex2">&nbsp;</A>
<H3>Label (Etichette)</H3>


    <p>Le label permettono di inserire testo ovunque in una finestra.<br>
    Per creare una label si usa la funzione:</p>

<pre class="code">
GtkWidget* gtk_label_new(const gchar *text);
</pre>

    <p>Con la funzione</p>
<pre class="code">
gtk_label_set_text(GtkLabel *label, gchar *text);
</pre>

    <p>potete cambiare la stringa sull'etichetta in qualsiasi momento.</p>
<pre class="code">
gtk_label_set_justify(GtkLabel *label, GtkJustification jtype);
</pre>

    <p>La funzione gtk_label_set_justify &egrave; usata per giustificare il testo
    nell'etichetta.
    <i>jtype</i> pu&ograve; essere</p>

    <ul>
      <li>GTK_JUSTIFY_LEFT per posizionare il testo a sinistra,</li>

      <li>GTK_JUSTIFY_RIGHT per posizionare il testo a destra,</li>

      <li>GTK_JUSTIFY_CENTER per centrarlo,</li>

      <li>GTK_JUSTIFY_FILL per fare in modo che copra l'intera etichetta</li>
    </ul>
<pre class="code">
gtk_label_set_line_wrap (GtkLabel *label,gboolean wrap);
</pre>

    <p>&egrave; usato per permettere di spezzare il testo quando &egrave; pi&ugrave; lungo dello
    spazio che dovrebbe contenerlo. Quando <i>wrap</i> &egrave; 1, il testo andr&agrave; a
    capo sulla prossima linea, altrimenti no.
</p>
<pre class="code">
gtk_label_get(GtkLabel *label, gchar **str)
</pre>

    <p>viene usata per ricavare il testo contenuto in un'etichetta e metterlo
    nella variabile <i>str</i>.</p>

    <A NAME="332lfindex3">&nbsp;</A>
<H3>ToolTip</H3>


    <p>I Tooltip sono testi che appaiono quando il mouse si ferma su un widget.
    Per esempio potete impostare un "tip" per un pulsante che dica "spedisci le
    informazioni" quando il mouse si ferma sopra il pulsante.</p>

    <p>Per farlo bisogna creare un widget GtkToolTips prima:</p>
<pre class="code">
GtkToolTips* gtk_tooltips_new();
</pre>

    <p>E quindi attaccarlo a un widget:</p>
<pre class="code">
gtk_tooltips_set_tip(GtkTooltips *tooltips, GtkWidget *widget,
                     const gchar *tip_text,const gchar *tip_private);
</pre>

    <p>Un piccolo esempio:</p>
<pre class="code">
#include &lt;gtk/gtk.h&gt;
int main( int argc,char *argv[] )
{
    GtkWidget *window;
    GtkWidget *button;
    GtkTooltips *tip;

    gtk_init (&amp;argc, &amp;argv);

    /* Create a new window */
    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title (GTK_WINDOW (window), "Tooltips");

    /* Connect destroy event to the window. */
    gtk_signal_connect (GTK_OBJECT (window), "destroy",
                        GTK_SIGNAL_FUNC (gtk_main_quit), NULL);

    /* Creates a button */
    button=gtk_button_new_with_label("Sono un pulsante");

    /* Add the button to window */
    gtk_container_add(GTK_CONTAINER(window),button);

    /* Creates a tooltips*/
    tip=gtk_tooltips_new();

    /* Attache this tooltips to button with text*/
    gtk_tooltips_set_tip(tip, button, "Clickami!",NULL);

    gtk_widget_show(button);
    gtk_widget_show (window);

    gtk_main ();
    return(0);
}
</pre>

    <p>Qualche altra funzione:</p>
<pre class="code">
gtk_tooltips_enable (GtkTooltips *tooltips);
</pre>

    <p>Attiva il tooltip.</p>
<pre class="code">
gtk_tooltips_disable (GtkTooltips *tooltips);
</pre>

    <p>Disattiva il tooltip.</p>

    <p>Per ricavare i dati del tooltip di qualsiasi widget abbiamo bisogno di</p>
<pre class="code">
GtkTooltipsData* gtk_tooltips_get_data(GtkWidget *widget);
</pre>

    <p>GtkTooltipsData &egrave; una struct fatta in questo modo:
    </p>
<pre class="code">
struct _GtkTooltipsData
{
   GtkTooltips *tooltips;
   GtkWidget *widget;
   gchar *tip_text;
   gchar *tip_private;
   GdkFont *font;
   gint width;
   GList *row;
};
</pre>
    Per impostare il ritardo di apparizione del testo,
<pre class="code">
gtk_tooltips_set_delay (GtkTooltips *tip, guint delay)
</pre>

    <A NAME="332lfindex4">&nbsp;</A>
<H3><br>
     Combo Box</H3>


    <p>Una combo box &egrave; un campo di testo modificabile combinato con un menu
    a tendina. Si pu&ograve; inserire un valore o sceglierlo dal menu.</p>

    <p>Si pu&ograve; creare una combo box con</p>
<pre class="code">
GtkWidget *gtk_combo_new();
</pre>

    <p>E ci serve una lista di opzioni sotto forma di struct GList.</p>
<pre class="code">
GList *glist=NULL;
</pre>

    <p>Si devono aggiungere le opzioni alla lista con</p>
<pre class="code">
GList *g_list_append(GList *list, gchar *option);
</pre>

    <p>Quindi si aggiunge la lista alla combo box</p>
<pre class="code">
gtk_combo_set_popdown_strings(GtkCombo *combo, GList *List);
</pre>

    <p>La combo box &egrave; pronta. Per leggere l'opzione selezionata usate:</p>
<pre class="code">
gchar *gtk_entry_get_text(GtkEntry *entry);
</pre>

    <p><i>entry</i> &egrave; GTK_ENTRY(GTK_COMBO(combo)-&gt;entry)) in
    questo caso.</p>
<pre class="code">
gtk_combo_set_use_arrows(GtkCombo *combo,gint val);
</pre>

	<p>Questa funzione viene usata per abilitare/disabilitare i cursori su/gi&ugrave;
	sulla tastiera per cambiare i valori nella combo box. Quando <i>val</i>
	&egrave; 0, questi non funzionano, altrimenti permettono di cambiare il valore.
	Ma quando il valore della combo &egrave; diverso da uno dei valori della lista,
	<b>i tasti non funzionano</b>.</p>
<pre class="code">
gtk_combo_set_use_arrows_always(GtkCombo *combo,gint val);
</pre>

    <p>Questa funzione &egrave; uguale a <i>gtk_combo_set_use_arrows</i>
    ma quando il valore della combo &egrave; diverso dai valori della lista
    <b>i tasti funzionano</b>.</p>
<pre class="code">
gtk_combo_set_value_in_list(GtkCombo *combo, gboolean val,
                             gboolean ok_if_empty);
</pre>

    <p>Quando <i>val</i> &egrave; 1, potete inserire un valore nella lista. Quando
    <i>ok_if_empty</i> &egrave; 1, il valore pu&ograve; essere vuoto.</p>

<pre class="code">
#include &lt;gtk/gtk.h&gt;
void act(GtkWidget *widget, gpointer *data){
   g_print((gchar *)data);
}

int main( int argc,char *argv[] ) {
   GtkWidget *window;
   GtkWidget *combo;
   GtkWidget *button;
   GtkWidget *box;
   GList *list=NULL;

   list=g_list_append(list,"Slackware");
   list=g_list_append(list,"RedHat");
   list=g_list_append(list,"SuSE");

   gtk_init (&amp;argc, &amp;argv);

   /* Create a new window */
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_title (GTK_WINDOW (window), "Combo Box");

   /* Connect destroy event to the window. */
   gtk_signal_connect (GTK_OBJECT (window), "destroy",
                       GTK_SIGNAL_FUNC(gtk_main_quit), NULL);

   /* Create a new horizontal box */
   box=gtk_hbox_new(1,0);
   gtk_container_add(GTK_CONTAINER(window),box);

   /* Creates a combo box */
   combo=gtk_combo_new();

   /* Sets the list */
   gtk_combo_set_popdown_strings(GTK_COMBO(combo),list);

   /* Enables up/down keys change the value. */
   gtk_combo_set_use_arrows_always(GTK_COMBO(combo),1);

   gtk_box_pack_start(GTK_BOX(box), combo,1,1,1);

   button=gtk_button_new_with_label("Scrivi");
   gtk_signal_connect(GTK_OBJECT(button),"clicked",GTK_SIGNAL_FUNC(act),
             gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(combo)-&gt;entry)));
   gtk_box_pack_start(GTK_BOX(box), button,1,1,1);

   gtk_widget_show(box);
   gtk_widget_show(combo);
   gtk_widget_show(button);
   gtk_widget_show (window);

   gtk_main ();
   return(0);
   }
</pre>
    Ogni commento &egrave; gradito.
  



<!-- 2pdaIgnoreStart -->
<A NAME="talkback">&nbsp;</a>
<h2>Discussioni su quest'articolo</h2>
ogni articolo possiede una sua pagina di discussione, da questa pagina puoi inviare un commento o leggere quelli degli altri lettori:
<center>
<table border="0"  CELLSPACING="2" CELLPADDING="1" summary="tb-button-outerpart">
 <tr BGCOLOR="#C2C2C2"><td align=center>
  <table border="3"  CELLSPACING="2" CELLPADDING="1" summary="tb-button">
   <tr BGCOLOR="#C2C2C2"><td align=center>
    <A href="http://cgi.linuxfocus.org/cgi-bin/lftalkback?anum=332"><b>&nbsp;pagina di discussione&nbsp;</b></a>
   </td></tr></table>
</td></tr></table>
</center>

<HR size="2" noshade>
<a style="background-color:#bdc6d5" href="index.shtml">&lt;--, torna all'indice di questo numero </a><br><HR size="2" noshade>
<!-- ARTICLE FOOT -->
<CENTER><TABLE WIDTH="98%" summary="footer">
<TR><TD ALIGN=CENTER BGCOLOR="#bdc6d5" WIDTH="50%">
<A HREF="../../common/lfteam.html">Webpages maintained by the LinuxFocus Editor team</A>
<BR><FONT COLOR="#FFFFFF">&copy; &Ouml;zcan     G&uuml;ng&ouml;r, <a href="../../common/copy.html">FDL</a> <BR><a href="http://www.linuxfocus.org">LinuxFocus.org</a></FONT>
</TD>
<TD BGCOLOR="#bdc6d5">
<!-- TRANSLATION INFO -->
<font size=2>Translation information:</font>
<TABLE summary="translators">
  <tr><td><font size="2">tr --&gt; -- : &Ouml;zcan G&uuml;ng&ouml;r <small>&lt;ozcangungor(at)netscape.net&gt;</small></font></td></tr>
  <tr><td><font size="2">en --&gt; tr: &Ouml;zcan G&uuml;ng&ouml;r &lt;ozcangungor(at)netscape.net&gt;</font></td></tr>
  <tr><td><font size="2">en --&gt; it: Alessandro Pellizzari &lt;alex(at)neko.it&gt;</font></td></tr>
</TABLE>
</TD>
</TR></TABLE></CENTER>
<p><font size=1>2004-07-31, generated by lfparser version 2.46</font></p>
<!-- 2pdaIgnoreStop -->
</BODY>
</HTML>