GTK+ Reference Manual |
||||
---|---|---|---|---|
GtkSizeGroupGtkSizeGroup Группирует виджеты таким образом, чтобы они запрашивали один и тот же размер |
#include <gtk/gtk.h>
GtkSizeGroup;
enum GtkSizeGroupMode;
GtkSizeGroup* gtk_size_group_new (GtkSizeGroupMode mode);
void gtk_size_group_set_mode (GtkSizeGroup *size_group,
GtkSizeGroupMode mode);
GtkSizeGroupMode gtk_size_group_get_mode (GtkSizeGroup *size_group);
void gtk_size_group_set_ignore_hidden
(GtkSizeGroup *size_group,
gboolean ignore_hidden);
gboolean gtk_size_group_get_ignore_hidden
(GtkSizeGroup *size_group);
void gtk_size_group_add_widget (GtkSizeGroup *size_group,
GtkWidget *widget);
void gtk_size_group_remove_widget (GtkSizeGroup *size_group,
GtkWidget *widget);
GSList* gtk_size_group_get_widgets (GtkSizeGroup *size_group);
GObject
+----GtkSizeGroup
"ignore-hidden" gboolean : Read / Write
"mode" GtkSizeGroupMode : Read / Write
GtkSizeGroup обеспечивает механизм группировки виджетов таким образом, чтобы они занимали одинаковое количество пространства. Это полезно когда вам нужно привести столбцы виджета к одинаковому размеру, но вы не можете использовать GtkTable.
Подробнее, размер запрашиваемый для
каждого виджета в GtkSizeGroup это
максимальный размер который запрашивает
каждый виджет в групповом размере, если
они не в групповом размере. Режим
группового размера (смотрите
gtk_size_group_set_mode()
)
определяет применяется ли горизонтальный,
вертикальный, или оба размера.
Помните, групповой размер влияет
только на объём запрашиваемого
пространства, не на конечный размер
получаемый виджетом. Если вам нужны
виджеты в GtkSizeGroup фактически
одного размера, вам нужно упаковать их
таким образом, чтобы они получили размер
не больше запрашиваемого. Например,
если вы упаковываете ваши виджеты в
таблицу, вы не должны включать флажок
GTK_FILL
.
GtkSizeGroup объекты являются
ссылками на каждый виджет в групповом
размере, так как только вы добавляете
все виджеты в GtkSizeGroup, вы можете
сбросить начальную ссылку для группового
размера с помощью g_object_unref()
.
Если виджеты в групповом размере
последовательно уничтожены, то они
будут удалены из группового размера и
сброшена их ссылка на групповой размер;
когда все виджеты удалены, групповой
размер освобождается.
Виджеты могут быть частью множества
групповых размеров; GTK+ рассчитает
горизонтальный размер виджета из
горизонтального запроса всех виджетов
которые могут быть досягаемы из цепочки
групповых размеров типа
GTK_SIZE_GROUP_HORIZONTAL
или GTK_SIZE_GROUP_BOTH
,
а вертикальный размер из вертикального
запроса всех виджетов которые могут
быть досягаемы в цепочке групповых
размеров типа GTK_SIZE_GROUP_VERTICAL
или GTK_SIZE_GROUP_BOTH
.
typedef struct _GtkSizeGroup GtkSizeGroup;
enum GtkSizeGroupMode
typedef enum { GTK_SIZE_GROUP_NONE, GTK_SIZE_GROUP_HORIZONTAL, GTK_SIZE_GROUP_VERTICAL, GTK_SIZE_GROUP_BOTH } GtkSizeGroupMode;
Режим группового размера определяется направлением в котором групповой размер влияет на запрашиваемые размеры виджетов которыми укомплектован.
Группа не имеет эффекта |
|
Группа влияет на горизонтальный размер |
|
Группа влияет на вертикальный размер |
|
Группа влияет на горизонтальный и вертикальный размер |
GtkSizeGroup* gtk_size_group_new (GtkSizeGroupMode mode);Создаёт новый GtkSizeGroup.
|
Режим для нового группового размера. |
Возвращает : |
Вновь созданный GtkSizeGroup |
void gtk_size_group_set_mode (GtkSizeGroup *size_group,
GtkSizeGroupMode mode);
Устанавливает GtkSizeGroupMode
группового размера. Режим группового
размера определяет в каком направлении
влияет групповой размер на размер
виджетов входящих в его состав -
горизонтальный (GTK_SIZE_GROUP_MODE_HORIZONTAL
),
вертикальный (GTK_SIZE_GROUP_MODE_VERTICAL
),
или на оба размера (GTK_SIZE_GROUP_MODE_BOTH
).
|
|
|
Режим устанавливаемый для группового размера. |
GtkSizeGroupMode gtk_size_group_get_mode (GtkSizeGroup *size_group);Определяет текущий режим группового размера. Смотрите
gtk_size_group_set_mode()
.
|
|
Возвращает : |
Текущий режим группового размера. |
void gtk_size_group_set_ignore_hidden
(GtkSizeGroup *size_group,
gboolean ignore_hidden);
Устанавливает должен ли игнорироваться не видимый (unmapped) виджет при расчете размера.
|
|
|
должен ли игнорироваться не видимый (unmapped) виджет при расчете размера |
Начиная с версии 2.8
gboolean gtk_size_group_get_ignore_hidden
(GtkSizeGroup *size_group);
Определяет если не видимый виджет игнорируется при расчете размера.
|
|
Возвращает : |
|
Начиная с версии 2.8
void gtk_size_group_add_widget (GtkSizeGroup *size_group,
GtkWidget *widget);
Добавляет виджеты в GtkSizeGroup. В
будущем, размер виджета будет определяться
как максимум его реквизиции и размеров
других виджетов в групповом размере. К
каким направлениям размера это будет
относиться зависит от режима группового
размера. Смотрите gtk_size_group_set_mode()
.
|
|
|
GtkWidget для добавления |
void gtk_size_group_remove_widget (GtkSizeGroup *size_group,
GtkWidget *widget);
Удаляет виджеты из GtkSizeGroup.
|
GtkSizeGrup |
|
GtkWidget для удаления |
GSList* gtk_size_group_get_widgets (GtkSizeGroup *size_group);Возвращает список виджетов связанных с
size_group
.
|
GtkSizeGrup |
Возвращает : |
GSList виджетов. Списком владеет GTK+ и он не должен модифицироваться. |
Начиная с версии 2.10
ignore-hidden
""ignore-hidden" gboolean : Read / WriteЕсли
TRUE
, не видимый (unmapped) виджет игнорируется при расчете размера группы.Значение по умолчанию: FALSE
Начиная с версии 2.8
Свойство "
mode
""mode" GtkSizeGroupMode : Read / WriteНаправление в котором групповой размер оказывает влияние на размер виджетов входящих в его состав.
Значение по умолчанию: GTK_SIZE_GROUP_HORIZONTAL