$DIALOG --backtitle 'Пример'

 --title 'RADIOLIST BOX' --clear

 --radiolist 'Это список зависимых переключателей

 Он позволяет выбрать только один вариант из списка

 Какую из этих книг вы читали последней?' 2 0 81 5

  'Почти как люди' 'Саймак' off

  'Фауст' 'Гете' off

  'Мастер и Маргарита' 'Булгаков' ON

  'Мир теней' 'Саймак' off

  'Демон' 'Лермонтов' on 2> $tempfile

retval=$?

choice=`cat $tempfile`

case $retval in

0)

 echo 'Вы выбрали '$choice'';;

1)

 echo 'Нажата Cancel';;

255)

 echo 'Нажата ESC';;

esac

25.6. Организация меню

Виджит MenuBox очень похож на radiolist — они прямо-таки братья-близнецы, только у menubox нет слева переключателя включено/выключено. Использовать MenuBox нужно так же, как и radiolist, но не указывая on или off для элементов меню.

Листинг 25.7. Меню

#!/bin/sh

DIALOG=${DIALOG=dialog}

tempfile=`tempfile 2>/dev/null` ||( tempfile=/tmp/test$$

trap 'rm -f $tempfile' 0 1 2 5 15

$DIALOG --clear --title 'MENU BOX'

 --menu 'Этот виджит поможет вам организовать небольшое меню

 MENU BOX предоставляет пользователю выбрать один вариант

 из списка

 Данный виджит также позволяет прокручивать возможные варианты

 Вы можете использовать стрелки ВВЕРХ/ВНИЗ, а также клавиши

 1-9 для выбора.

 Выберите вашу ОС:' 2 0 71 4

  'Linux' 'А что, разве есть другие операционные системы'

  'FreeBSD' 'Это лучшая ОС'

  'Windows' 'Мы кроме Windows ничего не видели...'

  'MSDOS' 'На моей двойке ничего другого не запускается :(' 2> $tempfile

retval=$?

choice=`cat $tempfile`

case $retval in

0)

 echo 'Ваш выбор '$choice'';;

1)

 echo 'Нажата Cancel';;

255)

 echo 'Нажата Esc.';;

esac

Рис. 25.5. Виджит menubox

25.7. Календарь

Этот виджит позволяет пользователю удобно ввести дату. Работать с ним нужно так: с помощью клавиши Tab выбираете нужный элемент управления: кнопка OK, Cancel, поле изменения месяца, поле изменения года, поле выбора числа; с помощью стрелок вверх/вниз указываете нужное значения месяца, года, числа и нажимаете <Ввод>. Выбранная вами дата будет отображена на консоли.

Листинг 25.8. Календарь

#!/bin/sh

: ${DIALOG=dialog}

USERDATE=`$DIALOG --stdout --title 'CALENDAR' —calendar

'Выберите дату...'

0 0 1 1 2004`

case $? in

0)

 echo 'Вы выбрали дату: $USERDATE.';;

1)

 echo 'Нажата Cancel.';;

255)

 echo 'Диалог закрыт';;

esac

Рис. 25.6. Календарь

25.8. Шкала прогресса

Для информирования пользователя о ходе процесса, например, копирования или обработки файла, целесообразно использовать виджит gauge (шкала прогресса).

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату