рамки
рамки
могут использоваться для ограничения
одного или группы виджетов с установкой
произвольно маркированного поля. позиция
и стиль поля маркировки может изменяться.
рамка создаётся так:
gtkwidget *gtk_frame_new( const gchar *label );
|
поле маркировки по
умолчанию располагается вверху слева.
значение null в качестве аргумента
label, отключает отображение маркировки.
текст маркировки может быть изменён с
помощью следующей функции.
void gtk_frame_set_label( gtkframe *frame,
const gchar *label );
|
позиция поля маркировки
изменяется так:
void gtk_frame_set_label_align( gtkframe *frame,
gfloat xalign,
gfloat yalign );
|
xalign и
yalign могут иметь значения между 0.0
и 1.0. аргумент xalign указывает
позицию по горизонтали на вершине рамки.
yalign в настоящее время не используется.
значение по умолчанию xalign - 0.0, это
помещает метку в левом конце рамки.
следующая
функция изменяет стиль поля, которое
используется, чтобы выделить рамку.
void gtk_frame_set_shadow_type( gtkframe *frame,
gtkshadowtype type);
|
аргумент type может
принимать одно из следующих значений:
gtk_shadow_none
gtk_shadow_in
gtk_shadow_out
gtk_shadow_etched_in (по умолчанию)
gtk_shadow_etched_out
|
следующий
пример кода демонстрирует использование
рамки.
#include <gtk/gtk.h>
int main( int argc,
char *argv[] )
{
/* gtkwidget содержит типы виджетов */
gtkwidget *window;
gtkwidget *frame;
/* инициализируем gtk */
gtk_init (&argc, &argv);
/* создаём новое окно */
window = gtk_window_new (gtk_window_toplevel);
gtk_window_set_title (gtk_window (window), "frame example");
g_signal_connect (g_object (window), "destroy",
g_callback (gtk_main_quit), null);
gtk_widget_set_size_request (window, 300, 300);
/* устанавливаем окантовку окна. */
gtk_container_set_border_width (gtk_container (window), 10);
/* создаём рамку */
frame = gtk_frame_new (null);
gtk_container_add (gtk_container (window), frame);
/* устанавливаем маркировку рамки */
gtk_frame_set_label (gtk_frame (frame), "gtk frame widget");
/* выравниваем маркировку справа */
gtk_frame_set_label_align (gtk_frame (frame), 1.0, 0.0);
/* устанавливаем стиль рамки */
gtk_frame_set_shadow_type (gtk_frame (frame), gtk_shadow_etched_out);
gtk_widget_show (frame);
/* отображаем окно */
gtk_widget_show (window);
/* входим в цикл */
gtk_main ();
return 0;
}
|
|