Как сделать «защиту от дураков»

Автор: Сергей Иванов

9 февраля 2007г.

Jabber: linuxural@jabber.ru

Как сделать «защиту от дураков»

Введение

    «Защитой от дураков» как правило называют диалоги которые спрашиваю какого либо подтверждения например: при закрытии программы возникает диалог в котором спрашивают подтверждения действительно ли вы хотите её закрыть, на рисунке 1 показан пример.

Рисунок 1
Рисунок 1

О программе

    Программа представляет из себя пустое окно при закрытии которого возникает диалог (см. рисунок 1). При нажатии на кнопку «ОК» программа завершит свою работу, при нажатии на «Cancel» программа продолжит работать.

Создания проекта

    Создайте новый GTK проект в «Anjuta» я в качестве имени указал «security» (как это сделать можно прочитать статью «Первая программа и с использованием GTK 2»).

Создания интерфейса

    После создания проекта откройте редактор интерфейса нажав Alt+G и в редакторе свойств Property Editor создайте сигнал «delete_event» для window1 указав его в качестве Object, пример как это должно выглядит смотрите на рисунке 2.

    Сохраните изменения и с генерируйте исходной код (в главном меню glade выберите Project->Build или нажмите Ctrl+B), после этого можно закрыть glade.

Создания исходного кода

    Откройте в anjuta файл «callbacks.c» он должен содержать описанный выше сигнал «delete_event», в теле функции напишите следующий код:

  gint result;
GtkWidget *dialog;
GtkWidget *window1;
window1 = lookup_widget(GTK_WIDGET(user_data), "window1");
dialog = gtk_message_dialog_new (window1,
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_QUESTION,
GTK_BUTTONS_OK_CANCEL,
"Закрыть программу?");
result = gtk_dialog_run(GTK_DIALOG (dialog));//показать диалог.
if (result == GTK_RESPONSE_OK)//если была нажата кнопка ОК.
{
return FALSE; //возрашение FALSE для завершения программы.
}
else
{
gtk_widget_destroy(dialog); //уничтожить диалог.
return TRUE; //возращение TRUE для продолжения работы.
}

    Всё, можно сохранять, компилировать и запускать :)

Рисунок 2

Рисунок 2

Скачать исходники (130 Кб)
Скачать бинарный файл (18 Кб)
Скачать эту статью в PDF (158 Кб)


Рейтинг@Mail.ru