# Zenityn ohje

## Johdanto

Zenity mahdollistaa seuraavan tyyppisten yksinkertaisten ikkunoiden luomisen:

- Kalenteri

- Tiedoston valinta

- Luettelo

- Ilmoituskuvake

- Viesti

  - Virhe

  - Tiedoksi

  - Kysymys

  - Varoitus

- Edistyminen

- Tekstisyöte

- Tekstihuomatus

## Käyttö

Skriptejä kirjoitettaessa voi Zenityä käyttää yksinkertaisten valintaikkunoiden luomiseen, jotka pyytävät käyttäjältä syötettä graafisesti, kuten seuraavissa tapauksissa:

- Voit luoda valintaikkunan keräämään tietoa käyttäjältä. Voit esimerkiksi pyytää käyttäjää valitsemaan päivän kalenteri-ikkunasta tai valitsemaan tiedoston tiedoston valintaikkunalla.

- Voit luoda ikkunan, joka kertoo käyttäjälle tietoa. Voit esimerkiksi näyttää edistymisikkunassa operaation edistymisen tilanteen tai varoitusviesti-ikkunassa varoittaa käyttäjää.

Kun käyttäjä sulkee ikkunan, Zenity tulostaa ikkunaan syötetyn tekstin vakiotulosteeseen.

Kun kirjoitat Zenity-komentoja, ole tarkkana lainausmerkkien sijoittelussa jokaisen argumentin ympärillä.

Käytä esimerkiksi:

    zenity --calendar --title="Loman suunnittelu"

Älä sen sijaan käytä:

    zenity --calendar --title=Loman suunnittelu

Mikäli et käytä lainausmerkkejä, saatat saada odottamattomia tuloksia.

### Valintanäppäimet

Valintanäppäin on näppäin, joka antaa mahdollisuuden suorittaa toiminto näppäimistöltä sen sijaan, että komento valittaisiin hiirellä valikosta tai ikkunasta. Jokainen valintanäppäin identifioidaan alleviivaamalla kirjain valikossa tai ikkunan kohdassa.

Jotkut Zenity-ikkunan tukevat valintanäppäinten käyttöä. Määrittääksesi kirjaimen valintanäppäimeksi, anna alaviiva ennen kirjainta ikkunan tekstissä. Seuraava esimerkki valaisee kuinka kirjain "V" määritetään valintanäppäimeksi:

    "_Valitse nimi".

### Päättymiskoodit

Zenity palauttaa seuraavia päättymiskoodeja:

Päättymiskoodi | Kuvaus
`0` | Käyttäjä painoi joko OK tai Sulje.
`1` | Käyttäjä painoi Peru tai käytti ikkunapainikkeita sulkemaan valintaikkunan.
`-1` | Tapahtui odottamaton virhe.
`5` | Ikkuna suljettiin aikarajan päätyttyä.

### Yleiset valitsimet

Kaikki Zenity-ikkunat tukevat seuraavia yleisiä valitsimia:

`--title`=`otsikko`

- Määrittää ikkunan otsikon.

`--window-icon`=`kuvakepolku`

- Määrittää kuvakkeen, joka näytetään ikkunan kehyksessä. Saatavilla on myös neljä valmista kuvaketta, jotka saa käyttöön seuraavilla avainsanoilla - "info" (tietoa), "warning" (varoitus), "question" (kysymys) ja "error" (virhe).

`--width`=`leveys`

- Määrittää ikkunan leveyden.

`--height`=`korkeus`

- Määrittää ikkunan korkeuden.

`--timeout`=`aikaraja`

- Määrittää aikarajan sekunteina, jonka jälkeen ikkuna suljetaan.

### Ohjevalitsimet

Zenity tarjoaa seuraavat ohjevalitsimet:

`--help`

- Näyttää lyhennetyn ohjetekstin.

`--help-all`

- Näyttää täyden ohjetekstin kaikista ikkunatyypeistä.

`--help-general`

- Näyttää ohjetekstin yleisistä ikkunavalitsimista.

`--help-calendar`

- Näyttää ohjetekstin kalenteri-ikkunan valitsimista.

`--help-entry`

- Näyttää ohjetekstin tekstisyöttöikkunan valitsimista.

`--help-error`

- Näyttää ohjetekstin virheikkunan valitsimista.

`--help-info`

- Näyttää ohjetekstin tietoikkunan valitsimista.

`--help-file-selection`

- Näyttää ohjetekstin tiedoston valintaikkunan valitsimista.

`--help-list`

- Näyttää ohjetekstin luetteloikkunan valitsimista.

`--help-notification`

- Näyttää ohjetekstin ilmoituskuvakkeiden valitsimista.

`--help-progress`

- Näyttää ohjetekstin edistymisikkunan valitsimista.

`--help-question`

- Näyttää ohjetekstin kysymysikkunan valitsimista.

`--help-warning`

- Näyttää ohjetekstin varoitusikkunan valitsimista.

`--help-text-info`

- Näyttää ohjeen tietoikkunan valitsimista.

`--help-misc`

- Näyttää ohjeen sekalaisista valitsimista.

`--help-gtk`

- Näyttää ohjeen GTK+-valitsimista.

### Sekalaisia valitsimia

Zenityllä on myös seuraavat sekalaiset valitsimet:

`--about`

- Näyttää Tietoja Zenitystä -ikkunan, joka sisältää tiedot Zenityn versiosta, tekijänoikeuksista ja kehittäjistä.

`--version`

- Näyttää Zenityn versionumeron.

### GTK+-valitsimet

Zenity tarjoaa tavanomaiset GTK+-valitsimet. Lisätietoa GTK+-valitsimista saa komennolla `zenity -?`.

### Ympäristömuuttujat

Normaalisti Zenity tunnistaa pääteikkunan, josta se on käynnistetty ja pitää itsensä tämän ikkunan päällä. Tämä käytös voidaan estää poistamalla `WINDOWID`-ympäristömuuttuja.

## Kalenteri-ikkuna

Käytä valitsinta `--calendar` luomaan kalenteri-ikkuna. Zenity palauttaa valitun päivämäärään vakiotulosteeseen. Mikäli päivämäärää ei määritetty komentorivillä, ikkuna avataan sen hetkisen päivän kohdalta.

Kalenteri-ikkuna tarjoaa seuraavat valitsimet:

`--text`=`teksti`

- Määrittää tekstin, joka näkyy kalenteri-ikkunassa.

`--day`=`päivä`

- Määrittää päivän, joka on aluksi valittuna kalenteri-ikkunassa. `päivä` tulee korvata numerolla 1—31.

`--month`=`kuukausi`

- Määrittää kuukauden, joka on aluksi valittuna kalenteri-ikkunassa. `kuukausi` tulee korvata numerolla 1—12.

`--year`=`vuosi`

- Määrittää vuoden, joka on aluksi valittuna kalenteri-ikkunassa.

`--date-format`=`muoto`

- Määrittää muotoilun, jossa kalenteri-ikkuna palauttaa päivämäärän valinnan jälkeen. Oletusmuotoilu riippuu maa-asetuksista. `muoto` täytyy koostua muotoilukoodeista, joita `strftime`-funktio hyväksyy, kuten `%A %Y-%m-%d`.

Seuraava esimerkkiskripti näyttää kuinka luodaan kalenteri-ikkuna:

            #!/bin/sh

            if zenity --calendar \
            --title="Valitse päivä" \
            --text="Napsauta päivämäärää valitsemaan päivä." \
            --day=10 --month=8 --year=2004
              then echo $?
              else echo "Päivää ei valittu"
            fi

### Esimerkki kalenteri-ikkunasta

Esimerkki Zenity-kalenteri-ikkunasta

## Tiedoston valintaikkuna

Käytä valitsinta `--file-selection` luomaan tiedoston valintaikkuna. Zenity palauttaa valitut tiedostot tai hakemistot vakiotulosteeseen. Oletusmoodi tiedoston valintaikkunalle on avaus.

Tiedoston valintaikkuna tarjoaa seuraavat valitsimet:

`--filename`=`tiedostonimi`

- Määrittää tiedoston tai hakemiston, joka on aluksi ikkunan tullessa näkyviin valittuna tiedoston valintaikkunassa.

`--multiple`

- Sallii valita kerralla useamman tiedoston tiedoston valintaikkunassa.

`--directory`

- Sallii vain hakemistojen valitsemisen tiedoston valintaikkunassa.

`--save`

- Asettaa tiedoston valintaikkunan tallennustilaan.

`--separator`=`erotin`

- Määrittää merkkijonon, jota käytetään erottamaan tiedostot palautettavassa tiedostonimien luettelossa.

Seuraava esimerkkiskripti näyttää kuinka luodaan tiedoston valintaikkuna:

            #!/bin/sh

            FILE=`zenity --file-selection --title="Valitse tiedosto"`

            case $? in
                     0)
                            echo "\"$FILE\" valittu.";;
                     1)
                            echo "Tiedostoa ei valittu.";;
                    -1)
                            echo "Tiedostoa ei valittu.";;
            esac

### Esimerkki tiedoston valintaikkunasta

Esimerkki Zenityn tiedoston valintaikkunasta

## Ilmoituskuvake

`--text`=`teksti`

- Määrittää tekstin, joka näkyy ilmoitusalueella.

Seuraava esimerkkiskripti näyttää kuinka luodaan ilmoituskuvake:

            #!/bin/sh

            zenity --notification\
              --window-icon="info" \
              --text="Järjestelmän päivitys on välttämätön!"

### Esimerkki ilmoituskuvakkeesta

Esimerkki Zenity-ilmoituskuvakkeesta

## Luetteloikkuna

Käytä valitsinta `--list` luomaan luetteloikkuna. Zenity palauttaa valittujen rivien ensimmäisten sarakkeiden tiedot vakiotulosteeseen.

Ikkunan sisältö tulee määrittää sarake sarakkeelta ja rivi riviltä. Tiedot voidaan syöttää ikkunaan vakiosyötteen kautta. Jokainen tietue pitää erottaa rivinvaihtomerkillä.

Mikäli käytössä on valitsin `--checklist` tai `--radiolist`, jokaisen rivin tulee alkaa joko 'TRUE' (tosi) tai 'FALSE' (epätosi).

Luetteloikkuna tarjoaa seuraavat valitsimet:

`--column`=`sarake`

- Määrittää luetteloikkunassa näkyvien sarakkeiden otsakkeet. Määritä valitsin `--column` jokaiselle sarakkeelle, jonka haluat näkyvän ikkunassa.

`--checklist`

- Määrittää, että ensimmäinen sarake luetteloikkunassa sisältää valintaruutuja.

`--radiolist`

- Määrittää, että ensimmäinen sarake luetteloikkunassa sisältää radiovalitsimia.

`--editable`

- Sallii näytettävien tietuiden muokaamisen.

`--separator`=`erotin`

- Määrittää mitä merkkijonoa käytetään kun luetteloikkuna palauttaa valitut tietueet.

`--print-column`=`sarake`

- Määrittää mitkä sarakkeet tulostetaan valinnan jälkeen. Oletussarake on "1". "ALL" (kaikki) tarkoittaa, että kaikki luettelon sarakkeet tulostetaan.

Seuraava esimerkkiskripti näyttää kuinka luodaan luetteloikkuna:

            #!/bin/sh

            zenity --list \
              --title="Valitse viat joita haluat katsoa" \
              --column="Vikanumero" --column="Vakavuus" --column="Kuvaus" \
                992383 normaali "GtkTreeView kaatuu monivalinnoissa" \
                293823 korkea "GNOME-sanakirja ei osaa käyttää välipalvelinta" \
                393823 kriittinen "Valikkojen muokaus ei toimi GNOME 2.0:ssa"

### Esimerkki luetteloikkunasta

Esimerkki Zenity-luetteloikkunasta

## Viesti-ikkunat

Zenity voi luoda neljän tyyppisia viesti-ikkunoita:

- Virhe

- Tiedoksi

- Kysymys

- Varoitus

Kaikille ikkunatyypeille valitsin `--text` määrittää ikkunassa näytettävän tekstin.

### Virheikkuna

Käytä valitsinta `--error` luomaan virheikkuna.

Seuraava esimerkkiskripti näyttää kuinka luodaan virheikkuna:

              #!/bin/bash

              zenity --error \
              --text="Tiedostoa /var/log/syslog ei löytynyt."

#### Esimerkki virheikkunasta

Esimerkki Zenity-virheikkuna

### Tietoikkuna

Käytä valitsinta `--info` luomaan tietoikkuna.

Seuraava esimerkkiskripti näyttää kuinka luodaan tietoikkuna:

              #!/bin/bash

              zenity --info \
              --text="Yhdistäminen valmis. Päivitetty 3/10 tiedostoa."

#### Esimerkki tietoikkunasta

Esimerkki Zenity-tietoikkunasta

### Kysymysikkuna

Käytä valitsinta `--question` luomaan kysymysikkuna.

Seuraava esimerkki näyttää kuinka luodaan kysymysikkuna:

              #!/bin/bash

              zenity --question \
              --text="Haluatko varmasti jatkaa?"

#### Esimerkki kysymysikkunasta

Esimerkki Zenity-kysymysikkunasta

### Varoitusikkuna

Käytä valitsinta `--warning` luomaan varoitusikkuna.

Seuraava esimerkki näyttää kuinka luodaan varoitusikkuna:

              #!/bin/bash

              zenity --warning \
              --text="Irrota virtajohto sähköiskujen välttämiseksi."

#### Esimerkki varoitusikkunasta

Esimerkki Zenity-varoitusikkunasta

## Edistymisikkuna

Käytä valitsinta `--progress` luomaan edistymisikkuna.

Zenity lukee datan vakiosyötteestä rivi kerrallaan. Mikäli rivi alkaa #-merkillä, teksti päivitetään rivin tekstillä. Mikäli rivi sisältää vain numeron, edistymisprosentiksi päivitetään annettu numero.

Edistymisikkuna tarjoaa seuraavat valitsimet:

`--text`=`teksti`

- Määrittää tekstin, joka näytetään edistymisikkunassa.

`--percentage`=`prosentit`

- Määrittää prosentuaalisen osuuden alussa, joka asetetaan edistymisikkunaan.

`--auto-close`

- Edistymisikkuna suljetaan automaattisesti kun 100 % saavutetaan.

`--pulsate`

- Määrittää, että edistymisikkuna sykkii kunnes EOF-merkki (tiedoston loppumerkki) luetaan vakiosyötteestä.

Seuraava esimerkkiskripti näyttää kuinka luodaan edistymisikkuna:

            #!/bin/sh
            (
            echo "10" ; sleep 1
            echo "# Päivitetään postilokeja" ; sleep 1
            echo "20" ; sleep 1
            echo "# Nollataan cron-töitä" ; sleep 1
            echo "50" ; sleep 1
            echo "Tämä rivi vain ohitetaan" ; sleep 1
            echo "75" ; sleep 1
            echo "# Uudelleenkäynnistetään järjestelmä" ; sleep 1
            echo "100" ; sleep 1
            ) |
            zenity --progress \
              --title="Päivitetään järjestelmälokeja" \
              --text="Tutkitaan postilokeja..." \
              --percentage=0

            if [ "$?" = -1 ] ; then
                    zenity --error \
                      --text="Päivitys keskeytetty."
            fi

### Esimerkki edistymisikkunasta

Esimerkki Zenity-edistymisikkunasta

## Tekstinsyöttöikkuna

Use the `--entry` option to create a text entry dialog. Zenity returns the contents of the text entry to standard output.

Tekstinsyöttöikkuna tarjoaa seuraavat valitsimet:

`--text`=`teksti`

- Määrittää tekstin, joka näkyy tekstinsyöttöikkunassa.

`--entry-text`=`teksti`

- Määrittää tekstin, joka näytetään syöttökentässä teksinsyöttöikkunassa.

`--hide-text`

- Piilottaa tekstin syöttökentässä tekstinsyöttöikkunassa.

Seuraava esimerkkiskripti näyttää kuinka luodaan tekstinsyöttöikkuna:

            #!/bin/sh

            if zenity --entry \
            --title="Lisää syöte" \
            --text="Syötä _salasanasi:" \
            --entry-text "salasana" \
            --hide-text
              then echo $?
              else echo "Salasanaa ei syötetty"
            fi

### Esimerkki tekstinsyöttöikkunasta

Esimerkki Zenity-tekstinsyöttöikkunasta

## Tekstitietoikkuna

Käytä valitsinta `--text-info` luomaan tekstitietoikkuna.

Tekstitietoikkuna tarjoaa seuraavat valitsimet:

`--filename`=`tiedostonimi`

- Määrittää tiedoston, joka ladataan tekstitietoikkunaan.

`--editable`

- Sallii näytettävän tekstin muokkaamisen. Muokattu teksti palautetaan vakiotulosteeseen kun ikkuna suljetaan.

Seuraava esimerkkiskripti näyttää kuinka luodaan tekstitietoikkuna:

            #!/bin/sh

            FILE=`zenity --file-selection \
              --title="Valitse tiedosto"`

            case $? in
                     0)
                            zenity --text-info \
                              --title=$FILE \
                              --filename=$FILE \
                              --editable 2>/tmp/tmp.txt;;
                     1)
                            echo "Tiedostoa ei valittu.";;
                    -1)
                            echo "Tiedostoa ei valittu.";;
            esac

### Esimerkki tekstilaatikkoikkunasta

Esimerkki Zenity-tekstilaatikkoikkunasta