4 июня 2009 г.

Диалоговые окна. О программе.

Лучшим способом сообщить пользователю о программе, её авторе и лицензии является диалоговое окно GtkAboutDialog, которое обычно вызывается при выборе пункта "О программе" в меню "Справка".



За его создание отвечает класс GtkAboutDialog:
$dialog = new GtkAboutDialog;


Список методов:

  • set_program_name() - устанавливает имя программы, отображаемое в диалоге.

  • set_version() - версия программы, отображается сразу после имени через один пробел.

  • set_comments() - устанавливает комментарий, отображаемый в диалоге.

  • set_copyright() - строка авторского права.

  • set_logo() - устанавливает логотип программы.

  • set_website() - сайт программы или разработчика.

  • set_license() - устанавливает текст лицензии, отображаемый во второстепенном окне. При этом в главном окне появляется кнопка "Лицензия".

  • set_authors() - устанавливает авторов программы. Отображается во второстепенном окне. Авторов следует указывать в массиве. При этом в главном окне появляется кнопка "Благодарности".

  • set_documenters() - устанавливает разработчиков документации. Отображается в том же окне, что и авторы.

  • set_artists() - устанавливает дизайнеров. Отображается в том же окне, что и авторы.

  • set_translator_credits() - устанавливает переводчиков. Отображается в том же окне, что и авторы. В качестве параметра, по какой-то причине, принимает строку, а не массив, как предыдущие три.

  • set_email_hook() - устанавливает функцию, которая вызывается при нажатии на email-адрес в диалоге. Для того, чтобы email стал ссылкой, его необходимо заключить в угловые скобки < > после имени участника проекта. Этот метод передаёт функции два параметра. Первый - информация об окне, не нужная нам. Второй - выбранный email-адрес.



Полный код программы:
<?php
 
$dialog = new GtkAboutDialog;
 
$dialog->set_program_name('My program');
$dialog->set_version('0.1');
$dialog->set_comments('Диалоговое окно, содержащее информацию о программе');
$dialog->set_copyright('Copyright (C) 2009');
$dialog->set_logo($dialog->render_icon(Gtk::STOCK_INFO, Gtk::ICON_SIZE_LARGE_TOOLBAR));
$dialog->set_website('http://shecspi.blogspot.com');
$dialog->set_authors(array('Вавилов Егор <shecspi@gmail.com>'));
$dialog->set_artists(array('Вавилов Егор <shecspi@gmail.com>'));
$dialog->set_documenters(array('Вавилов Егор <shecspi@gmail.com>'));
$dialog->set_translator_credits('Вавилов Егор <shecspi@gmail.com>');
$dialog->set_license('Текст лицензии');
$dialog->set_email_hook('email_hook');
 
function email_hook($data, $email)
{
echo "Email - ".$email."\n";
}
 
$dialog->run();
 
?>

2 комментария:

Guardeon комментирует...

При запуске программы возникла ошибка. Что то типа – "используйте вместо set_name - set_program_name". А так вообще просто суппер. Мне все больше нравится PHP-GTK, только жалко что нельзя скомпилировать php код, чтобы его видно не было. А то так как то стремно.

Shecspi комментирует...

Да, спасибо. Я не обратил на это внимания. Метод set_name() является устаревшим, необходимо использовать set_program_name(). Статью поправил.

Вот только в документации ни одного из этих методов почему-то нет.