# Ръководство за Zenity

Ръководство за Zenity, версия 2.0
2003
2004
Sun Microsystems, Inc.
2005
Ростислав "zbrox" Райков (zbrox@i-space.org)
Sun Microsystems, Inc.

Предоставя се разрешение за копиране, разпространение и/или промяна на този документ, съгласно условията на „Лиценза за свободна документация на GNU“, версия 1.1 или всяка следваща версия, издадена от Фондация „Свободен софтуер“; без „Непроменливи раздели“, „Текстове на предната корица“, както и „Текстове на задната корица“. Копие на лиценза може да бъде намерено тук или във файла COPYING-DOCS, разпространяван с това ръководство.

Това ръководство е част от колекция ръководства за GNOME, разпространявани под GFDL. Ако искате да разпространявате това ръководство отделно, можете да го направите, като включите копие на лиценза към ръководството, както е описано в раздел 6 от лиценза.

Много от имената, използвани от компании, за да отличават собствените си продукти и услуги, са регистрирани търговски марки. Когато такива имена присъстват в която и да е документация за GNOME и членовете на проекта за документация на GNOME са осведомени за съответните търговски марки, тогава имената са с главни букви или начални главни букви.

ДОКУМЕНТЪТ И ПРОМЕНЕНИТЕ МУ ВЕРСИИ СЕ ПРЕДОСТАВЯТ ПОД УСЛОВИЯТА НА ЛИЦЕНЗА ЗА СВОБОДНА ДОКУМЕНТАЦИЯ НА GNU, С ДОПЪЛНИТЕЛНОТО ПОЯСНЕНИЕ, ЧЕ:

1. ДОКУМЕНТЪТ СЕ ПРЕДОСТАВЯ НА БАЗА „КАКТО Е“, БЕЗ КАКВАТО И ДА Е ГАРАНЦИЯ, ПРЯКА ИЛИ КОСВЕНА, ВКЛЮЧИТЕЛНО БЕЗ ОГРАНИЧЕНИЯ И ГАРАНЦИИ, ЧЕ ДОКУМЕНТЪТ ИЛИ ПРОМЕНЕНАТА МУ ВЕРСИЯ СА БЕЗ ДЕФЕКТИ, ГОДНИ ЗА КОНКРЕТНА УПОТРЕБА ИЛИ НЕНАРУШАВАЩИ. ЦЕЛИЯТ РИСК ОТНОСНО КАЧЕСТВОТО, ТОЧНОСТТА И ХАРАКТЕРИСТИКИТЕ НА ДОКУМЕНТА ИЛИ ПРОМЕНЕНАТА МУ ВЕРСИЯ Е ЗА ВАША СМЕТКА. АКО НЯКОЙ ДОКУМЕНТ ИЛИ ПРОМЕНЕНАТА МУ ВЕРСИЯ СЕ ОКАЖЕ ДЕФЕКТЕН В КАКВОТО И ДА Е ОТНОШЕНИЕ, ВИЕ (НЕ ПЪРВОНАЧАЛНИЯ АВТОР ИЛИ КОЙТО И ДА Е ДОПРИНЕСЪЛ ЗА РАЗРАБОТКАТА) ПОЕМАТЕ РАЗХОДИТЕ ЗА ВСЯКАКВО НЕОБХОДИМО ОБСЛУЖВАНЕ, ПОПРАВКА ИЛИ КОРЕКЦИИ. ТОВА ОТКАЗВАНЕ ОТ ГАРАНЦИЯТА ПРЕДСТАВЛЯВА СЪЩЕСТВЕНА ЧАСТ ОТ ТОЗИ ЛИЦЕНЗ. НЕ Е РАЗРЕШЕНА УПОТРЕБАТА НА КОЙТО И ДА Е ДОКУМЕНТ ИЛИ ПРОМЕНЕНАТА ВЕРСИЯ НА ДОКУМЕНТА, ОСВЕН ПРИ СПАЗВАНЕ НА ТОЗИ ОТКАЗ ОТ ГАРАНЦИЯ; И

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

Sun
Java Desktop System Documentation Team
Sun Microsystems, Inc.
Glynn
Foster
Проект за документация на GNOME
Nicholas
Curran
Проект за документация на GNOME
Ръководство за Zenity, версия 2.0
August 2004

Sun Java Desktop System Documentation Team

Sun Microsystems, Inc.

Ръководство за Zenity, версия 1.0
Януари 2003

Glynn Foster

Проект за документация на GNOME

Това ръководство е за версия 2.6 на програмата Zenity.

## Обратна връзка

За обратна връзка, следвайте инструкциите на Страницата за обратна връзка.

Zenity е наследникът на gdialog - вариантът на dialog за GNOME. Програмата позволява показването на диалогови прозорци, с които да се осъществява обмен на информация със скриптове за командния ред.

## Въведение

Zenity Ви позволява да създавате следните видове прости диалогови прозорци:

- Календар

- Избор на файл

- Списък

- Икона за уведомяване

- Съобщение

  - Грешка

  - Информация

  - Въпрос

  - Предупреждение

- Прогрес

- Текстово поле

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

## Употреба

Когато пишете скриптове, може да използвате Zenity, за да създавате прости диалогови прозорци, които да интерактират графично с потребителя, както следва:

- Може да създавате прозорци, които да изискват информация от потребителя. Примерно, може да питате потребителя да изберете дата от календарен прозорец или да избере файл от прозорец за избор на файл.

- Може да създавате прозорци, които да предоставят информация на потребителя. Примерно, може да използвате прозорец за прогрес, за да покажете текущото състояние на операция или да използвате предупредително съобщение, за да сигнализирате за нещо на потребителя.

Когато потребителят затвори прозореца, Zenity показва текстът произведен от прозореца към стандартната грешка.

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

Например, използвайте:

    zenity --calendar --title="Планиране на почивка"

Не използвайте:

    zenity --calendar --title=Планиране на почивка

.

Ако не използвате кавички, може да получите неочаквани резулати.

### Бързи клавиши

Бързият клавиш е клавиш, който Ви позволява да извършвате действие от клавиатурата без да използвате мишката, за да изберете командата от менюто или прозореца. Всеки бърз клавиш се идентифицира от подчертана буква в менюто или прозореца.

Някои прозорци на Zenity поддържат използването на бързи клавиши. За да определите символа, който да се използва като бърз клавиш поставете долна черна пред символа в текста на прозореца. Следният пример показва как да определите буквата "И", като бърз клавиш:

    "_Изберете име".

### Изходни кодове

Zenity връща следните изходни кодове:

Изходен код | Описание
--- | ---
`0` | Потребителят е натиснал или Добре или Затваряне.
`1` | Потребителят е натиснал Отказ или е използвал функциите на прозореца, за да го затвори.
`-1` | Възникнала е неочаквана грешка.

### Общи настройки

Всички Zenity прозорци поддържат следните общи настройки:

`--title`=заглавие

  Определя заглавието на прозореца.

`--window-icon`=път_до_иконата

  Определя иконата, която ще се показва в рамката на прозореца. Има 4 генерални икони, които са налични чрез доставяне на следните ключови думи - 'info', warning', 'question' и 'error'.

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

  Определя ширината на прозореца.

`--height`=височина

  Определя височината на прозореца.

### Настройки на помощта

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 -?`

## Прозорец с календар

Използвайте настройката `--calendar`, за да създадете календарен прозорец. Zenity връща към стандартна грешка въведената информация. Ако не се определи дата от командния ред, прозорецът ще използва текущата дата.

Прозорецът с календар поддържа следните настройки:

`--text`=текст

  Определя текста, който се показва в прозореца с календар.

`--day`=ден

  Определя деня, който е избран в прозореца с календар. Денят може да е число между 1 и 31, включително.

`--month`=месец

  Определя месеца, който е избран в прозореца с календар. Месецът трябва да е число между 1 и 12, включително.

`--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 calendar dialog example

## Прозорец за избор на файлове

Използвайте настройката `--file-selection`, за да създадете прозорец за избор на файлове. Zenity връща избраните файлове или папки към стандартна грешка. Стандартния режим на прозореца е отваряне.

Прозорецът за избор на файлове поддържа следните опции:

`--filename`=файлово име

  Определя файла или папката, която е избрана в прозореца за избор на файлове, когато е показан за пръв път.

`--multiple`

  Позволява избирането на множество файлове в прозореца за избор на файлове.

`--directory`

  Позволява избирането само на папки в прозореца за избор на файлове.

`--save`

  Поставяне на прозореца за избор на файлове в режим на запазване.

`--separator`=разделител

  Определя низа използван за разделяне на върнатия списък от файлови имена.

Следният примерен скрипт показва как да създадете прозорец за избро на файлове:

            #!/bin/sh

            FILE=`zenity --file-selection --title="Изберете файл"`

            case $? in
                     0)
                            echo "Избран е файлът \"$FILE\".";;
                     1)
                            echo "Няма избран файл.";;
                    -1)
                            echo "Няма избран файл.";;
            esac

### Примерен прозорец за избор на файлове

Zenity file selection dialog example

## Икона за уведомяване

`--text`=текст

  Определя текста, който се показва в района за уведомяване.

Следният примерен скрипт показва как да създадете икона за уведомяване:

            #!/bin/sh

            zenity --notification\
              --window-icon="info" \
              --text="Има налични обновления по системата!"

### Примерна икона за уведомяване

Zenity notification icon example

## Списъчен прозорец

Използвайте настройката `--list`, за да създадете прозорец със списък. Zenity връща записите в първата колона текст на избраните редове към стандартна грешка.

Данните за прозореца трябва да бъдат определени колона по колона, ред по ред. Данните могат да бъдат предоставени на прозореца през стандартния вход. Всеки запис трябва да бъде разделен от символ за нов ред.

Ако използвате настройките `--checklist` или `--radiolist`, всеки ред трябва да започва или с 'TRUE', или с 'FALSE'.

Прозорецът със списък поддържа следните настройки:

`--column`=колона

  Определя заглавната част на колоните, които се показват в списъка. Трябва да определите настройката `--column` за всяка колона, която искате да покажете в прозореца.

`--checklist`

  Определя, че първата колона в първия прозорец със списък съдържа полета за отметки.

`--radiolist`

  Определя това, че първата колона в прозореца със списък съдържа радио бутони.

`--editable`

  Позволява показаните елементи да бъдат редактирани.

`--separator`=разделител

  Определя кой низ е използван, когато прозореца със списък връща избраните записи.

`--print-column`=колона

  Определя кои колони да бъдат изведени след избора. Стандартната колона е "1". "ALL" може да се използва, за да се изведат всички колони в списъка.

Следният пример показва как да създадете списъчен прозорец:

            #!/bin/sh

            zenity --list \
              --title="Изберете грешките, които искате да прегледате" \
              --column="Номер на грешка" --column="Сериозност" --column="Описание" \
                992383 Нормална "GtkTreeView забива при множествен избор" \
                293823 Висока "GNOME Dictionary не поддържа сървър посредник" \
                393823 Критична "Редактирането на менюто не работи в GNOME 2.0"

### Пример за прозорец със списък

Zenity list dialog example

## Прозорци със съобщения

Zenity може да създава четири вида прозорци със съобщения:

- Грешка

- Информация

- Въпрос

- Предупреждение

За всеки вид, използвайте настройката `--text`, за да определите текста, който да се показва в прозореца.

### Прозорец за грешка

Използвайте настройката `--error`, за да създадете прозорец за грешка.

Следният примерен скрипт показва как да създадете прозорец за грепка:

              #!/bin/bash

              zenity --error \
              --text="Не може да се открие /var/log/syslog."

#### Пример за прозорец за грешка

Zenity error dialog example

### Прозорец за информация

Използвайте настройката `--info`, за да създадете прозорец за информация.

Следният примерен скрипт показва как да създадете прозорец за информация:

              #!/bin/bash

              zenity --info \
              --text="Сливането е завършено. Обновени са 3 от 10 файла."

#### Пример за прозорец за информация

Zenity information dialog example

### Прозорец за въпроси

Използвайте настройката `--question`, за да създадете прозорец за въпроси.

Следният примерен скрипт показва как да създадете прозорец за въпроси:

              #!/bin/bash

              zenity --question \
              --text="Сигурни ли сте, че искате да продължите?"

#### Пример за прозорец за въпроси

Zenity question dialog example

### Прозорец за предупреждение

Използвайте настройката `--warning`, за да създадете прозорец за предупреждение.

Следният примерен скрипт показва как да създадете прозорец за предупреждение:

              #!/bin/bash

              zenity --warning \
              --text="Изключете захранващия кабел, за да избегнете токов удар."

#### Пример за прозорец за предупреждение

Zenity warning dialog example

## Прозорец за прогрес

Използвайте настройката `--progress`, за да създадете прозорец за прогрес.

Zenity чете данни от стандартния вход ред по ред. Ако някой ред започва с #, текстът се обновява с текста на този ред. Ако ред съдържа само число, процентът се обновява към това число.

Прозорецът за прогрес поддържа следните настройки:

`--text`=текст

  Определя текста, който да се показва в прозореца за прогрес.

`--percentage`=проценти

  Определя началните проценти, които да се настроят за прозореца за прогрес.

`--auto-close`

  Затваря прозореца за прогрес, когато се достигнат стоте процента.

`--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 progress dialog example

## Прозорец за въвеждане на текст

Използвайте настройката `-entry`, за да създадете прозорец за въвеждане на текст. Zenity връща съдържанието на текстовото поле към стандартна грешка.

Прозорецът за въвеждане на текст поддържа следните настройки:

`--text`=текст

  Определя текстът, който да се показва в прозореца за въвеждане на текст.

`--entry-text`=текст

  Определя текста, който да се показва в полето за въвеждане на текст в прозореца за въвеждане на текст.

`--hide-text`

  Скрива текста в полето за въвеждане на текст в прозореца за въвеждане на текст.

Следният примерен скрипт показва как да създадете прозорец за въвеждане на текст:

            #!/bin/sh

            if zenity --entry \
            --title="Добавяне на запис" \
            --text="Въведете _паролата си:" \
            --entry-text "парола" \
            --hide-text
              then echo $?
              else echo "Няма въведена парола"
            fi

### Пример за прозорец за въвеждане на текст

Zenity text entry dialog example

## Прозорец с текстова информация

Използвайте настройката `--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 text information dialog example