<othercredit role="translator"><firstname>Massimiliano</firstname><surname>Donno</surname><affiliation><address><email>massidonno@infinito.it</email></address></affiliation><contrib>Traduzione del manuale</contrib></othercredit>
<para>&ksplash; è un ottimo splash screen che visualizza il progresso di una applicazione in caricamento. Per favore riporta qualsiasi problema o richieste di funzionalità aggiuntive alla mailing list di &kde;. Le funzionalità principali di &ksplash;: </para>
<para>Questo manuale ti mostra come creare dei temi usabili con i plugin che sono già disponibili. Se nessuno dei plugin disponibili soddisfa i tuoi gusti, puoi imparare come personalizzare completamente le sembianze di &ksplash; scrivendo un plugin in C++. </para>
<para>Per usare i temi del sito <ulink url="http://www.kde-look.org">KDE-Look</ulink>, estraili in <filename>~/.trinity/share/apps/ksplash/Themes/</filename> per ogni singolo utente, o in <filename>$<envar>TDEDIR</envar>/share/apps/ksplash/Themes/</filename> per renderli disponibili a tutti gli utenti del sistema.</para>
<para>Puoi anche usare il modulo <guilabel>Schermata d'avvio</guilabel> in <guilabel>Aspetto e Temi</guilabel> nel centro di controllo di &kde; per fare ciò in automatico.</para>
<para>Questo modulo permette di installare, testare e rimuovere temi di &ksplash;.</para>
<para>Su un lato del modulo c'è una lista di temi di &ksplash; subito disponibili. Appena se ne seleziona uno, verrà visualizzata un'anteprima nella parte centrale della finestra. Quando ne hai selezionato uno che desideri usare, premi <guibutton>Applica</guibutton>. Premi <guibutton>Ripristina</guibutton> per uscire dal modulo senza effettuare le modifiche, e <guibutton>Valori predefiniti</guibutton> per ripristinare la schermata di avvio predefinita.</para>
<para>Per installare nuovi moduli, premi <guibutton>Aggiungi...</guibutton>, e trova il tema sul tuo computer. Non devi decomprimere il file del tema, puoi tranquillamente selezionare il file del tema compresso. Installare un tema non significa cambiare quello attualmente in uso fin quando non lo si seleziona esplicitamente dalla lista e si preme <guibutton>Applica</guibutton>.</para>
<para>Puoi anche vedere un'anteprima dello splash screen in azione, per vedere come si comporta nell'uso reale, per esempio per renderti conto di come sono le animazioni. Puoi testare il tema selezionandolo dalla lista e fare clic sul pulsante <guibutton>Prova</guibutton>.</para>
<para>Puoi anche rimuovere un tema che non vuoi più usare, selezionandolo e premendo il pulsante <guilabel>Rimuovi</guilabel>. Nota che un utente semplice potrebbe non avere i permessi per rimuovere il tema installato per tutti gli utenti del sistema. Ti raccomando inoltre di non rimuovere lo splash screen <guilabel>Predefinito</guilabel>.</para>
<para>Creare un tuo tema per &ksplash; è semplice. Una volta terminato il tema, puoi postarlo a <ulink url="http://www.kde-look.org"> KDE-Look</ulink> per permettere ad altri utenti di utilizzarlo.</para>
<para>Creiamo un tema chiamato <literal>MyCoolTheme</literal>. Per permettere al tema di essere riconosciuto da &ksplash; deve essere memorizzato nella cartella chiamata <filename class="directory">MyCoolTheme </filename> sotto <filename class="directory"> ~/.trinity/apps/ksplash/Themes/</filename>. Deve contenere anche un file chiamato <filename>Theme.rc</filename>, contenente le impostazioni per il tema. Puoi specificare un gran numero di elementi speciali del tema, cambiare il motore dei plugin da usare, e così via. Non hai bisogno di utilizzare tutte le impostazioni disponibili, perché generalmente le opzioni predefinite sono già buone. La sintassi di base per le linee nel file<filename>Theme.rc</filename> è <literal>[opzione] = [valore]</literal>. Puoi trovare la definizione delle varie opzioni nelle sezioni successive.</para>
<para>Dopo aver specificato il nome, la descrizione e l'autore del tema, devi scegliere un motore per il tema (anche conosciuto come plugin). Dopodiché puoi personalizzare le varie funzionalità del motore assegnando una coppia di valori chiave come nel seguente file di esempio.</para>
<para>Il nome della cartella sotto la quale i file del tema sono memorizzati (<filename class="directory"> ~/.trinity/apps/ksplash/Themes/MyCoolTheme</filename> nel nostro caso) e l'identificativo del tema (<literal>[KSplash Theme: MyCoolTheme] </literal> nel nostro caso) nel file <filename>Theme.rc</filename> DEVE essere lo stesso. Altrimenti &ksplash; non riconoscerà il tema.</para>
<para>Quando &ksplash; parte, tenta di cercare un immagine di sfondo per la risoluzione dello schermo attuale, sempre se il motore del tema ne usa uno. Il file dell'immagine di sfondo deve essere chiamato nel seguente formato: <filename>Background-<replaceable>LLLxAAA </replaceable>.png</filename>.</para>
<para>Per esempio potresti usare un file chiamato <filename>Background-1024x768 </filename>. Se l'immagine di sfondo per la risoluzione dello schermo attuale non può essere trovata, ksplash tenta di ridimensionare la immagine originale <filename>Background.png</filename> o il file specificato in <filename>Theme.rc</filename> per meglio asservire la risoluzione corrente. Il ridimensionamento al volo prenderà un certo tempo, quindi dovresti provvedere diverse immagini di sfondo per almeno le seguenti risoluzioni: 1280x1024, 1024x768 e 800x600.</para>
<title>Opzioni del tema standard (nel file di configurazione vanno riportati i comandi in inglese, la traduzione è solo esplicativa ed è un commento, in stile script per la shell, cioè tutto quello che segue il carattere #)</title>
<para>In questo capitolo descriviamo un semplice metodo per usare &ksplash; come splash screen per le tue applicazioni &kde;. Se non sviluppi applicazioni per &kde; puoi saltare questo capitolo.</para>
<para>Le tue applicazioni &kde; devono esportare funzioni &DCOP;. &DCOP; è la tecnologia di &kde; usata per comunicare con le applicazioni. Se usi <ulink url="http://developer.kde.org">l'infrastruttura delle applicazioni di &kde;</ulink> standard, questo avverrà automaticamente. Per informazioni su &DCOP; e le tecnologie &kde; visita <ulink url="http://developer.kde.org">l'angolo dello sviluppatore &kde;</ulink>.</para>
<para>Qui assumiamo che esiste una sola istanza di &ksplash; in esecuzione. Altri casi sono leggermente più complessi. Per favore vedi la documentazione &DCOP; per maggiori dettagli.</para>
<para>Prima di visualizzare qualsiasi messaggio, devi impostare il numero di passi che vuoi visualizzare. Per esempio la procedura di partenza di &kde; impiega 7 passi.</para>
<para>Ogni volta che chiami la funzione <constant>programStarted</constant>, il passo compiuto viene incrementato. Quando il programma ha finito la fase di startup, fai la seguente cosa per mandar via lo splash screen:</para>
<para>Scrivere un nuovo plugin di &ksplash; non è difficile. In questo capitolo scriveremo un semplice plugin che emula lo splash screen di un noto sistema operativo. Questo tutorial premette che tu conosca le basi del C++ e un po' di programmazione di KDE/Qt.</para>
<para>Creeremo un plugin chiamato <literal>2k</literal>. Il nome del plugin è usato in vari posti, ed è importante che questo nome venga usato sempre senza modifiche, per permettere a &ksplash; di riconoscerlo. I plugin di &ksplash; sono librerie caricabili dinamicamente con la seguente convenzione sui nomi: </para>
<member>La libreria deve essere chiamata come <filename>ksplash+nomedeltemaminuscolo</filename>. Nel nostro esempio sarà <filename>ksplash2k</filename>.</member>
<member>Deve esserci un file .desktop corrispondente chiamato <filename>ksplash+nomedeltemaminuscolo.desktop</filename>. Nel nostro esempio sarà <filename>ksplash2k.desktop</filename>. </member>
<member>Infine l'oggetto restituito dalla libreria deve essere una classe, chiamata <literal>Theme+nometema</literal>. Nel nostro esempio la classe si chiamerà <literal>Theme2k</literal>.</member>
<para>Non preoccuparti se non hai capito quanto detto. Considereremo ognuno di questi punti in maggior dettaglio più avanti nel manuale. Un altro dettaglio molto importante è che la classe del plugin deve essere derivata dalla classe <literal>ThemeEngine</literal>. </para>
<para>Useremo l'infrastruttura delle applicazioni di &kde;, che si prenderà cura della compilazione del plugin e ci garantirà l'indipendenza dalla piattaforma senza nessun lavoro da parte nostra. Per fare ciò assicurati di avere il pacchetto <filename>tdesdk</filename> installato. Esegui il comando <literal>kapptemplate</literal> per produrre un applicazione chiamata "2k". Verrà creata una cartella che contiene file generici come AUTHORS, &etc;. Quello che ci interessa è una sottocartella chiamata <filename class="directory">2k</filename>. Vai in questa cartella e cancella tutti i file presenti. Ora abbiamo lo scheletro di applicazione che ci serve. </para>
<para>Il prossimo passo consiste nel creare un file <filename>.desktop</filename> che, una volta installato, dirà a &ksplash; che il nostro plugin è disponibile. Coerentemente con la nomenclatura portata avanti nella <link linkend="basic-requirements">sezione precedente</link>, crea un file chiamato <filename>ksplash2k.desktop</filename> nella sottocartella suddetta. Deve contenere le seguenti linee. </para>
<para>Le linee <literal>Encoding</literal>, <literal>Type</literal>, <literal>Comment</literal> e <literal>ServiceTypes</literal> sono le stesse per tutti i plugin. Il nome del plugin e della libreria seguono la stessa nomenclatura già usata. La linea <literal>X-KSplash-Default</literal> accetta un valore booleano che determina se il plugin deve essere visualizzato nel modulo di configurazione nel centro di controllo. Ad eccezione di pochi casi, questa linea deve essere <constant>true</constant>. </para>
<title>Dichiarazione delle classi dei plugin</title>
<para>Adesso che abbiamo svolto le faccende preliminari, andiamo con la parte più divertente, creando una classe che fornirà il comportamento che vogliamo. Siete liberi di fare quasi tutto quello che volete con questa classe, segendo delle semplici restrizioni.</para>
<listitem><para>Le classi dei plugin devono ereditare la classe <constant>ThemeEngine</constant>.</para></listitem>
<listitem><para>Le classi dei plugin devono essere nominate in accordo al ruolo: <classname>Tema+NomePlugin</classname>.</para></listitem>
<listitem><para>Le classi dei plugin devono avere una funzione <literal>static</literal> chiamata <function>names</function> che ritorna una lista di nomi attraverso i quali possono essere invocate.</para></listitem>
<listitem><para>Se il plugin può essere configurato nel modulo del centro di controllo, dovrebbe provvedere una classe basata su <literal>ThemeEngineConfig </literal> per la configurazione.</para></listitem>
<listitem><para>Le classi dei plugin devono sovrascrivere almeno una delle seguenti funzioni <function>slotSetText</function>, <function>slotSetPixmap</function>, <function>slotUpdateProgress</function> e <function>slotUpdateSteps</function> per renderle funzionanti.</para></listitem>
<listitem><para>Il costruttore deve prendere la forma <literal>ThemeEngine( QWidget *parent, const char *name, const QStringList &args )</literal> di modo che possa essere usato con la classe <classname>KGenericFactory</classname>.</para></listitem>
<para>Analizziamo il listato precedente. La classe <classname>Theme2k</classname> soddisfa la convenzione di nomi voluta, ed è ereditata dalla classe <classname>ThemeEngine</classname>. Fornisce un metodo <methodname>Theme2k::names()</methodname>, ed ha un costruttore che prende i parametri richiesti: <function>Theme2k( QWidget *, const char *, const QStringList& );</function> e fornisce un semplice metodo <methodname>Theme2k::slotSetText()</methodname>. Per il momento non dobbiamo preoccuparci della classe <classname>RotWidget</classname>. Si tratta di un piccolo widget che fornisce alcuni effetti grafici. Il nostro plugin è molto semplice e non mostra icone o barre di progresso. Se vuoi mostrare delle icone devi overloadare la funzione <function>slotSetPixmap </function>. Funzioni simili esistono per impostare l'intervallo della barra di progresso (<function>slotUpdateSteps</function>) e incrementare il passo corrente (<function>slotUpdateProgress</function>). </para>
<para>Esamineremo solo le parti rilevanti dell'implementazione. Per il listato completo vedi in appendice. La prima cosa che faremo è ottenere i requisiti delle librerie:</para>
<para>La macro <constant>K_EXPORT_COMPONENT_FACTORY</constant> è dichiarata in <filename>kgenericfactory.h</filename>. E ora il costruttore! Dato che questo plugin è super semplice, il costruttore è alquanto semplice.</para>
<para>Il metodo <function>readSettings()</function> illustra il modo giusto per ottenere le impostazioni del tema (Di sicuro vuoi che altre persone utilizzino il tuo plugin nel loro tema, giusto?)</para>
<para>Siccome noi amiamo i nostri utenti, forniremo dei parametri di default che non sono presenti nel file del tema. Nota che dovresti sempre impostare il gruppo come "KSplash Theme: nome del tema" per rimanere compatibili con le future spacifiche per i temi. Il metodo <function>initUI()</function> non è interessante, in quanto crea semplicemente il widget. Per favore vedi in appendice per i dettagli. </para>
<para>Dato che abbiamo deciso di utilizzare l'infrastruttura delle applicazioni di &kde; per compilare il plugin, dobbiamo creare un <filename>Makefile.am</filename>. Dovrebbe apparire come segue:</para>
<para>Per maggiori informazioni su come scrivere un file <filename> Makefile.am</filename> per &kde;, per favore vedi il <ulink url="http://developer.kde.org/documentation/other/makefile_am_howto.html">sito</ulink> degli sviluppatori di &kde;. La cosa da notare è che noi forniamo un tema predefinito basato su questo plugin, nonché un'anteprima di esso. Per una questione di cortesia ai tuoi utenti, dovresti fornire un file di esempio <filename>Theme.rc</filename> che illustra le varie opzioni.</para>
<para>Probabilmente non hai il corretto plugin per il tema. I plugin sono nel pacchetto <literal>kde-artwork</literal>. Scaricalo e installalo, e poi riprova.</para>
<para><filename>Theme.rc</filename> è il file dove puoi specificare le impostazioni del tema. Per maggiori informazioni guarda <link linkend="themes">Come to fare temi per &ksplash;</link>. </para>
<para>Per usare correttamente &ksplash; hai bisogno di &kde; versione 3.2 o superiore. Alcuni temi potrebbero richiedere specifici plugin. Se un tema non funziona, per favore contatta l'autore del tema per trovare come ottenere i plugin appropriati.</para>