# Manual del Zenity

## Introducció

El Zenity us permet crear els tipus de diàlegs senzills següents:

- Calendari

- Selecció de fitxers

- Llista

- Icona de notificació

- Missatge

  - Error

  - Informació

  - Pregunta

  - Avís

- Progrés

- Entrada de text

- Text informatiu

## Utilització

Quan escriviu scripts, podeu utilitzar el Zenity per crear diàlegs senzills que interactuen gràficament amb l'usuari. Funciona així:

- Podeu crear un diàleg per obtenir informació de l'usuari. Per exemple, podeu sol·licitar a l'usuari que seleccioni una data d'un diàleg de calendari o que seleccioni un fitxer d'un diàleg de selecció de fitxers.

- Podeu crear un diàleg per proporcionar informació a l'usuari. Per exemple, podeu utilitzar un diàleg de progrés per indicar l'estat actual d'una operació o utilitzar el diàleg de missatge d'avís per alertar a l'usuari.

Qual l'usuari tanca el diàleg, el Zenity imprimeix el text produït pel diàleg a la sortida estàndard.

Quan escriviu ordres del Zenity, assegureu-vos que poseu cometes al voltant de cada argument.

Per exemple, utilitzeu:

    zenity --calendar --title="Planificació de les vacances"

No utilitzeu:

    zenity --calendar --title=Planificació de les vacances

Si no utilitzeu les cometes no obtindreu els resultats esperats.

### Tecles d'accés

Una tecla d'accés és una tecla que us permet realitzar una acció des del teclat enlloc d'utilitzar el ratolí per a seleccionar una ordre des d'un menú o diàleg. Cada tecla d'accés està identificada per una lletra subratllada en l'opció d'un menú o d'un diàleg.

Alguns diàlegs del Zenity admeten la utilització de tecles d'accés. Per especificar el caràcter a utilitzar com a tecla d'accés, col·loqueu un caràcter subratllat abans del caràcter al text del diàleg. L'exemple següent mostra com especificar la lletra «T» com a tecla d'accés:

    «_Trieu un nom».

### Codis de sortida

El Zenity retorna els codis de sortida següents:

Codi de sortida | Descripció
`0` | L'usuari ha premut D'acord o Tanca.
`1` | L'usuari ha premut Cancel·la o ha utilitzat les funcions de la finestra per a tancar el diàleg.
`-1` | S'ha produït un error inesperat.
`5` | S'ha tancat el diàleg perquè s'ha acabat el temps d'espera.

### Opcions generals

Tots els diàlegs del Zenity admeten les opcions generals següents:

`--title`=`títol`

- Especifica el títol d'un diàleg.

`--window-icon`=`ruta_de_la_icona`

- Especifica la icona que es mostrarà al marc de la finestra del diàleg. També podeu utilitzar 4 icones predefinides si proporcioneu les paraules clau següents: «info» (informació), «warning» (avís), «question» (pregunta) i «error» (error).

`--width`=`amplada`

- Especifica l'amplada del diàleg.

`--height`=`alçada`

- Especifica l'alçada del diàleg.

`--timeout`=`temps d'espera`

- Especifica el temps d'espera, en segons, passats els quals es tancarà el diàleg.

### Opcions d'ajuda

El Zenity proporciona les opcions d'ajuda següents:

`--help`

- Mostra el text d'ajuda abreviat.

`--help-all`

- Mostra el text d'ajuda complet per tots els diàlegs.

`--help-general`

- Mostra el text d'ajuda de les opcions generals dels diàlegs.

`--help-calendar`

- Mostra el text d'ajuda de les opcions del diàleg de calendari.

`--help-entry`

- Mostra el text d'ajuda de les opcions del diàleg d'entrada de text.

`--help-error`

- Mostra el text d'ajuda de les opcions del diàleg d'error.

`--help-info`

- Mostra el text d'ajuda de les opcions del diàleg informatiu.

`--help-file-selection`

- Mostra el text d'ajuda de les opcions del diàleg de selecció de fitxers.

`--help-list`

- Mostra el text d'ajuda de les opcions del diàleg de llista.

`--help-notification`

- Mostra el text d'ajuda de les opcions de la icona de notificació.

`--help-progress`

- Mostra el text d'ajuda de les opcions del diàleg de progrés.

`--help-question`

- Mostra el text d'ajuda de les opcions del diàleg de pregunta.

`--help-warning`

- Mostra el text d'ajuda de les opcions del diàleg d'avís.

`--help-text-info`

- Mostra l'ajuda de les opcions del diàleg de text informatiu.

`--help-misc`

- Mostra l'ajuda de les opcions miscel·lànies.

`--help-gtk`

- Mostra l'ajuda de les opcions de la GTK+.

### Opcions miscel·lànies

El Zenity també proporciona les opcions misel·lànies següents:

`--about`

- Mostra el diàleg Quant al Zenity, que conté informació de la versió, del copyright i de desenvolupament del Zenity.

`--version`

- Mostra el número de versió del Zenity.

### Opcions de la GTK+

El Zenity admet les opcions estàndard de la GTK+. Per obtenir més informació sobre les opcions de la GTK+, executeu l'ordre `zenity -?`.

### Variables d'entorn

Normalment el Zenity detecta la finestra del terminal des d'on s'ha executat i es manté sobre d'aquesta. Aquest comportament es pot desactivar amb la variable d'entorn `WINDOWID`.

## Diàleg de calendari

Utilitzeu l'opció `--calendar` per crear un diàleg de calendari. El Zenity retorna la data seleccionada a la sortida estàndard. Si no s'ha especificat cap data a la línia d'ordres, el diàleg utilitza la data actual.

El diàleg de calendari admet les opcions següents:

`--text`=`text`

- Especifica el text que es mostra al diàleg del calendari.

`--day`=`dia`

- Especifica el dia que hi ha seleccionat al diàleg del calendari. El `dia` ha de ser un número entre 1 i 31 inclosos.

`--month`=`mes`

- Especifica el mes que hi ha seleccionat al diàleg del calendari. El `mes` ha de ser un número entre 1 i 12 inclosos.

`--year`=`any`

- Especifica l'any hi ha seleccionat al diàleg del calendari.

`--date-format`=`format`

- Especifica el format que es retorna des del diàleg del calendari després de seleccionar la data. El format predeterminat depèn de la configuració regional. El `format` ha de ser un format acceptable per a la funció `strftime`, per exemple: `%A %d/%m/%y`.

L'script d'exemple següent mostra com crear un diàleg de calendari:

            #!/bin/sh

            if zenity --calendar \
            --title="Seleccioneu una data" \
            --text="Feu clic a una data per a seleccionar-la." \
            --day=23 --month=11 --year=2008
              then echo $?
              else echo "No s'ha seleccionat cap data"
            fi

### Exemple de diàleg de calendari

Exemple de diàleg de calendari del Zenity

## Diàleg de selecció de fitxers

Utilitzeu l'opció `--file-selection` per a crear un diàleg de selecció de fitxers. El Zenity retorna els fitxers o directoris seleccionats a la sortida estàndard. El mode per defecte del diàleg de selecció de fitxers és obrir.

El diàleg de selecció de fitxers admet les opcions següents:

`--filename`=`nom_de_fitxer`

- Especifica el fitxer o directori que està seleccionat al diàleg de selecció de fitxers quan es mostra el diàleg per primer cop.

`--multiple`

- Permet la selecció de diversos noms de fitxer al diàleg de selecció de fitxers.

`--directory`

- Només permet la selecció de directoris al diàleg de selecció de fitxers.

`--save`

- Estableix el diàleg de selecció de fitxers al mode de desar.

`--separator`=`separador`

- Especifica la cadena que s'utilitza per a dividir la llista de noms de fitxers retornada.

L'script d'exemple següent mostra com crear un diàleg de selecció de fitxers:

            #!/bin/sh

            FILE=`zenity --file-selection --title="Seleccioneu un fitxer"`

            case $? in
                     0)
                            echo "S'ha seleccionat \"$FILE\".";;
                     1)
                            echo "No s'ha seleccionat cap fitxer.";;
                    -1)
                            echo "No s'ha seleccionat cap fitxer.";;
            esac

### Exemple de diàleg de selecció de fitxers

Exemple de diàleg de selecció de fitxers del Zenity

## Icona de notificació

`--text`=`text`

- Especifica el text que es mostra a l'àrea de notificació.

L'script d'exemple següent mostra com crear una icona de notificació:

            #!/bin/sh

            zenity --notification\
              --window-icon="info" \
              --text="Hi ha actualitzacions necessàries per al sistema."

### Exemple d'icona de notificació

Exemple d'icona de notificació del Zenity

## Diàleg de llista

Utilitzeu l'opció `--list` per crear un diàleg de llista. El Zenity retorna les entrades de la primera columna de text de les files seleccionades a la sortida estàndard.

Les dades del diàleg s'han d'especificar columna per columna, fila per fila. Les dades es poden proporcionar al diàleg a través de l'entrada estàndard. Cada entrada s'ha de separar per un caràcter de línia nova.

Si utilitzeu les opcions `--checklist` o `--radiolist`, cada fila ha de començar amb «TRUE» (cert) o «FALSE» (fals).

El diàleg de llista admet les opcions següents:

`--column`=`columna`

- Especifica les capçaleres de la columna que es mostren al diàleg de llista. Heu d'especificar una opció de `--column` per a cada columna que voleu mostrar al diàleg.

`--checklist`

- Especifica que la primera columna del diàleg de llista conté caselles de selecció.

`--radiolist`

- Especifica que la primera columna del diàleg de llista conté botons d'opció.

`--editable`

- Permet que s'editin els elements mostrats.

`--separator`=`separador`

- Especifica quina cadena s'utilitza quan el diàleg de llista retorna les entrades seleccionades.

`--print-column`=`columna`

- Especifica quina columna s'hauria d'imprimir si es selecciona. La columna per defecte és «1». Es pot utilitzar «ALL» (totes) per a imprimir totes les columnes de la llista.

L'script d'exemple següent mostra com crear un diàleg de llista:

            #!/bin/sh

            zenity --list \
              --title="Trieu els errors que voleu visualitzar" \
              --column="Número de l'error" --column="Severitat" --column="Descripció" \
                992383 Normal "El GtkTreeView falla en seleccions múltiples" \
                293823 Alta "El diccionari del GNOME no gestiona servidors intermediaris" \
                393823 Crítica "L'edició del menú no funciona al GNOME 2.0"

### Exemple de diàleg de llista

Exemple de diàleg de llista del Zenity

## Diàlegs de missatge

El Zenity pot crear quatre tipus de diàlegs de missatge:

- Error

- Informació

- Pregunta

- Avís

Per a cada tipus, utilitzeu l'opció `--text` per especificar el text que es mostra al diàleg.

### Diàleg d'error

Utilitzeu l'opció `--error` per crear un diàleg d'error.

L'script d'exemple següent mostra com crear un diàleg d'error:

              #!/bin/bash

              zenity --error \
              --text="No es pot trobar /var/log/syslog."

#### Exemple de diàleg d'error

Exemple de diàleg d'error del Zenity

### Diàleg d'informació

Utilitzeu l'opció `--info` per crear un diàleg d'informació.

L'script d'exemple següent mostra com crear un diàleg d'informació:

              #!/bin/bash

              zenity --info \
              --text="S'ha completat la combinació. S'han actualitzat 3 de 10 fitxers."

#### Exemple de diàleg d'informació

Exemple de diàleg d'informació del Zenity

### Diàleg de pregunta

Utilitzeu l'opció `--question` per crear un diàleg de pregunta.

L'script d'exemple següent mostra com crear un diàleg de pregunta:

              #!/bin/bash

              zenity --question \
              --text="Segur que voleu continuar?"

#### Exemple de diàleg de pregunta

Exemple de diàleg de pregunta del Zenity

### Diàleg d'avís

Utilitzeu l'opció `--warning` per crear un diàleg d'avís.

L'script d'exemple següent mostra com crear un diàleg d'avís:

              #!/bin/bash

              zenity --warning \
              --text="Desconnecteu el cable d'alimentació per a evitar una descàrrega elèctrica."

#### Exemple de diàleg d'avís

Exemple de diàleg d'avís del Zenity

## Diàleg de progrés

Utilitzeu l'opció `--progress` per crear un diàleg de progrés.

El Zenity llegeix dades de l'entrada estàndard línia per línia. Si una línia té el prefix #, el text s'actualitza amb el text d'aquesta línia. Si una línia només conté un número, el percentatge s'actualitza amb aquest número.

El diàleg de progrés admet les opcions següents:

`--text`=`text`

- Especifica el text que es mostrarà al diàleg de progrés.

`--percentage`=`percentatge`

- Especifica els percentatge inicial que s'estableix al diàleg de progrés.

`--auto-close`

- Tanca el diàleg de progrés quan s'arribi al 100%.

`--pulsate`

- Especifica que la barra de progrés parpellegi fins que es llegeixi un caràcter EOF (final de fitxer) de l'entrada estàndard.

L'script d'exemple següent mostra com crear un diàleg de progrés:

            #!/bin/sh
            (
            echo "10" ; sleep 1
            echo "# S'estan actualitzant els registres del correu" ; sleep 1
            echo "20" ; sleep 1
            echo "# S'estan reiniciant les tasques del cron" ; sleep 1
            echo "50" ; sleep 1
            echo "Aquesta línia s'ignorarà" ; sleep 1
            echo "75" ; sleep 1
            echo "# S'està reiniciant el sistema" ; sleep 1
            echo "100" ; sleep 1
            ) |
            zenity --progress \
              --title="Actualització dels registres del sistema" \
              --text="Comprovació dels registres del sistema..." \
              --percentage=0

            if [ "$?" = -1 ] ; then
                    zenity --error \
                      --text="Actualització cancel·lada."
            fi

### Exemple de diàleg de progrés

Exemple de diàleg de progrés del Zenity

## Diàleg d'entrada de text

Utilitzeu l'opció `-entry` per crear un diàleg d'entrada de text. El Zenity retorna els continguts de l'entrada de text a la sortida estàndard.

El diàleg d'entrada de text admet les opcions següents:

`--text`=`text`

- Especifica el text que es mostra al diàleg d'entrada de text.

`--entry-text`=`text`

- Especifica el text que es mostra al camp d'entrada del diàleg d'entrada de text.

`--hide-text`

- Amaga el text del camp d'entrada del diàleg d'entrada de text.

L'script d'exemple següent mostra com crear un diàleg d'entrada de text:

            #!/bin/sh

            if zenity --entry \
            --title="Afegeix una entrada" \
            --text="Introduïu la _contrasenya:" \
            --entry-text "contrasenya" \
            --hide-text
              then echo $?
              else echo "No s'ha introduït cap contrasenya"
            fi

### Exemple de diàleg d'entrada de text

Exemple de diàleg d'entrada de text del Zenity

## Diàleg de text informatiu

Utilitzeu l'opció `--text-info` per crear un diàleg de text informatiu.

El diàleg de text informatiu admet les opcions següents:

`--filename`=`nom_de_fitxer`

- Especifica el fitxer que es carregarà al diàleg de text informatiu.

`--editable`

- Permet que el text mostrat es pugui editar. El text editat es retorna a la sortida estàndard quan es tanca el diàleg.

L'script d'exemple següent mostra com crear un diàleg de text informatiu:

            #!/bin/sh

            FILE=`zenity --file-selection \
              --title="Seleccioneu un fitxer"`

            case $? in
                     0)
                            zenity --text-info \
                              --title=$FILE \
                              --filename=$FILE \
                              --editable 2>/tmp/tmp.txt;;
                     1)
                            echo "No s'ha seleccionat cap fitxer.";;
                    -1)
                            echo "No s'ha seleccionat cap fitxer.";;
            esac

### Exemple del diàleg de text informatiu

Exemple del diàleg de text informatiu del Zenity