Книга: Основы программирования в Linux
Виджеты GNOME
Разделы на этой странице:
Виджеты GNOME
Комплект GTK+ спроектирован как нейтральный по отношению к рабочему столу, т.е. GTK+ не делает никаких допущений о том, что он выполняется в среде GNOME или даже в системе Linux. Причина заключается в том, что комплект инструментов GTK+ можно с относительной легкостью перенести для выполнения в ОС Windows или любой другой оконной системе. В результате GTK+ не хватает средств для связывания программы с рабочим столом, таких как средства сохранения настройки программы, отображение файлов помощи или программные апплеты (апплеты — это небольшие утилиты, выполняющиеся на краевых панелях (edge panels)).
Библиотеки среды включают виджеты GNOME, расширяющие комплект GTK+ и замещающие его части более легкими в применении виджетами. В этом разделе мы расскажем, как программировать с помощью виджетов GNOME.
Перед использованием библиотек GNOME их следует инициализировать при запуске ваших программ точно так же, как вы поступали с библиотеками GTK+. Вы вызываете функцию gnome_program_init
также, как вы вызывали функцию gtk_init
в чистых программах GTK+.
Эта функция принимает параметры app_id
и арр_version
, применяемые для описания вашей программы в среде GNOME, module_info
, сообщающий GNOME о том, какой библиотечный модуль инициализировать, параметры командной строки и свойства приложения, заданные как NULL-терминированный список пар "имя/значение".
GnomeProgram* gnome_program_init(const char *app_id,
const char *app_version, const GnomeModuleInfо *module_infо,
int argc, char **argv, const char *first_property_name, ...);
Необязательный список свойств позволяет задать такие характеристики, как, например, каталог для поиска растровой графики.
Выполните упражнение 16.8.
Упражнение 16.8. Окно GNOME
Давайте рассмотрим программу, применяющую средства GNOME, в которой выполняется GNOME-замещение объекта GtkWindow
виджетом GnomeApp
.
Введите эту программу и назовите ее gnome1.c:
#include <gnome.h>
int main(int argc, char* argv[]) {
GtkWidget *app;
gnome_program_init("gnome1", "1.0", MODULE, argc, argv, NULL);
app = gnome_app_new("gnome1", "The Window Title");
gtk_widget_show(app);
gtk_main();
return 0;
}
Для компиляции вам необходимо включить заголовочные файлы GNOME, поэтому передайте библиотеки libgnomeui и libgnome в команду pkg-config
:
$ gcc gnome1.с -о gnome1 `pkg-config --cflags --libs libgnome-2.0 libgnomeui-2.0`
Виджет GnomeApp
расширяет возможности GtkWindow и облегчает вставку меню, панелей инструментов и строки состояния вдоль нижнего края окна. Поскольку он потомок GtkWindow
, вы можете применять к виджету GnomeApp
любую функцию виджета GtkWindow
. Далее вы познакомитесь с созданием меню и добавите строку состояния в ваш финальный пример.
Примечание
Вы можете использовать комплект инструментов GTK+ для создания меню, но среда GNOME предоставляет полезные структуры и макросы, которые существенно облегчают эту задачу. В интерактивной документации описывается, как создавать меню средствами GTK+.
- Меню GNOME
- Виджеты GTK+
- Глава 16 Программирование в GNOME с помощью GTK+
- Виджеты Qt
- Виджеты упаковочных контейнеров
- 12.4.5. Прочие виджеты
- CHAPTER 3 Working with GNOME
- The GNOME Desktop Environment
- Working with Gnome Office
- The GNOME File Roller
- The Glade Client for Developing in GNOME
- Установка библиотек разработки GNOME