<chapter id="kdm-themes">
  <title
>Creant temes per a la benvinguda de &kdm;</title>

  <para
>En aquesta secció es descriu la creació de temes per a la benvinguda de tema. Per exemple inclou captures de pantalla, veure els temes instal·lats estàndards i els temes <ulink type="http" url="http://www.kde-look.org/index.php?xcontentmode=40"
>del lloc web de tema</ulink
>. </para>

  <sect1 id="theme-overview">
    <title
>Vista general dels temes</title>

    <para
>Els temes de &kdm; es poden crear mitjançant la creació d'un fitxer XML que segueixi l'especificació en <filename
>$<envar
>KDEDIR</envar
>/share/apps/doc/kdm/greeter.dtd</filename
>. Els fitxers de tema es desen en el directori <filename class="directory"
>$<envar
>KDEDIR</envar
>/share/apps/kdm/themes/<replaceable
>nom_tema</replaceable
></filename
>. El directori de tema ha de contenir un fitxer anomenat <filename
>KdmGreeterTheme.desktop</filename
> que tindrà un format similar a altres fitxers <filename class="extension"
>.desktop</filename
> i s'assembla a: <programlisting
>[KdmGreeterTheme]
Greeter=cercles.xml
Name=Cercles
Description=Tema amb cercles blaus
Author=Bond, James Bond
Copyright=(c) 2002 Bond, James Bond
Screenshot=captura_de_pantalla.png
</programlisting>
    </para>

    <para
>Els camps <literal
>Name</literal
>, <literal
>Description</literal
>, <literal
>Author</literal
> i <literal
>Copyright</literal
> poden ser traduïts igual que en altres fitxers <filename class="extension"
>.desktop</filename
>. Tots els fitxers que s'esmenten han d'estar al mateix directori de tema. El camp <literal
>Screenshot</literal
> apunta a un fitxer que ha de ser una captura de pantalla 200x150 del tema en acció (està bé no tenir-ne una, però és més bonic de cara a l'usuari). L'entrada <literal
>Greeter</literal
> apunta a un fitxer XML que conté la descripció del tema. </para>

    <!--
    <para>
      Once a theme is installed, it can be tested with the
      <command
>gdmthemetester</command
> program.  This program assumes that
      the X server supports a nested server command.  This command takes two
      arguments, first the environment that should be used.  The environment
      can be one of the following values: console, console-timed, flexi,
      remote-flexi, or xdmcp.  The &quot;console&quot; option tests the
      theme as it would be shown on an attached display.  The
      &quot;console-timed&quot; option tests the theme as it would be shown
      on an attached display with timed login enabled.  The &quot;flexi&quot;
      option tests the theme as it would be shown on an attached flexible
      display (such as started via Xnest).  Finally, the &quot;xdmcp&quot;
      option tests the theme as it would be shown for remote XDMCP 
      displays.  The second argument is the theme name.  For example, to 
      test how the circles theme would look in XDMP remote display mode,
      you would run the following command:
    </para>

<cmdsynopsis>
  <command
>gdmthemetester</command
> <arg
>xdmcp</arg
> <arg
><replaceable
>circles</replaceable
></arg>
</cmdsynopsis>

    <para>
      When developing a theme, make sure to test all the environments, and
      make sure to test how the caps lock warning looks by pressing the caps
      lock key.  Running <command
>gdmthemetester</command
> is also a good way
      to take screenshots of &kdm; themes.  Simply take a screenshot of the
      theme running in the nested display window.  This can be done in GNOME
      by focusing the nested login window and pressing Alt-PrintScreen.
    </para>
    -->

    <para
>Una vegada que el tema ha estat completament provat, feu-ne un arxiu tar que contingui el directori, ja que serà instal·lat al directori <filename class="directory"
>$<envar
>KDEDIR</envar
>/share/apps/kdm/themes</filename
>. Aquest és el format estàndard per a la distribució de temes de &kdm;. </para>
  </sect1>

  <sect1 id="theme-format">
    <title
>Descripció detallada del format XML del tema</title>

    <sect2 id="greeter-tag">
      <title
>El node de nivell superior</title>

      <para
>Els temes de &kdm; són fitxers XML amb la marca &lt;greeter&gt; en la seva arrel. El node de nivell superior és un <link linkend="item-nodes"
>node d'element</link
> de tipus <literal
>rect</literal
> amb un implícit d'<link linkend="fixed-nodes"
>estructura fixa</link
>. </para>

      <!--
      <para>
        You may specify a Qt GUI style to
        be used with this theme by using the gui-style attribute in the
          greeter tag as in the following example.
 gui-style=&quot;Plastique&quot;
      </para>
      -->

<programlisting
>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE greeter SYSTEM "greeter.dtd"&gt;
&lt;greeter&gt;
[...]
&lt;/greeter&gt;
</programlisting>

      <para
>Inclosa dins de la marca «greeter» que pot estar els nodes descrits en les següents seccions d'aquest document. Alguns d'aquests nodes són contenidors (els nodes «layout», els nodes «item») que alhora poden contenir altres nodes. </para>
    </sect2>

    <sect2 id="item-nodes">
      <title
>Els nodes «item»</title>

      <para
>Un tema de &kdm; es crea mitjançant l'especificació d'una jerarquia de nodes d'element i de disposició. Els nodes d'element poden tenir el següent valor per a l'atribut <literal
>type</literal
>: </para>

      <variablelist>

        <varlistentry>
          <term
>button</term>
          <listitem>
            <para
>Un camp de botó. Aquest camp utilitza un botó de Qt. </para>
            <para
>També és possible crear qualsevol altre element d'acció com un botó d'ajust amb <literal
>button</literal
> i el seu atribut a <literal
>true</literal
>. No obstant, és millor utilitzar els botons de Qt en temes de &kdm; ja que aquests són accessibles a usuaris amb discapacitat. </para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term
>entry</term>
          <listitem>
            <para
>Un estri d'entrada com una línia d'edició o un quadre combinat. Tingueu en compte que aquest només és un marcador de posició pels estris Qt.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term
>label</term>
          <listitem>
            <para
>Una etiqueta de text. Ha de contenir un <link linkend="text-nodes"
>node <literal
>text</literal
></link
> o un <link linkend="stock-nodes"
>node <literal
>stock</literal
></link
> per a especificar el text. </para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term
>list</term>
          <listitem>
            <para
>Un estri navegador de cares.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term
>pixmap</term>
          <listitem>
            <para
>Una imatge de mapa de bits en un format compatible amb Qt, &pex;, PNG, JPEG, TIFF, &etc;</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term
>rect</term>
          <listitem>
            <para
>Un rectangle pla.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term
>svg</term>
          <listitem>
            <para
>Una imatge vectorial en format SVG.</para>
          </listitem>
        </varlistentry>
      </variablelist>

      <para
>Per exemple: <programlisting>
&lt;item type=&quot;label&quot;&gt;
</programlisting
> Un element que actua com un botó: <programlisting
>&lt;item type=&quot;rect&quot; id=&quot;botó_desconnecta&quot; button=&quot;true&quot;&gt;.
</programlisting>
      </para>

      <para
>Per omissió, la pantalla d'accés de &kdm; desapareixerà després de l'autenticació. Això pot produir parpelleig entre la pantalla d'inici de sessió i la sessió. L'atribut <literal
>background</literal
> permet als usuaris especificar quins elements del tema són la imatge de fons. Quan s'usi, aquesta farà que el &kdm; elimini tots els elements de no-fons de la pantalla i mostrarà la resta dels elements <literal
>background</literal
> a la finestra arrel. Això es pot usar per a crear una transició suau entre la pantalla d'inici de sessió i la sessió: <programlisting>
&lt;item type=&quot;rect&quot; background=&quot;true&quot;&gt;
  &lt;normal file="fons.svg"/&gt;
  &lt;pos x=&quot;0&quot; y=&quot;0&quot; width=&quot;100%&quot; height=&quot;-75&quot;/&gt;
&lt;/item&gt;
</programlisting
> Per a utilitzar un fons diferent per a la transició en l'accés que l'utilitzada per a l'accés, el tema ha d'especificar dos nodes d'element (que poden contenir mapes de píxels o imatges SVG, per exemple). L'element que correspon al fons de la benvinguda no hauria de tenir la propietat <literal
>background</literal
>, mentre que l'element que correspon a la transició del fons sí l'ha de tenir. Per exemple: <programlisting
>&lt;?xml version="1.0" encoding=&quot;UTF-8&quot;?&gt;
&lt;!DOCTYPE greeter SYSTEM &quot;greeter.dtd&quot;&gt;
&lt;greeter&gt;
  &lt;item type=&quot;rect&quot; background=&quot;true&quot;&gt;
    &lt;normal file="fons_per_accedir.svg" element="background"/&gt;
    &lt;pos x=&quot;0&quot; y=&quot;0&quot; width=&quot;100%&quot; height=&quot;100%&quot;/&gt;
  &lt;/item&gt;
  &lt;item type=&quot;rect&quot;&gt;
    &lt;normal file="fons_de_benvinguda.svg"/&gt;
    &lt;pos x=&quot;0&quot; y=&quot;0&quot; width=&quot;100%&quot; height=&quot;100%&quot;/&gt;
  &lt;/item&gt;
  [...]
&lt;/greeter&gt;
</programlisting>

      </para>

      <para
>En configuracions multi-pantalla, els temes també poden especificar l'aspecte de les pantalles que no siguin la finestra de benvinguda -però els elements de fons normalment només apareixeran allà-. Per especificar en quina(es) pantalla(es) apareixerà un element, l'atribut <literal
>screen</literal
> es pot utilitzar amb un dels valors <literal
>greeter</literal
>, <literal
>other</literal
> o <literal
>all</literal
>, és a dir, la pantalla de benvinguda està activada, totes les pantalles de benvinguda estan desactivades i activada a totes les pantalles, respectivament. </para>

      <variablelist>
        <para
>Es pot donar un nom a cada element mitjançant l'atribut <literal
>id</literal
>. Algunes identificacions són reconegudes pel &kdm; per a donar als elements una funció especial: </para>

        <!--
        <varlistentry>
          <term
><literal
>list</literal
> items</term>
          <listitem>

            <para>
              List items by default display as lists, but the
              <literal
>combo=&quot;true&quot;</literal
> attribute can be used
              to specify combo box style (combo style supported since &kde; ).
              Some predefined lists may be included in a theme by using the
              following id values.  Customized lists may also be defined,
              which are explained below.
            </para>

            <segmentedlist>
              <?dbhtml list-presentation="table"?>
              <segtitle
>Id</segtitle
><segtitle
>Function</segtitle>

              <seglistitem>
                <seg
>session</seg>
                <seg
>A list of available sessions, which allows the user to
                  pick the session to use.  Supported since &kde; .</seg>
              </seglistitem>

              <seglistitem>
                <seg
>language</seg>
                <seg
>A list of available languages, which allows the user to
                  pick the language to use.  Supported since &kde; .</seg>
              </seglistitem>

            </segmentedlist>
          </listitem>
        </varlistentry>
        -->

        <varlistentry>
          <term
>Els elements <literal
>button</literal
> i els elements amb l'atribut <literal
>button=&quot;true&quot;</literal
>.</term>

          <listitem>
            <para
>Els botons solen desencadenar certes accions. De manera addicional, el &kdm; ocultarà els botons per a les accions que no estiguin disponibles per alguna raó. </para>

            <segmentedlist>
              <?dbhtml list-presentation="table"?>
              <segtitle
>Identificador</segtitle
><segtitle
>Acció</segtitle>

              <seglistitem>
                <seg
>chooser_button</seg>
                <seg
>Executa el selector XDMCP.</seg>
              </seglistitem>

              <!--
              <seglistitem>
                <seg
>custom_cmd_button[0-9]</seg>
                <seg
>Runs the <filename
>n-th</filename
> custom command.</seg>
              </seglistitem>
              -->

              <seglistitem>
                <seg
>disconnect_button</seg>
                <seg
>Desconnecta de la sessió remota.</seg>
              </seglistitem>

              <!--
              <seglistitem>
                <seg
>language_button</seg>
                <seg
>Open the language selection menu.</seg>
              </seglistitem>
              -->

              <!--
              <seglistitem>
                <seg
>halt_button</seg>
                <seg
>Power off the system.</seg>
              </seglistitem>

              <seglistitem>
                <seg
>reboot_button</seg>
                <seg
>Restart the system.</seg>
              </seglistitem>

              <seglistitem>
                <seg
>suspend_button</seg>
                <seg
>Suspend the system.</seg>
              </seglistitem>
              -->

              <seglistitem>
                <seg
>session_button</seg>
                <seg
>Obre el menú de selecció de tipus de sessió.</seg>
              </seglistitem>

              <seglistitem>
                <seg
>system_button</seg>
                <seg
>Obre un menú de llista amb diverses opcions i accions, depenent de la configuració.</seg>
              </seglistitem>
            </segmentedlist>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term
>Els elements <literal
>label</literal
></term>

          <listitem>
            <para
>El &kdm; mostrarà o ocultarà aquestes etiquetes i establirà el seu text en funció de l'estat del diàleg d'inici de sessió. </para>

            <segmentedlist>
              <?dbhtml list-presentation="table"?>
              <segtitle
>Identificador</segtitle
><segtitle
>Funció</segtitle>

              <!--
              <seglistitem>
                <seg
>pam-prompt</seg>
                <seg
>Label that displays the <acronym
>PAM</acronym
> prompt.
                  This is the prompt that <acronym
>PAM</acronym>
                  uses to ask for username, password, etc.</seg>
              </seglistitem>

              <seglistitem>
                <seg
>pam-message</seg>
                <seg
>Label that displays the <acronym
>PAM</acronym
> message.
                  These are messages that <acronym
>PAM</acronym
>/&kdm; gives
                  about state of the account, help about the prompts and other
                  information.</seg>
              </seglistitem>
              -->

              <seglistitem>
                <seg
>pam-error</seg>
                <seg
>Mostra el missatge <guilabel
>Accés erroni</guilabel
>.</seg>
              </seglistitem>

            </segmentedlist>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term
>Encastar elements d'estri</term>

          <listitem>
            <para
>El &kdm; encasta en particular estris Qt en aquests elements. </para>

            <segmentedlist>
              <?dbhtml list-presentation="table"?>
              <segtitle
>Identificador</segtitle
><segtitle
>Funció</segtitle>

              <seglistitem>
                <seg
>user-entry</seg>
                <seg
>Camp d'entrada per a introduir el nom d'usuari.</seg>
              </seglistitem>

              <seglistitem>
                <seg
>pw-entry</seg>
                <seg
>Camp d'entrada per a introduir la contrasenya.</seg>
              </seglistitem>

              <seglistitem>
                <seg
>domain-entry</seg>
                <seg
>Alguns connectors de «conversa» utilitzen aquest camp per a consulta un nom de domini. Si aquest camp està present, els elements encastats relacionats hauran de tenir <link linkend="show-nodes"
>nodes de vista</link
> amb el tipus de <literal
>plugin-domain-entry</literal
>.</seg>
              </seglistitem>

              <seglistitem>
                <seg
>talker</seg>
                <seg
>Aquest element haurà de ser de tipus <literal
>rect</literal
>. Representa la zona «calenta» de la benvinguda: Conté els elements <literal
>label</literal
> i <literal
>entry</literal
> que afecten el procés d'autenticació. Si un cert connector de «conversa» no pot coincidir amb els elements existents amb les seves necessitats, intenta encastar un estri complex amb un disseny propi en aquest element, així torna a definir totalment al «parlador» de temes. Estrictament parlant, els temes de &kdm; no necessiten proveir en absolut d'un disseny de «parlant» propi, com tots els connectors d'autenticació de &kdm; són capaços de fer ús de l'element <literal
>talker</literal
>. </seg>
              </seglistitem>

              <seglistitem>
                <seg
>userlist</seg>
                <seg
>Aquest element haurà de ser de tipus <literal
>list</literal
>. Si la característica llista d'usuaris està habilitada, &kdm; serà encastat a l'estri llista d'usuaris aquí. En cas contrari, aquest element estarà ocult.</seg>
              </seglistitem>

              <seglistitem>
                <seg
>xconsole</seg>
                <seg
>Aquest element haurà de ser de tipus <literal
>rect</literal
>. Si la característica <command
>xconsole</command
> ha estat compilada i habilitada, kdm serà integrat a l'estri registre de consola aquí. En cas contrari, aquest tema restarà ocult.</seg>
              </seglistitem>

            </segmentedlist>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term
>Altres elements</term>

          <listitem>
            <para
>El &kdm; mostrarà o ocultarà aquests elements en funció de la configuració i l'estat actual de la benvinguda. &kdm; no imposa requeriments de tipus sobre seu, però en general es presten a un tipus determinat. </para>

            <segmentedlist>
              <?dbhtml list-presentation="table"?>
              <segtitle
>Identificador</segtitle
><segtitle
>Mostra només quan...</segtitle>

              <seglistitem>
                <seg
>timed-label</seg>
                <seg
>...el temps per a l'inici de sessió està en curs.</seg>
              </seglistitem>

              <seglistitem>
                <seg
>caps-lock-warning</seg>
                <seg
>...el bloqueig de majúscules està activat.</seg>
              </seglistitem>

              <seglistitem>
                <seg
>xauth-warning</seg>
                <seg
>...el &X-Server; no requereix l'autorització de X per a connectar.</seg>
              </seglistitem>

              <!--
              <seglistitem>
                <seg
>pam-error-logo</seg>
                <seg
>... a pam-error message is being displayed.
                  This is useful for displaying an <guiicon
>Attention</guiicon>
                  icon, for example.</seg>
              </seglistitem>
              -->

              <seglistitem>
                <seg
>userlist-rect</seg>
                <seg
>...la llista d'usuaris està habilitada. Incloent l'element <literal
>userlist</literal
> en aquesta, és possible crear quelcom a un marc al voltant de la llista i només mostrar-lo quan es mostri aquesta.</seg>
              </seglistitem>

              <seglistitem>
                <seg
>xconsole-rect</seg>
                <seg
>...la <command
>xconsole</command
> compilada està habilitada. Anàleg a <literal
>userlist-rect</literal
>.</seg>
              </seglistitem>

            </segmentedlist>
          </listitem>
        </varlistentry>

      </variablelist>

    </sect2>

    <sect2 id="layout-nodes">
      <title
>Els nodes «layout container»</title>

      <para
>Els nodes de disseny apareixen dins dels nodes d'element i altra vegada als nodes d'element contenidor. El tipus de node de disseny determina la disposició dels seus nodes fills. Un node d'element pot contenir un node de disseny de cada tipus. </para>

      <sect3 id="box-nodes">
        <title
>Els nodes «box»</title>

        <para
>Els nodes «box» disposen automàticament als seus fills en una fila. Que s'especifiquen a continuació: <programlisting>
&lt;box orientation=&quot;<replaceable
>alineació</replaceable
>&quot; min-width=&quot;<replaceable
>núm</replaceable
>&quot; min-height=&quot;<replaceable
>núm</replaceable
>&quot;
    xpadding=&quot;<replaceable
>núm</replaceable
>&quot; ypadding=&quot;<replaceable
>núm</replaceable
>&quot; spacing=&quot;<replaceable
>núm</replaceable
>&quot;
    homogeneous=&quot;<replaceable
>lògic</replaceable
>&quot;&gt;
</programlisting
> En cas de <replaceable
>núm</replaceable
> significa el nombre de píxels i <replaceable
>lògic</replaceable
> serà o <literal
>true</literal
> o <literal
>false</literal
>. El valor <replaceable
>alineació</replaceable
> pot ser <literal
>horizontal</literal
> o <literal
>vertical</literal
>. Si sortiu de qualsevol atribut desactivat, es passarà per omissió a zero per als números, <literal
>false</literal
> per a lògic i <literal
>vertical</literal
> per a l'orientació. </para>

        <para
>La separació és la distància entre els elements fill veïns. El farciment és el marge exterior de la caixa. Si la caixa és homogènia, la mateixa quantitat d'espai serà assignat a cada element fill. </para>
      </sect3>

      <sect3 id="fixed-nodes">
        <title
>Els nodes «fixed»</title>

        <para
>Fix és un contenidor que té els seus fills establerts en coordenades precises. La mida d'aquest contenidor és el rectangle més petit que conté tots els fills. Fix no té atributs extra i pel que s'usa com: <programlisting>
&lt;fixed&gt;
</programlisting
> Després situeu els altres elements amb els nodes de posició correcta dins seu. </para>
      </sect3>

    </sect2>

    <sect2 id="position-nodes">
      <title
>Els nodes «position»</title>

      <para
>Cada element pot especificar la seva posició i mida a través del node <literal
>pos</literal
>. Per exemple: <programlisting
>&lt;pos x=&quot;0&quot; y=&quot;4&quot; width=&quot;100%&quot; height=&quot;100%&quot;/&gt;
</programlisting>
      </para>

      <para
>Si la mida no s'especifica, l'element serà de mida «natural», anomenat el consell de mida. Tingueu en compte que no tots els elements tenen un consell de mida útil. </para>

      <para
>La posició i la mida es poden donar en percentatge i es calcula en relació amb la mida del contenidor encastat en aquest cas. Per als elements del nivell superior és el percentatge de tota la pantalla. Afegint circumflexos (<literal
>^</literal
>) a l'especificació de mida és possible modificar-lo per a ser relativa a la mida de l'envolcall de l'element envolvent del tema i així successivament. </para>

      <para
>Si l'element conté una caixa, <literal
>width</literal
> i <literal
>height</literal
> pot ser especificat per a ser <literal
>box</literal
> en el sentit que se suposa que són l'amplada i l'alçada de la caixa, és a dir, els elements de la caixa més el farciment. </para>

      <para
>Tant <literal
>width</literal
> com <literal
>height</literal
> es poden especificara ser <literal
>scale</literal
> en el sentit que s'han d'escalar d'acord amb l'altra dimensió de l'escala relativa al seu consell de mida. Utilitzeu aquesta opció per a preservar la relació d'aspecte de les imatges a escala de forma automàtica. </para>

      <para
>Si l'atribut <literal
>expand</literal
> s'especifica com a <literal
>true</literal
>, aquest element s'expandirà en la caixa que l'envolta tant com sigui possible (és a dir, se'ls donarà més espai si està disponible). </para>

      <para
>Si <literal
>width</literal
> o <literal
>height</literal
> és un número pla, un valor negatiu representa un desplaçament de la mida del contenidor envolcall. Tingueu en compte que és possible passar un desplaçament positiu escrivint dos signes menys. </para>

      <para
>En qualsevol cas, és possible limitar la mida final amb els atributs <literal
>min-width</literal
>, <literal
>min-height</literal
>, <literal
>max-width</literal
> i <literal
>max-height</literal
> que es poden especificar en la mateixa forma que <literal
>width</literal
> i <literal
>height</literal
>. </para>

      <para
>Si <literal
>x</literal
> o <literal
>y</literal
> és un número pla, un valor negatiu representarà un desplaçament respecte a la vora inferior dreta, a diferència de l'omissió que és respecte la vora superior esquerra. </para>

      <para
>També és possible especificar a quin punt dins de l'element es refereix la posició. Això s'anomena l'àncora i pot ser <literal
>c</literal
> per al centre o una de <literal
>n</literal
>, <literal
>ne</literal
>, <literal
>e</literal
>, <literal
>se</literal
>, <literal
>s</literal
>, <literal
>sw</literal
>, <literal
>w</literal
> i <literal
>nw</literal
> que representen les diferents vores/cantonades corresponent a les adreces en un mapa topogràfic. El valor per omissió és <literal
>nw</literal
>, que és la cantonada superior esquerra. Per exemple: <programlisting
>&lt;pos x=&quot;10%&quot; y=&quot;50%&quot; anchor=&quot;w&quot; width=&quot;80%&quot; height=&quot;95&quot;/&gt;
</programlisting>
      </para>

    </sect2>

    <sect2 id="show-nodes">
      <title
>Els nodes «show»</title>

      <!-- not really implemented
      <para>
        Some items may only display in certain modes, like when doing a
        remote display.  Multiple values can be specified and must be
        separated with commas.  The following values are possible:
      </para>

      <para>
        <filename
>console</filename
> - In console mode.
      </para>
      <para>
        <filename
>console-fixed</filename
> - In console non-flexi mode.
      </para>
      <para>
        <filename
>console-flexi</filename
> - In console &amp; flexi mode.
      </para>
      <para>
        <filename
>flexi</filename
> - In flexi mode.
      </para>
      <para>
        <filename
>remote</filename
> - In remote mode.
      </para>
      <para>
        <filename
>remote-flexi</filename
> - In remote &amp; flexi mode.
      </para>

      <para>
        For example:
<programlisting
>
&lt;show modes=&quot;flexi,remote&quot;/&gt;
</programlisting>
      </para>
      -->

      <para
>Podeu especificar l'atribut <literal
>type</literal
> per a indicar que certs elements només es mostra si el tipus està establert. Prefixar el tipus amb un signe d'exclamació (<literal
>!</literal
>) inverteix la condició. Els valors vàlids són els següents: </para>
        <segmentedlist>
          <?dbhtml list-presentation="table"?>
          <segtitle
>Tipus</segtitle
><segtitle
>Mostra si...</segtitle>

          <seglistitem>
            <seg
><literal
>chooser</literal
></seg>
            <seg
>El canviar a inici de sessió remot està permès.</seg>
          </seglistitem>

          <!--
          <seglistitem>
            <seg
><literal
>custom_cmd[0-9]</literal
></seg>
            <seg
><literal
>n-th</literal
> CustomCommand is specified in
              the &kdm; configuration.</seg>
          </seglistitem>
          -->

          <seglistitem>
            <seg
><literal
>halt</literal
> i <literal
>reboot</literal
></seg>
            <seg
>L'apagada del sistema està permesa.</seg>
          </seglistitem>

          <!--
          <seglistitem>
            <seg
><literal
>suspend</literal
></seg>
            <seg
>suspending the system is permitted.</seg>
          </seglistitem>
          -->

          <seglistitem>
            <seg
><literal
>system</literal
></seg>
            <seg
>Sense condició (sempre s'estableix en &kdm;).</seg>
          </seglistitem>

          <!--
          <seglistitem>
            <seg
><literal
>timed</literal
></seg>
            <seg
>a timed login is being counted down.</seg>
          </seglistitem>
          -->

          <seglistitem>
            <seg
><literal
>plugin-</literal
><replaceable
>nom_entrada</replaceable
></seg>
            <seg
>El connector de «conversa» proporciona un camp d'entrada corresponent.</seg>
          </seglistitem>

        </segmentedlist>


      <para
>Per exemple: <programlisting
>&lt;show type=&quot;chooser&quot;/&gt;
</programlisting>
      </para>

      <para
>També podeu especificar un valor <literal
>min-screen-width</literal
> o <literal
>min-screen-height</literal
> per indicar que certs elements només s'han de mostrar si la resolució de pantalla és almenys la mida especificada. Per exemple: <programlisting
>&lt;show min-screen-height=&quot;768&quot;/&gt;
</programlisting>
      </para>

    </sect2>

    <sect2 id="nor-act-pre-nodes">
      <title
>Els nodes «normal/active/prelight»</title>

      <para
>L'aspecte de la majoria de tipus d'elements es pot arranjar amb paràmetres mitjançant les següents marques: </para>

      <variablelist>
        <varlistentry>
          <term
><literal
>normal</literal
></term>
          <listitem>
            <para
>Estat normal.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term
><literal
>prelight</literal
></term>
          <listitem>
            <para
>Quan el ratolí es manté a sobre de l'element.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term
><literal
>active</literal
></term>
          <listitem>
            <para
>Quan es fa clic amb un botó del ratolí sobre l'element.</para>
          </listitem>
        </varlistentry>
      </variablelist>

      <variablelist>

        <para
>El conjunt exacte dels atributs disponibles depèn del tipus d'element: </para>

        <varlistentry>
          <term
><literal
>rect</literal
></term>
          <listitem>
            <para>
<programlisting
>&lt;normal color=&quot;#000000&quot; alpha=&quot;0.0&quot;/&gt;
</programlisting>
Qualsevol dels atributs es poden ometre, en aquest cas el valor per omissió s'utilitza (l'exemple representa els valors per omissió). <literal
>alpha</literal
> és un número de punt flotant entre zero (transparent) i un (opac). <literal
>color</literal
> és un signe numeral seguit per un número hexadecimal de sis digits, el format és «<literal
>#</literal
><replaceable
>rrggbb</replaceable
>». D'altra banda, <literal
>color</literal
> es pot especificar com un número hexadecimal de vuit digits, en aquest cas els dos primers dígits són el valor alfa. </para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term
><literal
>label</literal
></term>
          <listitem>
            <para>
<programlisting
>&lt;normal color=&quot;#ffffff&quot; alpha=&quot;1.0&quot; font=&quot;Sans 14&quot;/&gt;
</programlisting>
<literal
>alpha</literal
> i <literal
>color</literal
> s'especifiquen com en els elements «rect». </para>
            <para
><literal
>font</literal
> segueix el format «<replaceable
>llista-família</replaceable
>&nbsp;<replaceable
>opcions-estil</replaceable
>&nbsp;<replaceable
>mida</replaceable
>». Cada part és opcional. </para>
            <para
><replaceable
>llista-família</replaceable
> és una llista separada per comes de les famílies de tipus de lletra com «helvetica», «monospace», &etc; </para>
            <para
><replaceable
>opcions-estil</replaceable
> és una llista delimitada per espais de les paraules clau de l'estil de categories, l'amplada i estirament, de cada categoria almenys un. L'estil pot ser <literal
>normal</literal
>, <literal
>italic</literal
> o <literal
>oblique</literal
>. D'amplada poden ser <literal
>ultra-light</literal
>, <literal
>light</literal
>, <literal
>medium</literal
>, <literal
>semi-bold</literal
>, <literal
>bold</literal
>, <literal
>ultra-bold</literal
> o <literal
>heavy</literal
>. L'estirament permesos comprenen <literal
>ultra-condensed</literal
>, <literal
>extra-condensed</literal
>, <literal
>condensed</literal
>, <literal
>semi-condensed</literal
>, <literal
>normal</literal
>, <literal
>semi-expanded</literal
>, <literal
>expanded</literal
>, <literal
>extra-expanded</literal
> i <literal
>ultra-expanded</literal
>. </para>
            <para
>La <replaceable
>mida</replaceable
> pot ser un número de punt flotant que representa la mida en punts (1/72 polzades) o un íntegre seguit pels <literal
>px</literal
> que representa la mida en píxels. Les mides en punts són preferibles, ja que són independents de la resolució de la pantalla. </para>
            <para
>Si qualsevol dels atributs es queda fora, s'utilitzen els valors del <link linkend="style-nodes"
>node estil</link
>. Si no s'ha especificat color del text de la finestra s'utilitzarà el blanc. El tipus de lletra per omissió és el configurat en &kdmrc;. </para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term
><literal
>pixmap</literal
></term>
          <term
><literal
>svg</literal
></term>
          <listitem>
            <para>
<programlisting
>&lt;normal file=&quot;imatge.png&quot; tint=&quot;#dddddd&quot; alpha=&quot;1.0&quot;/&gt;
</programlisting>
            </para>

            <para
><literal
>file</literal
> especifica el fitxer que conté la imatge. Les rutes relatives són relatives al directori de tema. </para>

            <para
><literal
>wallpaper</literal
> es pot utilitzar en comptes de <literal
>file</literal
> per a tenir l'aspecte de &kdm; per a les imatges en els llocs habituals per als fons d'escriptori &kde;. Els paquets de fons d'escriptori Plasma són compatibles. </para>

            <para
><literal
>element</literal
> especifica l'identificador de l'element d'un fitxer SVG. Si està buit, es representarà tota la imatge SVG. </para>

            <para
>Per a nodes <literal
>pixmap</literal
>, és possible proporcionar imatges múltiples, de manera que la qualitat de la imatge millori per a una resolució donada. Els noms al fitxer de marques de mida tenen el format <replaceable
>nombase</replaceable
><literal
>-</literal
><replaceable
>amplada</replaceable
><literal
>x</literal
><replaceable
>llarg</replaceable
><literal
>.</literal
><replaceable
>extensió</replaceable
>. Si existeix el fitxer de marques de mida i aquest no és un paquet fons de pantalla Plasma, el &kdm; només acceptarà una correspondència perfecta per a una determinada mida, d'altra manera fallarà tornant al fitxer original. En cas contrari, mirarà de trobar una imatge amb dimensions que s'acostin el més possible a la mida requerida. </para>

            <!--
            <para>
              Note that an alternative image file can be specified using the
              <literal
>altfile</literal
><optional
><replaceable
>n</replaceable
></optional>
              attribute.  &kdm; will use the last valid image filename
              specified.  For example:
<programlisting
>
&lt;normal file=&quot;picture.png&quot; altfile1=&quot;distribution-blah-image.png&quot; altfile2=&quot;distribution-foo-image.png&quot;/&gt;
</programlisting>
              If <filename
>distribution-foo-image.png</filename
> is a valid
              image filename it will be used.
              Otherwise distribution-blah-image.png will be used if valid.
              This feature is supported since &kde; .
            </para>
            -->

            <para
><literal
>scalemode</literal
> especifica com ajustar la mida de les imatges que no coincideixen amb la mida de l'element. <literal
>free</literal
> (per omissió) simplement significa escalar la imatge a la mida adequada, possiblement distorsionant la seva relació d'aspecte. Els altres dos modes de mantenir la relació d'aspecte de la imatge: <literal
>fit</literal
> ampliant la imatge a la mida màxima que cap en la geometria de l'element. La imatge serà centrada. L'àrea restant no serà pintada per aquest element, pel que ha de ser col·locada en la part superior d'un farcit sòlid <literal
>rect</literal
>. <literal
>crop</literal
> captura la imatge a la mida mínima omplint del tot la geometria de l'element. La imatge serà retallada simètricament. </para>

            <para
>Els elements <literal
>tint</literal
> i <literal
>alpha</literal
> formen una especificació de color com a <literal
>rect</literal
>. Cada píxel de la imatge es multiplica per aquest color per a cada component. </para>
          </listitem>
        </varlistentry>

      </variablelist>

    </sect2>

    <sect2 id="style-nodes">
      <title
>Els nodes «widget style»</title>

      <para
>Aquesta marca permet canviar l'aparença de les etiquetes i estris Qt encastats en el tema, &pex;, la línia d'edició, els botons o la llista d'usuaris. L'arranjament d'estil és heretat dels elements fills, però es poden tornar a definir individualment. Els valors per omissió es prenen de &kdmrc;. </para>

      <para
>L'atribut <literal
>font</literal
> defineix el tipus de lletra de tots els estris. Per a estris amb una funció d'entrada es poden tornar a definir amb l'atribut <literal
>edit-font</literal
>. Els tipus de lletra s'especifiquen de la mateixa manera que en els nodes <link linkend="nor-act-pre-nodes"
>normal/active/prelight</link
>. </para>

      <para
>En general, el motor de temes s'esforça molt per eliminar els marcs dels estris Qt, de manera que es fonen en el tema a la perfecció. En els casos en què això no es desitja, l'atribut <literal
>frame</literal
> es pot establir a <literal
>true</literal
>. </para>

      <para
>L'atribut <literal
>guistyle</literal
> es pot utilitzar per a tornar a definir la &IGU; a l'estil Qt per als estris encastats. Per omissió és proposada per <option
>GUIStyle</option
> en &kdmrc;. </para>

      <para
>És possible especificar gairebé tota la paleta per als estris tal com es documenta al <ulink type="http" url="http://doc.trolltech.com/4.3/qpalette.html"
>lloc de Trolltech</ulink
>. Els noms d'atribut es componen d'un àmbit, un paper de color i un sufix. Els àmbits possibles són -en ordre de prioritat cada vegada més gran- <literal
>all-</literal
> per a tots els grups de color, no hi ha àmbits pels grups de color actius i inactius i <literal
>active-</literal
>, <literal
>inactive-</literal
> i <literal
>disabled-</literal
> per als grups de color respectius. Els grups de color admesos són <literal
>window</literal
>, <literal
>window-text</literal
>, <literal
>base</literal
>, <literal
>alternate-base</literal
>, <literal
>text</literal
>, <literal
>bright-text</literal
>, <literal
>highlight</literal
>, <literal
>highlighted-text</literal
>, <literal
>button</literal
> i <literal
>button-text</literal
>. El sufix pot ser <literal
>-color</literal
> o <literal
>-alpha</literal
> amb el significat respectiu com en els <link linkend="nor-act-pre-nodes"
>nodes normal/active/prelight</link
>. </para>

      <para
>Com a alternativa a l'especificació a la línia de la paleta, l'atribut <literal
>colorscheme</literal
> es pot utilitzar per a carregar un complet esquema de colors del &kde;. Per omissió és proposat per <option
>ColorScheme</option
> en &kdmrc;. Especificacions individuals de <literal
>color</literal
> tornaran a definir els colors de l'esquema. </para>

      <para
>Exemple: <programlisting
>&lt;style edit-font=&quot;Comic 16&quot; text-color=&quot;#dddddd&quot; frame=&quot;true&quot;/&gt;
</programlisting>
      </para>
    </sect2>

    <sect2 id="color-nodes">
      <title
>Els nodes de color «face browser»</title>

      <para
>Els nodes de color permeten tornar a definir el color de fons dels elements en el navegador de cares. <literal
>labelcolor</literal
> i <literal
>altlabelcolor</literal
> són essencialment equivalents a <literal
>all-base-color</literal
> respectivament <literal
>all-alternate-base-color</literal
> en els <link linkend="style-nodes"
>nodes d'estil</link
>. Si només s'especifica <literal
>labelcolor</literal
> es deshabilitaran els demés elements de fons. </para>

      <para>
<programlisting
>&lt;color labelcolor=&quot;#80ffffff&quot; altlabelcolor=&quot;#80f0f0f0&quot;/&gt;
</programlisting>
      </para>
    </sect2>

    <sect2 id="text-nodes">
      <title
>Els nodes «text»</title>

      <para
>Les marques de text són utilitzades per les etiquetes. Es poden utilitzar per a mostrar text localitzat de la següent manera (si l'atribut <literal
>xml:lang</literal
> és omès, s'assumirà el locale POSIX): <programlisting
>&lt;text xml:lang=&quot;fr&quot;&gt;Option&lt;/text&gt;
</programlisting>
      </para>

      <!--
      <para>
        You can include pango markup in the text nodes for labels, however
        you must encode it.  So for example to have the label of
        &quot;foo&lt;sup&gt;bar&lt;/sup&gt;&quot;, you must type:
<programlisting
>
&lt;text&gt;&quot;foo&lt;sup&gt;bar&lt;/sup&gt;&quot;&lt;/text&gt;
</programlisting>
      </para>
      -->

      <para
>Els nodes de text poden contenir les següents seqüències de caràcters especials que es tradueixen de la següent manera: </para>

      <segmentedlist>
        <?dbhtml list-presentation="table"?>
        <segtitle
>Seqüència</segtitle
><segtitle
>Expansió</segtitle>

        <seglistitem>
          <seg
>%%</seg>
          <seg
>Un caràcter % literal.</seg>
        </seglistitem>

        <seglistitem>
          <seg
>%c</seg>
          <seg
>Rellotge de paret amb l'hora i la data.</seg>
        </seglistitem>

        <seglistitem>
          <seg
>%d</seg>
          <seg
>Nom de la pantalla (la variable d'entorn <envar
>DISPLAY</envar
>).</seg>
        </seglistitem>

        <seglistitem>
          <seg
>%h</seg>
          <seg
>Nom de la màquina (la sortida de <function
>gthostname</function
>).</seg>
        </seglistitem>

        <seglistitem>
          <seg
>%m</seg>
          <seg
>Nom de la màquina (<structfield
>machine</structfield
> part de la sortida de <function
>uname</function
>).</seg>
        </seglistitem>

        <seglistitem>
          <seg
>%n</seg>
          <seg
>Nom del node (<structfield
>nodename</structfield
> part de la sortida de <function
>uname</function
>).</seg>
        </seglistitem>

        <seglistitem>
          <seg
>%o</seg>
          <seg
>Nom del domini (la sortida de <function
>getdomainname</function
>).</seg>
        </seglistitem>

        <seglistitem>
          <seg
>%r</seg>
          <seg
>Nom de la versió (<structfield
>release</structfield
> part de la sortida de <function
>uname</function
>).</seg>
        </seglistitem>

        <seglistitem>
          <seg
>%s</seg>
          <seg
>Nom del sistema (<structfield
>sysname</structfield
> part de la sortida de <function
>uname</function
>).</seg>
        </seglistitem>

        <seglistitem>
          <seg
>%t</seg>
          <seg
>Nombre de segons restants fins que es realitzi l'accés, més apropiada la forma i18n plural de «segon».</seg>
        </seglistitem>

        <seglistitem>
          <seg
>%u</seg>
          <seg
>Nom d'usuari per a l'inici de sessió automàtic.</seg>
        </seglistitem>

        <!-- Need to switch to richtext painting for this purpose.
        <seglistitem>
          <seg
>\n</seg>
          <seg
>Newline</seg>
        </seglistitem>
        -->

        <seglistitem>
          <seg
>_</seg>
          <seg
>Fa que el següent caràcter sigui un accelerador.</seg>
        </seglistitem>

      </segmentedlist>

      <para
><literal
>%t</literal
> i <literal
>%u</literal
> estan destinats a només ser utilitzats internament per a mostrar el missatge <literal
>timed-label</literal
>, el qual s'actualitza automàticament cada segon. </para>
    </sect2>

    <sect2 id="stock-nodes">
      <title
>Els nodes «stock»</title>

      <para
>Algunes etiquetes localitzades comunes poden especificar-se a través de les marques <literal
>stock</literal
>. La marca <literal
>text</literal
> és ignorada si s'utilitza la marca <literal
>stock</literal
>. Segur que heu utilitzat les marques de valors en comptes de posar totes les traduccions en els temes. Això produeix temps de càrrega més ràpid i millors traduccions. Els següents valors són vàlids: </para>

      <segmentedlist>
        <?dbhtml list-presentation="table"?>
        <segtitle
>Tipus</segtitle
><segtitle
>Expansió</segtitle>

        <!--
        <seglistitem>
          <seg
>ok</seg>
          <seg
><quote
>_OK</quote
></seg>
        </seglistitem>
        <seglistitem>
          <seg
>cancel</seg>
          <seg
>_Cancel</seg>
        </seglistitem>
        <seglistitem>
          <seg
>options</seg>
          <seg
>_Options</seg>
        </seglistitem>
        <seglistitem>
          <seg
>custom_cmd[0-9]</seg>
          <seg
>Obtained from the config file.</seg>
        </seglistitem>
        -->
        <seglistitem>
          <seg
>caps-lock-warning</seg>
          <seg
><quote
>El bloqueig de majúscules està activat.</quote
></seg>
        </seglistitem>
        <seglistitem>
          <seg
>chooser</seg>
          <seg
><quote
>Selecto_r de XDMCP.</quote
></seg>
        </seglistitem>
        <seglistitem>
          <seg
>quit</seg>
          <seg
><quote
>_Surt.</quote
></seg>
        </seglistitem>
        <seglistitem>
          <seg
>disconnect</seg>
          <seg
><quote
>Desconn_ecta.</quote
></seg>
        </seglistitem>
        <seglistitem>
          <seg
>halt</seg>
          <seg
><quote
>_Apaga.</quote
></seg>
        </seglistitem>
        <seglistitem>
          <seg
>language</seg>
          <seg
><quote
>_Idioma.</quote
></seg>
        </seglistitem>
        <seglistitem>
          <seg
>login</seg>
          <seg
><quote
>_Accés.</quote
></seg>
        </seglistitem>
        <seglistitem>
          <seg
>session</seg>
          <seg
><quote
>_Tipus de sessió.</quote
></seg>
        </seglistitem>
        <seglistitem>
          <seg
>reboot</seg>
          <seg
><quote
>_Reinicia.</quote
></seg>
        </seglistitem>
        <!--
        <seglistitem>
          <seg
>suspend</seg>
          <seg
><quote
>Sus_pend</quote
></seg>
        </seglistitem>
        -->
        <seglistitem>
          <seg
>system</seg>
          <seg
><quote
>_Menú.</quote
></seg>
        </seglistitem>
        <seglistitem>
          <seg
>timed-label</seg>
          <seg
><quote
>L'usuari %u es connectarà en %t.</quote
></seg>
        </seglistitem>
        <seglistitem>
          <seg
>domain-label</seg>
          <seg
><quote
>_Domini:</quote
></seg>
        </seglistitem>
        <seglistitem>
          <seg
>username-label</seg>
          <seg
><quote
>Nom d'_usuari:</quote
></seg>
        </seglistitem>
        <seglistitem>
          <seg
>password-label</seg>
          <seg
><quote
>Contras_enya:</quote
></seg>
        </seglistitem>
        <seglistitem>
          <seg
>welcome-label</seg>
          <seg
><quote
>Benvingut a %h.</quote
></seg>
        </seglistitem>

      </segmentedlist>

      <para
>Per exemple: <programlisting
>&lt;stock type=&quot;welcome-label&quot;/&gt;
</programlisting>
      </para>
    </sect2>

    <sect2 id="buddy-nodes">
      <title
>Els nodes «buddy»</title>

      <para
>Els elements que no causen directament una acció poden assignar-se a un company. Al company se li dóna el focus d'entrada quan l'element està activat (feu clic o premeu un accelerador <literal
>label</literal
>). </para>

      <para
>Es fa referència al company pel id amb l'atribut <literal
>idref</literal
>. Òbviament, cal donar-li un id. Exemple: <programlisting
>&lt;item type=&quot;label&quot;&gt;
  &lt;stock type=&quot;username-label&quot;/&gt;
  &lt;buddy idref=&quot;user-entry&quot;/&gt;
  [...]
&lt;/item&gt;
[...]
&lt;item type=&quot;entry&quot; id=&quot;user-entry&quot;&gt;
  [...]
&lt;/item&gt;
</programlisting>
      </para>
    </sect2>

  </sect1>

</chapter>
