1 <!-- $XConsortium: ch10.sgm /main/11 1996/12/21 19:19:30 rws $ -->
2 <!-- (c) Copyright 1995 Digital Equipment Corporation. -->
3 <!-- (c) Copyright 1995 Hewlett-Packard Company. -->
4 <!-- (c) Copyright 1995 International Business Machines Corp. -->
5 <!-- (c) Copyright 1995 Sun Microsystems, Inc. -->
6 <!-- (c) Copyright 1995 Novell, Inc. -->
7 <!-- (c) Copyright 1995 FUJITSU LIMITED. -->
8 <!-- (c) Copyright 1995 Hitachi. -->
9 <chapter id="sag.cract.div.1">
10 <title id="sag.cract.mkr.1"><indexterm><primary>azioni</primary><secondary>creazione manuale</secondary></indexterm>Creazione delle azioni con la procedura
12 <para>Esistono due metodi per creare le azioni:</para>
13 <itemizedlist remap="Bullet1">
14 <listitem><para>Usare l'applicazione del desktop Creare azione</para>
16 <listitem><para>Creare manualmente la definizione dell'azione</para>
19 <para>Per creare un'azione manualmente è necessario editare un file
20 del database. Questo capitolo spiega come creare manualmente le definizioni
22 <informaltable id="sag.cract.itbl.1" frame="all">
23 <tgroup cols="1" colsep="1" rowsep="1">
24 <colspec colwidth="4.55in">
27 <entry align="left" valign="top"><para><!--Original XRef content: 'Casi in
28 cui occorre creare le azioni manualmen--><!--te158'--><xref role="JumpText"
29 linkend="sag.cract.mkr.2"></para></entry></row>
31 <entry align="left" valign="top"><para><!--Original XRef content: 'Creazione
32 manuale di un'azione: procedura gene--><!--rale159'--><xref role="JumpText"
33 linkend="sag.cract.mkr.4"></para></entry></row>
35 <entry align="left" valign="top"><para><!--Original XRef content: 'Creazione
36 di una stringa di esecuzione per un'--><!--azione COMMAND169'--><xref role="JumpText"
37 linkend="sag.cract.mkr.13"></para></entry></row>
39 <entry align="left" valign="top"><para><!--Original XRef content: 'Supporto
40 di finestre ed emulatori di terminale--><!-- per le azioni COMMAND176'--><xref
41 role="JumpText" linkend="sag.cract.mkr.24"></para></entry></row>
43 <entry align="left" valign="top"><para><!--Original XRef content: 'Restrizione
44 delle azioni a determinati argomen--><!--ti178'--><xref role="JumpText" linkend="sag.cract.mkr.29"></para></entry>
47 <entry align="left" valign="top"><para><!--Original XRef content: 'Creazione
48 di azioni che eseguano applicazioni --><!--su sistemi remoti180'--><xref role="JumpText"
49 linkend="sag.cract.mkr.32"></para></entry></row>
51 <entry align="left" valign="top"><para><!--Original XRef content: 'Uso delle
52 variabili nelle definizioni delle az--><!--ioni e dei tipi di dati182'--><xref
53 role="JumpText" linkend="sag.cract.mkr.34"></para></entry></row>
55 <entry align="left" valign="top"><para><!--Original XRef content: 'Avvio di
56 un'azione dalla riga comandi183'--><xref role="JumpText" linkend="sag.cract.mkr.37"></para></entry>
59 <entry align="left" valign="top"><para><!--Original XRef content: 'Creazione
60 di azioni in lingue diverse185'--><xref role="JumpText" linkend="sag.cract.mkr.39"></para></entry>
63 <entry align="left" valign="top"><para><!--Original XRef content: 'Creazione
64 di azioni per le applicazioni ToolTa--><!--lk186'--><xref role="JumpText"
65 linkend="sag.cract.mkr.40"></para></entry></row></tbody></tgroup></informaltable>
66 <sect1 id="sag.cract.div.2">
67 <title>Vedere anche</title>
68 <itemizedlist remap="Bullet1">
69 <listitem><para>Per una descrizione introduttiva delle azioni, vedere il <!--Original
70 XRef content: 'Capitolo 8,
71 “Introduzione alle a--><!--zioni e ai tipi di dati'--><xref role="ChapNumAndTitle"
72 linkend="sag.intac.mkr.1">.</para>
74 <listitem><para>Per informazioni sull'uso di Creare azione, vedere il <!--Original
75 XRef content: 'Capitolo 9, “Creazione
76 di azioni--><!-- e tipi di dati con Creare azione'--><xref role="ChapNumAndTitle"
77 linkend="sag.dtcra.mkr.1">.</para>
79 <listitem><para>Per informazioni sulle definizioni delle azioni, vedere la
80 pagina di spiegazioni <filename>dtactionfile(4)</filename>.</para>
84 <sect1 id="sag.cract.div.3">
85 <title id="sag.cract.mkr.2">Casi in cui occorre creare le azioni manualmente</title>
86 <para><indexterm><primary>azioni</primary><secondary>tipi</secondary></indexterm>Esistono
87 tre tipi di azioni:</para>
88 <itemizedlist remap="Bullet1">
89 <listitem><para><command>COMMAND</command></para>
91 <listitem><para><command>MAP</command></para>
93 <listitem><para><filename>TT_MSG</filename></para>
96 <para id="sag.cract.mkr.3">L'applicazione Creare azione permette di creare
97 alcuni tipi di azioni <command>COMMAND</command> e <command>MAP</command>.
98 Tutte le azioni <filename>TT_MSG</filename> devono essere create manualmente.
100 <para>Per maggiori informazioni, vedere <!--Original XRef content: '“Limitazioni
101 di Creare azione” a--><!-- pagina 144'--><xref role="SecTitleAndPageNum"
102 linkend="sag.dtcra.mkr.3">.</para>
103 <sect2 id="sag.cract.div.4">
104 <title><indexterm><primary>COMMAND, azione</primary></indexterm><indexterm>
105 <primary>azioni</primary><secondary>COMMAND</secondary></indexterm>Azioni
107 <para>Si definisce <emphasis>azione di comando</emphasis> un'azione che esegue
108 un comando di avvio di un'applicazione o di un'utility, uno script di una
109 shell o un comando del sistema operativo. La definizione di questo tipo di
110 azioni include sempre il comando da eseguire (<filename>EXEC_STRING</filename>).
112 <para>Le azioni di comando più comuni possono essere create con lo
113 strumento Creare azione. Tuttavia, in presenza di alcune condizioni è
114 necessario crearle manualmente; ad esempio, quando l'azione specifica:</para>
115 <itemizedlist remap="Bullet1">
116 <listitem><para>Più argomenti (file) con una richiesta diversa per
119 <listitem><para>Il richiamo di un'azione — un'azione che avvii altre
122 <listitem><para>Un comportamento dipendente dal numero degli argomenti —
123 un'azione che si comporti in modo diverso a seconda del numero di file specificati
124 come argomenti.</para>
126 <listitem><para>Un host di esecuzione remoto — un'azione che avvii un'applicazione
127 su un sistema diverso da quello in cui si trova la definizione dell'azione.
130 <listitem><para>Un cambiamento di utente — un'azione che debba essere
131 eseguita con un nome utente diverso (ad esempio, che richieda la password
132 di superutente).</para>
136 <sect2 id="sag.cract.div.5">
137 <title><indexterm><primary>MAP, azioni</primary><secondary>definizione</secondary>
138 </indexterm>Azioni MAP<indexterm><primary>azioni</primary><secondary>MAP</secondary>
140 <para>Si definisce <emphasis>azione di mappatura</emphasis> un'azione che
141 viene “mappata” in un'altra azione anziché specificare
142 direttamente un comando o un messaggio ToolTalk.</para>
143 <para>La mappatura offre la possibilità di specificare nomi alternativi
144 per le azioni. Ad esempio, il database include un'azione di comando predefinita
145 di nome “Editor delle icone” che avvia l'applicazione corrispondente;
146 esso include però anche un'azione Aprire, la cui applicazione è
147 limitata ai file a mappa di bit e a mappa di pixel (con il campo <filename>ARG_TYPE</filename>), che viene mappata nell'azione Editor delle icone. Questo
148 permette di avviare l'Editor delle icone selezionando un file a mappa di bit
149 o a mappa di pixel dalla Gestione di file e quindi scegliendo Aprire dal menu
151 <para>Le possibilità di mappatura offerte da Creare azione sono limitate
152 alle azioni Aprire e Stampare. Tutte le altre azioni di mappatura devono essere
153 create manualmente.</para>
155 <sect2 id="sag.cract.div.6">
156 <title><indexterm><primary>azioni</primary><secondary>TT_MSG</secondary></indexterm>Azioni
157 TT_MSG (messaggi ToolTalk)</title>
158 <para>Le azioni <filename>TT_MSG</filename> inviano un messaggio ToolTalk.
159 Tutte le azioni di tipo <filename>TT_MSG</filename> devono essere create manualmente.
163 <sect1 id="sag.cract.div.7">
164 <title id="sag.cract.mkr.4">Creazione manuale di un'azione: procedura generale<indexterm>
165 <primary>azioni</primary><secondary>creazione manuale</secondary></indexterm></title>
166 <para>Questa sezione descrive come creare un file di configurazione per la
167 definizione di un'azione.</para>
168 <sect2 id="sag.cract.div.8">
169 <title id="sag.cract.mkr.5">File di configurazione per le azioni<indexterm>
170 <primary>azioni</primary><secondary>file di configurazione</secondary></indexterm><indexterm>
171 <primary>file di configurazione</primary><secondary>azioni</secondary></indexterm><indexterm>
172 <primary>dt, file</primary></indexterm></title>
173 <para>I file di configurazione contenenti le definizioni delle azioni devono
174 rispondere ai seguenti requisiti:</para>
175 <itemizedlist remap="Bullet1">
176 <listitem><para>Il nome del file deve avere il formato <symbol role="Variable">nome</symbol><filename>.dt</filename></para>
178 <listitem><para><indexterm><primary>percorso di ricerca dei database</primary>
179 </indexterm><indexterm><primary>percorsi di ricerca</primary><secondary>azioni</secondary></indexterm>I file devono trovarsi nel percorso di ricerca del
180 database (per le azioni e i tipi di dati). Il percorso di ricerca predefinito
181 comprende le directory seguenti:</para>
183 <tgroup cols="2" colsep="0" rowsep="0">
184 <colspec colwidth="156*">
185 <colspec colwidth="300*">
188 <entry align="left" valign="top"><para>Azioni personali</para></entry>
189 <entry align="left" valign="top"><para><symbol role="Variable">DirectoryIniziale</symbol><filename>/.dt/types</filename></para></entry></row>
191 <entry align="left" valign="top"><para>Azioni di sistema</para></entry>
192 <entry align="left" valign="top"><para><filename>/etc/dt/appconfig/types/</filename><symbol role="Variable">lingua</symbol></para></entry></row>
194 <entry align="left" valign="top"><para>Azioni predefinite</para></entry>
195 <entry align="left" valign="top"><para><filename>/usr/dt/appconfig/types/</filename><symbol role="Variable">lingua</symbol>. Questa directory non dovrebbe
196 essere utilizzata.</para></entry></row></tbody></tgroup></informaltable>
199 <para>Per informazioni su come modificare il percorso di ricerca delle azioni
200 e dei tipi di dati, vedere <!--Original XRef content: '“Impostazione
201 del valore di un percorso--><!-- di ricerca” a
202 pagina 117'--><xref role="SecTitleAndPageNum" linkend="sag.datab.mkr.6">.
205 <sect2 id="sag.cract.div.9" role="Procedure">
206 <title id="sag.cract.mkr.6">Come creare un'azione manualmente<indexterm><primary>azioni</primary><secondary>creazione manuale</secondary></indexterm></title>
208 <listitem><para>Aprire un file del database o crearne uno nuovo. Vedere la
209 sezione seguente, <!--Original XRef content: '“File di configurazione
210 per le azioni'--><xref role="SectionTitle" linkend="sag.cract.mkr.5">.</para>
212 <listitem><para>Creare la definizione dell'azione usando la sintassi:</para>
213 <programlisting>ACTION nome_azione
215 TYPE <symbol role="Variable">tipo_azione</symbol>
216 <symbol>campo_azione</symbol>
221 <tgroup cols="2" colsep="0" rowsep="0">
222 <colspec colwidth="157*">
223 <colspec colwidth="371*">
226 <entry align="left" valign="top"><para><indexterm><primary>azioni</primary>
227 <secondary>nomi</secondary></indexterm><symbol role="Variable">nome_azione</symbol></para></entry>
228 <entry align="left" valign="top"><para>È il nome usato per eseguire
229 l'azione.</para></entry></row>
231 <entry align="left" valign="top"><para><indexterm><primary>azioni</primary>
232 <secondary>tipi</secondary></indexterm><symbol role="Variable">tipo_azione</symbol></para></entry>
233 <entry align="left" valign="top"><para>È <command>COMMAND</command>
234 (il tipo predefinito), <command>MAP</command> o <filename>TT_MSG.</filename></para></entry>
237 <entry align="left" valign="top"><para><indexterm><primary>azioni</primary>
238 <secondary>campi</secondary></indexterm><symbol role="Variable">campo_azione</symbol></para></entry>
239 <entry align="left" valign="top"><para>È uno dei campi necessari o
240 opzionali per il tipo di azione specificato. Tutti i campi sono formati da
241 una parola chiave e da un valore.</para><para>In questo capitolo sono descritti
242 molti dei campi usati per la definizione delle azioni. Per maggiori informazioni,
243 vedere la pagina di spiegazioni dtactionfile(4).</para></entry></row></tbody>
244 </tgroup></informaltable>
246 <listitem><para>Salvare il file.</para>
248 <listitem><para>Se si desidera associare all'icona dell'azione un'immagine
249 che la identifichi in modo specifico, creare le icone appropriate. Le posizioni
250 predefinite per le icone sono le seguenti:</para>
251 <itemizedlist remap="Bullet2">
252 <listitem><para>Icone personali: <symbol role="Variable">DirectoryIniziale</symbol><filename>/.dt/icons</filename></para>
254 <listitem><para>Icone di sistema: <filename>/etc/dt/appconfig/icons/</filename><symbol role="Variable">lingua.</symbol> La <symbol role="Variable">lingua</symbol> predefinita
255 è l'inglese (C).</para>
256 <para>Per maggiori informazioni, vedere <!--Original XRef content: '“Scelta
257 dell'icona da utilizzare per u--><!--n'azione” a pagina 165'--><xref
258 role="SecTitleAndPageNum" linkend="sag.cract.mkr.10">.</para>
262 <listitem><para>Fare doppio clic su “Ricaricare azioni” nel gruppo
263 Strumenti_desktop.</para>
265 <listitem><para>Creare un file per l'azione. Questo file creerà un'icona
266 per la rappresentazione dell'azione nella Gestione di file e nella Gestione
267 di applicazioni. (Se l'azione produce l'avvio dell'applicazione, l'icona verrà
268 detta<indexterm><primary>icone</primary><secondary>di applicazioni</secondary>
269 </indexterm> <emphasis>icona dell'applicazione</emphasis>.)</para>
270 <para>Per creare il file dell'azione, creare un file eseguibile il cui nome
271 coincida con il <symbol>nome_azione</symbol>. Il file potrà essere
272 creato in qualunque directory per la quale si possieda l'autorizzazione di
273 scrittura. Si potrà creare qualsiasi numero di file dell'azione.</para>
277 <sect2 id="sag.cract.div.10">
278 <title id="sag.cract.mkr.7">Esempio di creazione di un'azione COMMAND<indexterm>
279 <primary>COMMAND, azione</primary><secondary>esempio</secondary></indexterm><indexterm>
280 <primary>azioni</primary><secondary>esempio</secondary></indexterm></title>
281 <para>La procedura seguente crea un'azione personale che avvia un'applicazione
282 fax sul sistema remoto AppServerA. Il comando per l'avvio dell'applicazione
284 <programlisting>/usr/fax/bin/faxcompose [<symbol role="Variable">nomefile</symbol>]</programlisting>
286 <listitem><para>Creare il file <symbol role="Variable">DirectoryIniziale</symbol><filename>/.dt/types/Fax.dt</filename>.</para>
288 <listitem><para>Inserire nel file la seguente definizione dell'azione:</para>
289 <programlisting>ACTION ComporreFax
294 EXEC_STRING /usr/fax/bin/faxcompose-c %Arg_1
296 DESCRIPTION Esegue il programma di composizione fax
298 <para>I campi <filename>WINDOW_TYPE</filename> e <filename>EXEC_STRING</filename>
299 descrivono il comportamento dell'azione.</para>
301 <tgroup cols="2" colsep="0" rowsep="0">
302 <colspec colwidth="158*">
303 <colspec colwidth="370*">
306 <entry align="left" valign="top"><para><filename>WINDOW_TYPE</filename></para></entry>
307 <entry align="left" valign="top"><para>La parola chiave <filename>NO_STDIO</filename> specifica che l'azione non deve essere eseguita in una finestra
308 di emulazione di terminale.</para><para>Vedere <!--Original XRef content:
309 '“Indicazione del supporto di finestre p--><!--er l'azione” a
310 pagina 176'--><xref role="SecTitleAndPageNum" linkend="sag.cract.mkr.25"></para></entry>
313 <entry align="left" valign="top"><para><filename>EXEC_STRING</filename></para></entry>
314 <entry align="left" valign="top"><para>La sintassi <filename>%Arg_1%</filename>
315 accetta un file come argomento. Facendo doppio clic sull'icona dell'azione,
316 verrà aperta una finestra vuota per la composizione dei fax.</para><para>Vedere <!--Original XRef content: '“Creazione di una stringa di esecuzione--><!--
317 per un'azione COMMAND” a pagina 169'--><xref role="SecTitleAndPageNum"
318 linkend="sag.cract.mkr.13">.</para></entry></row></tbody></tgroup></informaltable>
320 <listitem><para>Salvara il file</para>
322 <listitem><para>Usare l'editor delle icone per creare i file grafici seguenti
323 in <filename>DirectoryIniziale/.dt/icons</filename>:</para>
324 <itemizedlist remap="Bullet2">
325 <listitem><para><filename>fax.m.pm</filename>, con dimensione 32x32 pixel
328 <listitem><para><filename>fax.t.pm</filename>, con dimensione 16x16 pixel
333 <listitem><para>Fare doppio clic su "Ricaricare azioni" nel gruppo <filename>Strumenti_desktop</filename>.</para>
335 <listitem><para>Creare un file eseguibile di nome <filename>ComporreFax</filename>
336 in una dirctory per la quale si possieda l'autorizzazione di scrittura (ad
337 esempio, nella directory iniziale).</para>
341 <sect2 id="sag.cract.div.11">
342 <title id="sag.cract.mkr.8">Esempio di creazione di un'azione MAP<indexterm>
343 <primary>MAP, azioni</primary><secondary>esempio</secondary></indexterm><indexterm>
344 <primary>azioni</primary><secondary>esempio</secondary></indexterm></title>
345 <para>Si supponga che i file da inviare via fax vengano in genere creati con
346 l'Editor di testo e contengano il tipo di dati TEXTFILE (con nome *<filename>.txt</filename>).</para>
347 <para>Questa procedura aggiunge un'opzione “Fax” al menu Selezioni
348 associato al tipo di dati.</para>
350 <listitem><para>Aprire il file <symbol role="Variable">DirectoryIniziale</symbol><filename>/.dt/types/Fax.dt</filename> creato nell'esempio precedente.</para>
352 <listitem><para>Aggiungere al file la seguente definizione dell'azione di
354 <programlisting>ACTION Fax
358 MAP_ACTION ComporreFax
361 <listitem><para>Salvare il file.</para>
363 <listitem><para>Copiare la definizione degli attributi per il tipo di dati
364 TEXTFILE da /<filename>usr/dt/appconfig/types/</filename><symbol role="Variable">lingua</symbol><filename>/dtpad.dt</filename> nel nuovo file <symbol role="Variable">DirectoryIniziale</symbol><filename>/.dt/types/textfile.dt</filename>. Aggiungere
365 l'azione Fax al campo <command>ACTIONS</command>.</para>
366 <programlisting>DATA_ATTRIBUTES TEXTFILE
368 ACTIONS Open,Print,Fax
373 <listitem><para>Salvare il file.</para>
375 <listitem><para>Aprire la Gestione di applicazioni e fare doppio clic su “Ricaricare
376 azioni” nel gruppo Strumenti_desktop.</para>
380 <sect2 id="sag.cract.div.12" role="Procedure">
381 <title id="sag.cract.mkr.9">Come ricaricare il database delle azioni e dei
382 tipi di dati<indexterm><primary>tipi di dati</primary><secondary>rilettura</secondary></indexterm><indexterm><primary>tipi di dati</primary><secondary>Ricaricare azioni</secondary></indexterm><indexterm><primary>azioni</primary>
383 <secondary>rilettura</secondary></indexterm><indexterm><primary>database</primary>
384 <secondary>rilettura delle azioni</secondary></indexterm><indexterm><primary>Ricaricare azioni, azione</primary></indexterm><indexterm><primary>database</primary><secondary>rilettura</secondary></indexterm><indexterm><primary>Ricaricare azioni, azione</primary></indexterm></title>
385 <para>Perché la definizioni delle azioni nuove o modificate abbiano
386 effetto, è necessario che il desktop rilegga il database.</para>
388 <listitem><para>Aprire il gruppo Strumenti_desktop e fare doppio clic su “Ricaricare
389 azioni”.</para>
391 <listitem><para><symbol role="Variable">Oppure</symbol>, eseguire il comando:
393 <para remap="CodeIndent1"><command>dtaction ReloadActions</command></para>
396 <para>ReloadActions è il nome dell'azione rappresentata dall'icona
397 “Ricaricare azioni”.</para>
398 <para>Il database delle azioni viene riletto anche quando l'utente:</para>
399 <itemizedlist remap="Bullet1">
400 <listitem><para>Effettua il login</para>
402 <listitem><para>Riavvia la Gestione dello spazio di lavoro</para>
404 <listitem><para>Salva un'azione nella finestra di Creare azione scegliendo
405 Salvare dal menu File</para>
409 <sect2 id="sag.cract.div.13">
410 <title><indexterm><primary>icone</primary><secondary>di azioni</secondary>
411 <tertiary>creazione</tertiary></indexterm><indexterm><primary>icone</primary>
412 <secondary>di applicazioni</secondary><tertiary>creazione</tertiary></indexterm><indexterm>
413 <primary>file delle azioni</primary><secondary>creazione</secondary></indexterm>Creazione
414 del file (icona) dell'azione<indexterm><primary>azioni</primary><secondary>file, Vedere file delle azioni</secondary></indexterm><indexterm><primary>icone</primary><secondary>di azioni</secondary></indexterm><indexterm><primary>azioni</primary><secondary>icone</secondary></indexterm></title>
415 <para>Si definisce<indexterm><primary>file delle azioni</primary></indexterm> <emphasis>file dell'azione</emphasis> il file creato per fornire una rappresentazione
416 visiva dell'azione nella Gestione di file o nella Gestione di applicazioni.
419 <title><emphasis>File delle azioni</emphasis> (detti anche <emphasis>icone
420 delle azioni</emphasis> o <emphasis>icone delle applicazioni</emphasis>) nella
421 Gestione di applicazioni</title>
422 <graphic id="sag.cract.grph.1" entityref="SAG.CrAct.fig.1"></graphic>
424 <para>Poiché l'icona di questo file rappresenta un'azione, essa viene
425 detta anche <emphasis><indexterm><primary>icone delle azioni</primary></indexterm>icona
426 dell'azione</emphasis>. Se l'azione produce l'avvio di un'applicazione, la
427 stessa icona può essere chiamata <emphasis>icona dell'applicazione</emphasis>.</para>
428 <para>Facendo doppio clic sull'icona viene eseguita l'azione rappresentata.
429 L'icona dell'azione può fungere anche da area di rilascio.</para>
430 <sect3 id="sag.cract.div.14" role="Procedure">
431 <title>Come creare il file (l'icona) dell'azione</title>
433 <listitem><para>Creare un file eseguibile con lo stesso nome dell'azione<indexterm>
434 <primary>azioni</primary><secondary>nomi</secondary></indexterm>. Il contenuto
435 del file è irrilevante.</para>
438 <para>Ad esempio, se la definizione dell'azione fosse la seguente:</para>
439 <programlisting>ACTION App_preferita
441 EXEC_STRING Appp -file %Arg_1%
442 DESCRIPTION Avvia App_preferita
445 <para>il file dell'azione sarà un file eseguibile di nome <filename>App_preferita</filename>. Nella Gestione di file e nella Gestione di applicazioni,
446 il file <filename>App_preferita</filename> userà l'immagine dell'icona <filename>App_pref.<symbol role="Variable">dimensione</symbol>.<symbol role="Variable">tipo</symbol></filename>. Facendo doppio clic sull'icona di <filename>App_preferita</filename> verrà eseguita la stringa di esecuzione dell'azione, e
447 il testo di aiuto relativo all'icona sarà il contenuto del campo<indexterm>
448 <primary>aiuto</primary><secondary>sui file delle azioni</secondary></indexterm><indexterm>
449 <primary>DESCRIPTION, campo</primary></indexterm> <command>DESCRIPTION</command>
450 (<command>Avvia App_preferita</command>).</para>
452 <sect3 id="sag.cract.div.15">
453 <title><indexterm><primary>azioni</primary><secondary>etichette</secondary>
454 </indexterm><indexterm><primary>etichette</primary><secondary>azioni</secondary>
455 </indexterm><indexterm><primary>LABEL, campo delle azioni</primary></indexterm>Etichette
457 <para>Se la definizione dell'azione include il campo <command>LABEL</command>,
458 il file dell'azione comparirà nella Gestione di file e nella Gestione
459 di applicazioni con l'etichetta specificata da questo campo anziché
460 con il nome effettivo del file (<symbol role="Variable">nome_azione</symbol>).
461 Ad esempio, se la definizione dell'azione contiene quanto segue:</para>
462 <programlisting>ACTION App_preferita
464 LABEL Applicazione preferita
467 <para>l'icona dell'azione comparirà con l'etichetta “Applicazione
468 preferita”.</para>
471 <sect2 id="sag.cract.div.16">
472 <title id="sag.cract.mkr.10">Scelta dell'icona da utilizzare per un'azione<indexterm>
473 <primary>azioni</primary><secondary>icone</secondary></indexterm><indexterm>
474 <primary>icone</primary><secondary>di azioni</secondary></indexterm></title>
475 <para>Usare il campo <command>ICON</command> per specificare l'icona da utilizzare
476 nella Gestione di file e nella Gestione di applicazioni per rappresentare
478 <para>Se non viene specificata alcuna icona, il sistema userà l'immagine
479 predefinita per i file delle<indexterm><primary>azioni</primary><secondary>icone predefinite</secondary></indexterm> azioni, <filename>/usr/dt/appconfig/icons/</filename><symbol role="Variable">lingua</symbol><filename>/Dtactn.*</filename>.
482 <title>Icona predefinita per le azioni</title>
483 <graphic id="sag.cract.grph.2" entityref="SAG.CrAct.fig.2"></graphic>
485 <para>L'icona predefinita per le azioni può essere modificata usando
486 la risorsa:<indexterm><primary>actionIcon, risorsa</primary></indexterm></para>
487 <programlisting>*actionIcon: <symbol role="Variable">file_icona</symbol></programlisting>
488 <para>dove <symbol role="Variable">file_icona</symbol> può essere un
489 nome base o un percorso assoluto.</para>
490 <para>Il valore del campo <command>ICON</command> può essere:<indexterm>
491 <primary>ICON, campo</primary><secondary>valori possibili</secondary></indexterm></para>
492 <itemizedlist remap="Bullet1">
493 <listitem><para>Il nome base di un file.</para>
494 <para>Con il termine<indexterm><primary>file</primary><secondary>nome base</secondary></indexterm><indexterm><primary>nome base dei file</primary></indexterm> <emphasis>nome base</emphasis> si intende il nome del file contenente l'immagine dell'icona
495 esclusi i suffissi per la dimensione (<filename>m</filename> e <filename>t</filename>) e per il tipo di immagine (<filename>bm</filename> e <filename>pm</filename>). Ad esempio, per i file <filename>IconaGiochi.m.pm</filename>
496 e <filename>IconaGiochi.t.pm</filename> il nome base sarà <filename>IconaGiochi</filename>.</para>
497 <para>Se si utilizza il nome base, i file delle icone devono trovarsi in directory
498 incluse nel percorso di ricerca delle icone:</para>
499 <itemizedlist remap="Bullet2">
500 <listitem><para>Per le icone personali: <symbol role="Variable">DirectoryIniziale</symbol><filename>/.dt/icons</filename></para>
502 <listitem><para>Per le icone di sistema: <filename>/etc/dt/appconfig/icons/</filename><symbol role="Variable">lingua</symbol></para>
506 <listitem><para>Il percorso assoluto del file dell'icona, incluso il nome
507 completo del file.</para>
508 <para>L'uso del percorso assoluto è necessario solo se il file dell'icona
509 non si trova in una directory del percorso di ricerca. Ad esempio, se il file <filename>IconaGiochi.m.pm</filename> si trova nella directory <filename>/doc/progetti</filename>, che non è inclusa nel percorso di ricerca delle icone,
510 il valore del campo <command>ICON</command> dovrà essere <filename>/doc/progetti/IconaGiochi.m.pm</filename>.</para>
513 <para>La <!--Original XRef content: 'Tabella 10‐1'--><xref role="CodeOrFigureOrTable"
514 linkend="sag.cract.mkr.11"> indica le dimensioni con cui creare le icone e
515 i nomi da utilizzare per i rispettivi file.</para>
516 <table id="sag.cract.tbl.1" frame="topbot">
517 <title id="sag.cract.mkr.11">Nomi e dimensioni per le icone delle azioni</title>
518 <tgroup cols="3" colsep="0" rowsep="0">
519 <colspec colwidth="1.71in">
520 <colspec colwidth="2.25in">
521 <colspec colwidth="1.84in">
523 <row><entry align="left" valign="bottom"><para><literal>Dimensioni in pixel</literal></para></entry><entry align="left" valign="bottom"><para><literal>Nome del file a mappa di bit</literal></para></entry><entry align="left" valign="bottom"><para><literal>Nome del file a mappa di pixel</literal></para></entry></row></thead>
526 <entry align="left" valign="top"><para>48 x 48</para></entry>
527 <entry align="left" valign="top"><para><symbol role="Variable">nome</symbol><filename>.l.bm</filename></para></entry>
528 <entry align="left" valign="top"><para><symbol role="Variable">nome</symbol><filename>.l.pm</filename></para></entry></row>
530 <entry align="left" valign="top"><para>32 x 32</para></entry>
531 <entry align="left" valign="top"><para><symbol role="Variable">nome</symbol><filename>.m.bm</filename></para></entry>
532 <entry align="left" valign="top"><para><symbol role="Variable">nome</symbol><filename>.m.pm</filename></para></entry></row>
534 <entry align="left" valign="top"><para>16 x 16</para></entry>
535 <entry align="left" valign="top"><para><symbol role="Variable">nome</symbol><filename>.t.bm</filename></para></entry>
536 <entry align="left" valign="top"><para><symbol role="Variable">nome</symbol><filename>.t.pm</filename></para></entry></row></tbody></tgroup></table>
538 <sect2 id="sag.cract.div.17" role="Procedure">
539 <title>Come modificare la definizione di un'azione esistente<indexterm><primary>azioni</primary><secondary>editazione</secondary></indexterm><indexterm><primary>azioni</primary><secondary>modifica</secondary></indexterm><indexterm><primary>editazione delle azioni</primary></indexterm></title>
540 <para>È possibile modificare qualsiasi azione disponibile sul sistema,
541 incluse le azioni predefinite.</para>
543 <para>Prestare molta attenzione nel modificare il database delle azioni predefinite.
544 Queste azioni sono state realizzate specificamente per applicazioni del desktop.
548 <listitem><para>Localizzare la definizione dell'azione da modificare.</para>
549 <para>Le directory predefinite per le definizioni delle azioni sono le seguenti:
551 <itemizedlist remap="Bullet2">
552 <listitem><para>Azioni predefinite: <filename>/usr/dt/appconfig/types/</filename><symbol role="Variable">lingua</symbol></para>
554 <listitem><para>Azioni di sistema: <filename>/etc/dt/appconfig/types/</filename><symbol role="Variable">lingua</symbol></para>
556 <listitem><para>Azioni personali: <symbol role="Variable">DirectoryIniziale</symbol><filename>/.dt/types</filename></para>
557 <para><indexterm><primary><</primary></indexterm><indexterm><primary>$nopage>azioni</primary><secondary>percorso di ricerca, Vedere percorso di ricerca dei database</secondary></indexterm>Il sistema in uso potrebbe usare altre directory.
558 Per visualizzare un elenco delle directory utilizzate dal sistema per le azioni,
559 eseguire il comando:</para>
560 <para remap="CodeIndent1"><command>dtsearchpath -v</command><indexterm><primary>dtsearchpath</primary></indexterm></para>
561 <para>Il sistema in uso utilizza le directory elencate sotto<indexterm><primary>DTDATABASESEARCHPATH, variabile</primary><secondary>uso</secondary></indexterm> <systemitem>DTDATABASESEARCHPATH</systemitem>.</para>
565 <listitem><para>Se necessario, copiare il testo della definizione dell'azione
566 in un file nuovo o esistente in una delle directory seguenti:</para>
567 <itemizedlist remap="Bullet2">
568 <listitem><para>Azioni di sistema: <filename>/etc/dt/appconfig/types/</filename><symbol role="Variable">lingua</symbol></para>
570 <listitem><para>Azioni personali: <symbol role="Variable">DirectoryIniziale</symbol><filename>/.dt/types</filename></para>
571 <para>Creare una copia delle azioni predefinite, evitando di editare i file
572 della directory <filename>/usr/dt/appconfig/types/</filename><symbol role="Variable">lingua</symbol>.</para>
576 <listitem><para>Editare la definizione dell'azione. Al termine, salvare il
579 <listitem><para>Fare doppio clic su “Ricaricare azioni” nel gruppo
580 Strumenti_desktop.</para>
584 <sect2 id="sag.cract.div.18">
585 <title id="sag.cract.mkr.12">Precedenza nelle definizioni delle azioni<indexterm>
586 <primary>azioni</primary><secondary>regole di precedenza</secondary></indexterm><indexterm>
587 <primary>precedenza</primary><secondary>nella composizione del database delle
588 azioni</secondary></indexterm></title>
589 <para>Quando un utente richiama un'azione, il sistema ricerca nel database
590 un'azione con un nome corrispondente. Se sono presenti più azioni con
591 quel nome, il sistema utilizzerà determinate regole di precedenza per
592 decidere quale utilizzare.</para>
593 <itemizedlist remap="Bullet1">
594 <listitem><para>Se non specificato diversamente, la precedenza si basa sulla
595 posizione (directory) in cui si trova la definizione. L'elenco seguente riporta
596 l'ordine di precedenza utilizzato:</para>
597 <itemizedlist remap="Bullet2">
598 <listitem><para>Azioni personali (<symbol role="Variable">DirectoryIniziale</symbol><filename>/.dt/types</filename>)</para>
600 <listitem><para>Azioni del sistema locale (<filename>/etc/dt/appconfig/types/</filename><symbol role="Variable">lingua</symbol>)</para>
602 <listitem><para>Azioni di un sistema remoto (<symbol role="Variable">nomehost</symbol>:<filename>/etc/dt/appconfig/types/</filename><symbol role="Variable">lingua</symbol>). Gli host remoti su cui viene effettuata la ricerca sono
603 quelli inclusi nel percorso di ricerca delle applicazioni.</para>
605 <listitem><para>Azioni predefinite (<filename>/usr/dt/appconfig/types/</filename><symbol role="Variable">lingua</symbol>)</para>
609 <listitem><para>All'interno di ogni directory, i file <filename>*.dt</filename>
610 vengono letti in ordine alfabetico.</para>
612 <listitem><para>Le azioni limitate da <filename><indexterm><primary>ARG_CLASS,
613 campo</primary></indexterm>ARG_CLASS</filename>, <filename><indexterm><primary>ARG_TYPE, campo</primary></indexterm>ARG_TYPE</filename>, <filename><indexterm>
614 <primary>ARG_MODE, campo</primary></indexterm>ARG_MODE</filename> o <filename><indexterm>
615 <primary>ARG_COUNT, campo</primary></indexterm>ARG_COUNT</filename> hanno
616 la precedenza sulle azioni non limitate. (L'impostazione predefinita per questi
617 quattro campi è <filename>*</filename>.)</para>
618 <para>Quando vengono applicate due o più di queste limitazioni, l'ordine
619 di precedenza è il seguente:</para>
620 <itemizedlist remap="Bullet2">
621 <listitem><para><filename>ARG_CLASS</filename></para>
623 <listitem><para><filename>ARG_TYPE</filename></para>
625 <listitem><para><filename>ARG_MODE</filename></para>
627 <listitem><para><filename>ARG_COUNT</filename></para>
628 <para>Quando esistono due o più limitazioni di tipo <filename>ARG_COUNT</filename>, l'ordine di precedenza è il seguente:</para>
630 <listitem><para>Valore intero specifico <symbol role="Variable">n</symbol></para>
632 <listitem><para><filename><</filename><symbol role="Variable">n</symbol></para>
634 <listitem><para><filename>></filename><symbol role="Variable">n</symbol></para>
636 <listitem><para><filename>*</filename></para>
641 <para>Ad esempio, si considerino le seguenti parti della definizione dell'azione
642 ModificaIllustrazioni:</para>
643 <programlisting>ACTION ModificaIllustrazioni
644 # ModificaIllustrazioni-1
650 ACTION ModificaIllustrazioni
651 # ModificaIllustrazioni-2
657 ACTION ModificaIllustrazioni
658 # ModificaIllustrazioni-3
663 <para>Facendo semplicemente doppio clic sull'icona dell'azione ModificaIllustrazioni,
664 senza specificare alcun argomento, verrà eseguito ModificaIllustrazioni-2,
665 perché <filename>ARG_COUNT 0</filename> ha la precedenza. Specificando
666 come argomento un file di tipo XWD verrà usato ModificaIllustrazioni-1,
667 poiché è specificato l'<command>ARG_TYPE</command> XWD. Specificando
668 come argomento un file di qualsiasi altro tipo verrà eseguito ModificaIllustrazioni-3.
672 <sect1 id="sag.cract.div.19">
673 <title id="sag.cract.mkr.13">Creazione di una stringa di esecuzione per un'azione
674 COMMAND<indexterm><primary>azioni</primary><secondary>stringa di esecuzione</secondary></indexterm><indexterm><primary>stringa di esecuzione</primary>
675 </indexterm><indexterm><primary>riga comandi per le azioni</primary></indexterm><indexterm>
676 <primary>azioni</primary><secondary>stringa di esecuzione</secondary></indexterm><indexterm>
677 <primary>COMMAND, azione</primary><secondary>stringa di esecuzione</secondary>
678 </indexterm><indexterm><primary><</primary></indexterm><indexterm><primary>$nopage>EXEC_STRING, campo, Vedere stringa di esecuzione[EXEC_STRING, campo</primary><secondary>aaa]</secondary></indexterm></title>
679 <para>Un'azione di tipo <command><indexterm><primary>COMMAND, azione</primary>
680 <secondary>campi richiesti</secondary></indexterm>COMMAND</command> deve contenere
681 necessariamente almeno due campi: <command>ACTION</command> ed <filename>EXEC_STRING</filename>.</para>
682 <programlisting>ACTION <symbol role="Variable">nome_azione</symbol>
684 EXEC_STRING <symbol role="Variable">stringa_di_esecuzione</symbol>
686 <para>La stringa di esecuzione è la parte più importante della
687 definizione di un'azione <command>COMMAND</command>. Essa utilizza una sintassi
688 simile a quella usata per le righe comandi nelle finestre di terminale, ma
689 include alcuni componenti aggiuntivi per la gestione dei file e delle stringhe
690 usate come argomenti.</para>
691 <sect2 id="sag.cract.div.20">
692 <title><indexterm><primary>stringa di esecuzione</primary><secondary>caratteristiche
693 generali</secondary></indexterm>Caratteristiche generali delle stringhe di
695 <para>Le stringhe di esecuzione possono includere:</para>
696 <itemizedlist remap="Bullet1">
697 <listitem><para>Argomenti in forma di file o di altro tipo</para>
699 <listitem><para>Componenti della sintassi delle shell</para>
701 <listitem><para>Nomi o percorsi assoluti di file eseguibili</para>
704 <sect3 id="sag.cract.div.21">
705 <title>Argomenti delle azioni<indexterm><primary>azioni</primary><secondary>argomenti</secondary></indexterm><indexterm><primary>argomenti</primary><secondary>delle azioni</secondary></indexterm></title>
706 <para>Un argomento è un'informazione richiesta da un comando o da
707 un'applicazione per essere eseguita correttamente. Ad esempio, si consideri
708 la riga comandi usata per aprire un file nell'Editor di testo:</para>
709 <programlisting>dtpad <symbol role="Variable">nomefile</symbol></programlisting>
710 <para>In questo comando, <symbol role="Variable">nomefile</symbol> è
711 un argomento del comando <command>dtpad</command>.</para>
712 <para>Come i comandi e le applicazioni, anche le azioni possono avere argomenti.
713 Un'azione <command>COMMAND</command> può usare due tipi di dati:</para>
714 <itemizedlist remap="Bullet1">
715 <listitem><para>File</para>
717 <listitem><para>Stringhe</para>
721 <sect3 id="sag.cract.div.22">
722 <title>Uso di una shell nelle stringhe di esecuzione<indexterm><primary>stringa
723 di esecuzione</primary><secondary>sintassi della shell</secondary></indexterm><indexterm>
724 <primary>shell</primary><secondary>sintassi nella stringa di esecuzione</secondary>
726 <para>Le stringhe di esecuzione vengono eseguite direttamente, non attraverso
727 una shell. È possibile, tuttavia, specificare una stringa che preveda
728 l'uso di una shell.</para>
729 <para>Ad esempio:</para>
730 <programlisting>EXEC_STRING \
732 'tar -tvf %(File)Arg_1% 2>&1 | \${PAGER:-more};\
733 echo “\\n*** Scegliere Chiudere per uscire ***“'</programlisting>
735 <sect3 id="sag.cract.div.23">
736 <title>Nome o percorso assoluto dell'eseguibile<indexterm><primary>stringa
737 di esecuzione</primary><secondary>indicazione dell'</secondary></indexterm><indexterm>
738 <primary>eseguibile</primary></indexterm></title>
739 <para>Se l'applicazione si trova in una directory inclusa nella variabile<indexterm>
740 <primary>PATH, variabile</primary></indexterm> PATH si può usare semplicemente
741 il nome del file eseguibile. Se si trova in un'altra posizione occorre specificare
742 il<indexterm><primary>stringa di esecuzione</primary><secondary>uso del percorso
743 assoluto</secondary></indexterm> percorso assoluto dell'eseguibile.</para>
746 <sect2 id="sag.cract.div.24">
747 <title id="sag.cract.mkr.14">Creazione di un'azione che non utilizzi argomenti<indexterm>
748 <primary>stringa di esecuzione</primary><secondary>senza argomenti</secondary>
749 </indexterm><indexterm><primary>azioni</primary><secondary>senza argomenti</secondary></indexterm><indexterm><primary>azioni</primary><secondary>senza
750 dati</secondary></indexterm></title>
751 <para>Usare per l'<filename>EXEC_STRING</filename> la stessa sintassi richiesta
752 per avviare l'applicazione da una riga comandi.</para>
753 <sect3 id="sag.cract.div.25">
754 <title>Esempi</title>
755 <itemizedlist remap="Bullet1">
756 <listitem><para>Questa stringa di esecuzione fa parte di un'azione che avvia
757 il client X <command>xcutsel</command>.</para>
758 <para remap="CodeIndent1"><computeroutput>EXEC_STRING xcutsel</computeroutput></para>
760 <listitem><para>Questa stringa di esecuzione avvia il client <command>xclock</command> come orologio digitale. La riga comandi include un'opzione ma non
761 richiede argomenti.</para>
762 <para remap="CodeIndent1"><computeroutput>EXEC_STRING xclock -digital</computeroutput></para>
767 <sect2 id="sag.cract.div.26">
768 <title id="sag.cract.mkr.15">Creazione di un'azione che accetti il rilascio
769 di un file<indexterm><primary>stringa di esecuzione</primary><secondary>abilitazione
770 del rilascio dei file</secondary></indexterm><indexterm><primary>azioni</primary>
771 <secondary>accettazione del rilascio di un file</secondary></indexterm><indexterm>
772 <primary>area di rilascio</primary><secondary>icone delle azioni</secondary>
773 </indexterm><indexterm><primary>rilascio dei file, accettazione nelle azioni</primary></indexterm></title>
774 <para>Specificare l'argomento usando la seguente sintassi:</para>
775 <programlisting>%Arg_<symbol role="Variable">n</symbol>%</programlisting>
776 <indexterm><primary>Arg_n, sintassi</primary></indexterm>
778 <programlisting>%(File)Arg_<symbol role="Variable">n</symbol>%</programlisting>
779 <para>Il componente <filename>(File)</filename> è opzionale, poiché
780 nell'impostazione predefinita gli argomenti forniti ad <filename>Arg_</filename><symbol role="Variable">n</symbol> vengono interpretati automaticamente come file.
781 (Per informazioni sull'uso della sintassi <filename>%(String)Arg_</filename><symbol role="Variable">n</symbol><filename>%</filename>, vedere <!--Original XRef
782 content: '“Interpretazione di un argomento file c--><!--ome stringa”
783 a pagina 173'--><xref role="SecTitleAndPageNum" linkend="sag.cract.mkr.19">.)
785 <para>Questa sintassi permette di rilasciare un file di dati sull'icona dell'azione
786 per avviare l'azione usando quel file come argomento. Essa sostituisce l'argomento
787 <symbol role="Variable">n</symbol> nella riga comandi. Il file può
788 essere sia locale che remoto.</para>
789 <sect3 id="sag.cract.div.27">
790 <title>Esempi</title>
791 <itemizedlist remap="Bullet1">
792 <listitem><para>Questa stringa di esecuzione esegue il comando <command>wc
793 -w</command> usando un file rilasciato come parametro.
795 <para remap="CodeIndent1"><computeroutput>EXEC_STRING wc -w %Arg_1%</computeroutput></para>
797 <listitem><para>Questo esempio mostra una parte della definizione di un'azione
798 che accetta solo directory come argomenti. Rilasciando una directory sull'icona
799 dell'azione, viene visualizzato l'elenco di tutti i file della directory che
800 possiedono le autorizzazioni di lettura e scrittura.</para>
801 <programlisting>ACTION Elenco_file_scrivibili
804 EXEC_STRING /bin/sh -c 'ls -l %Arg_1% | grep rw-'
811 <sect2 id="sag.cract.div.28">
812 <title id="sag.cract.mkr.16">Creazione di un'azione che richieda un file come
813 argomento<indexterm><primary>stringa di esecuzione</primary><secondary>richiesta
814 di un file</secondary></indexterm><indexterm><primary>azioni</primary><secondary>richiesta di un file</secondary></indexterm><indexterm><primary>argomenti</primary><secondary>richiesta</secondary></indexterm><indexterm><primary>richieste di argomenti per le azioni</primary></indexterm></title>
815 <para>Inserire la richiesta dell'argomento nella stringa di esecuzione usando
816 la seguente sintassi:</para>
817 <programlisting>%(File)"<symbol>richiesta</symbol>"%</programlisting>
818 <para>Questa sintassi crea un'azione che chiede di specificare il un nome
819 di un file quando l'utente fa doppio clic sull'icona.</para>
820 <para>Ad esempio, questa stringa di esecuzione visualizza un riquadro di dialogo
821 che richiede un argomento per il comando <command>wc -w</command>:</para>
822 <programlisting>EXEC_STRING wc -w %(File)"Contare le parole del file:"%</programlisting>
824 <sect2 id="sag.cract.div.29">
825 <title id="sag.cract.mkr.17">Creazione di un'azione che accetti il rilascio
826 di un file o che richieda un file<indexterm><primary>azioni</primary><secondary>accettazione del rilascio o richiesta di argomenti</secondary></indexterm></title>
827 <para>Inserire la richiesta dell'argomento nella stringa di esecuzione usando
828 la seguente sintassi:</para>
829 <programlisting>%Arg_<symbol role="Variable">n</symbol>“<symbol role="Variable">richiesta</symbol>“%</programlisting>
831 <programlisting>%(File)Arg_<symbol role="Variable">n</symbol>“<symbol role="Variable">richiesta</symbol>“%</programlisting>
832 <para>Questa sintassi produce un'azione che:</para>
833 <itemizedlist remap="Bullet1">
834 <listitem><para>Accetta come argomento un file rilasciato sull'icona dell'azione.
837 <listitem><para>Visualizza un riquadro di dialogo che chiede di specificare
838 il un nome di un file quando l'utente fa doppio clic sull'icona.</para>
841 <para>Ad esempio, questa stringa di esecuzione esegue il comando <command>lp -oraw</command> sul file rilasciato sull'icona dell'azione. Se l'azione
842 viene avviata facendo doppio clic sull'icona, compare un riquadro di dialogo
843 che chiede di inserire il nome del file.</para>
844 <programlisting>EXEC_STRING lp -oraw %Arg_1"File da stampare:"%</programlisting>
846 <sect2 id="sag.cract.div.30">
847 <title id="sag.cract.mkr.18">Creazione di un'azione che richieda un argomento
848 diverso da un file<indexterm><primary>stringa di esecuzione</primary><secondary>richiesta di una stringa</secondary></indexterm><indexterm><primary>azioni</primary><secondary>argomenti diversi dai file</secondary></indexterm><indexterm>
849 <primary>argomenti</primary><secondary>parametri diversi dai file</secondary>
850 </indexterm><indexterm><primary>stringhe, uso come argomenti per le azioni</primary></indexterm><indexterm><primary>azioni</primary><secondary>argomenti
851 diversi dai file</secondary></indexterm></title>
852 <para>Per specificare un parametro diverso da un file, usare la sintassi:
854 <programlisting>%"<symbol role="Variable">richiesta</symbol>"%</programlisting>
856 <programlisting>%(String)"<symbol role="Variable">richiesta</symbol>"%</programlisting>
857 <para>Il componente <filename>(String)</filename> è opzionale, poiché
858 nell'impostazione predefinita il testo tra virgolette viene interpretato automaticamente
859 come una stringa. Questa sintassi visualizza un riquadro di dialogo che richiede
860 un parametro diverso da un file; non usare questa sintassi per richiedere
861 il nome di un file.</para>
862 <para>Ad esempio, questa stringa di esecuzione esegue il comando <command>xwd</command> e richiede di aggiungere un valore ad ogni pixel:</para>
863 <programlisting>EXEC_STRING xwd -add %"Aggiungere un valore:"% -out %Arg_1"File:"%
866 <sect2 id="sag.cract.div.31">
867 <title id="sag.cract.mkr.19">Interpretazione di un argomento file come stringa</title>
868 <para>Usare per l'argomento la seguente sintassi:</para>
869 <programlisting>%(String)Arg_<symbol role="Variable">n</symbol>%</programlisting>
870 <para>Ad esempio, questa stringa di esecuzione stampa un file usando come
871 intestazione il nome del file con il comando <command>lp -t</command><symbol role="Variable">intestazione nomefile.</symbol></para>
872 <programlisting>EXEC_STRING lp -t%(String)Arg_1% %(File)Arg_1"File da stampare:"%
875 <sect2 id="sag.cract.div.32">
876 <title id="sag.cract.mkr.20">Aggiunta dell'utilizzo di una shell in un'azione<indexterm>
877 <primary>azioni</primary><secondary>uso delle shell</secondary></indexterm><indexterm>
878 <primary>shell</primary><secondary>uso nelle azioni</secondary></indexterm><indexterm>
879 <primary>shell</primary><secondary>uso nelle azioni</secondary></indexterm></title>
880 <para>Specificare l'uso della shell nella stringa di esecuzione:</para>
881 <programlisting>/bin/sh -c '<symbol role="Variable">comando</symbol>'
882 /bin/ksh -c '<symbol role="Variable">comando</symbol>'
883 /bin/csh -c '<symbol role="Variable">comando</symbol>'</programlisting>
884 <sect3 id="sag.cract.div.33">
885 <title>Esempi</title>
886 <itemizedlist remap="Bullet1">
887 <listitem><para>Questa stringa di esecuzione produce un'azione che utilizza
888 il piping di una shell.</para>
891 <programlisting>EXEC_STRING /bin/sh -c 'ps | lp'</programlisting>
892 <itemizedlist remap="Bullet1">
893 <listitem><para>La stringa di esecuzione seguente è più complessa,
894 poiché richiede l'uso di una shell ed accetta un file come argomento.
898 <programlisting>EXEC_STRING /bin/sh -c 'tbl %Arg_1“Pagina man:“% | troff -man'
900 <itemizedlist remap="Bullet1">
901 <listitem><para>Questa stringa di esecuzione richiede come argomento un file
902 in formato compresso. L'azione decomprime il file e lo stampa usando <command>lp -oraw</command>.</para>
905 <programlisting>EXEC_STRING /bin/sh -c 'cat %Arg_1 “File da stampare:“% | \
906 uncompress | lp -oraw'</programlisting>
907 <itemizedlist remap="Bullet1">
908 <listitem><para>Questa stringa di esecuzione esegue uno script di una shell.
912 <programlisting>EXEC_STRING /usr/local/bin/AvviaClientGnu</programlisting>
915 <sect2 id="sag.cract.div.34">
916 <title>Creazione di azioni COMMAND che accettino più argomenti (file)<indexterm>
917 <primary>stringa di esecuzione</primary><secondary>accettazione di più</secondary></indexterm><indexterm><primary>file come argomenti</primary>
918 </indexterm><indexterm><primary>argomenti</primary><secondary>per l'</secondary>
919 </indexterm><indexterm><primary>indicazione di più</primary></indexterm><indexterm>
920 <primary>file</primary></indexterm></title>
921 <para>Le azioni possono gestire più file specificati come argomenti
923 <itemizedlist remap="Bullet1">
924 <listitem><para>L'azione viene eseguita ripetutamente, una volta per ogni
925 argomento. Quando l'<filename>EXEC_STRING</filename> contiene la specifica
926 di un unico argomento e l'utente rilascia un gruppo di due o più file
927 sull'icona dell'azione, l'azione viene eseguita separatamente per ognuno dei
928 file accettati come argomenti.</para>
929 <para>Ad esempio, se vengono forniti più argomenti per un'azione con
930 la seguente definizione:</para>
931 <programlisting>ACTION VisualizzaImmagine
933 EXEC_STRING xwud -in %Arg_1%
936 <para>l'azione VisualizzaImmagine verrà eseguita ripetutamente su tutti
939 <listitem><para>L'azione può usare due o più argomenti non intercambiabili.
940 Ad esempio, l'azione:</para>
941 <para remap="CodeIndent1"><command>xsetroot -cursor <symbol role="Variable">filecursore filemaschera</symbol></command></para>
942 <para>richiede due file diversi in un ordine specifico.</para>
944 <listitem><para>L'azione può eseguire lo stesso comando sul complesso
945 dei file specificati come argomento. Ad esempio, l'azione:</para>
946 <para remap="CodeIndent1"><computeroutput>pr <symbol role="Variable">file</symbol> [<symbol role="Variable">file</symbol> …]</computeroutput></para>
947 <para>stamperà uno o più file in un unico lavoro di stampa.
951 <sect3 id="sag.cract.div.35">
952 <title id="sag.cract.mkr.21">Creazione di un'azione con argomenti non intercambiabili<indexterm>
953 <primary>azioni</primary><secondary>argomenti non intercambiabili</secondary>
954 </indexterm><indexterm><primary>argomenti</primary><secondary>parametri non
955 intercambiabili</secondary></indexterm></title>
956 <para>Usare una delle seguenti convenzioni di sintassi:</para>
957 <itemizedlist remap="Bullet1">
958 <listitem><para>Per fare in modo che l'azione richieda i nomi dei file, usare
959 questa sintassi per ognuno degli argomenti:</para>
960 <para remap="CodeIndent1"><computeroutput>%(File)“<symbol role="Variable">richiesta</symbol>”%</computeroutput></para>
961 <para>Usare una stringa di <symbol role="Variable">richiesta</symbol> diversa
962 per ogni argomento.</para>
963 <para>Ad esempio, questa stringa di esecuzione richiede due file.</para>
964 <para remap="CodeIndent1"><computeroutput>EXEC_STRING xsetroot -cursor %(File)“Bitmap
965 del cursore:”% \ %(File)“Bitmap della maschera:”%</computeroutput></para>
967 <listitem><para>Per fare in modo che l'azione accetti il rilascio dei file,
968 usare questa sintassi per ognuno degli argomenti:</para>
969 <para remap="CodeIndent1"><computeroutput>%Arg_<symbol role="Variable">n</symbol>%</computeroutput></para>
970 <para>usando valori diversi di <symbol role="Variable">n</symbol> per ogni
971 argomento. Ad esempio:</para>
972 <para remap="CodeIndent1"><computeroutput>EXEC_STRING diff %Arg_1% %Arg_2%</computeroutput></para>
976 <sect3 id="sag.cract.div.36">
977 <title id="sag.cract.mkr.22">Creazione di un'azione con argomenti intercambiabili<indexterm>
978 <primary>azioni</primary><secondary>argomenti intercambiabili</secondary>
979 </indexterm><indexterm><primary>argomenti</primary><secondary>parametri intercambiabili</secondary></indexterm></title>
980 <para>Usare una delle seguenti convenzioni di sintassi:</para>
981 <itemizedlist remap="Bullet1">
982 <listitem><para>Per creare un'azione che accetti il rilascio dei file ed esegua
983 un comando nella forma</para>
984 <para><symbol role="Variable">comando file</symbol><subscript>1</subscript> <symbol role="Variable">file</symbol><subscript>2</subscript> …, usare questa
985 sintassi per i file di argomento:</para>
986 <para remap="CodeIndent1"><computeroutput>%Args%</computeroutput></para>
988 <listitem><para>Per creare un'azione che accetti il rilascio di due o più
989 file, o che facendo doppio clic sull'icona visualizzi una richiesta per un
990 singolo file, usare questa sintassi per gli argomenti:</para>
991 <para remap="CodeIndent1"><computeroutput>%Arg_1“<symbol role="Variable">richiesta</symbol>”% %Args%</computeroutput></para>
992 <para>L'azione eseguirà il comando nella forma: <symbol role="Variable">comando file</symbol><subscript>1</subscript> <symbol role="Variable">file</symbol> <subscript>2</subscript> ….</para>
995 <sect4 id="sag.cract.div.37">
996 <title>Esempi</title>
997 <itemizedlist remap="Bullet1">
998 <listitem><para>Questa stringa di esecuzione crea un'azione che esegue il
1002 <programlisting>pr <symbol role="Variable">file</symbol><subscript>1</subscript> <symbol role="Variable">file</symbol><subscript>2</subscript></programlisting>
1003 <para>accettando più file come argomenti.</para>
1004 <programlisting>EXEC_STRING pr %Args%</programlisting>
1005 <itemizedlist remap="Bullet1">
1006 <listitem><para>Questa stringa di esecuzione crea un'azione simile a quella
1007 dell'esempio precedente, ma in questo caso facendo doppio clic sull'icona
1008 (senza specificare argomenti) viene visualizzata una richiesta.</para>
1011 <programlisting>EXEC_STRING pr %Arg_1"File da stampare:"% %Args%</programlisting>
1014 <sect3 id="sag.cract.div.38">
1015 <title id="sag.cract.mkr.23">Creazione di un'azione che accetti il rilascio
1016 di più file<indexterm><primary>azioni</primary><secondary>accettazione
1017 del rilascio di più</secondary></indexterm><indexterm><primary>file</primary></indexterm></title>
1018 <para>Per fare in modo che l'azione accetti il rilascio di più file
1019 ed esegua un comando nella forma:</para>
1020 <programlisting><symbol role="Variable">comando</symbol> <symbol role="Variable">file</symbol> <subscript>1</subscript><symbol role="Variable">file</symbol><subscript>
1021 2</subscript> …</programlisting>
1022 <para>usare la sintassi:</para>
1023 <programlisting>%Args%</programlisting>
1024 <sect4 id="sag.cract.div.39">
1025 <title>Esempi</title>
1026 <itemizedlist remap="Bullet1">
1027 <listitem><para>Questa stringa di esecuzione esegue uno script di nome Controllo
1028 su più file:</para>
1031 <programlisting>EXEC_STRING /usr/local/bin/Controllo \
1032 %Arg_1“File da controllare:“% %Args%</programlisting>
1033 <itemizedlist remap="Bullet1">
1034 <listitem><para>Questa stringa di esecuzione esegue il comando <command>lp
1035 -oraw</command> su più file:</para>
1038 <programlisting>EXEC_STRING lp -oraw %Arg_1“File da stampare:“% %Args%
1044 <sect1 id="sag.cract.div.40">
1045 <title id="sag.cract.mkr.24">Supporto di finestre ed emulatori di terminale
1046 per le azioni COMMAND<indexterm><primary>azioni</primary><secondary>supporto
1047 di finestre</secondary></indexterm><indexterm><primary>emulatore di terminale</primary><secondary>uso per le azioni</secondary></indexterm></title>
1048 <para>Le azioni <command>COMMAND</command> supportano le finestre del desktop
1049 in diversi modi.</para>
1050 <itemizedlist remap="Bullet1">
1051 <listitem><para>Se l'applicazione dispone di una propria finestra, l'azione
1052 può essere scritta in modo da non richiedere alcun supporto aggiuntivo.
1053 Questa opzione viene usata anche quando un'azione esegue un comando che non
1054 richiede un input diretto dell'utente e non produce alcun output.</para>
1056 <listitem><para>Se l'applicazione deve essere eseguita in una finestra di
1057 emulazione di terminale, l'azione può essere scritta in modo da aprire
1058 una finestra e quindi eseguirvi l'applicazione. Esistono diverse opzioni per
1059 la scelta del terminale.</para>
1062 <sect2 id="sag.cract.div.41">
1063 <title id="sag.cract.mkr.25">Indicazione del supporto di finestre per l'azione</title>
1064 <para>Usare il campo <filename>WINDOW_TYPE</filename> per specificare il tipo
1065 di supporto delle finestre richiesto dall'azione.</para>
1067 <tgroup cols="2" colsep="0" rowsep="0">
1068 <colspec colwidth="159*">
1069 <colspec colwidth="369*">
1072 <entry align="left" valign="top"><para><indexterm><primary>WINDOW_TYPE, campo</primary></indexterm>TIPO DI FINESTRA</para></entry>
1073 <entry align="left" valign="top"><para>Supporto di finestre fornito</para></entry>
1076 <entry align="left" valign="top"><para><filename><indexterm><primary>NO_STDIO,
1077 supporto a finestre</primary></indexterm>NO_STDIO</filename></para></entry>
1078 <entry align="left" valign="top"><para>Nessuno. Usare <filename>NO_STDIO</filename>
1079 se l'applicazione ha una propria finestra, o se il comando non produce alcun
1080 output visibile.</para></entry></row>
1082 <entry align="left" valign="top"><para><filename><indexterm><primary>PERM_TERMINAL,
1083 supporto a finestre</primary></indexterm>PERM_TERMINAL</filename></para></entry>
1084 <entry align="left" valign="top"><para>Finestra di emulazione di terminale
1085 permanente. L'azione apre una finestra di terminale che rimane aperta fino
1086 a quando non viene chiusa esplicitamente, e in cui l'utente ha la possibilità
1087 di inserire informazioni. Usare questa opzione con i comandi che accettano
1088 un input, producono un output e quindi terminano (ad esempio, <command>ls</command> <symbol role="Variable">directory</symbol>).</para></entry></row>
1090 <entry align="left" valign="top"><para><command><indexterm><primary>TERMINAL,
1091 supporto a finestre</primary></indexterm>TERMINAL</command></para></entry>
1092 <entry align="left" valign="top"><para>Finestra di emulazione di terminale
1093 temporanea. L'azione apre una finestra di terminale che si chiude non appena
1094 il comando è completato. Usare questa opzione con i comandi eseguiti
1095 a schermo intero (ad esempio, <command>vi</command>).</para></entry></row>
1096 </tbody></tgroup></informaltable>
1098 <sect2 id="sag.cract.div.42">
1099 <title id="sag.cract.mkr.26">Indicazione di opzioni per l'emulatore di terminale<indexterm>
1100 <primary>emulatore di terminale</primary><secondary>opzioni della riga comandi
1101 per le azioni</secondary></indexterm><indexterm><primary>azioni</primary>
1102 <secondary>opzioni per il terminale</secondary></indexterm></title>
1103 <para>Usare il campo <filename>TERM_OPTS</filename> nella definizione dell'azione
1104 per specificare opzioni precise per il comando di avvio dell'emulatore di
1106 <para>Ad esempio, l'azione seguente richiede di specificare l'host di esecuzione:
1108 <programlisting>ACTION TermSuSistemaScelto
1110 WINDOW_TYPE PERM_TERMINAL
1111 EXEC_HOST %(String)"Terminale remoto su:"%
1112 TERM_OPTS -title %(String)"Titolo della finestra:"%
1116 <sect2 id="sag.cract.div.43">
1117 <title id="sag.cract.mkr.27">Modifica dell'emulatore di terminale predefinito<indexterm>
1118 <primary>emulatore di terminale</primary><secondary>impostazione predefinita
1119 per le azioni</secondary></indexterm><indexterm><primary>azioni</primary>
1120 <secondary>supporto di un terminale</secondary></indexterm><indexterm><primary>azioni</primary><secondary>terminale predefinito</secondary></indexterm></title>
1121 <para>L'emulatore di terminale predefinito per le azioni è <command>dtterm</command>. È tuttavia possibile impostare un diverso emulatore
1122 di terminale da usare quando l'azione non specifica il tipo richiesto in modo
1124 <para>La riga comandi dell'emulatore di terminale usato dalle azioni deve
1125 comprendere le seguenti opzioni:</para>
1126 <itemizedlist remap="Bullet1">
1127 <listitem><para><command>-title</command> <symbol role="Variable">titolo_finestra</symbol></para>
1129 <listitem><para><command>-e</command> <symbol role="Variable">comando</symbol>
1133 <para>L'emulatore di terminale predefinito per le azioni viene determinato
1134 da due risorse:</para>
1135 <itemizedlist remap="Bullet1">
1136 <listitem><para><indexterm><primary>localTerminal, risorsa</primary></indexterm>La
1137 risorsa <command>localTerminal</command> specifica l'emulatore di terminale
1138 usato dalle applicazioni locali.</para>
1139 <para remap="CodeIndent1"><computeroutput>*localTerminal: <symbol role="Variable">terminale</symbol></computeroutput></para>
1140 <para>Ad esempio:</para>
1141 <para>*localTerminal: xterm</para>
1143 <listitem><para id="sag.cract.mkr.28">La risorsa <systemitem>remoteTerminal</systemitem> specifica l'emulatore di terminale usato dalle applicazioni
1147 <programlisting>*remoteTerminal: <symbol role="Variable">host</symbol>:<symbol role="Variable">terminale</symbol> [,<symbol role="Variable">host</symbol>:<symbol role="Variable">terminale</symbol>…]</programlisting>
1148 <para>Ad esempio:</para>
1149 <programlisting>*remoteTerminal: sysibm1:/usr/bin/xterm,syshp2:/usr/bin/yterm
1153 <sect1 id="sag.cract.div.44">
1154 <title id="sag.cract.mkr.29"><indexterm><primary>azioni</primary><secondary>restrizione degli argomenti</secondary></indexterm><indexterm><primary>argomenti</primary><secondary>restrizione nelle azioni</secondary></indexterm>Restrizione
1155 delle azioni a determinati argomenti</title>
1156 <para>La restrizione di un'azione a un determinato tipo di argomenti la rende
1157 più precisa. Ad esempio, può essere utile restringere un'azione
1158 che richiami un visualizzatore di file PostScript specificando che l'azione
1159 può accettare come argomenti solo file PostScript; con la restrizione,
1160 l'azione restituirà un messaggio di errore se verrà specificato
1161 un file non PostScript.</para>
1162 <para>Si possono restringere le azioni in base ai seguenti fattori:</para>
1163 <itemizedlist remap="Bullet1">
1164 <listitem><para>Il tipo di dati del file da specificare come argomento.</para>
1166 <listitem><para>Il numero degli argomenti — ad esempio, nessun argomento
1167 oppure uno o più argomenti. Questo permette di ottenere un comportamento
1168 diverso quando si fa doppio clic sull'icona e quando si rilasciano due o più
1171 <listitem><para>La modalità di lettura/scrittura dell'argomento.</para>
1174 <sect2 id="sag.cract.div.45">
1175 <title id="sag.cract.mkr.30">Restrizione di un'azione a un tipo di dati specifico<indexterm>
1176 <primary>azioni</primary><secondary>restrizione dei tipi di dati</secondary>
1177 </indexterm><indexterm><primary>tipi di dati</primary><secondary>restrizione
1178 nelle azioni</secondary></indexterm></title>
1179 <para><indexterm><primary>ARG_TYPE, campo</primary></indexterm>Usare il campo <filename>ARG_TYPE</filename> per specificare i tipi di dati accettati dall'azione.
1180 Usare il nome dell'attributo dei dati.</para>
1181 <para>È anche possibile inserire un elenco di tipi di dati separati
1183 <para>Ad esempio, nella seguente definizione si presume che sia stato creato
1184 un tipo di dati Gif.</para>
1185 <programlisting>ACTION Aprire_Gif
1188 LABEL "Visualizzazione Gif"
1189 WINDOW_TYPE NO_STDIO
1191 DESCRIPTION Visualizza file gif
1195 <sect2 id="sag.cract.div.46">
1196 <title>Restrizione di un'azione in base al numero degli argomenti<indexterm>
1197 <primary>azioni</primary><secondary>restrizione del numero di argomenti</secondary>
1198 </indexterm><indexterm><primary>argomenti</primary><secondary>numero ammesso
1199 per le azioni</secondary></indexterm></title>
1200 <para><indexterm><primary>ARG_COUNT, campo</primary></indexterm>Usare il campo <filename>ARG_COUNT</filename> per specificare il numero di argomenti che l'azione
1201 può accettare. Sono ammessi i seguenti valori:</para>
1203 <tgroup cols="2" colsep="0" rowsep="0">
1204 <colspec colwidth="108*">
1205 <colspec colwidth="420*">
1208 <entry align="left" valign="top"><para><filename>*</filename></para></entry>
1209 <entry align="left" valign="top"><para>(Valore predefinito) Qualsiasi numero
1210 di argomenti. Gli altri valori hanno la precedenza su <filename>*</filename>.
1211 </para></entry></row>
1213 <entry align="left" valign="top"><para><symbol role="Variable">n</symbol></para></entry>
1214 <entry align="left" valign="top"><para>Qualsiasi intero non negativo, incluso
1215 lo zero.</para></entry></row>
1217 <entry align="left" valign="top"><para><filename>></filename><symbol role="Variable">n</symbol></para></entry>
1218 <entry align="left" valign="top"><para>Più di <symbol role="Variable">n</symbol> argomenti.</para></entry></row>
1220 <entry align="left" valign="top"><para><filename><</filename><symbol role="Variable">n</symbol></para></entry>
1221 <entry align="left" valign="top"><para>Meno di <symbol role="Variable">n</symbol>
1222 argomenti.</para></entry></row></tbody></tgroup></informaltable>
1223 <para>Una delle funzioni per cui può essere utilizzato <filename>ARG_COUNT</filename> è quella di ottenere un comportamento diverso dell'azione
1224 a seconda che l'utente faccia doppio clic sulla sua icona o vi rilasci un
1225 file. Vedere la sezione seguente, <!--Original XRef content: '“Come
1226 ottenere un comportamento diverso--><!-- al doppio clic sull'icona e al
1227 rilascio di un file'--><xref role="SectionTitle" linkend="sag.cract.mkr.31">.
1230 <sect2 id="sag.cract.div.47" role="Procedure">
1231 <title id="sag.cract.mkr.31">Come ottenere un comportamento diverso al doppio
1232 clic sull'icona e al rilascio di un file<indexterm><primary>azioni</primary>
1233 <secondary>funzionalità</secondary></indexterm><indexterm><primary>diverse per doppio clic e rilascio</primary></indexterm><indexterm><primary>ARG_COUNT, campo</primary></indexterm></title>
1234 <para>La procedura descritta qui di seguito permette di creare un'azione che
1235 accetti il rilascio di un file ma non richieda alcun argomento facendo doppio
1236 clic sull'icona.</para>
1238 <listitem><para>Inserire nella definizione dell'azione la funzionalità
1239 relativa al doppio clic.</para>
1240 <para>Usare il campo <filename>ARG_COUNT</filename> per specificare <filename>0</filename> argomenti. Usare per <filename>EXEC_STRING</filename> una sintassi
1241 che non accetti il rilascio degli argomenti.</para>
1243 <listitem><para>Creare una seconda definizione per la funzionalità
1245 <para>Usare il campo <filename>ARG_COUNT</filename> per specificare <filename>>0</filename> argomenti. Usare per <filename>EXEC_STRING</filename> una sintassi
1246 che accetti il rilascio di un file.</para>
1249 <para>Ad esempio, si supponga di poter usare le due righe comandi seguenti
1250 per avviare un editor di nome <command>vedit</command>:</para>
1251 <itemizedlist remap="Bullet1">
1252 <listitem><para>Per avviare l'editor senza specificare argomenti:</para>
1253 <para remap="CodeIndent1"><command>vedit</command></para>
1255 <listitem><para>Per avviare l'editor specificando come argomento un file da
1256 aprire in modalità di sola lettura:</para>
1257 <para remap="CodeIndent1"><command>vedit -R</command> <symbol role="Variable">nomefile</symbol></para>
1260 <para>Le due azioni seguenti creano le funzionalità di doppio clic
1261 e rilascio per un'azione di nome Vedit. La prima azione ha la precedenza quando
1262 si cerca una corrispondenza nel database, poiché il campo <filename>ARG_COUNT</filename> <filename>0</filename> è più specifico
1263 rispetto al valore predefinito <filename>ARG_COUNT</filename> <filename>*</filename> che verrà usato per il rilascio.</para>
1264 <programlisting># Funzionalità del doppio clic
1269 WINDOW_TYPE PERM_TERMINAL
1273 # Funzionalità di rilascio
1277 WINDOW_TYPE PERM_TERMINAL
1278 EXEC_STRING vedit -R %Arg_1%
1281 <sect2 id="sag.cract.div.48">
1282 <title>Restrizione di un'azione in base alla modalità dell'argomento</title>
1283 <para>Si può utilizzare il campo <filename>ARG_MODE</filename> per
1284 specificare la modalità di lettura/scrittura dell'argomento. I valori
1285 ammessi sono:</para>
1287 <tgroup cols="2" colsep="0" rowsep="0">
1288 <colspec colwidth="107*">
1289 <colspec colwidth="421*">
1292 <entry align="left" valign="top"><para><filename>*</filename></para></entry>
1293 <entry align="left" valign="top"><para>(Valore predefinito) Qualsiasi modalità
1294 </para></entry></row>
1296 <entry align="left" valign="top"><para><filename>!w</filename></para></entry>
1297 <entry align="left" valign="top"><para>Non-scrivibile</para></entry></row>
1299 <entry align="left" valign="top"><para><command>w</command></para></entry>
1300 <entry align="left" valign="top"><para>Scrivibile</para></entry></row></tbody>
1301 </tgroup></informaltable>
1304 <sect1 id="sag.cract.div.49">
1305 <title id="sag.cract.mkr.32">Creazione di azioni che eseguano applicazioni
1306 su sistemi remoti<indexterm><primary>azioni</primary><secondary>esecuzione
1307 di applicazioni remote</secondary></indexterm><indexterm><primary>esecuzione
1308 remota</primary><secondary>azioni</secondary></indexterm></title>
1309 <para>Nel descrivere l'esecuzione remota delle azioni, si farà spesso
1310 riferimento ai due termini seguenti:</para>
1312 <tgroup cols="2" colsep="0" rowsep="0">
1313 <colspec colwidth="189*">
1314 <colspec colwidth="339*">
1317 <entry align="left" valign="top"><para><indexterm><primary>database</primary>
1318 <secondary>host</secondary></indexterm>host del database</para></entry>
1319 <entry align="left" valign="top"><para>Il sistema in cui si trova la definizione
1320 dell'azione</para></entry></row>
1322 <entry align="left" valign="top"><para><indexterm><primary>host di esecuzione</primary><secondary>creazione di azioni per</secondary></indexterm>host di
1323 esecuzione</para></entry>
1324 <entry align="left" valign="top"><para>Il sistema su cui viene avviato l'eseguibile
1325 </para></entry></row></tbody></tgroup></informaltable>
1326 <para>In genere, le azioni e le relative applicazioni si trovano sullo stesso
1327 sistema; in questi casi non è richiesta alcuna sintassi particolare,
1328 perché l'host di esecuzione predefinito per le azioni è l'host
1329 del database.</para>
1330 <para>Tuttavia, quando l'host di esecuzione non coincide con l'host del database,
1331 la definizione dell'azione deve specificare la posizione in cui eseguire il
1332 comando contenuto nella stringa di esecuzione.</para>
1333 <para>La possibilità di collocare le azioni e le applicazioni su sistemi
1334 diversi è una caratteristica dell'architettura client/server del desktop.
1335 Per una trattazione più approfondita delle applicazioni di rete, vedere
1336 <!--Original XRef content: '“Amministrazione dei servizi per le ap--><!--plicazioni”
1337 a pagina 100'--><xref role="SecTitleAndPageNum" linkend="sag.clsrv.mkr.15">.
1339 <sect2 id="sag.cract.div.50">
1340 <title id="sag.cract.mkr.33">Creazione di un'azione che esegua un'applicazione
1341 remota<indexterm><primary>EXEC_HOST, campo</primary></indexterm><indexterm>
1342 <primary>%</primary></indexterm><indexterm><primary>DatabaseHost%</primary>
1343 </indexterm><indexterm><primary></primary></indexterm><indexterm><primary>%</primary></indexterm><indexterm><primary>LocalHost%</primary></indexterm><indexterm>
1344 <primary></primary></indexterm><indexterm><primary>%</primary></indexterm><indexterm>
1345 <primary>DisplayHost%</primary></indexterm><indexterm><primary></primary>
1346 </indexterm><indexterm><primary>%</primary></indexterm><indexterm><primary>SessionHost%</primary></indexterm></title>
1347 <para><indexterm><primary>EXEC_HOST, campo</primary></indexterm><indexterm>
1348 <primary>host di esecuzione</primary><secondary>definizione con il campo EXEC_HOST</secondary></indexterm>Usare il campo <filename>EXEC_HOST</filename> nella
1349 definizione dell'azione per specificare la posizione dell'applicazione.</para>
1350 <para>I valori ammessi per <filename>EXEC_HOST</filename> sono:</para>
1352 <tgroup cols="2" colsep="0" rowsep="0">
1353 <colspec colwidth="191*">
1354 <colspec colwidth="337*">
1357 <entry align="left" valign="top"><para><filename><indexterm><primary>DataBaseHost,
1358 parola chiave</primary></indexterm>%DatabaseHost%</filename></para></entry>
1359 <entry align="left" valign="top"><para>L'host che contiene la definizione
1360 dell'azione.</para></entry></row>
1362 <entry align="left" valign="top"><para><filename>%LocalHost%</filename></para></entry>
1363 <entry align="left" valign="top"><para>L'host da cui viene avviata l'azione
1364 (il <emphasis>server della sessione</emphasis>).</para></entry></row>
1366 <entry align="left" valign="top"><para><filename><indexterm><primary>DisplayHost,
1367 parola chiave</primary></indexterm>%DisplayHost%</filename></para></entry>
1368 <entry align="left" valign="top"><para>L'host che esegue il server X (non
1369 previsto per i terminal X).</para></entry></row>
1371 <entry align="left" valign="top"><para><filename><indexterm><primary>SessionHost,
1372 parola chiave</primary></indexterm>%SessionHost%</filename></para></entry>
1373 <entry align="left" valign="top"><para>L'host su cui viene eseguita la Gestione
1374 del login.</para></entry></row>
1376 <entry align="left" valign="top"><para><symbol role="Variable">nomehost</symbol></para></entry>
1377 <entry align="left" valign="top"><para>L'host specificato. Usare questo valore
1378 per gli ambienti in cui l'azione deve essere sempre eseguita su un host particolare.
1379 </para></entry></row>
1381 <entry align="left" valign="top"><para><filename>%“</filename><symbol role="Variable">richiesta</symbol><filename>“%</filename></para></entry>
1382 <entry align="left" valign="top"><para>Richiesta di inserimento del nome host
1383 visualizzata ad ogni esecuzione dell'azione.</para></entry></row></tbody>
1384 </tgroup></informaltable>
1385 <para>Il valore predefinito è <filename>%DatabaseHost%</filename>, <filename>%LocalHost%</filename>.<indexterm><primary>EXEC_HOST, campo</primary><secondary>valore predefinito</secondary></indexterm> Con questa impostazione, se si
1386 omette il campo <filename>EXEC_HOST</filename> l'azione cerca inizialmente
1387 di eseguire il comando sull'host che contiene la sua definizione. Se l'operazione
1388 non riesce, l'azione cerca di eseguire il comando sul server della sessione.
1390 <sect3 id="sag.cract.div.51">
1391 <title>Esempi</title>
1392 <itemizedlist remap="Bullet1">
1393 <listitem><para>Questo campo specifica l'host <command>ddsyd</command>:</para>
1396 <programlisting>EXEC_HOST ddsyd</programlisting>
1397 <itemizedlist remap="Bullet1">
1398 <listitem><para>Questo campo richiede un nome host:</para>
1401 <programlisting>EXEC_HOST %"Host contenente l'applicazione:"%</programlisting>
1402 <itemizedlist remap="Bullet1">
1403 <listitem><para>Questo campo specifica che l'azione cercherà inizialmente
1404 di eseguire l'applicazione sull'host contenente la definizione dell'azione.
1405 Se non dovesse riuscire, essa cercherà di eseguire l'applicazione sull'host <command>ddsyd</command>.</para>
1408 <programlisting>EXEC_HOST %DatabaseHost%, ddsyd</programlisting>
1412 <sect1 id="sag.cract.div.52">
1413 <title id="sag.cract.mkr.34">Uso delle variabili nelle definizioni delle azioni
1414 e dei tipi di dati<indexterm><primary>variabili</primary><secondary>uso nelle
1415 definizioni delle azioni</secondary></indexterm><indexterm><primary>azioni</primary><secondary>uso delle variabili nelle definizioni</secondary></indexterm><indexterm>
1416 <primary>tipi di dati</primary><secondary>uso delle variabili nelle definizioni</secondary></indexterm></title>
1417 <para>Le definizioni delle azioni e dei tipi di dati possono comprendere variabili
1418 in forma di stringa e variabili d'ambiente.</para>
1419 <sect2 id="sag.cract.div.53">
1420 <title id="sag.cract.mkr.35">Uso di variabili stringa in un'azione<indexterm>
1421 <primary>variabili</primary><secondary>stringa, nelle definizioni delle azioni</secondary></indexterm><indexterm><primary>azioni</primary><secondary>uso
1422 di variabili stringa</secondary></indexterm></title>
1423 <para>La definizione di una variabile stringa ha effetto dal punto della definizione
1424 fino alla fine del file. Non esistono variabili stringa globali per il database.
1426 <para>Se una variabile stringa e una variabile d'ambiente hanno lo stesso
1427 nome, la variabile stringa avrà la precedenza.</para>
1428 <sect3 id="sag.cract.div.54" role="Procedure">
1429 <title>Come definire una variabile stringa</title>
1431 <listitem><para>Usare la sintassi:</para>
1432 <para remap="CodeIndent1"><command>set <symbol role="Variable">nome_variabile</symbol>=<symbol role="Variable">valore</symbol></command></para>
1435 <para>I nomi delle variabili possono contenere qualsiasi carattere alfanumerico
1436 e il carattere di sottolineatura (<filename>_</filename>). Ogni definizione
1437 deve occupare una riga diversa.</para>
1438 <para>Ad esempio:</para>
1439 <programlisting>set Server_applicazioni_remoto=sysapp
1440 set Server_file_remoto=sysdata</programlisting>
1442 <sect3 id="sag.cract.div.55" role="Procedure">
1443 <title>Come impostare un riferimento a una variabile stringa</title>
1445 <listitem><para>Usare la sintassi:</para>
1446 <para remap="CodeIndent1"><command>$[{]<symbol role="Variable">nome_variabile</symbol>[}]</command></para>
1449 <para>Ad esempio:</para>
1450 <programlisting>EXEC-HOST $Server_applicazioni_remoto
1451 CWD /net/${Server_file_remoto}/doc/project</programlisting>
1454 <sect2 id="sag.cract.div.56">
1455 <title id="sag.cract.mkr.36">Uso delle variabili d'ambiente nelle azioni e
1456 nei tipi di dati<indexterm><primary>variabili d'</primary></indexterm><indexterm>
1457 <primary>ambiente</primary><secondary>definizioni delle azioni</secondary>
1458 </indexterm><indexterm><primary>azioni</primary><secondary>variabili d'</secondary>
1459 </indexterm><indexterm><primary>ambiente</primary></indexterm></title>
1461 <listitem><para>Per impostare un riferimento a una variabile d'ambiente, usare
1463 <para remap="CodeIndent1"><command>$[{]<symbol role="Variable">variabile</symbol>[}]</command>.</para>
1466 <para>La variabile viene espansa (cioè sostituita dal suo valore) al
1467 momento del caricamento del database. Se una variabile stringa e una variabile
1468 d'ambiente hanno lo stesso nome, la variabile stringa avrà la precedenza.
1470 <para>Ad esempio, questa stringa di esecuzione stampa un file usando il nome
1471 di login dell'utente come intestazione.</para>
1472 <programlisting>EXEC-STRING lp -t$LOGNAME %(File)Arg_1%</programlisting>
1475 <sect1 id="sag.cract.div.57">
1476 <title id="sag.cract.mkr.37">Avvio di un'azione dalla riga comandi<indexterm>
1477 <primary>azioni</primary><secondary>uso per l'</secondary></indexterm><indexterm>
1478 <primary>esecuzione di altre azioni</primary></indexterm></title>
1479 <para>Il comando del desktop <command>dtaction</command> permette di eseguire
1480 le azioni da una riga comandi. Questo comando può essere usato per
1481 eseguire le azioni da:</para>
1482 <itemizedlist remap="Bullet1">
1483 <listitem><para>Script</para>
1485 <listitem><para>Altre azioni</para>
1487 <listitem><para>Una riga comandi di un emulatore di terminale</para>
1490 <sect2 id="sag.cract.div.58">
1491 <title>Sintassi di dtaction<indexterm><primary>dtaction</primary><secondary>sintassi</secondary></indexterm></title>
1492 <para><command>dtaction [-user <symbol role="Variable">nome_utente</symbol>]
1493 [-execHost <symbol role="Variable">nomehost</symbol>] <symbol role="Variable">nome_azione</symbol> [<symbol role="Variable">argomento</symbol> [<symbol role="Variable">argomento</symbol>]…]</command></para>
1495 <tgroup cols="2" colsep="0" rowsep="0">
1496 <colspec colwidth="162*">
1497 <colspec colwidth="366*">
1500 <entry align="left" valign="top"><para><filename>-user</filename> <symbol role="Variable">nome_utente</symbol></para></entry>
1501 <entry align="left" valign="top"><para>Permette di eseguire l'azione operando
1502 con un nome utente diverso. Se <command>dtaction</command> viene richiamato
1503 da un utente diverso da quello specificato con <symbol role="Variable">nome_utente</symbol>, viene visualizzata la richiesta di una parola chiave.</para></entry>
1506 <entry align="left" valign="top"><para>-<command>execHost</command> <symbol role="Variable">nomehost</symbol></para></entry>
1507 <entry align="left" valign="top"><para>Solo per le azioni <command>COMMAND</command>; specifica l'host su cui verrà eseguito il comando.</para></entry>
1510 <entry align="left" valign="top"><para><symbol role="Variable">argomento</symbol></para></entry>
1511 <entry align="left" valign="top"><para>Argomento/i da usare per l'azione,
1512 in genere file.</para></entry></row></tbody></tgroup></informaltable>
1513 <para>Il client <command>dtaction</command> dispone di altre opzioni per la
1514 riga comandi. Per maggiori informazioni, vedere la pagina di spiegazioni <filename moreinfo="refentry">dtaction(1)</filename>.</para>
1516 <sect2 id="sag.cract.div.59">
1517 <title>Creazione di un'azione che esegua un'altra azione<indexterm><primary>azioni</primary><secondary>uso per l'</secondary></indexterm><indexterm><primary>esecuzione di altre azioni</primary></indexterm></title>
1518 <para>Usare <command>dtaction</command> nella <filename>EXEC_STRING</filename>
1520 <para>Ad esempio, l'azione seguente utilizza un'azione predefinita di nome
1521 Spell (presentata come “Controllare ortografia” nella Gestione
1522 di applicazioni). La nuova azione eseguirà l'Editor di testo e l'azione
1523 Spell, visualizzando gli errori riscontrati in una finestra di emulazione
1524 di terminale separata.</para>
1525 <programlisting>ACTION ApriECorreggi
1527 WINDOW_TYPE NO_STDIO
1528 EXEC_STRING /bin/sh -c 'dtaction Spell \
1529 %Arg_1“File:“%; dtpad %Arg_1%'
1532 <sect2 id="sag.cract.div.60">
1533 <title id="sag.cract.mkr.38">Creazione di un'azione che venga eseguita con
1534 un nome utente diverso<indexterm><primary>azioni</primary><secondary>esecuzione
1535 come utente diverso</secondary></indexterm><indexterm><primary>utente, cambiamento
1536 per l'</primary></indexterm><indexterm><primary>esecuzione di un'</primary>
1537 </indexterm><indexterm><primary>azione</primary></indexterm><indexterm><primary>dtaction</primary><secondary>uso per il cambiamento di utente</secondary>
1538 </indexterm></title>
1539 <para>Usare la seguente sintassi nella <filename>EXEC_STRING</filename>:
1541 <programlisting>EXEC_STRING dtaction -user <symbol role="Variable">nome_utente nome_azione</symbol> [<symbol role="Variable">argomento</symbol>]</programlisting>
1542 <para>Il nuovo utente (<symbol role="Variable">nome_utente</symbol>) deve
1543 avere accesso di visualizzazione al sistema attraverso uno dei seguenti meccanismi:
1545 <itemizedlist remap="Bullet1">
1546 <listitem><para>Autorizzazione di lettura per il file <filename>.Xauthority</filename> dell'utente specificato al login</para>
1548 <listitem><para><emphasis>Oppure</emphasis>, autorizzazione xhost</para>
1551 <para>Ad esempio, le due azioni seguenti offrono la possibilità di
1552 diventare superutente e di editare un file di impostazioni predefinite delle
1553 applicazioni.</para>
1554 <programlisting>ACTION ImpPred
1556 WINDOW_TYPE NO_STDIO
1557 EXEC_STRING /usr/dt/bin/dtaction -user root \
1558 ModificaImpPred %Arg_1“File:“%
1561 ACTION ModificaImpPred
1563 WINDOW_TYPE TERMINAL
1564 EXEC_STRING /bin/sh -c 'chmod +w %Arg_1%; \
1565 vi %Arg_1%; chmod -w %Arg_1%'
1569 <sect1 id="sag.cract.div.61">
1570 <title id="sag.cract.mkr.39">Creazione di azioni in lingue diverse</title>
1571 <para>Il percorso di ricerca per i tipi di dati include directory dipendenti
1572 dalla lingua. Il desktop utilizza il valore di LANG per determinare le posizioni
1573 in cui cercare le definizioni dei tipi di dati.</para>
1574 <sect2 id="sag.cract.div.62">
1575 <title>Posizione delle azioni localizzate</title>
1576 <para>Le definizioni delle azioni localizzate devono trovarsi nelle directory
1577 corrette del percorso di ricerca delle azioni.</para>
1578 <para>Il percorso di ricerca predefinito comprende le directory seguenti:
1580 <itemizedlist remap="Bullet1">
1581 <listitem><para>Azioni personali: <symbol role="Variable">DirectoryIniziale</symbol><filename>/.dt/types</filename></para>
1583 <listitem><para>Azioni di sistema: <filename>/etc/dt/appconfig/types/</filename><symbol role="Variable">lingua</symbol></para>
1585 <listitem><para>Azioni predefinite: <filename>/usr/dt/appconfig/types/</filename><symbol role="Variable">lingua</symbol></para>
1589 <sect2 id="sag.cract.div.63" role="Procedure">
1590 <title>Come tradurre un'azione esistente<indexterm><primary>azioni</primary>
1591 <secondary>etichette</secondary></indexterm><indexterm><primary>etichette</primary><secondary>azioni</secondary></indexterm><indexterm><primary>localizzazione</primary><secondary>delle etichette delle azioni</secondary></indexterm></title>
1593 <listitem><para>Creare un file nella directory appropriata dipendente dalla
1594 lingua (ad esempio, in <filename>/etc/dt/appconfig/types/it</filename>).
1597 <listitem><para>Copiare la definizione dell'azione nel file di configurazione
1598 dipendente dalla lingua.</para>
1599 <para>Ad esempio, si potrà copiare la definizione di un'azione da</para>
1600 <para remap="CodeIndent1"><filename><symbol role="Variable">radice_app</symbol>/dt/appconfig/types/C/<symbol role="Variable">file</symbol>.dt</filename></para>
1602 <para remap="CodeIndent1"><filename><symbol role="Variable">radice_app</symbol>/dt/appconfig/types/it/<symbol role="Variable">nuovofile</symbol>.dt</filename></para>
1604 <listitem><para>Aggiungere un campo <command>LABEL</command> o modificare
1605 il campo <command>LABEL</command> esistente.</para>
1606 <para remap="CodeIndent1"><command>LABEL <symbol role="Variable">stringa</symbol></command></para>
1607 <para>La Gestione di applicazioni e la Gestione di file useranno questa stringa
1608 per identificare l'icona dell'azione.</para>
1610 <listitem><para>Adattare i campi seguenti nella definizione dell'azione:</para>
1611 <itemizedlist remap="Bullet2">
1612 <listitem><para>Per le icone tradotte: <command>ICON</command></para>
1614 <listitem><para>Per i testi di aiuto tradotti: <command>DESCRIPTION</command></para>
1616 <listitem><para>Per le richieste tradotte: tutto il testo tra virgolette nella <filename>EXEC_STRING</filename></para>
1623 <sect1 id="sag.cract.div.64">
1624 <title id="sag.cract.mkr.40">Creazione di azioni per le applicazioni ToolTalk<indexterm>
1625 <primary>TT_MSG, azione</primary><secondary>creazione</secondary></indexterm><indexterm>
1626 <primary>ToolTalk</primary><secondary>azioni per le applicazioni</secondary>
1627 </indexterm><indexterm><primary><</primary></indexterm><indexterm><primary>$nopage>ToolTalk</primary><secondary>azione, Vedere TT_MSG, azione</secondary>
1628 </indexterm></title>
1630 <para>Le informazioni seguenti si riferiscono solo alle applicazioni che
1631 supportano i messaggi ToolTalk.</para>
1633 <para>Creare un'azione di tipo <filename>TT_MSG</filename> che invii un messaggio
1635 <programlisting>ACTION <symbol role="Variable">nome_azione</symbol>
1640 <sect2 id="sag.cract.div.65">
1641 <title>Campi addressing e disposition</title>
1642 <itemizedlist remap="Bullet1">
1643 <listitem><para>Il campo <command>addressing</command> di ToolTalk è
1644 sempre impostato su <filename>TT_PROCEDURE</filename>.</para>
1646 <listitem><para>Il campo <command>disposition</command> di ToolTalk viene
1647 impostato automaticamente sul valore specificato nello schema del messaggio
1651 <sect3 id="sag.cract.div.66">
1652 <title>Messaggi non supportati</title>
1653 <para>Le azioni di tipo <filename>TT_MSG</filename> non supportano i messaggi
1655 <itemizedlist remap="Bullet1">
1656 <listitem><para>I messaggi di ToolTalk orientati agli oggetti</para>
1658 <listitem><para>L'uso di contesti come argomenti nei messaggi</para>
1662 <sect3 id="sag.cract.div.67">
1663 <title>Parole chiave per le azioni TT_MSG<indexterm><primary>TT_MSG, azione</primary><secondary>parole chiave</secondary></indexterm></title>
1665 <tgroup cols="2" colsep="0" rowsep="0">
1666 <colspec colwidth="140*">
1667 <colspec colwidth="388*">
1669 <row><entry align="left" valign="bottom"><para>Parola chiave</para></entry>
1670 <entry align="left" valign="bottom"><para>Uso</para></entry></row></thead>
1673 <entry align="left" valign="top"><para><filename>TT_CLASS</filename></para></entry>
1674 <entry align="left" valign="top"><para>Definisce il valore del campo <command>class</command> dei messaggi di ToolTalk</para></entry></row>
1676 <entry align="left" valign="top"><para><filename>TT_SCOPE</filename></para></entry>
1677 <entry align="left" valign="top"><para>Definisce il valore del campo <command>scope</command> dei messaggi di ToolTalk</para></entry></row>
1679 <entry align="left" valign="top"><para><filename>TT_OPERATION</filename></para></entry>
1680 <entry align="left" valign="top"><para>Definisce il valore del campo <command>operation</command> dei messaggi di ToolTalk</para></entry></row>
1682 <entry align="left" valign="top"><para><filename>TT_FILE</filename></para></entry>
1683 <entry align="left" valign="top"><para>Definisce il valore del campo <command>file</command> dei messaggi di ToolTalk</para></entry></row>
1685 <entry align="left" valign="top"><para><filename>TT_ARGn_MODE</filename></para></entry>
1686 <entry align="left" valign="top"><para>Definisce il valore dell'attributo <command>mode</command> di ToolTalk per l'argomento <symbol role="Variable">n</symbol>
1687 del messaggio</para></entry></row>
1689 <entry align="left" valign="top"><para><filename>TT_ARGn_VTYPE</filename></para></entry>
1690 <entry align="left" valign="top"><para>Definisce il valore dell'attributo <command>vtype</command> di ToolTalk per l'argomento <symbol role="Variable">n</symbol>
1691 del messaggio</para></entry></row>
1693 <entry align="left" valign="top"><para><filename>TT_ARGn_VALUE</filename></para></entry>
1694 <entry align="left" valign="top"><para>Definisce il valore dell'argomento <symbol role="Variable">n</symbol> del messaggio</para></entry></row></tbody></tgroup>
1696 </sect3><?Pub Caret>
1700 <!--fickle 1.14 mif-to-docbook 1.7 01/02/96 16:05:15-->