Prev

Up

Home

GTK+ Reference Manual

Next

Top  |  Description  |  Object Hierarchy  |  Properties

GtkSizeGroup

GtkSizeGroup Группирует виджеты таким образом, чтобы они запрашивали один и тот же размер

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

#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.

Детали

GtkSizeGroup

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;

Режим группового размера определяется направлением в котором групповой размер влияет на запрашиваемые размеры виджетов которыми укомплектован.

GTK_SIZE_GROUP_NONE

Группа не имеет эффекта

GTK_SIZE_GROUP_HORIZONTAL

Группа влияет на горизонтальный размер

GTK_SIZE_GROUP_VERTICAL

Группа влияет на вертикальный размер

GTK_SIZE_GROUP_BOTH

Группа влияет на горизонтальный и вертикальный размер


gtk_size_group_new ()

GtkSizeGroup* gtk_size_group_new            (GtkSizeGroupMode mode);

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

mode :

Режим для нового группового размера.

Возвращает :

Вновь созданный GtkSizeGroup


gtk_size_group_set_mode ()

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).

size_group :

GtkSizeGroup

mode :

Режим устанавливаемый для группового размера.


gtk_size_group_get_mode ()

GtkSizeGroupMode gtk_size_group_get_mode    (GtkSizeGroup *size_group);

Определяет текущий режим группового размера. Смотрите gtk_size_group_set_mode().

size_group :

GtkSizeGroup

Возвращает :

Текущий режим группового размера.


gtk_size_group_set_ignore_hidden ()

void gtk_size_group_set_ignore_hidden (GtkSizeGroup *size_group, gboolean ignore_hidden);

Устанавливает должен ли игнорироваться не видимый (unmapped) виджет при расчете размера.

size_group :

GtkSizeGroup

ignore_hidden :

должен ли игнорироваться не видимый (unmapped) виджет при расчете размера

Начиная с версии 2.8


gtk_size_group_get_ignore_hidden ()

gboolean gtk_size_group_get_ignore_hidden (GtkSizeGroup *size_group);

Определяет если не видимый виджет игнорируется при расчете размера.

size_group :

GtkSizeGroup

Возвращает :

TRUE если не видимый виджет игнорируется.

Начиная с версии 2.8


gtk_size_group_add_widget ()

void gtk_size_group_add_widget (GtkSizeGroup *size_group, GtkWidget *widget);

Добавляет виджеты в GtkSizeGroup. В будущем, размер виджета будет определяться как максимум его реквизиции и размеров других виджетов в групповом размере. К каким направлениям размера это будет относиться зависит от режима группового размера. Смотрите gtk_size_group_set_mode().

size_group :

GtkSizeGroup

widget :

GtkWidget для добавления


gtk_size_group_remove_widget ()

void gtk_size_group_remove_widget (GtkSizeGroup *size_group, GtkWidget *widget);

Удаляет виджеты из GtkSizeGroup.

size_group :

GtkSizeGrup

widget :

GtkWidget для удаления


gtk_size_group_get_widgets ()

GSList*     gtk_size_group_get_widgets      (GtkSizeGroup *size_group);

Возвращает список виджетов связанных с 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