# Довідка з програми Zenity

Довідка з програми Zenity 2.0

2003 2004 Sun Microsystems, Inc.
2005 Максим Дзюманенко (mvd@mylinux.com.ua)
Sun Microsystems, Inc.

Дозволяється копіювати, розповсюджувати та/або змінювати цей документ на умовах ліцензії GNU Free Documentation License (GFDL), версії 1.1 або будь-якої старшої версії, що опублікована Free Software Foundation без інваріантних розділів, тексту титульної сторінки, та тексту фінальної сторінки. Копію GFDL можна знайти за адресою або у файлі COPYING-DOCS, що постачається з цією довідкою.

Ця довідка є частиною збірки документації з GNOME, що постачається на умовах ліцензіїGFDL. Якщо ви бажаєте розповсюджувати цю довідку окремо від збірки, можете це зробити додавши до довідки копію ліцензії, як описано у пункті 66 ліцензії.

Більшість назв, що використовуються компаніями для розповсюдження їх продуктів та послуг є торговими марками. Якщо такі назви зустрічаються у документації з GNOME та учасникам проекту документування GNOME відомо, що вони є торговими марками, тоді ці назви пишуться великими літерами або починаються з великої літери.

ДОКУМЕНТ ТА ЗМІНЕНІ ВЕРСІЇ ЦЬОГО ДОКУМЕНТУ ПОСТАЧАЮТЬСЯ НА УМОВАХ ВІЛЬНОЇ ЛІЦЕНЗІЇ ДЛЯ ДОКУМЕНТАЦІЇ GNU З ПОДАЛЬШИМ РОЗУМІННЯМ ЩО:

1. ДОКУМЕНТ НАДАЄТЬСЯ "ЯК Є", БЕЗ БУДЬ-ЯКИХ ГАРАНТІЇ, ЯВНИХ ЧИ НЕЯВНИХ, ВКЛЮЧАЮЧИ, АЛЕ НЕ ОБМЕЖУЮЧИСЬ, ГАРАНТІЙ ЩО ЦЕЙ ДОКУМЕНТ ЧИ ЗМІНЕНА ВЕРСІЯ ДОКУМЕНТА ВІЛЬНІ ВІД ДЕФЕКТІВ, ПРИДАТНІ ДО ПРОДАЖУ, ВІДПОВІДАЮТЬ ПЕВНІЙ МЕТІ АБО НЕ ПОРУШУЮТЬ ЧИЇСЬ ПРАВА. ВЕСЬ РИЗИК ЗА ЯКІСТЬ, ТОЧНІСТЬ, ТА ЧИННІСТЬ ЦЬОГО ДОКУМЕНТУ АБО ЙОГО ЗМІНЕНИХ ВЕРСІЙ ЛЕЖИТЬ НА ВАС. ЯКЩО БУДЬ-ЯКИЙ ДОКУМЕНТ ЧИ ЗМІНЕНА ВЕРСІЯ БУДУТЬ ВИЗНАНІ ДЕФЕКТНИМИ У БУДЬ-ЯКОМУ ВІДНОШЕННІ, ВИ (НЕ ПОЧАТКОВИЙ УКЛАДАЧ, АВТОР АБО БУДЬ-ЯКИЙ СПІВАВТОР) БЕРЕТЕ НА СЕБЕ ВИТРАТИ ЗА БУДЬ-ЯКЕ НЕОБХІДНЕ ОБСЛУГОВУВАННЯ, РЕМОНТ ЧИ ВИПРАВЛЕННЯ. ЦЯ ВІДМОВА ВІД ГАРАНТІЙ СКЛАДАЄ ВАЖЛИВУ ЧАСТИНУ ЦІЄЇ ЛІЦЕНЗІЇ. НЕ ДОПУСКАЄТЬСЯ ВИКОРИСТАННЯ ЦЬОГО ДОКУМЕНТУ АБО ЙОГО ЗМІНЕНОЇ ВЕРСІЇ БЕЗ ПРИЙНЯТТЯ ЦІЄЇ ВІДМОВИ; ТА

2. НІ ЗА ЯКИХ ОБСТАВИН ТА ЗА БУДЬ-ЯКОГО ЗАКОНОДАВСТВА, ЧИ ТО ГРОМАДЯНСЬКОЇ ВІДПОВІДАЛЬНОСТІ (ВКЛЮЧАЮЧИ ХАЛАТНІСТЬ), ДОГОВОРУ, ЧИ ЧОГОСЬ ІНШОГО, АВТОР, ПОЧАТКОВИЙ УКЛАДАЧ, БУДЬ-ЯКИЙ СПІВАВТОР, АБО ДИСТРИБ'ЮТОР ДОКУМЕНТУ ЧИ ЗМІНЕНОЇ ВЕРСІЇ ДОКУМЕНТУ, АБО БУДЬ-ЯКИЙ ПОСТАЧАЛЬНИК БУДЬ-ЯКОЇ З ЦИХ СТОРІН, НЕ НЕСЕ ВІДПОВІДАЛЬНІСТЬ ПЕРЕД БУДЬ-ЯКОЮ ОСОБОЮ ЗА БУДЬ-ЯКІ ПРЯМІ, НЕПРЯМІ, ОСОБЛИВІ, ВИПАДКОВІ, АБО ІСТОТНІ ЗБИТКИ БУДЬ-ЯКОГО ХАРАКТЕРУ ВКЛЮЧАЮЧИ, АЛЕ НЕ ОБМЕЖУЮЧИСЬ, ЗБИТКАМИ ВІД ВТРАТИ ПРЕСТИЖУ, ЗУПИНКИ РОБОТИ, ЗБОЇВ АБО НЕСПРАВНОСТЕЙ КОМП'ЮТЕРА, АБО БУДЬ-ЯКІ ІНШІ ЗБИТКИ АБО ВТРАТИ ЩО ВИНИКЛИ БЕЗВІДНОСНО АБО ВНАСЛІДОК ВИКОРИСТАННЯ ЦЬОГО ДОКУМЕНТУ ТА ЗМІНЕНИХ ВЕРСІЙ ЦЬОГО ДОКУМЕНТУ, НАВІТЬ ЯКЩО ЦІ СТОРОНИ, МОЖЛИВО, БУЛИ ПРОІНФОРМОВАНІ ПРО МОЖЛИВІСТЬ ТАКИХ ЗБИТКІВ.

Sun Команда документування Java Desktop System
Sun Microsystems, Inc.
Glynn Foster
Проект документування GNOME
Nicholas Curran
Проект документування GNOME
Довідка з програми Zenity 2.0
Серпень 2004

Sun команда документування Java Desktop System

Sun Microsystems, Inc.

Довідка з програми Zenity версії 1.0
Січень 2003

Glynn Foster

Проект документування GNOME

У довідці описується Zenity версії 2.6.0

Зворотній зв'язок

Для зворотного зв'язка слідуйте директивам на Сторінці зворотного зв'язку.

Zenity - переписана версія gdialog, перенесеної на GNOME програми dialog, яка дозволяє відображати діалогові вікна з командного рядка та сценаріїв оболонки.

## Вступ

Zenity дозволяє створювати наступні типи простих діалогів:

- Календар

- Вибір файлів

- Список

- Значок області сповіщення

- Повідомлення

  - Помилка

  - Інформація

  - Запитання

  - Попередження

- Індикатор поступу

- Поле вводу тексту

- Текстова інформація

## Використання

Коли ви пишете сценарій, можете використовувати Zenity для створення простих діалогових вікон графічної взаємодії з користувачем, а саме:

- Можна створити діалогове вікно для отримання інформації від користувача. Наприклад, можна спитати у користувача дату у діалоговому вікні календаря, або вибрати файл у вікні вибору файлів.

- Можна створити діалогове вікно для виводу інформації користувачу. Наприклад, можна створити діалогове вікно з індикатором поступу поточної операції, або вивести попереджувальне повідомлення.

Коли користувач закриває діалог, Zenity виводить створений діалогом текст у стандартний потік виводу.

Коли ви пишете команди Zenity, перевірте, що ви ставите лапки навколо кожного аргументу.

Наприклад, використовуйте:

    zenity --calendar --title="Планування вихідних"

А не:

    zenity --calendar --title=Планування вихідних

Якщо ви пропустите липки можете отримати несподіваний результат.

### Комбінації клавіш

Клавіші доступу - клавіші, які дозволяють виконати дію з клавіатури, а не через вибір команд мишею. Кожен символ, що утворює комбінацію виділяється підкресленням у меню чи діалозі.

Деякі діалоги Zenity підтримують комбінації клавіш. Щоб вказати, що символ використовується для комбінації клавіш, вставте перед ним символ підкреслення. У наступному прикладі показано як це зробити для літери 'В':

    "_Виберіть ім'я".

### Коди завершення

Zenity повертає наступні коди завершення:

Код завершення | Опис
--- | ---
`0` | Користувач натиснув Гаразд або Закрити.
`1` | Користувач або натиснув Скасувати, або закрив вікно використовуючи кнопку вікна.
`-1` | Несподівана помилка.
`5` | Діалог закрито після тайм-ауту.

### Загальні параметри

Усі діалоги Zenity підтримують наступні загальні параметри:

`--title`=заголовок

  Вказує заголовок діалогового вікна.

`--window-icon`=шлях_значка

  Вказує значок, який відображається у рамці діалогового вікна. Є 4 вбудовані значки, які вказуються ключовими словами 'info', 'warning', 'question' та 'error'.

`--width`=ширина

  Вказує ширину вікна.

`--height`=висота

  Вказує висоту вікна.

`--timeout`=тайм-аут

  Вказує таймаут у секундах, після якого діалогове вікно буде закрите.

### Параметри довідки

Zenityмає наступні ключі довідки:

`--help`

  Відображає коротку довідку.

`--help-all`

  Відображає повну довідку з усіх діалогів.

`--help-general`

  Відображає довідку із загальних параметрів діалогів.

`--help-calendar`

  Відображає довідку про параметри діалогу календаря.

`--help-entry`

  Відображає довідку про параметри діалогу вводу тексту.

`--help-error`

  Відображає довідку про параметри діалогу сповіщення про помилку.

`--help-info`

  Відображає довідку про параметри діалогу з інформацією.

`--help-file-selection`

  Відображає довідку про параметри діалогу вибору файлів.

`--help-list`

  Відображає довідку про параметри діалогу списку.

`--help-notification`

  Відображає довідку про параметри значка в області сповіщення.

`--help-progress`

  Відображає довідку про параметри діалогу поступу.

`--help-question`

  Відображає довідку про параметри діалогу запитання.

`--help-warning`

  Відображає довідку про параметри діалогу попередження.

`--help-text-info`

  Відображає довідку про параметри діалогу інформаційного тексту.

`--help-misc`

  Відображає довідку про різні параметри.

`--help-gtk`

  Відображає довідку про параметри GTK+.

### Інші параметри

Zenity також має наступні інші параметри:

`--about`

  Відображається діалогове вікно Про Zenity, яке містить інформацію про версію Zenity, авторські права та інформацію про розробників.

`--version`

  Відображає номер версії програми Zenity.

### Параметри GTK+

Zenity підтримує стандартні параметри GTK+. Докладніше про параметри GTK+, можна дізнатись виконавши `zenity -?`.

### Змінні оточення

Звичайно, Zenity визначає вікно терміналу з якого її запущено та тримає своє вікно над вікном терміналу. Цю поведінку можна вимкнути знявши змінну оточення `WINDOWID`.

## Діалог календаря

Для створення діалогу календаря використовується параметр `--calendar`. Zenity повертає вибрану дату у стандартний потік. Якщо дату не було вказано у командному рядку, використовується поточна дата.

Діалог календаря підтримує наступні параметри:

`--text`=текст

  Вказує текст, який відображається у діалозі календаря.

`--day`=день

  Вказує день, який виділяється у діалозі календаря. день має бути числом від 1 до 31.

`--month`=місяць

  Вказує місяць, який виділяється у діалозі календаря. місяць має бути числом від 1 до 12.

`--year`=year

  Вказує рік, який виділяється у діалозі календаря.

`--date-format`=формат

  Вказує формат дати, яка виділяється у діалозі календаря. Типовий формат залежить від локалі. формат має бути допуститим виразом для функції `strftime`, наприклад `%A %d/%m/%y`.

У наступному прикладі сценарію показано створення діалогу календаря:

            #!/bin/sh

            if zenity --calendar \
            --title="Виберіть дату" \
            --text="Клацніть на даті для її вибору." \
            --day=10 --month=8 --year=2004
              then echo $?
              else echo "Дату не вибрано"
            fi

Приклад діалогу календаря

Zenity приклад діалогу календаря

## Діалог вибору файлів

Для створення діалогу вибору файлів використовується параметр `--file-selection`. Zenity повертає виділені файли чи каталоги у стандартному потоці виводу. Типовим режимом діалогу вибору файлів є відкривання.

Ділог вибору файлів підтримує наступні параметри:

`--filename`=назва-файлу

  Вказує файл ч и каталог, який виділяється при першому показі діалогу вибору файлів.

`--multiple`

  дозволяє вибір кількох назв файлів у діалозі вибору файлів.

`--directory`

  Дозволяє лише вибір каталогів у діалозі вибору файлів.

`--save`

  Встановлює режим збереження у діалозі вибору файлів.

`--separator`=separator

  Вказує рядок, який використовується для розділення списку назв файлів, що повертаються командою.

У наступному прикладі показано створення діалогу вибору файлів:

            #!/bin/sh

            FILE=`zenity --file-selection --title="Виберіть файл"`

            case $? in
                     0)
                            echo "Вибрано \"$FILE\".";;
                     1)
                            echo "Файл не вибраний.";;
                    -1)
                            echo "Файл не вибраний.";;
            esac

Приклад діалогу вибору файлів

Zenity приклад діалогу вибору файлу

## Значок області сповіщення

`--text`=текст

  Вказує текст, який відображається у області сповіщення.

У наступному прикладі показано створення значка області сповіщення:

            #!/bin/sh

            zenity --notification\
              --window-icon="info" \
              --text="Є необхідні оновлення для системи!"

Приклад значка області сповіщення

Zenity приклад значка області сповіщення

## Діалог списку

Для створення діалогу списку використовується параметр `--list`. Zenity повертає елементи виділених рядків у першому стовпчику тексту в стандартному потоці виводу.

Дані для діалогу мають вказуватись стовпчик за стовпчиком. Дані можуть передаватись діалогу через стандартний потік вводу. Кожен елемент має відокремлюватись символом нового рядка.

Якщо ви використовуєте параметри `--checklist` чи `--radiolist`, кожен рядок має починатись з 'TRUE' чи 'FALSE'.

Діалог списку підтримує наступні параметри:

`--column`=column

  Вказує заголовки стовпчиків, які відображаються у діалогу списку. Треба вказати параметр `--column` для кожного рядка, який ви хочете побачити у діалозі.

`--checklist`

  Вказує, що перший стовпчик списку містить поля для відмітки.

`--radiolist`

  Вказує, що перший стовпчик списку містить поля радіо-перемикачі.

`--editable`

  Дозволяє редагувати відображувані елементи.

`--separator`=separator

  Вказує який рядок використовується, коли діалог списку повертає виділені елементи.

`--print-column`=стовпчик

  Вказує стовпчик, виділені елементи з якого будуть виводитись. Типове значення '1'. Щоб виводити елементи з усіх стовпчиків, можна вказати 'ALL'.

У наступному прикладі показується сценарій створення діалогу списку:

            #!/bin/sh

            zenity --list \
              --title="Виберіть помилки, які хочете переглянути" \
              --column="номер помилки" --column="Важливість" --column="Опис" \
                992383 Normal "GtkTreeView crashes on multiple selections" \
                293823 High "GNOME Dictionary does not handle proxy" \
                393823 Critical "Menu editing does not work in GNOME 2.0"

Приклад діалогу списку

Zenity приклад діалогу списку

## Діалоги повідомлення

Zenity може створювати чотири типи діалогів повідомлення:

- Помилка

- Інформація

- Запитання

- Попередження

Для кожного типу параметр `--text` вказує текст. який буде відображатись у діалозі.

### Діалог помилки

Для створення діалогу помилки використовуйте `--error`.

У наступному сценарії показується створення діалогу помилки:

              #!/bin/bash

              zenity --error \
              --text="Не вдається знайти /var/log/syslog."

Приклад діалогу помилки

Zenity приклад діалогу помилки

### Діалог інформації

Для створення діалогу інформації використовуйте `--info`.

У наступному сценарії показується створення діалогу інформації:

              #!/bin/bash

              zenity --info \
              --text="Об'єднання завершено. Оновлено 3 з 10 файлів."

Приклад діалогу інформації

Zenity приклад діалогу інформації

### Діалог запитання

Для створення діалогу запитання використовуйте `--info`.

У наступному сценарії показується створення діалогу запитання:

              #!/bin/bash

              zenity --question \
              --text="Бажаєте продовжити?"

Приклад діалогу запитання

Zenity приклад діалогу запитання

### Діалог попередження

Для створення діалогу попередження використовуйте `--info`.

У наступному сценарії показується створення діалогу попередження:

              #!/bin/bash

              zenity --warning \
              --text="Вимкніть кабель живлення щоб запобігти ураженню електричним струмом."

Приклад діалогу попередження

Zenity приклад діалогу попередження

## Діалог поступу

Для створення діалогу поступу використовується наступний параметр `--progress`.

Zenity читає дані зі стандартного потоку вводу рядок за рядком. Якщо рядок починається з #, текст оновлюється на текст цього рядка. Якщо рядок містить лише число, оновлюється відсоток поступу.

Діалог поступу підтримує наступні параметри:

`--text`=текст

  Вказує текст, який відображається у діалозі поступу.

`--percentage`=відсоток

  Вказує початковий відсоток, який виставляється у діалозі поступу.

`--auto-close`

  Закриває діалог поступу при досяганні 100%

`--pulsate`

  Вказує, що індикатор поступу пульсує доки зі стандартного вводу не буде прочитано символ EOF.

У наступному сценарії показується створення діалогу поступу:

            #!/bin/sh
            (
            echo "10" ; sleep 1
            echo "# Оновлення поштових журналів" ; sleep 1
            echo "20" ; sleep 1
            echo "# Скидання завдань cron" ; sleep 1
            echo "50" ; sleep 1
            echo "Цей рядок просто ігнорується" ; sleep 1
            echo "75" ; sleep 1
            echo "# Перезавантаження системи" ; sleep 1
            echo "100" ; sleep 1
            ) |
            zenity --progress \
              --title="Оновлення системних журналів" \
              --text="Сканування поштових журналів..." \
              --percentage=0

            if [ "$?" = -1 ] ; then
                    zenity --error \
                      --text="Оновлення скасовано."
            fi

Приклад діалогу поступу

Zenity приклад діалогу поступу

## Діалог вводу тексту

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

Діалог вводу тексту підтримує наступні параметри:

`--text`=текст

  Вказує текст, який відображається у діалозі вводу тексту.

`--entry-text`=text

  Вказує текст, який відображається у полі вводу тексту в діалозі вводу тексту.

`--hide-text`

  Текст у полі вводу тексту ховається.

У наступному сценарії показується створення діалогу вводу тексту:

            #!/bin/sh

            if zenity --entry \
            --title="Додавання запису" \
            --text="Введіть _пароль:" \
            --entry-text "password" \
            --hide-text
              then echo $?
              else echo "Пароль не введено"
            fi

Приклад діалогу вводу тексту

Zenity приклад діалогу вводу тексту

## Текстовий інформаційний діалог

Для створення текстового інформаційного діалогу використовується параметр `--text-info`.

Текстовий інформаційний діалог підтримує наступні параметри:

`--filename`=назва-файлу

  Вказує файл, який завантажується у текстовий інформаційний діалог.

`--editable`

  Дозволяє редагувати текст, що виводиться. Редагований текст повертається через стандартний потік виводу при закриванні діалогу.

У наступному сценарії показується створення текстового інформаційного діалогу:

            #!/bin/sh

            FILE=`zenity --file-selection \
              --title="Виберіть файл"`

            case $? in
                     0)
                            zenity --text-info \
                              --title=$FILE \
                              --filename=$FILE \
                              --editable 2>/tmp/tmp.txt;;
                     1)
                            echo "Файл не вибраний.";;
                    -1)
                            echo "Файл не вибраний.";;
            esac

Приклад текстового інформаційного діалогу

Zenity приклад діалогу інформації
команда zenity
створення діалогів