краткое описание#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, используйте его. но вы должны быть осведомлены о компромисах. деталиgtkfixedtypedef struct _gtkfixed gtkfixed; структура gtkfixed-struct содержит нижеследующие поля. (эти поля должны рассматриваться только для чтения. они никогда не должны устанавливаться приложениями.)
gtkfixedchildtypedef struct {
gtkwidget *widget;
gint x;
gint y;
} gtkfixedchild; структура gtkfixedchild-struct содержит нижеприведенные поля. (эти поля должны рассматриваться только для чтения. они никогда не должны устанавливаться приложениями.)
gtk_fixed_new ()gtkwidget* gtk_fixed_new (void); создаёт новый gtkfixed.
gtk_fixed_put ()void gtk_fixed_put (gtkfixed *fixed, gtkwidget *widget, gint x, gint y); добавляет виджет к gtkfixed контейнеру с данной позицией.
gtk_fixed_move ()void gtk_fixed_move (gtkfixed *fixed, gtkwidget *widget, gint x, gint y); перемещает дочерний виджет контейнера gtkfixed в данную позицию.
gtk_fixed_get_has_window ()gboolean gtk_fixed_get_has_window (gtkfixed *fixed); проверяет, имеет ли gtkfixed собственный gdkwindow. смотрите gdk_fixed_set_has_window().
gtk_fixed_set_has_window ()void gtk_fixed_set_has_window (gtkfixed *fixed, gboolean has_window); устанавливает, создан ли виджет gtkfixed с отдельным gdkwindow для widget->window или нет. (по умолчанию он создается без отдельного gdkwindow). эта функция должна быть вызвана пока gtkfixed не реализован, например сразу после создания окна. эта функция была добавлена для обеспечения простой миграции старых приложений возможно ожидающих наличия gtkfixed с отдельным окном.
детали дочерних свойствдочернее свойство "x""x" gint : read / write x позиция дочернего виджета. значение по умолчанию: 0 дочернее свойство "y""y" gint : read / write y позиция дочернего виджета. значение по умолчанию: 0 |