Prev

Up

Home

GTK+ Reference Manual

Next

Top  |  Description  |  Object Hierarchy  |  Child Properties

GtkFixed

GtkFixed Контейнер позволяющий фиксировать координаты позиции виджета

Краткое описание

#include <gtk/gtk.h> GtkFixed; GtkFixedChild; GtkWidget* gtk_fixed_new (void); void gtk_fixed_put (GtkFixed *fixed, GtkWidget *widget, gint x, gint y); void gtk_fixed_move (GtkFixed *fixed, GtkWidget *widget, gint x, gint y); gboolean gtk_fixed_get_has_window (GtkFixed *fixed); void gtk_fixed_set_has_window (GtkFixed *fixed, gboolean has_window);

Иерархия объектов

GObject +----GInitiallyUnowned +----GtkObject +----GtkWidget +----GtkContainer +----GtkFixed

Осуществляемый интерфейс

GtkFixed осуществляет AtkImplementorIface.

Дочерние свойства

"x" gint : Read / Write "y" gint : Read / Write

Описание

GtkFixed виджет - это контейнер позволяющий размещать дочерние виджеты в зафиксированной позиции и с фиксированным размером, полученных в пикселах. GtkFixed не выполняет никакого автоматического управления размещением.

Для большинства приложений вы не должны использовать этот контейнер! Он задерживает вас в изучении других контейнеров GTK+, и приводит к испорченным приложениям. С GtkFixed, следующие вещи приведут к усеченному тексту, наложению виджетов и другим визуальным ошибкам:

К тому же зафиксированный виджет не может правильно отображать языки обратного направления (справа-налево), такие как Иврит и Арабский. То есть обычно GTK+ зеркально отразит интерфейс поместив ярлыки на право, но это не возможно сделать с GtkFixed. Поэтому ваше приложение не будет работать с языками обратного направления.

Наконец, фиксированное положение делает отчасти раздражительным добавление/удаление GUI элементов, так как вам приходится пере-устанавливать все остальные элементы. Это создаёт множество проблем по сопровождению вашего приложения.

Если ни одна из выше перечисленных проблем не существует для вашего приложения и вы предпочитаете простоту GtkFixed, используйте его. Но вы должны быть осведомлены о компромисах.

Детали

GtkFixed

typedef struct _GtkFixed GtkFixed;

Структура GtkFixed-struct содержит нижеследующие поля. (Эти поля должны рассматриваться только для чтения. Они никогда не должны устанавливаться приложениями.)

GList *children;

список GtkFixedChild элементов, содержит дочерние элементы и их позицию.


GtkFixedChild

typedef struct { GtkWidget *widget; gint x; gint y; } GtkFixedChild;

Структура GtkFixedChild-struct содержит нижеприведенные поля. (Эти поля должны рассматриваться только для чтения. Они никогда не должны устанавливаться приложениями.)

GtkWidget *widget;

дочерний GtkWidget.

gint x;

Горизонтальная позиция виджета внутри контейнера GtkFixed.

gint y;

Вертикальная позиция виджета внутри контейнера GtkFixed.


gtk_fixed_new ()

GtkWidget*  gtk_fixed_new                   (void);

Создаёт новый GtkFixed.

Возвращает :

новый GtkFixed.


gtk_fixed_put ()

void gtk_fixed_put (GtkFixed *fixed, GtkWidget *widget, gint x, gint y);

Добавляет виджет к GtkFixed контейнеру с данной позицией.

fixed :

GtkFixed.

widget :

Добавляемый виджет.

x :

Горизонтальная позиция для помещения виджета.

y :

Вертикальная позиция для помещения виджета.


gtk_fixed_move ()

void gtk_fixed_move (GtkFixed *fixed, GtkWidget *widget, gint x, gint y);

Перемещает дочерний виджет контейнера GtkFixed в данную позицию.

fixed :

GtkFixed.

widget :

Дочерний виджет.

x :

Горизонтальная позиция для перемещаемого виджета.

y :

Вертикальная позиция для перемещаемого виджета.


gtk_fixed_get_has_window ()

gboolean    gtk_fixed_get_has_window        (GtkFixed *fixed);

Проверяет, имеет ли GtkFixed собственный GdkWindow. Смотрите gdk_fixed_set_has_window().

fixed :

GtkWidget

Возвращает :

TRUE если fixed имеет собственное окно.


gtk_fixed_set_has_window ()

void gtk_fixed_set_has_window (GtkFixed *fixed, gboolean has_window);

Устанавливает, создан ли виджет GtkFixed с отдельным GdkWindow для widget->window или нет. (По умолчанию он создается без отдельного GdkWindow). Эта функция должна быть вызвана пока GtkFixed не реализован, например сразу после создания окна.

Эта функция была добавлена для обеспечения простой миграции старых приложений возможно ожидающих наличия GtkFixed с отдельным окном.

fixed :

a GtkFixed

has_window :

TRUE if a separate window should be created

Детали дочерних свойств

Дочернее свойство "x"

  "x"                    gint                  : Read / Write

X позиция дочернего виджета.

Значение по умолчанию: 0


Дочернее свойство "y"

  "y"                    gint                  : Read / Write

Y позиция дочернего виджета.

Значение по умолчанию: 0