/** * gtk_size_group_remove_widget: * @size_group: a #GtkSizeGroup * @widget: the #GtkWidget to remove * * Removes a widget from a #GtkSizeGroup. **/ void gtk_size_group_remove_widget (GtkSizeGroup *size_group, GtkWidget *widget) { GtkSizeGroupPrivate *priv; g_return_if_fail (GTK_IS_SIZE_GROUP (size_group)); g_return_if_fail (GTK_IS_WIDGET (widget)); priv = size_group->priv; g_return_if_fail (g_slist_find (priv->widgets, widget)); g_signal_handlers_disconnect_by_func (widget, gtk_size_group_widget_destroyed, size_group); _gtk_widget_remove_sizegroup (widget, size_group); priv->widgets = g_slist_remove (priv->widgets, widget); queue_resize_on_group (size_group); gtk_widget_queue_resize (widget); g_object_unref (size_group); }
/** * gtk_size_group_get_ignore_hidden: * @size_group: a #GtkSizeGroup * * Returns if invisible widgets are ignored when calculating the size. * * Returns: %TRUE if invisible widgets are ignored. * * Since: 2.8 */ gboolean gtk_size_group_get_ignore_hidden (GtkSizeGroup *size_group) { g_return_val_if_fail (GTK_IS_SIZE_GROUP (size_group), FALSE); return size_group->priv->ignore_hidden; }
/** * gtk_size_group_add_widget: * @size_group: a #GtkSizeGroup * @widget: the #GtkWidget to add * * Adds a widget to a #GtkSizeGroup. In the future, the requisition * of the widget will be determined as the maximum of its requisition * and the requisition of the other widgets in the size group. * Whether this applies horizontally, vertically, or in both directions * depends on the mode of the size group. See gtk_size_group_set_mode(). * * When the widget is destroyed or no longer referenced elsewhere, it will * be removed from the size group. */ void gtk_size_group_add_widget (GtkSizeGroup *size_group, GtkWidget *widget) { GtkSizeGroupPrivate *priv; GSList *groups; g_return_if_fail (GTK_IS_SIZE_GROUP (size_group)); g_return_if_fail (GTK_IS_WIDGET (widget)); priv = size_group->priv; groups = _gtk_widget_get_sizegroups (widget); if (!g_slist_find (groups, size_group)) { _gtk_widget_add_sizegroup (widget, size_group); priv->widgets = g_slist_prepend (priv->widgets, widget); g_signal_connect (widget, "destroy", G_CALLBACK (gtk_size_group_widget_destroyed), size_group); g_object_ref (size_group); } queue_resize_on_group (size_group); }
/** * gtk_size_group_get_mode: * @size_group: a #GtkSizeGroup * * Gets the current mode of the size group. See gtk_size_group_set_mode(). * * Return value: the current mode of the size group. **/ GtkSizeGroupMode gtk_size_group_get_mode (GtkSizeGroup *size_group) { g_return_val_if_fail (GTK_IS_SIZE_GROUP (size_group), GTK_SIZE_GROUP_BOTH); return size_group->priv->mode; }
static void gb_preferences_switch_set_size_group (GbPreferencesSwitch *self, GtkSizeGroup *group) { g_return_if_fail (GB_IS_PREFERENCES_SWITCH (self)); g_return_if_fail (!group || GTK_IS_SIZE_GROUP (group)); if (group != NULL) gtk_size_group_add_widget (group, GTK_WIDGET (self->controls_box)); }
/** * he_check_button_add_value_size_group: * @button: a #HeCheckButton * @size_group: A #GtkSizeGroup for the button value (secondary label) * * Adds the value label of @button to @size_group. * * Since: 2.2 **/ void he_check_button_add_value_size_group (HeCheckButton *button, GtkSizeGroup *size_group) { HeCheckButtonPrivate *priv; g_return_if_fail (HE_IS_CHECK_BUTTON (button)); g_return_if_fail (GTK_IS_SIZE_GROUP (size_group)); priv = HE_CHECK_BUTTON_GET_PRIVATE (button); gtk_size_group_add_widget (size_group, GTK_WIDGET (priv->value)); }
/** * gtk_size_group_set_ignore_hidden: * @size_group: a #GtkSizeGroup * @ignore_hidden: whether unmapped widgets should be ignored * when calculating the size * * Sets whether unmapped widgets should be ignored when * calculating the size. * * Since: 2.8 */ void gtk_size_group_set_ignore_hidden (GtkSizeGroup *size_group, gboolean ignore_hidden) { g_return_if_fail (GTK_IS_SIZE_GROUP (size_group)); ignore_hidden = ignore_hidden != FALSE; if (size_group->ignore_hidden != ignore_hidden) { size_group->ignore_hidden = ignore_hidden; g_object_notify (G_OBJECT (size_group), "ignore-hidden"); } }
void gvc_combo_box_set_size_group (GvcComboBox *combobox, GtkSizeGroup *group, gboolean symmetric) { g_return_if_fail (GVC_IS_COMBO_BOX (combobox)); g_return_if_fail (GTK_IS_SIZE_GROUP (group)); if (group != NULL) { gtk_size_group_add_widget (group, combobox->priv->start_box); if (symmetric == TRUE) gtk_size_group_add_widget (group, combobox->priv->end_box); } gtk_widget_queue_draw (GTK_WIDGET (combobox)); }
static GList * list_sizegroups (GladeWidget * gwidget) { GladeProject *project = glade_widget_get_project (gwidget); GList *groups = NULL; const GList *list; for (list = glade_project_get_objects (project); list; list = list->next) { GladeWidget *iter = glade_widget_get_from_gobject (list->data); if (GTK_IS_SIZE_GROUP (glade_widget_get_object (iter))) groups = g_list_prepend (groups, iter); } return g_list_reverse (groups); }
GtkSizeGroup * gtk_utils_align_left_widgets (GtkContainer *container, GtkSizeGroup *size_group) { g_return_val_if_fail (GTK_IS_CONTAINER (container), NULL); g_return_val_if_fail (!size_group || GTK_IS_SIZE_GROUP (size_group), NULL); if (!size_group) size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); gtk_container_foreach (container, (GtkCallback) do_align_left_widgets, size_group); return size_group; }
/* * _gdaui_provider_spec_editor_add_to_size_group * @spec: a #GdauiProviderSpecEditor widget */ void _gdaui_provider_spec_editor_add_to_size_group (GdauiProviderSpecEditor *spec, GtkSizeGroup *size_group, GdauiBasicFormPart part) { g_return_if_fail (GDAUI_IS_PROVIDER_SPEC_EDITOR (spec)); g_return_if_fail (GTK_IS_SIZE_GROUP (size_group)); g_return_if_fail (! ((spec->priv->labels_size_group && (part == GDAUI_BASIC_FORM_LABELS)) || (spec->priv->entries_size_group && (part == GDAUI_BASIC_FORM_ENTRIES)))); if (part == GDAUI_BASIC_FORM_LABELS) spec->priv->labels_size_group = g_object_ref (size_group); else spec->priv->entries_size_group = g_object_ref (size_group); gdaui_basic_form_add_to_size_group (GDAUI_BASIC_FORM (spec->priv->form), size_group, part); }
/* * _gdaui_provider_auth_editor_add_to_size_group * @auth: a #GdauiProviderAuthEditor widget */ void _gdaui_provider_auth_editor_add_to_size_group (GdauiProviderAuthEditor *auth, GtkSizeGroup *size_group, GdauiBasicFormPart part) { g_return_if_fail (GDAUI_IS_PROVIDER_AUTH_EDITOR (auth)); g_return_if_fail (GTK_IS_SIZE_GROUP (size_group)); g_return_if_fail (! ((auth->priv->labels_size_group && (part == GDAUI_BASIC_FORM_LABELS)) || (auth->priv->entries_size_group && (part == GDAUI_BASIC_FORM_ENTRIES)))); if (part == GDAUI_BASIC_FORM_LABELS) auth->priv->labels_size_group = g_object_ref (size_group); else auth->priv->entries_size_group = g_object_ref (size_group); if (auth->priv->auth_widget) gdaui_basic_form_add_to_size_group (GDAUI_BASIC_FORM (auth->priv->auth_widget), size_group, part); }
/** * gtk_size_group_set_mode: * @size_group: a #GtkSizeGroup * @mode: the mode to set for the size group. * * Sets the #GtkSizeGroupMode of the size group. The mode of the size * group determines whether the widgets in the size group should * all have the same horizontal requisition (%GTK_SIZE_GROUP_MODE_HORIZONTAL) * all have the same vertical requisition (%GTK_SIZE_GROUP_MODE_VERTICAL), * or should all have the same requisition in both directions * (%GTK_SIZE_GROUP_MODE_BOTH). **/ void gtk_size_group_set_mode (GtkSizeGroup *size_group, GtkSizeGroupMode mode) { g_return_if_fail (GTK_IS_SIZE_GROUP (size_group)); if (size_group->mode != mode) { if (size_group->mode != GTK_SIZE_GROUP_NONE) queue_resize_on_group (size_group); size_group->mode = mode; if (size_group->mode != GTK_SIZE_GROUP_NONE) queue_resize_on_group (size_group); g_object_notify (G_OBJECT (size_group), "mode"); } }
void gvc_balance_bar_set_size_group (GvcBalanceBar *bar, GtkSizeGroup *group, gboolean symmetric) { g_return_if_fail (GVC_IS_BALANCE_BAR (bar)); g_return_if_fail (GTK_IS_SIZE_GROUP (group)); bar->priv->size_group = group; bar->priv->symmetric = symmetric; if (bar->priv->size_group != NULL) { gtk_size_group_add_widget (bar->priv->size_group, bar->priv->start_box); if (bar->priv->symmetric) gtk_size_group_add_widget (bar->priv->size_group, bar->priv->end_box); } gtk_widget_queue_draw (GTK_WIDGET (bar)); }
/** * gtk_size_group_remove_widget: * @size_group: a #GtkSizeGrup * @widget: the #GtkWidget to remove * * Removes a widget from a #GtkSizeGroup. **/ void gtk_size_group_remove_widget (GtkSizeGroup *size_group, GtkWidget *widget) { GSList *groups; g_return_if_fail (GTK_IS_SIZE_GROUP (size_group)); g_return_if_fail (GTK_IS_WIDGET (widget)); g_return_if_fail (g_slist_find (size_group->widgets, widget)); g_signal_handlers_disconnect_by_func (widget, gtk_size_group_widget_destroyed, size_group); groups = get_size_groups (widget); groups = g_slist_remove (groups, size_group); set_size_groups (widget, groups); size_group->widgets = g_slist_remove (size_group->widgets, widget); queue_resize_on_group (size_group); gtk_widget_queue_resize (widget); g_object_unref (size_group); }