Top |
guint | border-width | Read / Write |
GtkWidget * | child | Write |
GtkResizeMode | resize-mode | Read / Write |
void | add | Run First |
void | check-resize | Run Last |
void | remove | Run First |
void | set-focus-child | Run First |
struct | GtkContainer |
#define | gtk_container_border_width |
#define | gtk_container_children |
GObject ╰── GInitiallyUnowned ╰── GtkObject ╰── GtkWidget ╰── GtkContainer ├── GtkBin ├── GtkBox ├── GtkCList ├── GtkFixed ├── GtkPaned ├── GtkIconView ├── GtkLayout ├── GtkList ├── GtkMenuShell ├── GtkNotebook ├── GtkSocket ├── GtkTable ├── GtkTextView ├── GtkToolbar ├── GtkToolItemGroup ├── GtkToolPalette ├── GtkTree ╰── GtkTreeView
#define GTK_IS_RESIZE_CONTAINER(widget) (GTK_IS_CONTAINER (widget) && ((GtkContainer*) (widget))->resize_mode != GTK_RESIZE_PARENT)
#define GTK_CONTAINER_WARN_INVALID_CHILD_PROPERTY_ID(object, property_id, pspec)
void gtk_container_add (GtkContainer *container
,GtkWidget *widget
);
Adds widget
to container
. Typically used for simple containers
such as GtkWindow, GtkFrame, or GtkButton; for more complicated
layout containers such as GtkBox or GtkTable, this function will
pick default packing parameters that may not be correct. So
consider functions such as gtk_box_pack_start()
and
gtk_table_attach()
as an alternative to gtk_container_add()
in
those cases. A widget may be added to only one container at a time;
you can't place the same widget inside two different containers.
void gtk_container_remove (GtkContainer *container
,GtkWidget *widget
);
Removes widget
from container
. widget
must be inside container
.
Note that container
will own a reference to widget
, and that this
may be the last reference held; so removing a widget from its
container can destroy that widget. If you want to use widget
again, you need to add a reference to it while it's not inside
a container, using g_object_ref()
. If you don't want to use widget
again it's usually more efficient to simply destroy it directly
using gtk_widget_destroy()
since this will remove it from the
container and help break any circular reference count cycles.
void gtk_container_add_with_properties (GtkContainer *container
,GtkWidget *widget
,const gchar *first_prop_name
,...
);
Adds widget
to container
, setting child properties at the same time.
See gtk_container_add()
and gtk_container_child_set()
for more details.
GtkResizeMode
gtk_container_get_resize_mode (GtkContainer *container
);
Returns the resize mode for the container. See
gtk_container_set_resize_mode()
.
void gtk_container_set_resize_mode (GtkContainer *container
,GtkResizeMode resize_mode
);
Sets the resize mode for the container.
The resize mode of a container determines whether a resize request will be passed to the container's parent, queued for later execution or executed immediately.
void gtk_container_foreach (GtkContainer *container
,GtkCallback callback
,gpointer callback_data
);
Invokes callback
on each non-internal child of container
. See
gtk_container_forall()
for details on what constitutes an
"internal" child. Most applications should use
gtk_container_foreach()
, rather than gtk_container_forall()
.
void gtk_container_foreach_full (GtkContainer *container
,GtkCallback callback
,GtkCallbackMarshal marshal
,gpointer callback_data
,GDestroyNotify notify
);
gtk_container_foreach_full
is deprecated and should not be used in newly-written code.
GList *
gtk_container_get_children (GtkContainer *container
);
Returns the container's non-internal children. See
gtk_container_forall()
for details on what constitutes an "internal" child.
void gtk_container_set_reallocate_redraws (GtkContainer *container
,gboolean needs_redraws
);
Sets the reallocate_redraws
flag of the container to the given value.
Containers requesting reallocation redraws get automatically redrawn if any of their children changed allocation.
GtkWidget *
gtk_container_get_focus_child (GtkContainer *container
);
Returns the current focus child widget inside container
. This is not the
currently focused widget. That can be obtained by calling
gtk_window_get_focus()
.
The child widget which will receive the
focus inside container
when the conatiner
is focussed,
or NULL
if none is set.
[transfer none]
Since: 2.14
void gtk_container_set_focus_child (GtkContainer *container
,GtkWidget *child
);
Sets, or unsets if child
is NULL
, the focused child of container
.
This function emits the GtkContainer::set_focus_child signal of
container
. Implementations of GtkContainer can override the
default behaviour by overriding the class closure of this signal.
This is function is mostly meant to be used by widgets. Applications can use
gtk_widget_grab_focus()
to manualy set the focus to a specific widget.
GtkAdjustment *
gtk_container_get_focus_vadjustment (GtkContainer *container
);
Retrieves the vertical focus adjustment for the container. See
gtk_container_set_focus_vadjustment()
.
void gtk_container_set_focus_vadjustment (GtkContainer *container
,GtkAdjustment *adjustment
);
Hooks up an adjustment to focus handling in a container, so when a
child of the container is focused, the adjustment is scrolled to
show that widget. This function sets the vertical alignment. See
gtk_scrolled_window_get_vadjustment()
for a typical way of obtaining
the adjustment and gtk_container_set_focus_hadjustment()
for setting
the horizontal adjustment.
The adjustments have to be in pixel units and in the same coordinate system as the allocation for immediate children of the container.
GtkAdjustment *
gtk_container_get_focus_hadjustment (GtkContainer *container
);
Retrieves the horizontal focus adjustment for the container. See
gtk_container_set_focus_hadjustment()
.
void gtk_container_set_focus_hadjustment (GtkContainer *container
,GtkAdjustment *adjustment
);
Hooks up an adjustment to focus handling in a container, so when a child
of the container is focused, the adjustment is scrolled to show that
widget. This function sets the horizontal alignment.
See gtk_scrolled_window_get_hadjustment()
for a typical way of obtaining
the adjustment and gtk_container_set_focus_vadjustment()
for setting
the vertical adjustment.
The adjustments have to be in pixel units and in the same coordinate system as the allocation for immediate children of the container.
GType
gtk_container_child_type (GtkContainer *container
);
Returns the type of the children supported by the container.
Note that this may return G_TYPE_NONE
to indicate that no more
children can be added, e.g. for a GtkPaned which already has two
children.
void gtk_container_child_get (GtkContainer *container
,GtkWidget *child
,const gchar *first_prop_name
,...
);
Gets the values of one or more child properties for child
and container
.
void gtk_container_child_set (GtkContainer *container
,GtkWidget *child
,const gchar *first_prop_name
,...
);
Sets one or more child properties for child
and container
.
void gtk_container_child_get_property (GtkContainer *container
,GtkWidget *child
,const gchar *property_name
,GValue *value
);
Gets the value of a child property for child
and container
.
void gtk_container_child_set_property (GtkContainer *container
,GtkWidget *child
,const gchar *property_name
,const GValue *value
);
Sets a child property for child
and container
.
void gtk_container_child_get_valist (GtkContainer *container
,GtkWidget *child
,const gchar *first_property_name
,va_list var_args
);
Gets the values of one or more child properties for child
and container
.
void gtk_container_child_set_valist (GtkContainer *container
,GtkWidget *child
,const gchar *first_property_name
,va_list var_args
);
Sets one or more child properties for child
and container
.
void gtk_container_forall (GtkContainer *container
,GtkCallback callback
,gpointer callback_data
);
Invokes callback
on each child of container
, including children
that are considered "internal" (implementation details of the
container). "Internal" children generally weren't added by the user
of the container, but were added by the container implementation
itself. Most applications should use gtk_container_foreach()
,
rather than gtk_container_forall()
.
guint
gtk_container_get_border_width (GtkContainer *container
);
Retrieves the border width of the container. See
gtk_container_set_border_width()
.
void gtk_container_set_border_width (GtkContainer *container
,guint border_width
);
Sets the border width of the container.
The border width of a container is the amount of space to leave
around the outside of the container. The only exception to this is
GtkWindow; because toplevel windows can't leave space outside,
they leave the space inside. The border is added on all sides of
the container. To add space to only one side, one approach is to
create a GtkAlignment widget, call gtk_widget_set_size_request()
to give it a size, and place it on the side of the container as
a spacer.
void gtk_container_propagate_expose (GtkContainer *container
,GtkWidget *child
,GdkEventExpose *event
);
When a container receives an expose event, it must send synthetic
expose events to all children that don't have their own GdkWindows.
This function provides a convenient way of doing this. A container,
when it receives an expose event, calls gtk_container_propagate_expose()
once for each child, passing in the event the container received.
gtk_container_propagate_expose() takes care of deciding whether an expose event needs to be sent to the child, intersecting the event's area with the child area, and sending the event.
In most cases, a container can simply either simply inherit the “expose” implementation from GtkContainer, or, do some drawing and then chain to the ::expose implementation from GtkContainer.
Note that the ::expose-event signal has been replaced by a ::draw
signal in GTK+ 3, and consequently, gtk_container_propagate_expose()
has been replaced by gtk_container_propagate_draw()
.
The GTK+ 3 migration guide
for hints on how to port from ::expose-event to ::draw.
gboolean gtk_container_get_focus_chain (GtkContainer *container
,GList **focusable_widgets
);
Retrieves the focus chain of the container, if one has been
set explicitly. If no focus chain has been explicitly
set, GTK+ computes the focus chain based on the positions
of the children. In that case, GTK+ stores NULL
in
focusable_widgets
and returns FALSE
.
container |
||
focusable_widgets |
location
to store the focus chain of the
container, or |
[element-type GtkWidget][out][transfer container] |
void gtk_container_set_focus_chain (GtkContainer *container
,GList *focusable_widgets
);
Sets a focus chain, overriding the one computed automatically by GTK+.
In principle each widget in the chain should be a descendant of the container, but this is not enforced by this method, since it's allowed to set the focus chain before you pack the widgets, or have a widget in the chain that isn't always packed. The necessary checks are done when the focus chain is actually traversed.
void
gtk_container_unset_focus_chain (GtkContainer *container
);
Removes a focus chain explicitly set with gtk_container_set_focus_chain()
.
GParamSpec * gtk_container_class_find_child_property (GObjectClass *cclass
,const gchar *property_name
);
Finds a child property of a container class by name.
void gtk_container_class_install_child_property (GtkContainerClass *cclass
,guint property_id
,GParamSpec *pspec
);
Installs a child property on a container class.
#define gtk_container_border_width gtk_container_set_border_width
gtk_container_border_width
is deprecated and should not be used in newly-written code.
“border-width”
property “border-width” guint
The width of the empty border outside the containers children.
Owner: GtkContainer
Flags: Read / Write
Allowed values: <= 65535
Default value: 0
“child”
property“child” GtkWidget *
Can be used to add a new child to the container.
Owner: GtkContainer
Flags: Write
“resize-mode”
property“resize-mode” GtkResizeMode
Specify how resize events are handled.
Owner: GtkContainer
Flags: Read / Write
Default value: GTK_RESIZE_PARENT
“add”
signalvoid user_function (GtkContainer *container, GtkWidget *widget, gpointer user_data)
Flags: Run First
“check-resize”
signalvoid user_function (GtkContainer *container, gpointer user_data)
Flags: Run Last
“remove”
signalvoid user_function (GtkContainer *container, GtkWidget *widget, gpointer user_data)
Flags: Run First
“set-focus-child”
signalvoid user_function (GtkContainer *container, GtkWidget *widget, gpointer user_data)
Flags: Run First