xDialog

Xdialog — средство X Window System, заменяющее программы dialog и cdialog и предназначенное для придания запускаемым из терминала программам X Window System интерфейса. Использует Gimp ToolKit (GTK+).

Синтаксис

Xdialog [общие опции] [переходные опции] опции окна
или
Xdialog спецопции

Последовательность [общие опции] [переходные опции] опции окна может повторяться несколько раз в одной команде Xdialog (это называется диалоговое сцепление).

Общие опции

Применяются ко всем последующим вхождениям опций окна до появления следующего набора общих опций. В основном, определяют вид, стиль, положение и поведение меню.

--wmclass имя
--rc-file имя_файла_gtkrc
--backtitle backtitle
--title заголовок
--allow-close | --no-close
--screen-center | --under-mouse | --auto-placement
--center | --right | --left | --fill
--no-wrap | --wrap
--cr-wrap | --no-cr-wrap
--stderr | --stdout
--separator символ | --separate-output
--buttons-style default|icon|text

Переходные опции

Действуют только на ближайший (следующий) набор опций окна. Используются для настройки интерфейсных элементов окна (виджетов), а именно числа и типа кнопок, иконки меню, переключения некоторых специфических свойств интерфейсных элементов окна.

--fixed-font Используется вместе с --textbox и --editbox.
--password
--password=1|2
Может повторяться 2 или 3 раза перед --2inputsbox или --3inputsbox. Также возможно определить одно и только одно поле пароля с синтаксисом --password=1|2
--editable Предназначена для использования с --combobox.
--time-stamp
--date-stamp
Для использования с --logbox.
--reverse Для использования с --logbox.
--keep-colors Для использования с --logbox.
--interval время_ожидания_события Может использоваться с полями ввода (input(s) boxes), комбинированными управляющими элементами (combo box), полями диапазонов (range(s) boxes), окошками счетчиков (spin(s) boxes), окнами списков (list boxes), полем меню (menu box), «древом» (treeview), календарем (calendar) и полем времени (timebox).
--timeout время_ожидания_события (в секундах) Используется со всеми элементами, кроме поля информации (infobox), индикатора (gauge) и индикатора прогресса (progress).
--no-tags Предназначена для использования с --menubox, --checklist и --radiolist.
--item-help При использовании этой опции параметры helpN опций --menubox, --checklist, --radiolist, --buildlist и --treeview должны быть обязательно определены.
--default-item tag Используется с --menubox.
--icon имя_файла_xpm Используется с элементом, принимающим параметр текст.
--no-ok Для использования с --tailbox и --logbox.
--no-cancel Для использования с --infobox, --gauge и --progress.
--no-buttons Для использования с --textbox, --tailbox, --logbox, --infobox, --fselect и --dselect.
--default-no Может использоваться со всеми интерфейсными элементами окна, содержащими кнопки Отмена (Cancel) или Нет (No). Игнорируется при использовании опции --wizard.
--wizard Может использоваться со всеми элементами, кроме --msgbox, --infobox, --gauge и --progress.
--help помощь Может использоваться со всеми элементами, кроме --infobox, --gauge и --progress.
--print принтер Для использования с --tailbox, --textbox и --editbox.
--check метка [статус] Может использоваться со всеми элементами, кроме --infobox, --gauge и --progress.
--ok-label метка Может использоваться со всеми интерфейсными элементами окна, содержащими кнопки OK или Да (Yes). Игнорируется при использовании опции --wizard.
--cancel-label метка Может использоваться со всеми интерфейсными элементами окна, содержащими кнопки Отмена (Cancel) или Нет (No). Игнорируется при использовании опции --wizard.
--beep Используется со всеми элементами.
--beep-after Используется со всеми элементами.
--begin Yorg Xorg Используется со всеми элементами.
--ignore-eof Используется с --infobox и --gauge.
--smooth Для использования с --tailbox и --logbox.

Опции окна

Определяют, какой интерфейсный элемент окна должен использоваться. За опцией следует 3 параметра. Первый параметр — текстовая строка или имя файла (в зависимости от элемента). Второй и третий — высота и ширина в символах. Эти два параметра могут быть заменены одним XSIZE×YSIZE, в котором высота и ширина уже определяются в пикселах. Если в этих параметрах передать размер 0×0, то элемент масштабируется автоматически средствами GTK+. Если передан размер -1×-1, то элемент растянется на весь экран. Можно задавать также положение «начала» окна при помощи промежуточной опции --begin, если размер задан в символах. Некоторые опции окна требуют дополнительных параметров, таких как тэги, элементы меню, метки и значения по умолчанию.

--yesno текст высота ширина
--msgbox текст высота ширина
--infobox текст высота ширина [таймаут]
--gauge текст высота ширина [процент]
--progress текст высота ширина [макс.точек %%длина_сообщ
--inputbox текст высота ширина [нач.знач.]
--2inputsbox текст высота ширина метка1 нач.знач1 метка2 нач.знач2
--3inputsbox текст высота ширина метка1 нач.знач1 метка2 нач.знач2 метка3 нач.знач3
--combobox текст высота ширина пункт1 … пунктN
--rangebox текст высота ширина мин.знач. макс.знач. [знач.по-умолч.]
--2rangesbox текст высота ширина метка1 мин1 макс1 по-умолч1 метка2 мин2 макс2 по-умолч2
--3rangesbox текст высота ширина метка1 мин1 макс1 по-умолч1 метка2 мин2 макс2 по-умолч2 метка3 мин3 макс3 по-умолч3
--spinbox текст высота ширина мин макс по-умолч метка
--2spinsbox текст высота ширина мин1 макс1 по-умолч1 метка1 мин2 макс2 по-умолч2 метка2
--3spinsbox текст высота ширина мин1 макс1 по-умолч1 метка1 мин2 макс2 по-умолч2 метка2 мин3 макс3 по-умолч3 метка3
--textbox файл высота ширина
--editbox файл высота ширина
--tailbox файл высота ширина
--logbox файл высота ширина
--menubox текст высота ширина высота_меню ярлык1 пункт1 {помощь1}…
--checklist текст высота ширина высота_списка ярлык1 пункт1 статус1 {помощь1}…
--radiolist текст высота ширина высота_списка ярлык1 пункт1 статус1 {помощь1}…
--buildlist текст высота ширина высота_списка ярлык1 пункт1 статус1 {помощь1}…
--treeview текст высота ширина высота_списка ярлык1 пункт1 статус1 пункт_глубины1 {помощь1}…
--fselect файл высота ширина
--dselect папка высота ширина
--colorsel текст высота ширина [красный зелёный синий]
--fontsel имя_шрифта высота ширина
--calendar текст высота ширина [день месяц год]
--timebox текст высота ширина [часы минуты секунды]

Спецопции

Специальные опции не требуют параметров и других опций. Они заставляют Xdialog просто вывести строку на стандартное устройство вывода сообщений об ошибках (stderr). После этого Xdialog немедленно завершается с кодом выхода 0.

--version Выводит номер версии.
--print-version Выводит номер версии в совместимом с программой cdialog формате.
--print-maxsize Выводит максимальный размер меню в символах.

Диагностика

По завершение каждого блока опций окна (т.е. каждый раз, когда закрывается интерфейсный элемент) Xdialog посылает результат в виде текста или чисел на стандартное устройство вывода сообщений об ошибках (stderr) или стандартное устройство вывода (stdout), если применена соответствующая общая опция, в виде одной или нескольких строк. Xdialog завершается либо по завершение всей цепи диалогов, либо при возникновении ошибки. В любом случае возвращается код выхода, который может принимать следующие значения:

0
Нажаты кнопки OK, Да (Yes) или Далее (Next).
1
Нажаты кнопки Отмена (Cancel) или Нет (No).
2
Нажата кнопка Помощь (Help), но при этом в опцию --help передана пустая строка.
3
Нажата кнопка Назад (Previous) при действующей опции --wizard.
255
Возникла ошибка, либо вышло время ожидания события, либо окно было закрыто через оконный менеджер. Такой код выхода в программе cdialog возвращается при нажатии клавиши ESC.

Как только очередной интерфейсный элемент возвращает ненулевой код выхода, цепь диалогов прерывается, и Xdialog завершается.

Файлы программы

Файлы программы размещены по адресам:

/usr/local/bin/Xdialog
/usr/local/share/locale/*/LC_MESSAGES/Xdialog.mo
/usr/local/man/man1/Xdialog.1*
/usr/local/share/doc/Xdialog-2.3.1/* — полная система документации
/usr/local/share/doc/Xdialog-2.3.1/samples/* — примеры использования

Переменные окружения

XDIALOG_HIGH_DIALOG_COMPAT включает режим высокой совместимости с программой cdialog при присвоении значения 1 или true (чувствительно к регистру). При этом:

  • во всех интерфейсных элементах окна используется фиксированный (моноширинный) шрифт;
  • по умолчанию используется общая опция выравнивания текста --left вместо --center;
  • всегда происходит перенос текста (на текст действует опция --wrap, а опция --fill игнорируется);
  • по умолчанию используется опция --no-cr-wrap вместо --cr-wrap, что не применяется к backtitle);
  • вне зависимости от установленного размера окна, если переменной XDIALOG_FORCE_AUTOSIZE присвоено значение 1 или true, включается свойство автомасштабирования;
  • кнопка Отмена (Cancel) не видна в элементах textbox и tailbox;
  • элемент infobox превращен в msgbox,
  • если не задано ненулевое время ожидания события для элемента infobox (переменная XDIALOG_INFOBOX_TIMEOUT, которой присваивается значение в тысячных долях секунды), а в противном случае используется infobox без кнопки;
  • спецопция --version возвращает то же значение, что и --print-version.

XDIALOG_FORCE_AUTOSIZE

XDIALOG_INFOBOX_TIMEOUT

XDIALOG_NO_GMSGS предотвращает отправку сообщений через g_log() библиотекой Gdk, GLib и Gtk.

Ссылки

X-Windows

Авторы: Alfred Reynolds alfred@cyberone.com.au (только v1.0) и Thierry Godefroy xdialog@free.fr (начиная с версии v1.1.0).

Составлено на основе файла Xdialog.htm

 
programming/xdialog.txt · Последние изменения: 01.03.2016 в 18:18 (внешнее изменение)
 
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki