Для тех, кто пока только присматривается к программированию, но не знает с чего начать,
повторю в более развернутом виде свой первый пост.
gtkdialog - простой инструмент создания окон на bash-script
-----------------------------------------------------------
Все пользователи всех Линуксов постоянно используют для работы своей ОС кучу самых разнообразных скриптов, зачастую и не подозревая об их существовании.
Но некоторые скрипты (некоторые их функции) разаботчики связывают с графическими окнами, которые позволяют задавать пользователю вопросы, получать ответы и на их основании выполнять некоторые действия.
Диалоговые (и не только) окна в Линукс - простое средство создания.
-------------------------------------------------------------------
Есть в Линуксе библиотека zenity, позволяющая "визуализировать" простейшие скриптовые диалоги.
Например:
#!/bin/bash
if zenity --question --text="Please press a button."; then
zenity --info --text="You pressed Yes\!"
else
zenity --error --text="You pressed No\!"
fi
Выведет окно "Question" с кнопками "No" "Yes"
Но zenity может не так много.
gtkdialog опирается на zenity и добавляет к ней многие функции/возможности GTK+
(GTK, GTK2, GTK+ это абревиатуры инструментов/библиотек графического программирования в Линукс).
При этом не требуется добавлять в систему монстров графического программирования.
В любом "блокноте" пишется bash-script или СИ-функция/функции. И все!
gtkdialog имеет много хороших примеров bash-script.
Автор Laszlo Pere предоставил возможность делать программы и на языке СИ, но пример такой программы всего один (и очень маленький).
Возможности программы gtkdialog в этом случае значительно беднее, чем у bash-script.
Некоторые пользователи могут писать на bash-script хуже, чем на СИ (как я например).
Учитывая это я сделал пример на языке СИ.
Конструкции gtkdialog для СИ не позволяют например такие вещи:
<window window_position="1" title="System Tools">
или:
<action when="file-activated">echo File: $FILE </action>
Это удалось обойти таким способом:
"<action>cat [ echo $FILE ] | zenity --text-info --width=720 --height=400 --title $FILE</action>"
Но даже с такими ограничениями мне было интересно сделать программу, которая не требует тяжелых библиотек (так я во всяком случае думаю).
Свой пример на СИ и скриншот положил на мурге:
http://www.murga-linux.com/puppy/viewtopic.php?p=639831#639831
(после этого тема там немного оживилась)
Это тема " Gtkdialog Development"
http://www.murga-linux.com/puppy/viewtopic.php?t=69188
Все примеры на bash-script лежат:
http://code.google.com/p/gtkdialog/
там же можно скачать и пакет обновленный энтузиастами в сентябре 2011 года
gtkdialog-0.8.0.tar.gz 404 KB
GtkDialog - tips (подсказки)
http://www.murga-linux.com/puppy/viewtopic.php?t=38608
Авторский пакет 0.56--0.7.10 (сентябрь 2003 - ноябрь 2006) находится:
http://www.mmnt.net/db/0/0/gamma.ttk.pte.hu/pub/gtkdialog
я пользовался gtkdialog-0.59.8.tar.gz 234 KB (июль 2005 года)
но версия 0.8.0 гораздо богаче...
И до кучи примеры с иллюстрациями:
Creating a GUI with GTKDialog
http://pclosmag.com/html/Issues/200910/page21.html
http://xpt.sourceforge.net/techdocs/language/gtkdialog/gtkde02-GtkdialogExamples/single/
почти учебник:
http://hizoka.funcenter.fr/linux/gtkdialog.pdf
Диалоги на самые разные вкусы:
http://freecode.com/projects/xdialog
http://invisible-island.net/dialog/
http://hightek.org/dialog/
http://xdialog.free.fr/
http://code.google.com/p/yad/
Если начать с запуска скриптов-примеров, а продолжть это их чтением, легкой модификацией и повторным запуском, то освоение предмета может оказаться проще, чем чтение пугающе толстых книжек.
Чтение этих книжек потребуется на более поздних этапах практического использования этого инструмента.