Книга: Основы программирования в Linux
GtkWindow
GtkWindow
GtkWindow
— базовый элемент всех приложений GTK+. До сих пор вы использовали его для хранения своих виджетов.
GtkWidget
+---- GtkContainer
+---- GtkBin
+---- GtkWindow
Существуют десятки вызовов API GtkWindow
, но далее приведены функции, заслуживающие особого внимания.
GtkWidget* gtk_window_new(GtkWindowType type);
void gtk_window_set_title(GtkWindow *window, const gchar *title);
void gtk_window_set_position(GtkWindow *window, GtkWindowPosition position);
void gtk_window_set_default_size(GtkWindow *window, gint width, gint height);
void gtk_window_resize(GtkWindow *window, gint width, gint height);
void gtk_window_set_resizable(GtkWindow *window, gboolean resizable);
void gtk_window_present(GtkWindow *window);
void gtk_window_maximize(GtkWindow *window);
void gtk_window_unmaximize(GtkWindow *window);
Как вы видели, функция gtk_window_new
создает в памяти новое пустое окно. Заголовок окна не задан и размер и местоположение окна не определены. Обычно вы будете заполнять окно виджетами и задавать меню и панель инструментов перед выводом окна на экран с помощью вызова функции gtk_widget_show
.
Функция gtk_window_set_title
изменяет текст полосы заголовка, информируя оконный менеджер запроса.
Примечание
Поскольку за отображение оформления окна отвечает оконный менеджер, а не библиотека GTK+, шрифт, цвет и размер текста зависят от вашего выбора оконного менеджера.
Функция gtk_window_setposition
управляет начальным местоположением на экране. Параметр position
может принимать пять значений, перечисленных в табл. 16.2.
Таблица 16.2
Параметр position |
Описание |
---|---|
GTK_WIN_POS_NONE |
Окно располагается по усмотрению оконного менеджера |
GTK_WIN_POS_CENTER |
Окно центрируется на экране |
GTK_WIN_POS_MOUSE |
Расположение окна задаётся указателем мыши |
GTK_WIN_POS_CENTER_ALWAYS |
Окно остается отцентрированным независимо от его размера |
GTK_WIN_POS_CENTER_ON_PARENT |
Окно центрируется относительно родительского окна (удобно для диалоговых окон) |
Функция gtk_window_set_default_size
задает окно на экране в единицах отображения GTK+. Явное задание размера окна гарантирует, что содержимое окна не будет закрыто чем-либо или скрыто. Для того чтобы изменить размеры окна после его вывода на экран, можно воспользоваться функцией gtk_window_resize
. По умолчанию пользователь может изменить размеры окна, перемещая обычным способом его границу мышью. Если вы хотите помешать этому, можно вызвать функцию gtk_window_set_resizeable
, приравненную FALSE.
Для того чтобы убедиться в том, что ваше окно присутствует на экране и видно пользователю, т.е. не свернуто или скрыто, подойдет функция gtk_window_present
. Она полезна для диалоговых окон, т.к. позволяет убедиться в том, что окна не свернуты, когда вам нужен какой-либо пользовательский ввод. В противном случае, для раскрытия окна на весь экран и его сворачивания у вас есть функции gtk_window_maximize
и gtk_window_minimize
.