<othercredit role="translator"><firstname>Marek</firstname><surname>Laane</surname><affiliation><address><email>bald@starman.ee</email></address></affiliation><contrib>Tõlge eesti keelde</contrib></othercredit>
<para>&ksplash; on kena käivitusekraan, mis näitab rakenduse laadimise edenemist. Palun anna kõigist probleemidest või mõtetest täiustamise kohta teada &kde; meililistides. &ksplash;i peamised omadused on: </para>
<para>Käesolev käsiraamat selgitab, kuidas luua teemasid kasutamiseks juba olemasolevate pluginatega. Kui ükski plugin ei suuda sinu tuju järgi olla, võib õppida &ksplash;i välimust igati ja täielikult muutma pluginat ise C++ keeles kirja pannes. </para>
<para>Kui tahad kasutada saidi <ulink url="http://www.kde-look.org">KDE-Look</ulink> teemasid, paki need ainult endale kasutamiseks lahti kataloogi <filename>~/.trinity/share/apps/ksplash/Themes/</filename> või kataloogi <filename>$<envar>TDEDIR</envar>/share/apps/ksplash/Themes/</filename>, kui soovid need teha kättesaadavaks kõigile süsteemi kasutajatele.</para>
<para>Kogu selle vaeva võib lasta automaatselt ära teha küll ka &kde; juhtimiskeskuse kaardi <guilabel>Välimus</guilabel> moodulil <guilabel>Käivitusekraan</guilabel>.</para>
<para>See moodul võimaldab paigaldada, testida ja eemaldada &ksplash;i teemasid.</para>
<para>Moodul näitab kõiki parajasti saadaolevaid &ksplash;i teemasid. Kui valida neist mõni, saab selle eelvaatlust näha akna põhiosas. Kui oled leidnud selle, mida soovid kasutada, klõpsa nupule <guibutton>OK</guibutton> või <guibutton>Rakenda</guibutton>. Kui soovid moodulist väljuda muudatusi tegemata, klõpsa nupule <guibutton>Loobu</guibutton>, või nupule <guibutton>Vaikeväärtused</guibutton>, kui soovid taastada süsteemse vaikekäivitusekraani.</para>
<para>Uue mooduli paigaldamiseks klõpsa nupule <guibutton>Lisa...</guibutton> ja otsi vajalik teema arvutist üles. Sul ei ole vaja teemafaile ise lahti pakkida, võid rahumeeli valida ka tihendatud teemafaili. Teema paigaldamine ei tähenda veel, et seda kohe kasutama hakataks - selleks tuleb see loendis valida ja klõpsata nupule <guibutton>OK</guibutton> või <guibutton>Rakenda</guibutton>.</para>
<para>Eelvaatlust lubab küll käivitusekraanist ülevaate saada, kuid tõenäoliselt tahaksid seda siiski nii-öelda päriselt näha, et näiteks kontrollida, kuidas toimib animatsioon. Teemasid on võimalik testida, kui valida loendist teema ja klõpsata nupule <guibutton>Test</guibutton>.</para>
<para>Kui sa ei soovi enam mõnda teemat kasutada, võib selle eemaldada, kui valida loendis teema ja klõpsata nupule <guibutton>Eemalda</guibutton>. Pane tähele, et tavakasutajal ei ole üldiselt õigust eemaldada süsteemselt paigaldatud teemasid. Samuti on päris soovitatav mitte eemaldada käivitusekraani, mille nimeks on <guilabel>vaikimisi</guilabel></para>
<para>Oma teema loomine &ksplash;ile on päris lihtne. Kui oled teema valmis saanud, võid selle postitada veebileheküljele <ulink url="http://www.kde-look.org">KDE-Look</ulink>, et sinu suurepärasest ilumeelest saaksid osa ka teised.</para>
<para>Võtame ette teema <literal>MinuLaheTeema</literal> loomise. Et &ksplash; teemat tunnistaks, tuleb see salvestada kataloogi <filename class="directory">MinuLaheTeema</filename>, mis omakorda paikneb kataloogis <filename class="directory">~/.trinity/apps/ksplash/Themes/</filename>. Teemat sisaldab fail nimega <filename>Theme.rc</filename>. Selles võib ära määrata terve hulga erilisi omadusi, muuta kasutatavat pluginamootorit ja nii edasi. Kõiki vähegi mõeldavaid seadistusi kasutada ei ole mõistagi kohustuslik, sest tavaliselt on seadistustele määratud üsna mõistlikud vaikeväärtused. Faili <filename>Theme.rc</filename> kirjete põhisüntaks on lihtne: <literal>[võti] = [väärtus]</literal>. Võtmete definitsioonid leiab käsiraamatu edasistes osades.</para>
<para>Pärast teema nime, kirjelduse ja autori määramist tuleb valida teema mootor (sageli nimetatakse seda ka pluginaks). Seejärel saab meelepäraseks muuta mootori mitmesugused võimalused, pannes paika võtme-väärtuse paarid, nagu näha toodud näites.</para>
<para>Tuleb kindlasti tähele panna, et kataloog, kuhu teemafailid on salvestatud (antud juhul <filename class="directory">~/.trinity/apps/ksplash/Themes/MyCoolTheme</filename>), ning teema identifikaator (antud juhul <literal>[KSplash Theme: MyCoolTheme] </literal>) failis <filename>Theme.rc</filename> oleks samasugused, sest muidu ei tunne &ksplash; teemat ära.</para>
<para>Kui &ksplash; tööd alustab, püüab ta leida sinu parajasti valitsevale ekraaniresolutsioonile vastavat taustapilti, kui teemamootor seda kasutama peaks. Taustapildi fail peaks kandma järgmises vormingus nime: <filename>Background<replaceable>LAIUSxKÕRGUS</replaceable>.png</filename>.</para>
<para>Näiteks <filename>Background-1024x768</filename>. Kui resolutsioonile vastavat taustapilti ei leita, püütakse muuta algupärase <filename>Background.png</filename> või failis <filename>Theme.rc</filename> määratud faili suurust, et see sobiks kokku valitseva resolutsiooniga. Selline lennult suuruse muutmine võib võtta tükk aega, mispärast oleks kasulik omada vähemalt järgmistes mõõtmetes taustapilte: 1280x1024, 1024x768 ja 800x600.</para>
<para>Selles peatükis kirjeldame lihtsat viisi, kuidas kasutada &ksplash;i oma &kde; rakenduse käivituslogona. Kui sa ei tegele rakenduste arendamisega &kde; tarbeks, võid peatüki ka vahele jätta.</para>
<para>Valitud &kde; rakendus peab olema &DCOP;-teadlik. &DCOP; on &kde; rakendustevahelise suhtlemise tehnoloogia. Kui kasutad standardset <ulink url="http://developer.kde.org">&kde; rakenduse raamistikku</ulink>, peaks selle eest olema automaatselt hoolt kantud. Kui vajad rohkem infot &DCOP;i ja sellega seotud &kde; tehnoloogia kohta, uuri <ulink url="http://developer.kde.org">&kde; arendajate kodulehekülge</ulink>.</para>
<para>Me eeldame, et korraga töötab ainult üks &ksplash;i protsess, muidu lähevad asjad natuke keerulisemaks. Täpsemalt loe selle kohta &DCOP;i dokumentatsioonist.</para>
<para>Iga kord, kui kutsuda välja <constant>programStarted</constant>, lisatakse uus samm. Kui rakendus on käivitumise lõpetanud, pane käivitulogo kaduma:</para>
<para>&ksplash;ile uute pluginate kirjutamine pole kuigi raske. Selles peatükis kirjutame lihtsa plugina, mis emuleerib hästi tuntud operatsioonisüsteemi käivitusekraani. Me eeldame, et sa tunned C++ põhialuseid ja oled kas või põgusalt tuttav KDE/Qt programmeerimisega.</para>
<para>Loome plugina nimetusega <literal>2k</literal>. Plugina nime kasutatakse mitmes kohas ning oluline on seda kõikjal ühtmoodi kasutada, et &ksplash; selle ikka ära tunneks. Õigupoolest on &ksplash;i pluginad dünaamiliselt laetavad teegid, mille juures tuleb järgida järgmisi nimekonventsioone: </para>
<member>Teek peaks kandma nime <filename>ksplash+teemanimiväiketähtedega</filename>. Meie teema puhul siis <filename>ksplash2k</filename>.</member>
<member>Sellele peab vastama töölauafail nimega <filename>ksplash+teemanimiväiketähtedega.desktop</filename>, meie juhul siis <filename>ksplash2k.desktop</filename>. </member>
<member>Lõpuks peab teegi tagastatud objekt olema klass nimega <literal>Theme+teemanimi</literal>, meie juhul <literal>Theme2k</literal>.</member>
<para>Ei tasu masendusse langeda, kui sa kõigest kohe aru ei saanud. Hiljem vaatame kõiki punkte lähemalt. Veel üks oluline punkt on see, et pluginaklassi päritolu peab olema <literal>ThemeEngine</literal>. </para>
<para>Me kasutame &kde; rakenduse raamistikku, mis hoolitseb plugina loomise eest ja pakub meile sõltumatust platvormist, ilma et me selleks ise erilisi pingutusi peaksime ette võtma. Selleks kontrolli, et paigaldatud oleks pakett <filename>tdesdk</filename>. Anna käsk <literal>kapptemplate</literal> rakenduse nimega "2k" tekitamiseks. See loob tipptaseme kataloogi, kus on mitmed üldised failid, näiteks AUTHORS &etc; Meid huvitab kõige enam alamkataloog <filename class="directory">2k</filename>. Mine sellesse alamkataloogi ja kustuta seal kõik failid. Nüüd on meil olemas vajalik "luustik". </para>
<para>Järgmine samm on luua <filename>.desktop</filename>-fail, mis paigaldamise korral teatab &ksplash;ile, et meie plugin on saadaval. Vastavalt <link linkend="basic-requirements">eelmises osas</link> kirjeldatud nimekonventsioonidele loome siin kataloogis faili <filename>ksplash2k.desktop</filename>. See peaks sisaldama järgmisi ridu: </para>
<para>Kodeering (<literal>Encoding</literal>), tüüp (<literal>Type</literal>), kommentaar (<literal>Comment</literal>) ja teenuse tüüp (<literal>ServiceTypes</literal>) on kõigile pluginatele ühesugused. Plugina ja teegi nimi järgivad eespool mainitud nimekonventsiooni. Kirje <literal>X-KSplash-Default</literal> kasutab tõeväärtust, mis määrab, kas seda näidatakse vaikimisi juhtimiskeskuse moodulis. Kui mõned harvad erandid kõrvale jätta, peaks see väärtus olema tõene (<constant>true</constant>). </para>
<para>Eeltöö on tehtud, asume nüüd tõeliselt vaimustava osa kallale - looma klassi, mis pakub just sellist käitumist, mida me soovime. Me võime selle klassiga ette võtta küll peaaegu kõike, mida soovime, kuid siiski on siin teatud piirangud.</para>
<listitem><para>Pluginaklasside päritolu peab olema klass <constant>ThemeEngine</constant>.</para></listitem>
<listitem><para>Pluginaklassid peavad kandma nime vastavalt reeglile <classname>Theme+PluginaNimi</classname>.</para></listitem>
<listitem><para>Pluginaklassid peavad pakkuma <literal>staatilise</literal> funktsiooni <function>names</function>, mis tagastab nimede nimekirja, mida see saab välja kutsuda.</para></listitem>
<listitem><para>Kui pluginat saab seadistada juhtimismoodulis, peab see seadistamiseks pakkuma <literal>ThemeEngineClass</literal>-põhise klassi.</para></listitem>
<listitem><para>Pluginaklassid peavad tühistama vähemalt ühe virtuaalsetest funktsioonidest <function>slotSetText</function>, <function>slotSetPixmap</function>, <function>slotUpdateProgress</function> ja <function>slotUpdateSteps</function>, et see oleks kasutatav.</para></listitem>
<listitem><para>Konstruktor peab olema kujul <literal>ThemeEngine( QWidget *parent, const char *name, const QStringList &args )</literal>, et seda saaks kasutada koos klassiga <classname>KGenericFactory</classname>.</para></listitem>
<para>Analüüsime nüüd seda listingut. Klass <classname>Theme2k</classname> rahuldab nimekonventsiooni ja tema päritolu on <classname>ThemeEngine</classname>. Ta pakub <methodname>Theme2k::names()</methodname> ja tal on konstruktor, mis võtab soovitavad parameetrid <function>Theme2k( QWidget *, const char *, const QStringList& );</function> ning pakub ka lihtsa meetodi <methodname>Theme2k::slotSetText()</methodname>. Hetkel ei ole mõtet pead vaevata klassiga <classname>RotWidget</classname>. See on väike element, mis pakub kasutajale veidi silmailu. Meie plugin on äärmiselt lihtne ega näita mingeid ikoone või edenemisriba. Kui soovid ikoone näidata, tühista funktsioon <function>slotSetPixmap</function>. Sarnased funktsioonid on olemas edenemisriba vahemikule (<function>slotUpdateSteps</function>) ja käesoleva sammu kasvamisele (<function>slotUpdateProgress</function>). </para>
<para>Makro <constant>K_EXPORT_COMPONENT_FACTORY</constant> on deklareeritud failis <filename>kgenericfactory.h</filename>. Edasi konstruktori kallale. Kuna see on väga lihtne plugin, on ka konstruktor lihtne ja selge.</para>
<para>Meetod <function>readSettings()</function> illustreerib korrektset teemaseadistuste hankimise viisi. Sa ju soovid, et inimesed kasutaks sinu pluginaid oma teemades, või kuidas?</para>
<para>Kuna meile meeldivad meie kasutajad, pakume neile parameetritena mõistlikke vaikeväärtusi, mida teemafailis ei leidu. Pane tähele, et alati tuleb grupiks määrata "KSplash Theme: themename", et ühilduda tulevase teema spetsifikatsiooniga. Meetod <function>initUI()</function> meid praegu eriti ei huvita, sest see ainult loob elemente. Selle kohta vaata lähemalt lisast. </para>
<para>Kuna me otsustasime kasutada plugina kompileerimiseks &kde; raamistikku, tuleb meil luua <filename>Makefile.am</filename>. See peaks välja nägema nii:</para>
<para>Rohkem infot <filename>Makefile.am</filename> kirjutamise kohta &kde; tarbeks leiab &kde; arendajate <ulink url="http://developer.kde.org/documentation/other/makefile_am_howto.html">veebileheküljelt</ulink>. Ainus asi, mida tasub märkida, on see, et me pakume sellele pluginale põhineva vaiketeema ning sellele ka eelvaatluse. Kasutajate huve silmas pidades tuleks pakkuda näidisfail <filename>Theme.rc</filename>, mis illustreerib erinevate valikut kasutamist.</para>
<para>Tõenäoliselt ei ole sul teemale korrektseid pluginaid. Pluginad asuvad paketis <literal>kde-artwork</literal>. Laadi see alla, paigalda ja proovi uuesti.</para>
<para><filename>Theme.rc</filename> on fail, kus saab määrata teema seadistused. Täpsemat infot vaata osast <link linkend="themes">Kuidas luua teemasid &ksplash;ile</link>. </para>
<para>&ksplash;i edukaks kasutamiseks on vajalik &kde; 3.2 või uuem. Mõned teemad võivad nõuda spetsiifilisi pluginaid. Kui teema ei hakka tööle, võta ühendust teema autoriga ja selgita välja, kuidas ja kust hankida vajalik plugin.</para>