<chapter id="kdm-themes">
  <title
>Teemade loomine &kdm;-i tervitajaga (greeter)</title>

  <para
>See osa kirjeldab temaatilise tervitaja teemade loomist. Näiteid koos ekraanipiltidega vaata paigaldatud standardteemades ning <ulink type="http" url="http://www.kde-look.org/index.php?xcontentmode=40"
> teemade veebileheküljel</ulink
>. </para>

  <sect1 id="theme-overview">
    <title
>Teema ülevaade</title>

    <para
>&kdm; teemade loomisel tuleb luua XML-fail, mis järgib spetsifikatsiooni <filename
>$<envar
>KDEDIR</envar
>/share/apps/doc/kdm/greeter.dtd</filename
>. Teemafailid asuvad kataloogis <filename class="directory"
>$<envar
>KDEDIR</envar
>/share/apps/kdm/themes/<replaceable
>teema_nimi</replaceable
></filename
>. Teemakataloog peab sisaldama faili <filename
>KdmGreeterTheme.desktop</filename
>, mille vorming on samasugune nagu teistel <filename class="extension"
>.desktop</filename
>-failid, nähes välja selline: <programlisting
>[KdmGreeterTheme]
Greeter=circles.xml
Name=Circles
Description=Theme with blue circles
Author=Bond, James Bond
Copyright=(c) 2002 Bond, James Bond
Screenshot=screenshot.png
</programlisting>
    </para>

    <para
>Väljad <literal
>Name</literal
>, <literal
>Description</literal
>, <literal
>Author</literal
> ja <literal
>Copyright</literal
> võivad olla tõlgitavad, nagu teistegi <filename class="extension"
>.desktop</filename
>-failide puhul. Kõik mainitud failid peavad asuma teemakataloogis endas, Väli <literal
>Screenshot</literal
> osutab failile, mis võib olla kasutuses teema 200x150 pilt (seda ei pruugi olla, aga pilti on muidugi kena vaadata). Väli <literal
>Greeter</literal
> osutab XML-failile, mis sisaldab teema kirjeldust. </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
>Kui teema on põhjalikult testitud, paki see kokku failiks, mis sisaldab kataloogi, mis paigaldatakse kataloogi <filename class="directory"
>$<envar
>KDEDIR</envar
>/share/apps/kdm/themes</filename
>. See on &kdm;-i teemade levitamise standardvorming. </para>
  </sect1>

  <sect1 id="theme-format">
    <title
>Teema XML-vormingu üksikasjalik kirjeldus</title>

    <sect2 id="greeter-tag">
      <title
>Tipptaseme sõlm</title>

      <para
>&kdm;-i teemad on XML-failid, mille juures on silt &lt;greeter&gt;. Tipptaseme sõlm on <link linkend="item-nodes"
>elemendi sõlm</link
> tüübiga <literal
>rect</literal
> ja selge <link linkend="fixed-nodes"
>fikseeritud paigutusega</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
>Sildis greeter võivad sisalduda sõlmed, mida kirjeldatakse käsiraamatu järgmistes osades. Osad sõlmed on konteinerid (paigutuse sõlmed, elemendi sõlmed), mis võivad omakorda sisaldada sõlmi. </para>
    </sect2>

    <sect2 id="item-nodes">
      <title
>Elemendi sõlmed</title>

      <para
>&kdm;-i teema loomisel määratakse kindlaks elemendi ja paigutuse sõlmede hierarhia. Elemendi sõlmed võivad sisaldada atribuudi <literal
>type</literal
> järgmisi väärtusi: </para>

      <variablelist>

        <varlistentry>
          <term
>button</term>
          <listitem>
            <para
>Nupuväli. See väli kasutab Qt nuppu. </para>
            <para
>Ka mis tahes muu element on võimalik panna käituma nupuna, kui määrata tema atribuudile <literal
>button</literal
> väärtus <literal
>true</literal
>. Siiski on etem kasutada &kdm;-i teemades Qt nuppe, sest need on kasutatavad ka puuetega kasutajate korral. </para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term
>entry</term>
          <listitem>
            <para
>Sisendvidin, näiteks tekstikast või liitkast. Pane tähele, et see on kõigest Qt vidinate kohatäitja.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term
>label</term>
          <listitem>
            <para
>Tekstipealdis. Peab sisaldama kas <link linkend="text-nodes"
>sõlme <literal
>text</literal
></link
> või <link linkend="stock-nodes"
>sõlme <literal
>stock</literal
></link
>, mis määrab teksti. </para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term
>list</term>
          <listitem>
            <para
>Näosirvija vidin.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term
>pixmap</term>
          <listitem>
            <para
>Rasterpilt Qt toetatud vormingus, &eg; PNG, JPEG, TIFF jne.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term
>rect</term>
          <listitem>
            <para
>Ristkülik.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term
>svg</term>
          <listitem>
            <para
>Vektorpilt SVG-vormingus.</para>
          </listitem>
        </varlistentry>
      </variablelist>

      <para
>Näide: <programlisting>
&lt;item type=&quot;label&quot;&gt;
</programlisting
> Element, mis toimib nupuna: <programlisting
>&lt;item type=&quot;rect&quot; id=&quot;disconnect_button&quot; button=&quot;true&quot;&gt;.
</programlisting>
      </para>

      <para
>Vaikimisi kaob &kdm;-i sisselogimisekraan pärast autentimist. See võib põhjustada vilkumist sisselogimisekraani ja seansi vahepeal. Atribuut <literal
>background</literal
> võimaldab kasutajal määrata, millised teema elemendid on taustapilt. Kasutamise korral paneb see &kdm;-i eemaldama kuvalt kõik mitte-taustaelemendid ja renderdama allesjäänud atribuudi <literal
>background</literal
> elemente juuraknas. Nii saab luua sujuva ülemineku sisselogimisekraani ja seansi vahel: <programlisting>
&lt;item type=&quot;rect&quot; background=&quot;true&quot;&gt;
  &lt;normal file="background.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
> Sisselogimisest erineva tausta kasutamiseks ülemineku ajal peab teema määratlema kaks sõlme (need võivad sisaldada näiteks raster- või SVG-pilte). Tervitaja taustale vastaval elemendil ei tohi siis olla omadust <literal
>background</literal
>, ülenimekule vastaval elemendil aga peab omadus <literal
>background</literal
> kindlasti olema. Näide: <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="background_for_login.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="background_for_greeter.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
>Mitme monitoriga süsteemides võivad teemad määrata ka teiste ekraanide välimuse kui see, millel asub tervitaja, kuid reeglina on seal näha ainult taustaelemendid. Määramaks, millisel ekraanil on mõni element näha, saab kasutada atribuuti <literal
>screen</literal
>, millele saab lisada väärtuse <literal
>greeter</literal
>, <literal
>other</literal
> või <literal
>all</literal
>, mis vastavalt tähendab ekraani, millel tervitaja asub, kõiki neid ekraane, millel tervitaja ei asu, ning kõiki ekraane. </para>

      <variablelist>
        <para
>Igale elemendile võib anda nime atribuudi <literal
>id</literal
> abil. &kdm; tunneb ära teatud ID-d ja annab neile erilise funktsiooni: </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
><literal
>button</literal
> elemendid ja elemendid atribuudiga <literal
>button=&quot;true&quot;</literal
>.</term>

          <listitem>
            <para
>Nupud käivitavad reeglina teatud toimingu. Lisaks peidab &kdm; nupud, mille toiming pole mingil põhjusel kättesaadav. </para>

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

              <seglistitem>
                <seg
>chooser_button</seg>
                <seg
>Käivitab XDCMP valija.</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
>Katkestab võrguseansi.</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
>Avab seansitüübi valimise menüü.</seg>
              </seglistitem>

              <seglistitem>
                <seg
>system_button</seg>
                <seg
>Avab üldise menüü paljude valikute ja toimingutega sõltuvalt seadistusest.</seg>
              </seglistitem>
            </segmentedlist>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term
><literal
>label</literal
> elemendid</term>

          <listitem>
            <para
>&kdm; näitab või peidab need pealdised ja määrab nende teksti sõltuvalt sisselogimisdialoogi olekust. </para>

            <segmentedlist>
              <?dbhtml list-presentation="table"?>
              <segtitle
>Id</segtitle
><segtitle
>Funktsioon</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
>Näitab teadet <guilabel
>Sisselogimine nurjus</guilabel
>.</seg>
              </seglistitem>

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

        <varlistentry>
          <term
>Vidinat põimivad elemendid</term>

          <listitem>
            <para
>&kdm; põimib neisse elementidesse teatud Qt vidinad. </para>

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

              <seglistitem>
                <seg
>user-entry</seg>
                <seg
>Kasutajanime kirje väli.</seg>
              </seglistitem>

              <seglistitem>
                <seg
>pw-entry</seg>
                <seg
>Paroolikirje väli.</seg>
              </seglistitem>

              <seglistitem>
                <seg
>domain-entry</seg>
                <seg
>Mõned <quote
>suhtlemispluginad</quote
> kasutavad seda välja domeeninime pärimiseks. Kui väli on olemas, peavad nendega seotud suluselemendid olema <link linkend="show-nodes"
>näitamissõlmed</link
> tüübiga <literal
>plugin-domain-entry</literal
>.</seg>
              </seglistitem>

              <seglistitem>
                <seg
>talker</seg>
                <seg
>See element peab olema tüübiga <literal
>rect</literal
>. See tähistab tervitaja <quote
>kuuma</quote
> ala: see sisaldab elemente <literal
>label</literal
> ja <literal
>entry</literal
>, mis puudutavad autentimist. Kui antud <quote
>suhtlusplugin</quote
> ei suuda vastata olemasolevatele elementide vajadustele, püüab ta põimida elementi omaenda paigutusega kompleksvidina, mis täielikult tühistab teema <quote
>talker'i</quote
>. Põhimõtteliselt ei vaja &kdm;-i teemad üldse omaenda <quote
>taltker'i</quote
> paigutust, sest kõik &kdm;-i autentimispluginad võivad kasutada elementi <literal
>talker</literal
>. </seg>
              </seglistitem>

              <seglistitem>
                <seg
>userlist</seg>
                <seg
>See element peab olema tüübiga <literal
>list</literal
>. Kui kasutajate nimekirja võimalus on lubatud, põimib &kdm; siia kasutajate nimekirja vidina. Vastasel juhul element peidetakse.</seg>
              </seglistitem>

              <seglistitem>
                <seg
>xconsole</seg>
                <seg
>See element peab olema tüübiga <literal
>rect</literal
>. Kui sisseehitatud <command
>xconsole</command
> omadus on kompileeritud ja lubatud, põimib &kdm; siia konsolli logi vidina. Vastasel juhul element peidetakse.</seg>
              </seglistitem>

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

        <varlistentry>
          <term
>Muud elemendid</term>

          <listitem>
            <para
>&kdm; näitab neid elemente või peidab nad sõltuvalt seadistusest ja tervitaja hetkeolekust. &kdm; ei kehtesta neile tüübinõuet, kuid tavaliselt on nad siiski teatud kindlat tüüpi. </para>

            <segmentedlist>
              <?dbhtml list-presentation="table"?>
              <segtitle
>Id</segtitle
><segtitle
>Näidatakse ainult siis, kui...</segtitle>

              <seglistitem>
                <seg
>timed-label</seg>
                <seg
>...käib sisselogimine.</seg>
              </seglistitem>

              <seglistitem>
                <seg
>caps-lock-warning</seg>
                <seg
>...Caps Lock on sees.</seg>
              </seglistitem>

              <seglistitem>
                <seg
>xauth-warning</seg>
                <seg
>...&X-Server; ei nõua ühendumiseks X'i autentimist.</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
>...kasutajate nimekiri on lubatud. Pesastades siis elemendi <literal
>userlist</literal
>, on võimalik luua näiteks raam nimekirja ümber ja lasta seda näidata ainult siis, kui näidatakse kasutajate nimekirja.</seg>
              </seglistitem>

              <seglistitem>
                <seg
>xconsole-rect</seg>
                <seg
>...sisseehitatud <command
>xconsole</command
> on lubatud. Samalaadne nagu <literal
>userlist-rect</literal
>.</seg>
              </seglistitem>

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

      </variablelist>

    </sect2>

    <sect2 id="layout-nodes">
      <title
>Paigutuse konteinersõlmed</title>

      <para
>Paigutuse sõlmed esinevad elemendi sõlmede sees ja sisaldavad omakorda elemendi sõlmi. Paigutuse sõlme tüüp märäab tema alamsõlmede korra. Elemendi sõlm võib sisaldada igast paigutuse sõlme tüübist ühe. </para>

      <sect3 id="box-nodes">
        <title
>Kastsõlmed</title>

        <para
>Kastsõlmed korraldavad oma järglased automaatselt ritta. Nad on määratletud järgmiselt: <programlisting>
&lt;box orientation=&quot;<replaceable
>joondus</replaceable
>&quot; min-width=&quot;<replaceable
>arv</replaceable
>&quot; min-height=&quot;<replaceable
>arv</replaceable
>&quot;
    xpadding=&quot;<replaceable
>arv</replaceable
>&quot; ypadding=&quot;<replaceable
>arv</replaceable
>&quot; spacing=&quot;<replaceable
>arv</replaceable
>&quot;
    homogeneous=&quot;<replaceable
>tõeväärtus</replaceable
>&quot;&gt;
</programlisting
> kus <replaceable
>joondus</replaceable
> tähendab pikslite arvu ja <replaceable
>tõeväärtus</replaceable
> on kas <literal
>true</literal
> või <literal
>false</literal
>. Kui jätta mõni atribuut ära, siis määratakse vaikimisi selle väärtus nulliks arvude korral, <replaceable
>false</replaceable
> tõeväärtuse korral ning <literal
>vertical</literal
> orientatsiooni korral. </para>

        <para
>Spacing on vahe kõrvutiste järglaselementide vahel. Padding on kasti väline piir. Kui kast on homogeenne, omistatakse igale järglaselemendile ühesugune ruum. </para>
      </sect3>

      <sect3 id="fixed-nodes">
        <title
>Fikseeritud sõlmed</title>

        <para
>Fikseeritud sõlmed on konteinerid, mille järglased on paigutatud täpsetele koordinaatidele. Konteineri suurus on väikesim ristkülik, mis sisaldab kõiki järglasi. Fikseeritud sõlmel ei ole lisaatribuute, nii et kasutada tuleb lihtsalt: <programlisting>
&lt;fixed&gt;
</programlisting
> Seejärel tuleb asetada sellesse teised elemendid, määrates nende positsiooni sõlmed. </para>
      </sect3>

    </sect2>

    <sect2 id="position-nodes">
      <title
>Positsiooni sõlmed</title>

      <para
>Iga element võib määrata oma positsiooni ja suuruse sõlmega <literal
>pos</literal
>. Näide: <programlisting
>&lt;pos x=&quot;0&quot; y=&quot;4&quot; width=&quot;100%&quot; height=&quot;100%&quot;/&gt;
</programlisting>
      </para>

      <para
>Kui suurust pole määratud, saab selleks elemendi <quote
>loomupärane</quote
> suurus, mida nimetatakse suurusevihjeks. Pane tähele, et mitte kõigil elementidel ei ole mõistlikku suurusevihjet. </para>

      <para
>Nii positsiooni kui ka suuruse võib anda protsendina, millisel juhul see arvutatakse suhtelisena ümbritseva konteineri suuruse suhtes. Tipptaseme elementide korral on see protsent tervest ekraanist. Katuse lisamisega (<literal
>^</literal
>) suuruse määatlusele on võimalik seda muuta, nii et see oleks suhtelise ümbritsevat elementi ümbritseva elemendi ümbritseva elemendi ja nii edasi suuruse suhtes. </para>

      <para
>Kui element sisaldab kasti, võib määrata, et <literal
>width</literal
> ja <literal
>height</literal
> on <literal
>box</literal
>, mis tähendab, et nad on kasti laius ja kõrgus, see tähendab elemendid kastis pluss lisaruum (padding). </para>

      <para
>Võib määrata, et <literal
>width</literal
> või <literal
>height</literal
> on <literal
>scale</literal
>, mis tähendab, et neid tuleb skaleerida vastavalt teisele mõõtmele, arvestades suurusevihjet. Seda on mõtet kasutada, kui soovid, et skaleeritud piltide proportsioon automaatselt säilitataks. </para>

      <para
>Kui määatud on atribuut <literal
>expand</literal
> ja atribuut <literal
>true</literal
>, siis laiendatakse elementi ümbritsevas kastis nii palju kui võimalik (see tähendab, et talle antakse võimaluse korral rohkem ruumi). </para>

      <para
>Kui <literal
>width</literal
> või <literal
>height</literal
> on lihtsalt arv, tähendab negatiivne väärtus nihet ümbritseva konteineri suurusest. Pane tähele, et on võimalik määrata ka positiivne nihe, kirjutades kaks miinusmärki. </para>

      <para
>Mõlemal juhul on võimalik piirata lõppsuurust atribuutidega <literal
>min-width</literal
>, <literal
>min-height</literal
>, <literal
>max-width</literal
> ja <literal
>max-height</literal
>, mida saab määratleda samamoodi nagu atribuute <literal
>width</literal
> ja <literal
>height</literal
>. </para>

      <para
>Kui <literal
>x</literal
> või <literal
>y</literal
> on lihtsalt arv, siis tähendab negatiivne arv nihet paremast või alumisest servast, positiivse puhul aga vasakpoolset või ülemist serva. </para>

      <para
>Samuti on võimalik määrata, millisele elemendi punktile positsioon osutab. Seda nimetatakse ankruks ja see võib olla kas <literal
>c</literal
> (tsentreeritud) või <literal
>n</literal
>, <literal
>ne</literal
>, <literal
>e</literal
>, <literal
>se</literal
>, <literal
>s</literal
>, <literal
>sw</literal
>, <literal
>w</literal
> ja <literal
>nw</literal
>, mis tähistavad erinevaid servi/nurki vastavalt ilmakaartele. Vaikimisi on see <literal
>nw</literal
>, mis tähendab ülemist vasakut nurka. Näide: <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
>Näitamissõlmed</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
>Võib määrata atribuudi <literal
>type</literal
>, mis osutab, et teatud elemente tuleb näidata ainult siis, kui tüüp on määratud. Lisades tüübi ette hüüumärgi, (<literal
>!</literal
>), muudetakse tingimus vastupidiseks. Kehtivad väärtused on järgmised: </para>
        <segmentedlist>
          <?dbhtml list-presentation="table"?>
          <segtitle
>Tüüp</segtitle
><segtitle
>Näidatakse, kui...</segtitle>

          <seglistitem>
            <seg
><literal
>chooser</literal
></seg>
            <seg
>lubatud on lülitumine võrgust sisselogimisele.</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
> ja <literal
>reboot</literal
></seg>
            <seg
>lubatud on süsteemi seiskamine.</seg>
          </seglistitem>

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

          <seglistitem>
            <seg
><literal
>system</literal
></seg>
            <seg
>tingimus puudub (&kdm;-is alati määratud).</seg>
          </seglistitem>

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

          <seglistitem>
            <seg
><literal
>plugin-</literal
><replaceable
>entry-name</replaceable
></seg>
            <seg
><quote
>suhtlusplugin</quote
> pakub vastava sisendvälja.</seg>
          </seglistitem>

        </segmentedlist>


      <para
>Näide: <programlisting
>&lt;show type=&quot;chooser&quot;/&gt;
</programlisting>
      </para>

      <para
>Lisaks võib määrata <literal
>min-screen-width</literal
> või <literal
>min-screen-height</literal
> väärtuse, mis osutab, et teatud elemente näidatakse ainult siis, kui ekraanilahutus on vähemalt määratud suurusega. Näide: <programlisting
>&lt;show min-screen-height=&quot;768&quot;/&gt;
</programlisting>
      </para>

    </sect2>

    <sect2 id="nor-act-pre-nodes">
      <title
>Tavaline/aktiivne/hiirealune sõlm</title>

      <para
>Enamiku elemenditüüpide välimust võib määrata järgmiste siltidega: </para>

      <variablelist>
        <varlistentry>
          <term
><literal
>normal</literal
></term>
          <listitem>
            <para
>Tavaline olek.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term
><literal
>prelight</literal
></term>
          <listitem>
            <para
>Kui hiirekursor viibib elemendi kohal.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term
><literal
>active</literal
></term>
          <listitem>
            <para
>Kui elemendil klõpsatakse hiirenupuga.</para>
          </listitem>
        </varlistentry>
      </variablelist>

      <variablelist>

        <para
>Saadaolevate atribuutide täpne valik sõltub elemendi tüübist: </para>

        <varlistentry>
          <term
><literal
>rect</literal
></term>
          <listitem>
            <para>
<programlisting
>&lt;normal color=&quot;#000000&quot; alpha=&quot;0.0&quot;/&gt;
</programlisting>
Ükspuha kumma atribuudi võib ära jätta, millisel juhul kasutatakse vaikeväärtust (näide näitabki vaikeväärtusi). <literal
>alpha</literal
> on murdarv vahemikus null (läbipaistev) kuni üks (läbipaistmatu). <literal
>color</literal
> koosneb trellidest, millele järgneb kuuekohalike arv: vorming on <quote
><literal
>#</literal
><replaceable
>rrggbb</replaceable
></quote
>. Selle kõrval võib <literal
>color</literal
> olla määratud ka kaheksakohalise arvuna, millisel juhul kaks esimest arvu on alfakanali väärtus. </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
> ja <literal
>color</literal
> on määratud nagu <quote
>rect</quote
> elemendid. </para>
            <para
><literal
>font</literal
> on vormingus <quote
><replaceable
>perekonna-nimekiri</replaceable
>&nbsp;<replaceable
>stiilivalikud</replaceable
>&nbsp;<replaceable
>suurus</replaceable
></quote
>. Ükski osa ei ole kohustuslik. </para>
            <para
><replaceable
>perekonna-nimekiri</replaceable
> on komadega eraldatud fondiperede nimekiri, näiteks <quote
>helvetica</quote
>, <quote
>monospace</quote
> jne. </para>
            <para
><replaceable
>stiilivalikud</replaceable
> on tühikutega eraldatud kategooriate stiil, kaal ja ulatus võtmesõnade nimekiri, kusjuures igast kategooriast võib olla maksimaalselt üks. Stiil võib olla <literal
>normal</literal
>, <literal
>italic</literal
> või <literal
>oblique</literal
>. Kaal võib olla <literal
>ultra-light</literal
>, <literal
>light</literal
>, <literal
>medium</literal
>, <literal
>semi-bold</literal
>, <literal
>bold</literal
>, <literal
>ultra-bold</literal
> või <literal
>heavy</literal
>. Lubatud ulatused on <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
> ja <literal
>ultra-expanded</literal
>. </para>
            <para
><replaceable
>suurus</replaceable
> on kas murdarv, mis näitab suurust punktides (1/72 tolli) või täisarv, millele järgneb <literal
>px</literal
>, mis näitab suurust pikslites. Punktisuurus on eelistatav, sest see ei sõltu lahutusvõimest. </para>
            <para
>Kui mõni atribuut on andmata, kasutatakse <link linkend="style-nodes"
>stiili sõlme</link
> väärtusi. Kui see ei anna aknateksti värvi määratlust, kasutatakse valget. Vaikefont on määratud failis &kdmrc;. </para>
          </listitem>
        </varlistentry>

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

            <para
><literal
>file</literal
> määrab pilti sisaldava faili. Suhtelised asukohtade puhul lähtutakse teemakataloogi asukohast. </para>

            <para
><literal
>file</literal
> asemel võib kasutada <literal
>wallpaper</literal
>, et &kdm; otsiks pilte &kde; taustapiltide tavalistest asukohtadest. Toetatud on Plasma taustapildipaketid. </para>

            <para
><literal
>element</literal
> määrab SCG-faili elemendi ID. Kui see on andmata, renderdatakse kogu SVG-pilt. </para>

            <para
><literal
>pixmap</literal
> sõlmede puhul on võimalik anda mitu pilti, mis võimaldab antud lahutusvõime juures valida parima kvaliteediga pildi. Suuruse sildiga failinimede vorming on <replaceable
>baasnimi</replaceable
><literal
>-</literal
><replaceable
>laius</replaceable
><literal
>x</literal
><replaceable
>kõrgus</replaceable
><literal
>.</literal
><replaceable
>laiend</replaceable
>. Kui suuruse sildiga faili ei ole ja see pole Plasma taustapildipakett, aktsepteerib &kdm; ainult antud suurusele täpselt sobivat vastet, vastasel juhul võtab kasutusele originaalfaili. Muidu püüab ta aga leida pildi, mille mõõtmed oleks nõutud suurusele lähimad, kui päris täpset vastet ei leita. </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
> määrab, kuidas kohandada nende piltide suurust, mis ei sobi elemendi suurusega. <literal
>free</literal
> (vaikeväärtus) tähendab lihtsalt pildi skaleerimist õigesse suurusesse, millega võib kaasneda proportsiooni moonutamine. Teised kaks valikut säilitavad proportsiooni: <literal
>fit</literal
> tähendab pildi suurendamist maksimaalse elemendi geomeetriaga lubatud suuruseni. Pilt tsentreeritakse. Ülejäänud ala see element täis ei joonista, niisiis tuleb see asetada ühtlaselt täidetud ristküliku <literal
>rect</literal
> peale. <literal
>crop</literal
> tähendab pildi suurendamist minimaalse suuruseni, mis täidaks täielikult elemendi geomeetria. Pilti kärbitakse sümmeetriliselt. </para>

            <para
><literal
>tint</literal
> ja <literal
>alpha</literal
> moodustavad värvimääratluse nagu <literal
>rect</literal
> elementides. Iga pildi piksel korrutatakse värvikomponendiga. </para>
          </listitem>
        </varlistentry>

      </variablelist>

    </sect2>

    <sect2 id="style-nodes">
      <title
>Vidinastiili sõlmed</title>

      <para
>See silt võimaldab muuta pealdiste ja teemasse põimitud Qt vidinate välimust, nt tekstikastid, nupud või kasutajate nimekiri. Stiiliseadistused päritakse järglaselementidelt, kuid neid võib ükshaaval tühistada. Vaikeväärtused võetakse failist &kdmrc;. </para>

      <para
>Atribuut <literal
>font</literal
> määrab kõigi vidinate fondi. Sisendifunktsiooniga vidinate puhul saab seda tühistada atribuudiga <literal
>edit-font</literal
>. Fondid on määratud samamoodi nagu <link linkend="nor-act-pre-nodes"
>normaalne/aktiivne/hiirealune sõlmes</link
>. </para>

      <para
>Tavaliselt püüab teemamootor igati eemaldada Qt vidinatest raamid, et nad sulanduksid sujuvalt teemasse. Kui see pole aga soovitatav, võib atribuudile <literal
>frame</literal
> anda väärtuse <literal
>true</literal
>. </para>

      <para
>Atribuudiga <literal
>guistyle</literal
> saab tühistada Qt põimitud vidinate GUI stiili. Vaikeväärtuse saab anda failis &kdmrc; võtmega <option
>GUIStyle</option
>. </para>

      <para
>Vidinatele on võimalik määrata peaaegu kogu palett, nagu seda dokumenteerib <ulink type="http" url="http://doc.trolltech.com/4.3/qpalette.html"
>Trolltechi sait</ulink
>. Atribuudi nimed koosnevad skoobist, värvirollist ja sufiksist. Võimalikud skoobid on - kasvava eesõiguse järjekorras. <literal
>all.</literal
> kõigile värvigruppidele, skoobita aktiivsetele ja mitteaktiivsetele värvigruppidele ning <literal
>active-</literal
>, <literal
>inactive-</literal
> ja <literal
>disabled-</literal
> vastavale värvigrupile. Toetatud värvirollid on <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
> ja <literal
>button-text</literal
>. Sufiks võib olla <literal
>-color</literal
> või <literal
>-alpha</literal
>, mille tähendus on samasugune nagu <link linkend="nor-act-pre-nodes"
>normaalne/aktiivne/hiirealune sõlmes</link
>. </para>

      <para
>Alternatiivina paleti määramisele sisesena saab kasutada atribuuti <literal
>colorscheme</literal
> kogu &kde; värviskeemi laadimiseks. Vaikeväärtuse saab anda failis &kdmrc; võtmega <option
>ColorScheme</option
>. Üksikute värvide (<literal
>color</literal
>) määratlused tühistavad skeemiga määratud värvid. </para>

      <para
>Näide: <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
>Näosirvija värvi sõlmed</title>

      <para
>Värvisõlmed lubavad tühistada näosirvijas elementide taustavärvi. <literal
>labelcolor</literal
> ja <literal
>altlabelcolor</literal
> on põhimõtteliselt sama, mis <literal
>all-base-color</literal
> ja <literal
>all-alternate-base-color</literal
> <link linkend="style-nodes"
>stiilisõlmedes</link
>. Kui määratud on ainult <literal
>labelcolor</literal
>, on elemendi taustade vahetamine keelatud. </para>

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

    <sect2 id="text-nodes">
      <title
>Teksti sõlmed</title>

      <para
>Tekstisilte kasutavad pealdised. Neid võib kasutada lokaliseeritud teksti kuvamiseks järgmiselt (kui atribuut <literal
>xml:lang</literal
> puudub, eeldatakse POSIX-i lokaati): <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
>Tekstisõlmed võivad sisaldada järgmisi spetsiaalseid märgijadasid, mis tõlgitakse järgmiselt: </para>

      <segmentedlist>
        <?dbhtml list-presentation="table"?>
        <segtitle
>Jada</segtitle
><segtitle
>Laiendamine</segtitle>

        <seglistitem>
          <seg
>%%</seg>
          <seg
>Märk %</seg>
        </seglistitem>

        <seglistitem>
          <seg
>%c</seg>
          <seg
>Kella aeg ja kuupäev</seg>
        </seglistitem>

        <seglistitem>
          <seg
>%d</seg>
          <seg
>Kuva nimi (keskkonnamuutuja <envar
>DISPLAY</envar
>)</seg>
        </seglistitem>

        <seglistitem>
          <seg
>%h</seg>
          <seg
>Masinanimi (<function
>gethostname</function
> väljund)</seg>
        </seglistitem>

        <seglistitem>
          <seg
>%m</seg>
          <seg
>Masinanimi (<structfield
>machine</structfield
> osa <function
>uname</function
> väljundist)</seg>
        </seglistitem>

        <seglistitem>
          <seg
>%n</seg>
          <seg
>Sõlmenimi (<structfield
>nodename</structfield
> osa <function
>uname</function
> väljundist)</seg>
        </seglistitem>

        <seglistitem>
          <seg
>%o</seg>
          <seg
>Domeeni nimi (<function
>getdomainname</function
> väljund)</seg>
        </seglistitem>

        <seglistitem>
          <seg
>%r</seg>
          <seg
>Väljalaske nimi (<structfield
>release</structfield
> osa <function
>uname</function
> väljundist)</seg>
        </seglistitem>

        <seglistitem>
          <seg
>%s</seg>
          <seg
>Süsteemi nimi (<structfield
>sysname</structfield
> osa <function
>uname</function
> väljundist)</seg>
        </seglistitem>

        <seglistitem>
          <seg
>%t</seg>
          <seg
>Jäänud sekundite arv ajastatud sisselogimise korral pluss vastav i18n mitmuse vorm sõnast <quote
>sekund</quote
></seg>
        </seglistitem>

        <seglistitem>
          <seg
>%u</seg>
          <seg
>Kasutajanimi ajastatud sisselogimise korral</seg>
        </seglistitem>

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

        <seglistitem>
          <seg
>_</seg>
          <seg
>Põhjustab järgneva märgi muutumise kiirklahviks</seg>
        </seglistitem>

      </segmentedlist>

      <para
><literal
>%t</literal
> ja <literal
>%u</literal
> pn mõeldud kasutamiseks ainult teate <literal
>timed-label</literal
> kuvamisel, mida uuendatakse atuomaatselt iga sekund. </para>
    </sect2>

    <sect2 id="stock-nodes">
      <title
>Tüvisõlmed</title>

      <para
>Teatud üldisi lokaliseeritud pealdisi võib määratleda tüvisiltidega. Silti <literal
>text</literal
> eiratakse, kui kasutatakse silti <literal
>stock</literal
>. Palju mõistlikum ongi kasutada tüvipealdisi, mitte lisada teemasse kõik tõlked. See tagab kiirema laadimise ja tõenäoliselt ka parema tõlke. Lubatud on järgmised väärtused: </para>

      <segmentedlist>
        <?dbhtml list-presentation="table"?>
        <segtitle
>Tüüp</segtitle
><segtitle
>Laiendamine</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
>Caps Lock on sees</quote
></seg>
        </seglistitem>
        <seglistitem>
          <seg
>chooser</seg>
          <seg
><quote
>XDMCP _valija</quote
></seg>
        </seglistitem>
        <seglistitem>
          <seg
>quit</seg>
          <seg
><quote
>_Välju</quote
></seg>
        </seglistitem>
        <seglistitem>
          <seg
>disconnect</seg>
          <seg
><quote
>La_huta</quote
></seg>
        </seglistitem>
        <seglistitem>
          <seg
>halt</seg>
          <seg
><quote
>_Seiska</quote
></seg>
        </seglistitem>
        <seglistitem>
          <seg
>language</seg>
          <seg
><quote
>_Keel</quote
></seg>
        </seglistitem>
        <seglistitem>
          <seg
>login</seg>
          <seg
><quote
>_Logi sisse</quote
></seg>
        </seglistitem>
        <seglistitem>
          <seg
>session</seg>
          <seg
><quote
>Seansi _tüüp</quote
></seg>
        </seglistitem>
        <seglistitem>
          <seg
>reboot</seg>
          <seg
><quote
>_Taaskäivita</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
>Kasutaja %u logib sisse %t pärast</quote
></seg>
        </seglistitem>
        <seglistitem>
          <seg
>domain-label</seg>
          <seg
><quote
>_Domeen:</quote
></seg>
        </seglistitem>
        <seglistitem>
          <seg
>username-label</seg>
          <seg
><quote
>Kas_utajanimi:</quote
></seg>
        </seglistitem>
        <seglistitem>
          <seg
>password-label</seg>
          <seg
><quote
>_Parool:</quote
></seg>
        </seglistitem>
        <seglistitem>
          <seg
>welcome-label</seg>
          <seg
><quote
>Tere tulemast - %h</quote
></seg>
        </seglistitem>

      </segmentedlist>

      <para
>Näide: <programlisting
>&lt;stock type=&quot;welcome-label&quot;/&gt;
</programlisting>
      </para>
    </sect2>

    <sect2 id="buddy-nodes">
      <title
>Semusõlmed</title>

      <para
>Elemendid, mis ei põhjusta otseselt toimingut, võib omistada semule. Semule antakse sisendifookus, kui element aktiveeritakse (klõpsamisel või elemendi <literal
>label</literal
> kiirklahvi vajutamisel). </para>

      <para
>Semule osutatakse ID-ga atribuudis <literal
>idref</literal
>. Seepärast peab tal mõistagi olema ID. Näide: <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>
