È possibile personalizzare il Pannello principale usando i menu a scomparsa e i controlli “Installazione icona” dei pannelli secondari.
Questo modulo descrive la personalizzazione del Pannello principale mediante la creazione e la modifica dei file di configurazione.
Per informazioni di riferimento sui controlli e la configurazione del Pannello principale, vedere la pagina man dtfpfile(4X).
Per informazioni di riferimento sulla Gestione dello spazio di lavoro, vedere le pagine man dtwm(1) e dtwmrc(4).
Il Pannello principale è definito in un database di file di configurazione.
Modificando i file di configurazione è possibile personalizzare il Pannello principale. Alcune modifiche possono essere effettuate solo intervenendo sui file di configurazione; tra queste:
L'aggiunta di un nuovo controllo al Pannello principale.
L'aggiunta di controlli speciali, come le finestre dei client.
Il cambiamento di alcuni comportamenti predefiniti: ad esempio, la risposta al clic singolo o doppio dei controlli del Pannello principale.
Per fornire la massima flessibilità nella configurazione del pannello, questi file possono essere personali, di sistema o residenti su altri sistemi.
Il Pannello principale viene creato e gestito attraverso la Gestione dello spazio di lavoro.
Le impostazioni predefinite del Pannello principale si trovano nel file di configurazione /usr/dt/appconfig/types/lingua/dtwm.fp.
Questo file non deve essere modificato.
La definizione del Pannello principale può essere distribuita in qualsiasi numero di file residenti localmente o su sistemi remoti.
I file usati per definire il Pannello principale devono rispondere ai seguenti requisiti:
Il nome del file deve terminare con il suffisso .fp; ad esempio, posta.fp.
Il file deve trovarsi nel percorso di ricerca del database delle azioni.
Il percorso di ricerca predefinito per il database delle azioni include, nell'ordine, le seguenti directory:
Impostazioni personali: DirectoryIniziale/.dt/ty
Impostazioni di sistema: /etc/dt/appconfig/types/lingua
Pannello e controlli predefiniti: /usr/dt/appconfig/types/lingua
Un'altra directory, DirectoryIniziale/.dt/types/fp_dynamic viene usata per le impostazioni personali effettuate con l'interfaccia utente. Non usare questa directory per modificare le impostazioni manualmente.
Il percorso di ricerca del database delle azioni può essere integrato con altre directory usate per configurare il sistema in un ambiente di rete. In particolare, è possibile aggiungere directory remote quando il sistema viene configurato per accedere ad un server di applicazioni. Per maggiori informazioni, vedere Percorso di ricerca dei database (azioni/tipi di dati).
L'aspetto e il comportamento del Pannello principale sono il risultato di tutti i file di configurazione inclusi nel percorso di ricerca del database delle azioni.
Quando esiste un conflitto tra due o più componenti della definizione, il valore da applicare viene scelto in base a determinate regole di precedenza. Due componenti entrano in conflitto nei seguenti casi:
Quando il nome del controllo, il valore di CONTAINER_NAME
e il valore di CONTAINER_TYPE
sono uguali.
Oppure, quando sono in concorrenza per la stessa posizione
(avendo nomi diversi ma gli stessi valori per i campi CONTAINER_NAME
, CONTAINER_TYPE
e POSITION_HINTS
).
Il Pannello principale utilizza le seguenti regole di precedenza:
Se i componenti sono due controlli con lo stesso nome, e si trovano in contenitori con lo stesso nome e dello stesso tipo, verrà usato il componente letto per primo.
Ad esempio, se un controllo di sistema e un controllo predefinito presentano valori uguali per questi campi ma valori diversi per il resto della definizione:
CONTROL TextEditor { CONTAINER_TYPE BOX CONTAINER_NAME Top … }
avrà la precedenza il controllo di sistema.
Se due componenti sono in competizione per la stessa posizione, essi verranno collocati nell'ordine in cui verranno letti.
Ad esempio, se si crea un nuovo controllo personale per il Pannello
principale (CONTAINER_TYPE
BOX
e CONTAINER_NAME
Top) e lo si
assegna alla posizione POSITION_HINTS
5, questo nuovo controllo farà scalare verso destra il controllo predefinito
e tutti gli altri controlli con numeri di posizione più alti.
Quando si modifica un controllo creandone una nuova versione a
livello di sistema o personale, la nuova definizione deve contenere lo stesso
nome per il controllo e gli stessi valori per i campi CONTAINER_NAME
e CONTAINER_TYPE
. Diversamente, il nuovo controllo apparirà in aggiunta
a quello esistente.
Quando un utente personalizza il Pannello principale usando il controllo “Installazione icona” e i menu a scomparsa, le modifiche vengono scritte nella directory DirectoryIniziale/.dt/types/fp_dynamic.
Viene creato un altro file, DirectoryIniziale/.dt/sessions/dtwmfp.session, che verrà usato per salvare e ripristinare lo stato del Pannello principale personalizzato ad ogni avvio di una sessione.
Ogni utente ha la possibilità di personalizzare il Pannello principale usando i menu a scomparsa e i controlli “Installazione icona”.
Questa sezione descrive le procedure per:
Impedire alcune modifiche personali. Ad esempio, si può rendere impossibile l'eliminazione di un controllo da parte degli utenti.
Annullare le modifiche personali. Ad esempio, sarà possibile ripristinare un controllo eliminato accidentalmente da un utente.
Se il controllo è predefinito, copiarne la definizione da /usr/dt/appconfig/types/lingua/dtwm.fp in /etc/dt/appconfig/types/lingua/nome.fp.
Aggiungere la riga seguente alla definizione del controllo:
LOCKED True
L'azione “Ripristina Pannello principale” del gruppo Strumenti_desktop elimina tutte le modifiche apportate al Pannello principale con l'interfaccia utente. Gli utenti potranno usare questa azione per eliminare le modifiche personali eseguite con i menu a scomparsa del Pannello principale.
Per ripristinare un singolo controllo, usare la procedura seguente.
In DirectoryIniziale/.dt/types/fp_dynamic, eliminare il file che è stato creato al momento dell'eliminazione del controllo. Il controllo avrà lo stesso nome di quello originale precedentemente eliminato.
Ad esempio, se è stato eliminato il controllo dell'Editor delle icone, la directory fp_dynamic conterrà un file con i seguenti valori:
CONTROL IconEditor { … DELETE True }
Quando si elimina un pannello secondario, viene creato un file dinamico separato per il pannello secondario e per ognuno dei controlli contenuti in quel pannello.
La configurazione del Pannello principale risulta dalle definizioni dei suoi componenti. Ognuno di questi componenti ha una sintassi che ne definisce l'aspetto, il comportamento e la posizione nel Pannello principale.
Il Pannello principale viene creato dall'esterno verso l'interno:
Il pannello primario (PANEL) è il contenitore di primo livello per l'intero Pannello principale.
Il pannello primario (PANEL) funge da contenitore per uno o più riquadri (BOX).
Ogni riquadro è un contenitore per uno o più controlli (CONTROL).
Esistono due tipi di contenitori speciali:
Il pannello secondario (SUBPANEL) è un contenitore associato a un controllo specifico (il controllo funge da contenitore per il pannello secondario). I pannelli secondari “scorrono in alto” a partire dal controllo a cui sono associati.
L'area dei commutatori (SWITCH) contiene i pulsanti per la scelta dello spazio di lavoro ed alcuni altri controlli.
Ogni componente del Pannello principale viene definito separatamente usando la sintassi:
COMPONENTE nome { PAROLA_CHIAVE valore PAROLA_CHIAVE valore … }
Alcune parole chiave sono richieste obbligatoriamente, altre sono opzionali. Per maggiori informazioni, vedere la pagina man dtfpfile(4X).
Il pannello primario è il componente di primo livello. La sua definizione include:
Il nome del pannello
Una serie di campi che descrivono l'aspetto generale e il comportamento dell'intero pannello
PANEL nome_pannello_primario { PAROLA_CHIAVE valore PAROLA_CHIAVE valore … }
Il valore nome_pannello_primario indica il nome unico usato per il Pannello principale. Il nome predefinito è “FrontPanel”.
La definizione di un riquadro comprende:
Il nome del riquadro (BOX)
Il pannello primario in cui si trova il riquadro (CONTAINER_NAME)
La posizione del riquadro nel pannello (POSITION_HINTS)
I campi che descrivono l'aspetto e il comportamento e che si applicano all'intero riquadro
BOX nome_riquadro { CONTAINER_NAME nome_pannello_primario POSITION_HINTS posizione PAROLA_CHIAVE valore PAROLA_CHIAVE valore … }
La definizione di un controllo (CONTROL) specifica:
Il nome del controllo
Se il controllo si trova all'interno di un riquadro, di un pannello secondario o dell'area dei commutatori (CONTAINER_TYPE)
Il riquadro, il pannello secondario o l'area dei commutatori in cui si trova il controllo (CONTAINER_NAME)
La posizione del controllo nel riquadro (POSITION_HINTS).
L'aspetto e il comportamento del controllo
CONTROL nome_controllo { CONTAINER_TYPE BOX o SUBPANEL o SWITCH CONTAINER_NAME nome_riquadro o nome_pannello_secondario o nome_commutatore TYPE tipo_controllo POSITION_HINTS posizione PAROLA_CHIAVE valore PAROLA_CHIAVE valore … }
La definizione di un pannello secondario specifica:
Il nome del pannello secondario
Il nome del controllo a cui il pannello secondario è associato (CONTAINER_NAME)
L'aspetto e il comportamento specifici del pannello secondario
SUBPANEL nome_pannello_secondario { CONTAINER_NAME nome_controllo PAROLA_CHIAVE valore PAROLA_CHIAVE valore … }
La definizione di un commutatore specifica:
Il nome del commutatore
La posizione del commutatore all'interno del riquadro (POSITION_HINTS)
L'aspetto e il comportamento del commutatore
SWITCH nome_commutatore { CONTAINER_NAME nome_riquadro POSITION_HINTS posizione PAROLA_CHIAVE valore PAROLA_CHIAVE valore … }
Il Pannello primario è la parte del Pannello principale che include tutti i controlli e gli elementi descritti nelle sezioni precedenti, esclusi i pannelli secondari.
Il Pannello primario può essere modificato come segue:
Aggiungendo o eliminando un controllo
Scambiando le posizioni dei controlli
Creare un file di configurazione per il Pannello principale:
A livello di sistema: /etc/dt/appconfig/types/lingua/*.fp
A livello personale: DirectoryIniziale/.dt/types/*.fp
Definire il controllo all'interno del file.
Usare i campi CONTAINER_NAME e CONTAINER_TYPE per specificare il contenitore da usare per il controllo:
CONTAINER_NAME Top CONTAINER_TYPE BOX
Usare il campo POSITION_HINTS per specificare la posizione del controllo, da sinistra verso destra. Poiché le impostazioni personali hanno la precedenza rispetto a quelle predefinite, il nuovo controllo “farà scalare” verso destra il controllo che occupava in precedenza la posizione specificata.
Salvare il file di configurazione.
Creare un'icona per il controllo del Pannello principale.
Scegliere “Riavvia la Gestione dello spazio di lavoro” dal menu di controllo dello spazio di lavoro.
La definizione dell'esempio seguente, inclusa nel file /etc/dt/appconfig/types/lingua/audio.fp, inserisce il controllo di un'applicazione audio tra il controllo dell'Orologio e quello dell'Agenda.
CONTROL ApplicazioneAudio { TYPE icon CONTAINER_NAME Top CONTAINER_TYPE BOX ICON AppAudio POSITION_HINTS 2 PUSH_ACTION AvviaApplicazioneAudio PUSH_RECALL true }
Creare un file di configurazione per il Pannello principale:
A livello di sistema: /etc/dt/appconfig/types/lingua/nome.fp
A livello personale: DirectoryIniziale/.dt/types/nome.fp
Copiare la definizione del controllo da eliminare nel nuovo file.
Se il controllo è predefinito, la sua definizione si troverà in /usr/dt/appconfig/types/lingua/dtwm.fp.
Non è necessario copiare l'intera definizione. Tuttavia, la porzione da copiare deve includere i campi CONTAINER_NAME e CONTAINER_TYPE.
Aggiungere il campo DELETE alla definizione:
DELETE True
Salvare il file di configurazione.
Scegliere “Riavvia la Gestione dello spazio di lavoro” dal menu di controllo dello spazio di lavoro.
La definizione dell'esempio seguente, inclusa nel file /etc/dt/appconfig/types/lingua/TrashCan.fp, elimina il controllo del Cestino dal Pannello principale.
CONTROL Trash { CONTAINER_NAME Top CONTAINER_TYPE BOX DELETE True }
Per modificare la definizione di un controllo, ad esempio per cambiare l'immagine dell'icona, usare la procedura seguente:
Copiare l'intera definizione del controllo da /usr/dt/appconfig/types/lingua/dtwm.fp in:
A livello di sistema: /etc/dt/appconfig/types/lingua/nome.fp
A livello personale: DirectoryIniziale/.dt/types/nome.fp
Modificare il campo desiderato. È anche possibile aggiungere nuovi campi.
Salvare il file.
Scegliere “Riavvia la Gestione dello spazio di lavoro” dal menu di controllo dello spazio di lavoro.
Copiare le definizioni dei controlli che si desidera spostare da /usr/dt/appconfig/types/lingua/dtwm.fp in:
A livello di sistema: /etc/dt/appconfig/types/lingua/nome.fp
A livello personale: DirectoryIniziale/.dt/types/nome.fp
È necessario copiare l'intera definizione di tutti i controlli da spostare.
Scambiare i valori dei campi POSITION_HINTS tra le definizioni dei controlli.
Salvare il file.
Scegliere “Riavvia la Gestione dello spazio di lavoro” dal menu di controllo dello spazio di lavoro.
Le definizioni seguenti, incluse nel file /etc/dt/appconfig/types/C/MailHelp.fp, invertono le posizioni dei controlli della Gestione posta e della Gestione della guida e bloccano questi controlli per impedire modifiche personali da parte degli utenti.
CONTROL Mail { POSITION_HINTS 12 LOCKED True …seguito della definizione del controllo }
CONTROL Help { POSITION_HINTS 5 LOCKED True …seguito della definizione del controllo }
Creare una nuova definizione che contenga gli stessi valori per:
nome_controllo
L'esempio seguente mostra le definizioni di due controlli in due diversi file di configurazione. Poiché entrambe presentano lo stesso nome per il controllo e per il contenitore, esse vengono associate allo stesso controllo.
Definizione in /etc/dt/appconfig/types/C/ControlliSys.fp:
Control ApplicazioneImportante { CONTAINER_NAME Top CONTAINER_TYPE BOX POSITION_HINTS 2 … }
Definizione in DirectoryIniziale/.dt/types/MioControllo.fp:
Control ApplicazioneImportante { CONTAINER_NAME Top CONTAINER_TYPE BOX POSITION_HINTS 6 … }
Poiché la definizione personale ha la precedenza, il controllo verrà collocato in posizione 6.
L'icona usata da un controllo viene definita nel campo ICON della sua definizione.
Il valore del campo ICON può essere:
Il nome base di un file.
Per nome base si intende il nome del file grafico contenente l'icona meno i suffissi relativi alla dimensione (m e t) e al tipo di immagine (bm e pm). Ad esempio, nel caso di due file i cui nomi completi sono Gioco.l.pm e Gioco.m.pm, il nome base sarà Gioco.
Per poter utilizzare il nome base, è necessario che i file delle icone si trovino in una directory inclusa nel percorso di ricerca delle icone:
Per le icone personali: DirectoryIniziale/.dt/icons
Per le icone di sistema: /etc/dt/appconfig/icons/lingua
Il nome completo del file dell'icona preceduto dal percorso assoluto.
Usare il percorso assoluto solo se il file non si trova nel percorso di ricerca delle icone.
La dimensione richiesta per l'icona dipende dalla posizione del controllo:
Posizione e dimensione
Pannello primario – 48 x 48 pixel (nome.l.pm o nome.l.bm)
Pannello secondario – 24 x 24 pixel (nome.s.pm o nome.s.bm)
Collocare il file dell'icona in una delle seguenti directory:
Icone personali: DirectoryIniziale/.dt/icons
Icone di sistema: /etc/dt/appconfig/icons/lingua
Per creare e modificare i pannelli secondari si possono usare i menu a scomparsa del Pannello principale.
Questa sezione descrive come effettuare le modifiche a livello di sistema intervenendo sui file di configurazione del Pannello principale.
Ogni pannello secondario è associato a un controllo del Pannello principale.
L'associazione viene specificata nella definizione del pannello secondario. Il campo CONTAINER_NAME specifica il controllo a cui è associato il pannello secondario:
CONTROL nome_controllo { … } SUBPANEL nome_pannello_secondario { CONTAINER_NAME nome_controllo … }
Individuare il nome del controllo del Pannello principale a cui si desidera associare il nuovo pannello secondario.
Se il controllo è predefinito, la sua definizione si troverà in /usr/dt/appconfig/types/lingua/dtwm.fp.
Creare un nuovo file /etc/dt/appconfig/types/lingua/*.fp.
Definire il pannello secondario:
SUBPANEL nome_pannello_secondario { CONTAINER_NAME nome_controllo TITLE valore PAROLA_CHIAVE valore … }
Salvare il nuovo file di configurazione.
Scegliere “Riavvia la Gestione dello spazio di lavoro” dal menu di controllo dello spazio di lavoro.
È possibile modificare sia le caratteristiche generali (come il titolo) che il contenuto dei pannelli secondari predefiniti.
Creare un nuovo file di configurazione per il Pannello principale:
A livello di sistema: /etc/dt/appconfig/types/lingua/nome.fp
A livello personale: DirectoryIniziale/.dt/types/nome.fp
Copiare l'intera definizione del pannello secondario predefinito da /usr/dt/appconfig/types/lingua/dtwm.fp nel nuovo file:
SUBPANEL nome_pannello_secondario { … }
Modificare la definizione del pannello secondario.
Salvare il nuovo file di configurazione.
Scegliere “Riavvia la Gestione dello spazio di lavoro” dal menu di controllo dello spazio di lavoro.
La definizione dell'esempio seguente, inclusa nel file /utenti/anna/.dt/types/AppPers.fp, cambia il nome del pannello secondario “Applicazioni personali”:
SUBPANEL PerAppsSubpanel { CONTAINER_NAME TextEditor TITLE Applicazioni di Anna }
Creare un file di configurazione del Pannello principale di nome /etc/dt/appconfig/types/lingua/nome.fp.
Definire nel file il controllo di sistema da aggiungere.
Usare i campi CONTAINER_NAME e CONTAINER_TYPE per specificare il contenitore per il controllo:
CONTROL nome_controllo { CONTAINER_NAME nome_pannello_secondario CONTAINER_TYPE SUBPANEL … }
Salvare il file di configurazione.
Scegliere “Riavvia la Gestione dello spazio di lavoro” dal menu di controllo dello spazio di lavoro.
L'esempio seguente riporta una definizione, inclusa in un file nuovo di nome /etc/dt/appconfig/types/lingua/OrologioDigitale.fp, che aggiunge un orologio digitale (DigitalClock nel gruppo Strumenti_desktop) al pannello secondario “Applicazioni personali” di tutti gli utenti.
CONTROL ControlloOrologioDigitale { TYPE icon CONTAINER_NAME PerAppsSubpanel CONTAINER_TYPE SUBPANEL ICON Dtdgclk PUSH_ACTION DigitalClock PUSH_RECALL True }
Usare la stessa procedura descritta per l'eliminazione di un controllo dal Pannello primario. Vedere Eliminare un controllo.
Aggiungere il campo seguente alla definizione del pannello secondario:
CONTROL_INSTALL False
Nell'impostazione predefinita, i pannelli secondari si chiudono quando si sceglie un controllo, a meno che il pannello non sia stato spostato dalla sua posizione originaria.
Il Pannello principale può essere configurato in modo da tenere i pannelli secondari aperti fino a un comando di chiusura esplicito.
Creare un nuovo file di configurazione per il Pannello principale in:
A livello di sistema: /etc/dt/appconfig/types/lingua/*.fp
A livello personale: DirectoryIniziale/.dt/types/*.fp
Copiare la definizione predefinita per il pannello da /usr/dt/appconfig/types/lingua/dtwm.fp nel nuovo file:
PANEL FrontPanel { … }
Aggiungere alla definizione il campo seguente:
SUBPANEL_UNPOST False
Salvare il nuovo file di configurazione.
Scegliere “Riavvia la Gestione dello spazio di lavoro” dal menu di controllo dello spazio di lavoro.
Ogni utente può creare una serie di controlli personali rilasciando le relative icone sui controlli “Installazione icona”.
Questa procedura permette di personalizzare facilmente il Pannello principale, ma offre solo un sottoinsieme delle funzionalità disponibili per i controlli. Ad esempio, un controllo creato con “Installazione icona” non può:
Avere un'animazione
Visualizzare una finestra client
Cambiare aspetto quando si verifica un determinato evento (ad esempio, al ricevimento di un messaggio di posta elettronica)
Questa sezione descrive come creare manualmente i controlli del Pannello principale.
Per informazioni sulla sintassi dei controlli del Pannello principale, vedere la pagina man dtfpfile(4X).
La definizione di un controllo del Pannello principale ha la seguente struttura:
CONTROL nome_controllo { TYPE tipo_controllo CONTAINER_NAME valore CONTAINER_TYPE valore altri campi che definiscono l'aspetto e il comportamento del controllo }
Il campo TYPE della definizione specifica il comportamento base del controllo.
Comportamento
Facendo clic sul controllo o rilasciandovi un file viene eseguita l'azione specificata.
Spia di occupato. Il controllo lampeggia quando si richiama un'azione.
Finestra client nel Pannello principale.
Orologio.
Visualizza la data corrente.
Rappresenta un file. Scegliendo il controllo viene eseguita l'azione predefinita per il file.
Questa sezione descrive la procedura generale da usare per definire un controllo e spiega come creare diversi tipi di controlli.
Se il controllo deve essere associato a un'azione di tipo PUSH_ACTION e/o DROP_ACTION, creare le definizioni per queste azioni. Queste azioni saranno eseguite facendo clic sul controllo o rilasciandovi un file.
Creare le icone da usare per il controllo.
Per informazioni sulle dimensioni, i nomi e le posizioni delle icone, vedere File grafici delle icone.
Creare un nuovo file di configurazione per il Pannello principale in:
A livello di sistema: /etc/dt/appconfig/types/lingua/*.fp
A livello personale: DirectoryIniziale/.dt/types/*.fp
Aggiungere al file la definizione del controllo.
Salvare il file.
Scegliere “Riavvia la Gestione dello spazio di lavoro” dal menu di controllo dello spazio di lavoro.
Per definire il comportamento del controllo, usare i campi seguenti:
TYPE: impostare su icon
PUSH_ACTION: specificare il nome dell'azione da eseguire
Il controllo definito nell'esempio seguente, che verrà aggiunto al pannello secondario “Applicazioni personali”, esegue un gioco acquistato dall'utente:
CONTROL Rimbalzo { TYPE icon CONTAINER_NAME PersAppsSubpanel CONTAINER_TYPE SUBPANEL ICON rimbalzo PUSH_ACTION AvviaRimbalzo HELP_STRING "Fare clic per giocare a Rimbalzo." }
Il controllo seguente avvia un'azione di nome CutDisp, e verrà collocato nell'angolo superiore sinistro dell'area dei commutatori.
CONTROL AvviaCutDisp { TYPE icon CONTAINER_NAME Switch CONTAINER_TYPE SWITCH POSITION_HINTS first ICON cutdisp HELP_STRING "Fare clic per eseguire cutdisp." PUSH_ACTION CutDisp }
Per definire il comportamento del controllo, usare i campi seguenti:
TYPE: impostare su file
PUSH_ACTION: impostare su Open
È necessario che sia definita un'azione Open (Apri) per il tipo di dati associato al file.
Il controllo definito nell'esempio seguente verrà collocato all'estrema destra del Pannello principale. Esso avvia l'Editor di testo con il file di dati /utenti/elena/rubrica.txt. L'azione Apri per i file *.txt è già inclusa nel database delle azioni predefinito.
CONTROL ModificaRubrica { TYPE file FILE_NAME /utenti/elena/rubrica.txt CONTAINER_NAME Top CONTAINER_TYPE BOX POSITION_HINTS last ICON PhoneBook HELP_STRING "Controllo che visualizza la rubrica di Elena." PUSH_ACTION Open }
Usare il campo DROP_ACTION per specificare l'azione da eseguire al rilascio di un file sul controllo. L'azione specificata deve poter accettare un file come argomento.
Spesso le definizioni dei controlli includono sia un campo PUSH_ACTION che un campo DROP_ACTION. È possibile usare la stessa azione per entrambi i campi.
Ad esempio il controllo seguente, situato nel pannello secondario “Applicazioni personali”, esegue il client X xwud, che può accettare un file come argomento.
CONTROL Avvia_xwud { CONTAINER_NAME PerAppsSubpanel CONTAINER_TYPE SUBPANEL POSITION_HINTS 2 ICON ImmagineXwud PUSH_ACTION AvviaXwud DROP_ACTION AvviaXwud }
Per definire il comportamento del controllo, usare i campi seguenti:
TYPE: specificare uno dei seguenti valori:
icon: usare questo valore per specificare un'azione di tipo PUSH_ACTION e/o DROP_ACTION per il controllo.
file: usare questo valore se si desidera che la scelta del controllo equivalga a un doppio clic sul file nella Gestione di file.
ICON e ALTERNATE_ICON: specificare le immagini da usare per indicare il cambiamento o il non-cambiamento di stato del file sottoposto al monitoraggio.
MONITOR_TYPE: descrivere le condizioni per il cambiamento dell'immagine. Usare uno dei seguenti valori:
mail: il controllo cambia aspetto quando vengono aggiunte nuove informazioni al file.
file: il controllo cambia aspetto quando il file specificato non è più vuoto.
FILE_NAME: specificare il file da sottoporre a monitoraggio.
Ad esempio, il controllo seguente verifica la presenza o meno di un file di nome meeting che deve essere ricevuto attraverso un ftp anonimo. Il controllo verrà collocato alla sommità del pannello secondario “Applicazioni personali”.
CONTROL ControlloAgendar { TYPE file CONTAINER_NAME PersonalApps CONTAINER_TYPE SUBPANEL POSITION_HINTS first FILE_NAME /utenti/ftp/meeting MONITOR_TYPE file ICON meeting_no ALTERNATE_ICON meeting_si }
Un controllo ad esecuzione unica verifica se il processo avviato con l'azione specificata in PUSH_ACTION è già in esecuzione. Se il processo non è in esecuzione, l'azione viene eseguita. In caso contrario, la finestra associata all'azione viene portata in primo piano nello spazio di lavoro corrente.
Per definire il comportamento del controllo, usare i campi seguenti:
PUSH_RECALL: impostare su True.
CLIENT_NAME: specificare il nome del client associato al controllo.
Il valore di CLIENT_NAME deve corrispondere alla prima stringa (nome_ris) della caratteristica WM_CLASS della finestra principale dell'applicazione. Per maggiori informazioni, vedere la pagina man xprop(1).
PUSH_ACTION: descrivere l'azione da eseguire al clic sul controllo.
Ad esempio, il controllo seguente avvia un'unica copia dell'applicazione associata all'azione EditorPersonale.
CONTROL EditorPersonale { TYPE icon CONTAINER_NAME Top CONTAINER_TYPE BOX POSITION_HINTS 15 PUSH_RECALL True CLIENT_NAME EditorMigliore PUSH_ACTION AvviaEditorPersonale ICON Ed_pers }
Il controllo di una finestra client è una finestra di un'applicazione incorporata nel Pannello principale. Ad esempio, è possibile inserire nel Pannello principale un misuratore del carico del sistema creando un controllo per la finestra client xload.
Definire il controllo.
Per definire il comportamento del controllo, usare i campi seguenti:
TYPE: impostare su client.
CLIENT_NAME: specificare il client da avviare.
Il valore di CLIENT_NAME deve corrispondere alla prima stringa (nome_ris) della caratteristica WM_CLASS della finestra principale dell'applicazione. Per maggiori informazioni, vedere la pagina man xprop(1).
Scegliere “Riavvia la Gestione dello spazio di lavoro” dal menu di controllo dello spazio di lavoro.
Avviare il client da una riga di comando di un emulatore di terminale.
Ad esempio, il controllo seguente visualizza un misuratore di carico di 30×20 pixel.
CONTROL MisuraCarico { TYPE client CONTAINER_NAME Top CONTAINER_TYPE BOX CLIENT_NAME xload CLIENT_GEOMETRY 30x20 }
Se il client non può essere salvato e ripristinato automaticamente nelle sessioni successive, può essere utile configurare il controllo in modo che il client venga avviato al clic sull'icona. Ad esempio, è possibile configurare il controllo MisuraCarico in modo che avvii xload aggiungendo alla definizione la riga seguente:
PUSH_ACTION AvviaXload
e creando l'azione:
ACTION StartXload { WINDOW_TYPE NO_STDIO EXEC_STRING /usr/contrib/bin/X11/xload }
È anche possibile associare a un controllo una sequenza di animazione, da eseguire al clic sul controllo o al rilascio di un file.
Per poter utilizzare una sequenza di animazione, è necessario che il controllo:
Sia di tipo icon
Sia associato a un'azione di tipo PUSH_ACTION o DROP_ACTION
Specificare la sequenza di animazione usando il componente ANIMATION:
ANIMATION nome_animazione { ANIMATION icona1 [ritardo_in_ms] ANIMATION icona2 [ritardo_in_ms] … }
dove icona1, icona2 ecc. sono i nomi delle icone e ritardo_in_ms è il tempo che deve trascorrere tra le icone dell'animazione, in millisecondi. Il ritardo predefinito è di 200 millisecondi.
Aggiungere i campi PUSH_ANIMATION e/o DROP_ANIMATION alla definizione del controllo. Il loro valore sarà il nome della sequenza di animazione.
Ad esempio, le righe seguenti producono l'animazione del controllo che avvia l'applicazione EditorMigliore. Il ritardo tra le icone è di 300 millisecondi. Nell'esempio si presume che siano state create le icone frame1, frame2, ecc.
CONTROL EditorMigliore { … PUSH_ANIMATION AnimazioneEditorMigliore … }
ANIMATION AnimazioneEditorMigliore { frame1 300 frame2 … }
Esistono due modi per creare un testo di guida per un controllo:
Inserire una stringa di guida nella definizione del controllo.
La stringa così definita verrà visualizzata richiamando la guida sull'elemento e puntando sul controllo. La stringa non può includere caratteri di formattazione (come titoli) né collegamenti.
La stringa di guida deve essere specificata nella definizione del controllo come segue:
HELP_STRING testo_della_guida
Specificare un nuovo argomento in un volume della guida già registrato.
Gli argomenti della guida sono informazioni scritte in modo da sfruttare tutte le funzionalità del sistema di guida. Per creare un argomento della guida è necessario l'Help Developer's Kit del desktop.
Per creare un argomento della guida occorre specificare il volume e l'ID dell'argomento nella definizione del controllo:
HELP_VOLUME volume_della_guida HELP_TOPIC id_argomento
I commutatori degli spazi di lavoro possono essere personalizzati in diversi modi:
Cambiando il numero degli spazi di lavoro
Cambiando la disposizione dei commutatori
Cambiando i controlli dei commutatori
Modificare la seguente risorsa della Gestione dello spazio di lavoro:
Dtwm*workspaceCount: n
Per maggiori informazioni, vedere Cambiare il numero degli spazi di lavoro a livello di sistema.
Ad esempio, la definizione seguente imposta un'area dei commutatori contenente tre righe.
SWITCH Switch { CONTAINER_NAME nome_riquadro NUMBER_OF_ROWS 3 … }
Creare un file di configurazione del Pannello principale con la definizione del controllo.
Specificare che il controllo deve essere inserito nell'area dei commutatori:
CONTAINER_NAME Switch CONTAINER_TYPE SWITCH
Creare l'icona per il controllo. La dimensione consigliata è di 16 x 16 pixel.
Ad esempio, la definizione seguente inserisce un controllo del Terminale nell'area dei commutatori.
CONTROL CommTerminale { TYPE icon CONTAINER_NAME Switch CONTAINER_TYPE SWITCH POSITION_HINTS 3 ICON Fpterm LABEL Terminale PUSH_ACTION Dtterm HELP_TOPIC FPOnItemTerm HELP_VOLUME FPanel }
Il controllo utilizza un'icona predefinita ed è associato allo stesso argomento della guida usato dal controllo del Terminale del pannello secondario “Applicazioni personali”.
La sintassi di definizione del Pannello principale (PANEL) permette di:
Cambiare la posizione del Pannello principale
Cambiare la decorazione della finestra
Impostare l'aspetto e il comportamento generale dei controlli
La descrizione predefinita per il Pannello principale si trova in /usr/dt/appconfig/types/lingua/dtwm.fp.
Per maggiori informazioni, vedere la pagina man dtfpfile(4X).
Creare un nuovo file di configurazione per il Pannello principale in /etc/dt/appconfig/types/lingua o in DirectoryIniziale/.dt/types.
Copiare la descrizione predefinita del pannello (PANEL) da /usr/dt/appconfig/types/lingua/dtwm.fp nel nuovo file.
Modificare la descrizione del pannello.
La nuova definizione del pannello avrà la precedenza su quella predefinita.
Per specificare la posizione del Pannello principale, usare il campo PANEL_GEOMETRY nella definizione del pannello.
Ad esempio, il pannello seguente viene visualizzato nell'angolo superiore destro dello schermo.
PANEL PannelloAlto { PANEL_GEOMETRY -1+1 … }
Aggiungere la riga seguente alla definizione del pannello:
DISPLAY_CONTROL_LABELS True
Aggiungere un campo LABEL per ogni controllo.
Se non viene specificato un campo LABEL, verrà usato il valore di nome_controllo.
Per specificare il modo in cui eseguire l'azione specificata in PUSH_ACTION, usare il campo CONTROL_BEHAVIOR nella definizione del pannello. I valori possibili per questo campo sono:
single_click: l'azione specificata in PUSH_ACTION viene eseguita facendo clic sul controllo
double_click: l'azione specificata in PUSH_ACTION viene eseguita facendo doppio clic sul controllo
Quando si desidera eseguire numerose modifiche, può essere preferibile creare un nuovo Pannello principale.
Per evitare conflitti con i componenti del Pannello principale predefinito, occorrerà usare nomi nuovi per il pannello (PANEL) e per gli altri contenitori.
Creare il componente PANEL per il nuovo Pannello principale. Assegnare al pannello un nome unico:
PANEL nome_pannello_principale { … }
Creare i riquadri e i controlli usando nomi nuovi per i contenitori.
Per utilizzare i componenti esistenti, copiare le definizioni e cambiare il valore di CONTAINER_NAME.
Scegliere “Riavvia la Gestione dello spazio di lavoro” dal menu di controllo dello spazio di lavoro.
L'esempio seguente modifica il Pannello principale predefinito in modo che i controlli appaiano disposti su tre righe.
Copiare /usr/dt/appconfig/types/lingua/dtwm.fp in DirectoryIniziale/.dt/types/MioPannelloPrincipale.fp. Assegnare al file l'autorizzazione di scrittura.
Questo è il file che occorrerà modificare per creare il nuovo Pannello principale.
Cambiare il nome del Pannello principale:
PANEL NuovoPannelloPrinc
Cambiare il nome del riquadro Top e modificare il nome del relativo contenitore:
BOX NuovoPannelloPrincAlto { CONTAINER_NAME NuovoPannelloPrinc POSITION_HINTS first … }
Aggiungere le definizioni dei riquadri per le righe centrale e inferiore:
BOX NuovoPannelloPrincMedio { CONTAINER_NAME NuovoPannelloPrinc POSITION_HINTS second }
BOX NuovoPannelloPrincBasso { CONTAINER_NAME NuovoPannelloPrinc POSITION_HINTS second }
Impostare il campo CONTAINER_NAME dei seguenti controlli su NuovoPannelloPrincAlto:
Clock
Date
Home
TextEditor
Impostare il campo CONTAINER_NAME dei seguenti controlli su NuovoPannelloPrincBasso:
Printer
Style
Applications
Help
Trash
Impostare il campo CONTAINER_NAME dell'area dei commutatori su NuovoPannelloPrincMedio.
Scegliere “Riavvia la Gestione dello spazio di lavoro” dal menu di controllo dello spazio di lavoro.