<chapter id="technical-reference">
<chapterinfo>

<authorgroup>
<author
><firstname
>Éric</firstname
> <surname
>Bischoff</surname
> </author>
&Niels.Reedijk;&Freek.de.Kruijf; 
</authorgroup>

<date
>2009-12-15</date>
<releaseinfo
>0.6.0</releaseinfo>

<keywordset>
<keyword
>KDE</keyword>
<keyword
>KTuberling</keyword>
<keyword
>technische referentie</keyword>
</keywordset>
</chapterinfo>

<title
>Technische referentie</title>

<para
>&ktuberling; biedt een elegante en belonende inleiding in het programmeren voor en aanpassen van &kde;. Het programma kan worden uitgebreid. Bijvoorbeeld, zonder dat u hoeft te programmaren kunt u nieuwe speelvelden toevoegen door de grafische bestanden te wijzigen. Door de juiste geluidsbestanden kunnen vertalers de geluiden aanpassen aan hun eigen taal! </para>

<para
>Als u het spel uitbreidt, overweeg dan om uw toevoegingen te sturen aan de onderhouder <ulink url="mailto:alex@eyeos.org"
>Alex Fiestas</ulink
> zodat ze in toekomstige versies kunnen worden bijgesloten. </para>

<sect1 id="for-artists">
<title
>Voor artiesten</title>

<para
>Om een nieuwe &ktuberling; speelveld aan te maken dient u: </para>

<itemizedlist>

<listitem>
    <para
>Het speelveld te tekenen in een een SVG-bestand, waarin u: <itemizedlist>
            <listitem
><para
>De plaats waar items naar toe gesleept worden "background" wordt genoemd.</para
></listitem>
            <listitem
><para
>Geef elk van de versleepbare items een unieke naam.</para
></listitem>
        </itemizedlist>
    </para>
</listitem>

<listitem>
    <para
>Maak een thema-bestand aan, met het volgende schema:</para>
    <programlisting
>&lt;playground gameboard="<replaceable
>uwSVGbestand</replaceable
>" name="<replaceable
>hetBureaubladBestand</replaceable
>"&gt;
    &lt;object name="<replaceable
>itemNaam</replaceable
>" sound="<replaceable
>geluidNaam</replaceable
>" scale="<replaceable
>eenWaarde</replaceable
>" /&gt;
    ...
    ...
    ...
    &lt;/playground&gt;
    </programlisting>
    <itemizedlist>
        <listitem
><para
><replaceable
>uwSVGbestand</replaceable
> is de naam van het svg-bestand dat de tekening bevat.</para
></listitem>
        <listitem
><para
><replaceable
>hetBureaubladBestand</replaceable
> is de naam van het bureaubladbestand dat de naam van het thema bevat.</para
></listitem>
        <listitem
><para
>Voor elk object hebt u een &lt;object&gt;-item nodig. <replaceable
>itemNaam</replaceable
> is de unieke naam die u gebruikt voor het SVG-bestand, <replaceable
>geluidNaam</replaceable
> is de naam van het geluid dat zal worden afgespeeld bij het slepen, zie "sound themes howto" voor meer informatie.</para
></listitem>
        <listitem
><para
>scale is optioneel en <replaceable
>eenWaarde</replaceable
> is de schaalfactor die zal worden gebruikt bij het tekenen van dit object buiten de opslagplaats, als deze niet is gespecificeerd dan is deze 1.</para
></listitem>
    </itemizedlist>
</listitem>

<listitem>
    <para
>Maak een .desktop-bestand aan, met dit schema</para>
    <programlisting
>[KTuberlingTheme]
    Name=<replaceable
>themaNaam</replaceable
>
    </programlisting>
    <itemizedlist>
        <listitem
><para
><replaceable
>themaNaam</replaceable
> is de naam die het thema identificeert en zal worden getoond in het menu Speelveld.</para
></listitem>
    </itemizedlist>
</listitem>

<listitem>
    <para
>Als u het thema toevoegt aan de &ktuberling;-repository, voeg dan .svg-, .theme-, .desktop-bestanden toe aan de sectie FILES van CMakeLists.txt in de map pics/ </para>
</listitem>

<listitem>
    <para
>Als u het wilt installeren voor uzelf, plaats .svg-, .theme- en .desktop-bestanden in `kde4-config --prefix`/share/apps/ktuberling/pics </para>
</listitem>

</itemizedlist>

</sect1>

<sect1 id="for-translators">
<title
>Voor vertalers</title>

<para
>Naast de gebruikelijke mechanisme met <literal role="extension"
>.po</literal
>-bestanden voor het vertalen van programmateksten en documentatie kunnen ook de geluiden worden overgezet naar andere talen. </para>

<para
>Om een nieuw &ktuberling; geluid aan te maken dient u: </para>

<itemizedlist>

<listitem
><para
>Neem de geluiden op in OGG Vorbis rc3 bestandsformaat.</para
></listitem>

<listitem>
<para
>Maak een bestand <replaceable
>uwTaalTweeLetterCode</replaceable
>.soundtheme, het moet dit schema volgen:</para>
<programlisting
>&lt;language code="<replaceable
>uwTaalTweeLetterCode</replaceable
>"&gt;
&lt;sound name="<replaceable
>geluidsNaam</replaceable
>" file="<replaceable
>relatiefPad</replaceable
>" /&gt;
...
...
...
&lt;/language&gt;
</programlisting>
<itemizedlist>
<listitem
><para
><replaceable
>uwTaalTweeLetterCode</replaceable
> is de twee lettercode van uw taal, bijvoorbeeld nl voor Nederlands.</para
></listitem>
<listitem
><para
>Voor elke klank moet een &lt;sound&gt;-item. <replaceable
>geluidsNaam</replaceable
> overeenkomen met de geluidsNaam gespecificeerd in het playground-thema (zie thema's HOWTO). <replaceable
>relatievePad</replaceable
> zou het relatieve pad moeten zijn waar u het bestand met deze klank in gaat installeren, Dit is typisch eenUniekPad/geluidsNaam.format (eenUniekPad kan bijvoorbeeld uw twee-letterige taalcode zijn).</para
></listitem>
</itemizedlist>
</listitem>

<listitem
><para
>Als u het geluidsthema toevoegt aan de &ktuberling; in uw taalmap:</para>
<itemizedlist>
<listitem
><para
>Voeg de klankbestanden en het .soundtheme-bestand toe aan de map data/kdegames/ktuberling van de vertalingen in uw taal.</para
></listitem>
<listitem
><para
>In diezelfde map hebt u een CMakeLists.txt nodig die beschrijft hoe de bestanden te instelleren, dit is typisch:</para>
<programlisting
>FILE(GLOB datafiles *.ogg)
install( FILES ${datafiles} DESTINATION ${DATA_INSTALL_DIR}/ktuberling/sounds/<replaceable
>uwTaalTweeLetterCode</replaceable
> )
install( FILES <replaceable
>uwTaalTweeLetterCode</replaceable
>.soundtheme DESTINATION ${DATA_INSTALL_DIR}/ktuberling/sounds/ )
</programlisting>
</listitem>
</itemizedlist>
</listitem>

<listitem>
<para
>Als u het wilt installeren voor uzelf:</para>
<itemizedlist>
<listitem
><para
>Plaats <replaceable
>uwTaalTweeLetterCode</replaceable
>.soundtheme bestand in `kde4-config --prefix`/share/apps/ktuberling/sounds</para
></listitem>
<listitem
><para
>Plaats uwKlankBestanden in `kde4-config --prefix`/share/apps/ktuberling/sounds/eenUniekPad</para
></listitem>
</itemizedlist>
</listitem>

</itemizedlist>

<para
>Informatie over hoe u gebruik kunt maken met de vertaalmechanismen van &kde; is beschikbaar in <ulink url="http://l10n.kde.org/docs/translation-howto/index.html"
>The &kde; HOWTO voor vertalen</ulink
>. Kijk ook op de vertalerswebsite van het <ulink url="http://www.kde.nl/helpen/vertaling.html"
>Nederlandse KDE-team</ulink
>. </para>

</sect1>

<sect1 id="for-programmers">

<title
>Voor programmeurs</title>
<para
>&ktuberling; is voor programmeurs niet moeilijk om uit te breiden.</para>

<sect2 id="classes">
<title
>C++-klassen</title>

<variablelist>
<varlistentry>
<term
><classname
>TopLevel</classname
></term>
<listitem>
<para
>TopLevel window en basic program management</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><classname
>PlayGround</classname
></term>
<listitem>
<para
>Beschrijving van een van de spelniveaus</para
> </listitem>
</varlistentry>

<varlistentry>
<term
><classname
>ToDraw</classname
></term>
<listitem>
<para
>Beschrijving van een van de grafische <quote
>objecten</quote
> om te tekenen</para
> </listitem>
</varlistentry>

<varlistentry>
<term
><classname
>SoundFactory</classname
></term>
<listitem>
<para
>Beschrijving van een van de talen en diens geluiden</para
> </listitem>
</varlistentry>

<varlistentry>
<term
><classname
>Action</classname
></term>
<listitem>
<para
>Een van de gebruikers' manipulatie in de undo/redo stack</para
> </listitem>
</varlistentry>
</variablelist>

</sect2>

</sect1>
</chapter>
