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

## Вступ

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

- Календар

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

- Список

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

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

  - Помилка

  - Інформація

  - Запитання

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

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

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

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

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

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

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

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

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

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

For example, use:

    matedialog --calendar --title="Holiday Planner"

Do not use:

    matedialog --calendar --title=Holiday Planner

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

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

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

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

    "_Choose a name".

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

`--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+.

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

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

`--about`

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

`--version`

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

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

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

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

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

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

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

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

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

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

`--day`=`день`

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

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

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

`--year`=`year`

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

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

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

The following example script shows how to create a calendar dialog:

            #!/bin/sh

            if matedialog --calendar \
            --title="Select a Date" \
            --text="Click on a date to select that date." \
            --day=10 --month=8 --year=2004
              then echo $?
              else echo "No date selected"
            fi

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

MateDialog calendar dialog example

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

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

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

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

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

`--multiple`

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

`--directory`

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

`--save`

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

`--separator`=`separator`

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

The following example script shows how to create a file selection dialog:

            #!/bin/sh

            FILE=`matedialog --file-selection --title="Select a File"`

            case $? in
                     0)
                            echo "\"$FILE\" selected.";;
                     1)
                            echo "No file selected.";;
                    -1)
                            echo "No file selected.";;
            esac

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

MateDialog file selection dialog example

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

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

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

The following example script shows how to create a notification icon:

            #!/bin/sh

            matedialog --notification\
              --window-icon="info" \
              --text="There are system updates necessary!"

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

MateDialog notification icon example

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

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

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

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

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

`--column`=`column`

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

`--checklist`

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

`--radiolist`

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

`--editable`

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

`--separator`=`separator`

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

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

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

The following example script shows how to create a list dialog:

            #!/bin/sh

            matedialog --list \
              --title="Choose the Bugs You Wish to View" \
              --column="Bug Number" --column="Severity" --column="Description" \
                992383 Normal "GtkTreeView crashes on multiple selections" \
                293823 High "MATE Dictionary does not handle proxy" \
                393823 Critical "Menu editing does not work in MATE 2.0"

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

MateDialog list dialog example

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

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

- Помилка

- Інформація

- Запитання

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

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

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

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

The following example script shows how to create an error dialog:

              #!/bin/bash

              matedialog --error \
              --text="Could not find /var/log/syslog."

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

MateDialog error dialog example

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

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

The following example script shows how to create an information dialog:

              #!/bin/bash

              matedialog --info \
              --text="Merge complete. Updated 3 of 10 files."

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

MateDialog information dialog example

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

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

The following example script shows how to create a question dialog:

              #!/bin/bash

              matedialog --question \
              --text="Are you sure you wish to proceed?"

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

MateDialog question dialog example

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

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

The following example script shows how to create a warning dialog:

              #!/bin/bash

              matedialog --warning \
              --text="Disconnect the power cable to avoid electrical shock."

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

MateDialog warning dialog example

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

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

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

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

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

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

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

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

`--auto-close`

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

`--pulsate`

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

The following example script shows how to create a progress dialog:

            #!/bin/sh
            (
            echo "10" ; sleep 1
            echo "# Updating mail logs" ; sleep 1
            echo "20" ; sleep 1
            echo "# Resetting cron jobs" ; sleep 1
            echo "50" ; sleep 1
            echo "This line will just be ignored" ; sleep 1
            echo "75" ; sleep 1
            echo "# Rebooting system" ; sleep 1
            echo "100" ; sleep 1
            ) |
            matedialog --progress \
              --title="Update System Logs" \
              --text="Scanning mail logs..." \
              --percentage=0

            if [ "$?" = -1 ] ; then
                    matedialog --error \
                      --text="Update canceled."
            fi

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

MateDialog progress dialog example

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

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

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

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

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

`--entry-text`=`text`

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

`--hide-text`

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

The following example script shows how to create a text entry dialog:

            #!/bin/sh

            if matedialog --entry \
            --title="Add an Entry" \
            --text="Enter your _password:" \
            --entry-text "password" \
            --hide-text
              then echo $?
              else echo "No password entered"
            fi

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

MateDialog text entry dialog example

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

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

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

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

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

`--editable`

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

The following example script shows how to create a text information dialog:

            #!/bin/sh

            FILE=`matedialog --file-selection \
              --title="Select a File"`

            case $? in
                     0)
                            matedialog --text-info \
                              --title=$FILE \
                              --filename=$FILE \
                              --editable 2>/tmp/tmp.txt;;
                     1)
                            echo "No file selected.";;
                    -1)
                            echo "No file selected.";;
            esac

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

MateDialog text information dialog example