2001-05-18 18:28:52 +00:00
|
|
|
<!-- ##### SECTION Title ##### -->
|
|
|
|
GtkSizeGroup
|
|
|
|
|
|
|
|
<!-- ##### SECTION Short_Description ##### -->
|
|
|
|
Grouping widgets so they request the same size
|
|
|
|
|
|
|
|
<!-- ##### SECTION Long_Description ##### -->
|
|
|
|
<para>
|
|
|
|
#GtkSizeGroup provides a mechanism for grouping a number of widgets
|
|
|
|
together so they all request the same amount of space. This is
|
|
|
|
typically useful when you want a column of widgets to have the same
|
|
|
|
size, but you can't use a #GtkTable widget.
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
In detail, the size requested for each widget in a #GtkSizeGroup is
|
|
|
|
the maximum of the sizes that would have been requested for each
|
|
|
|
widget in the size group if they were not in the size group. The mode
|
|
|
|
of the size group (see gtk_size_group_set_mode()) determines whether
|
|
|
|
this applies to the horizontal size, the vertical size, or both sizes.
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
Note that size groups only affect the amount of space requested, not
|
|
|
|
the size that the widgets finally receive. If you want the widgets in
|
|
|
|
a #GtkSizeGroup to actually be the same size, you need to pack them in
|
|
|
|
such a way that they get the size they request and not more. For
|
|
|
|
example, if you are packing your widgets into a table, you would not
|
|
|
|
include the %GTK_FILL flag.
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
#GtkSizeGroup objects are referenced by each widget in the size group,
|
|
|
|
so once you have added all widgets to a #GtkSizeGroup, you can drop
|
|
|
|
the initial reference to the size group with g_object_unref(). If the
|
|
|
|
widgets in the size group are subsequently destroyed, then they will
|
|
|
|
be removed from the size group and drop their references on the size
|
|
|
|
group; when all widgets have been removed, the size group will be
|
|
|
|
freed.
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
Widgets can be part of multiple size groups; GTK+ will compute the
|
|
|
|
horizontal size of a widget from the horizontal requisition of all
|
|
|
|
widgets that can be reached from the widget by a chain of size groups
|
|
|
|
of type %GTK_SIZE_GROUP_HORIZONTAL or %GTK_SIZE_GROUP_BOTH, and the
|
|
|
|
vertical size from the vertical requisition of all widgets that can be
|
|
|
|
reached from the widget by a chain of size groups of type
|
|
|
|
%GTK_SIZE_GROUP_VERTICAL or %GTK_SIZE_GROUP_BOTH.
|
|
|
|
</para>
|
2007-07-01 23:38:07 +00:00
|
|
|
<refsect2 id="GtkSizeGroup-BUILDER-UI">
|
|
|
|
<title>GtkSizeGroup as GtkBuildable</title>
|
|
|
|
<para>
|
|
|
|
Size groups can be specified in a UI definition by placing an
|
|
|
|
<object> element with <literal>class="GtkSizeGroup"</literal>
|
|
|
|
somewhere in the UI definition. The widgets that belong to the
|
|
|
|
size group are specified by a <widgets> element that may
|
|
|
|
contain multiple <widget> elements, one for each member
|
|
|
|
of the size group. The name attribute gives the id of the widget.
|
|
|
|
</para>
|
|
|
|
<example>
|
|
|
|
<title>A UI definition fragment with GtkSizeGroup</title>
|
|
|
|
<programlisting><![CDATA[
|
|
|
|
<object class="GtkSizeGroup">
|
|
|
|
<property name="mode">GTK_SIZE_GROUP_HORIZONTAL</property>
|
|
|
|
<widgets>
|
|
|
|
<widget name="radio1"/>
|
|
|
|
<widget name="radio2"/>
|
|
|
|
</widgets>
|
|
|
|
</object>
|
|
|
|
]]></programlisting>
|
|
|
|
</example>
|
|
|
|
</refsect2>
|
2001-05-18 18:28:52 +00:00
|
|
|
|
|
|
|
<!-- ##### SECTION See_Also ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
2005-06-20 22:06:27 +00:00
|
|
|
<!-- ##### SECTION Stability_Level ##### -->
|
|
|
|
|
|
|
|
|
2010-05-08 05:18:53 +00:00
|
|
|
<!-- ##### SECTION Image ##### -->
|
|
|
|
|
|
|
|
|
2001-10-13 05:52:14 +00:00
|
|
|
<!-- ##### STRUCT GtkSizeGroup ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
2005-06-20 22:06:27 +00:00
|
|
|
<!-- ##### ARG GtkSizeGroup:ignore-hidden ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
2004-07-20 02:26:06 +00:00
|
|
|
<!-- ##### ARG GtkSizeGroup:mode ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
2001-05-18 18:28:52 +00:00
|
|
|
<!-- ##### ENUM GtkSizeGroupMode ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@GTK_SIZE_GROUP_NONE:
|
|
|
|
@GTK_SIZE_GROUP_HORIZONTAL:
|
|
|
|
@GTK_SIZE_GROUP_VERTICAL:
|
|
|
|
@GTK_SIZE_GROUP_BOTH:
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gtk_size_group_new ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@mode:
|
|
|
|
@Returns:
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gtk_size_group_set_mode ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@size_group:
|
2001-06-15 18:25:42 +00:00
|
|
|
@mode:
|
2001-05-18 18:28:52 +00:00
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gtk_size_group_get_mode ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@size_group:
|
|
|
|
@Returns:
|
|
|
|
|
|
|
|
|
2005-06-20 22:06:27 +00:00
|
|
|
<!-- ##### FUNCTION gtk_size_group_set_ignore_hidden ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@size_group:
|
|
|
|
@ignore_hidden:
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gtk_size_group_get_ignore_hidden ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@size_group:
|
|
|
|
@Returns:
|
|
|
|
|
|
|
|
|
2001-05-18 18:28:52 +00:00
|
|
|
<!-- ##### FUNCTION gtk_size_group_add_widget ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@size_group:
|
|
|
|
@widget:
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gtk_size_group_remove_widget ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@size_group:
|
|
|
|
@widget:
|
|
|
|
|
|
|
|
|
2006-05-05 16:21:19 +00:00
|
|
|
<!-- ##### FUNCTION gtk_size_group_get_widgets ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@size_group:
|
|
|
|
@Returns:
|
|
|
|
|
|
|
|
|