=head1 NAME

Gtk2::Container

=head1 HIERARCHY

  Glib::Object
  +----Gtk2::Object
        +----Gtk2::Widget
              +----Gtk2::Container

=head1 INTERFACES

  Gtk2::Atk::ImplementorIface


=head1 METHODS

=head2 $container-E<gt>B<add> ($widget)

=over

=over

=item * $widget (Gtk2::Widget) 

=back

=back

=head2 $container-E<gt>B<add_with_properties> ($widget, ...)

=over

=over

=item * $widget (Gtk2::Widget) 

=item * ... (list) list of property name/value pairs

=back




=back

=head2 integer = $container-E<gt>B<get_border_width> 

=over

=back

=head2 $container-E<gt>B<set_border_width> ($border_width)

=over

=over

=item * $border_width (integer) 

=back

=back

=head2 $container-E<gt>B<check_resize> 

=over

=back

=head2 list = $container-E<gt>B<child_get> ($child, ...)

=over

=over

=item * $child (Gtk2::Widget) 

=item * ... (list) list of property names

=back

Returns a list of properties of the child.

=back

=head2 list = $container-E<gt>B<child_get_property> ($child, ...)

=over

=over

=item * $child (Gtk2::Widget) 

=item * ... (list) 

=back

Alias for child_get

=back

=head2 $container-E<gt>B<child_set> ($child, ...)

=over

=over

=item * $child (Gtk2::Widget) 

=item * ... (list) list of property name/value pairs

=back

Sets a list of properties on the child.

=back

=head2 $container-E<gt>B<child_set_property> ($child, ...)

=over

=over

=item * $child (Gtk2::Widget) 

=item * ... (list) 

=back

Alias for child_set

=back

=head2 string = $container-E<gt>B<child_type> 

=over

=back

=head2 list = $container-E<gt>B<get_children> 

=over

Returns a list of Gtk2::Widget's, the children of the container.

=back

=head2 list = $container-E<gt>B<get_focus_chain> 

=over

Returns a list of Gtk2::Widgets, the focus chain.

=back

=head2 $container-E<gt>B<set_focus_chain> (...)

=over

=over

=item * ... (list) of Gtk2::Widget's, the focus chain

=back

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.

=back

=head2 $container-E<gt>B<set_focus_child> ($child)

=over

=over

=item * $child (Gtk2::Widget) 

=back

=back

=head2 adjustment or undef = $container-E<gt>B<get_focus_hadjustment> 

=over

=back

=head2 $container-E<gt>B<set_focus_hadjustment> ($adjustment)

=over

=over

=item * $adjustment (Gtk2::Adjustment or undef) 

=back

=back

=head2 adjustment or undef = $container-E<gt>B<get_focus_vadjustment> 

=over

=back

=head2 $container-E<gt>B<set_focus_vadjustment> ($adjustment)

=over

=over

=item * $adjustment (Gtk2::Adjustment or undef) 

=back

=back

=head2 $container-E<gt>B<foreach> ($callback, $callback_data=undef)

=over

=over

=item * $callback (scalar) 

=item * $callback_data (scalar) 

=back

=back

=head2 $container-E<gt>B<propagate_expose> ($child, $event)

=over

=over

=item * $child (Gtk2::Widget) 

=item * $event (Gtk2::Gdk::Event) 

=back

=back

=head2 $container-E<gt>B<set_reallocate_redraws> ($needs_redraws)

=over

=over

=item * $needs_redraws (boolean) 

=back

=back

=head2 $container-E<gt>B<remove> ($widget)

=over

=over

=item * $widget (Gtk2::Widget) 

=back

=back

=head2 $container-E<gt>B<resize_children> 

=over

=back

=head2 resizemode = $container-E<gt>B<get_resize_mode> 

=over

=back

=head2 $container-E<gt>B<set_resize_mode> ($resize_mode)

=over

=over

=item * $resize_mode (Gtk2::ResizeMode) 

=back

=back

=head2 $container-E<gt>B<unset_focus_chain> 

=over

=back


=head1 PROPERTIES

=over

=item 'border-width' (Glib::UInt : readable / writable)

The width of the empty border outside the containers children

=item 'child' (Gtk2::Widget : writable)

Can be used to add a new child to the container

=item 'resize-mode' (Gtk2::ResizeMode : readable / writable)

Specify how resize events are handled

=back


=head1 SIGNALS

=over

=item B<add> (Gtk2::Container, Gtk2::Widget)

=item B<remove> (Gtk2::Container, Gtk2::Widget)

=item B<check-resize> (Gtk2::Container)

=item B<set-focus-child> (Gtk2::Container, Gtk2::Widget)

=back


=head1 ENUMS AND FLAGS

=head2 flags Gtk2::Gdk::EventMask

=over

=item * 'exposure-mask' / 'GDK_EXPOSURE_MASK'

=item * 'pointer-motion-mask' / 'GDK_POINTER_MOTION_MASK'

=item * 'pointer-motion-hint-mask' / 'GDK_POINTER_MOTION_HINT_MASK'

=item * 'button-motion-mask' / 'GDK_BUTTON_MOTION_MASK'

=item * 'button1-motion-mask' / 'GDK_BUTTON1_MOTION_MASK'

=item * 'button2-motion-mask' / 'GDK_BUTTON2_MOTION_MASK'

=item * 'button3-motion-mask' / 'GDK_BUTTON3_MOTION_MASK'

=item * 'button-press-mask' / 'GDK_BUTTON_PRESS_MASK'

=item * 'button-release-mask' / 'GDK_BUTTON_RELEASE_MASK'

=item * 'key-press-mask' / 'GDK_KEY_PRESS_MASK'

=item * 'key-release-mask' / 'GDK_KEY_RELEASE_MASK'

=item * 'enter-notify-mask' / 'GDK_ENTER_NOTIFY_MASK'

=item * 'leave-notify-mask' / 'GDK_LEAVE_NOTIFY_MASK'

=item * 'focus-change-mask' / 'GDK_FOCUS_CHANGE_MASK'

=item * 'structure-mask' / 'GDK_STRUCTURE_MASK'

=item * 'property-change-mask' / 'GDK_PROPERTY_CHANGE_MASK'

=item * 'visibility-notify-mask' / 'GDK_VISIBILITY_NOTIFY_MASK'

=item * 'proximity-in-mask' / 'GDK_PROXIMITY_IN_MASK'

=item * 'proximity-out-mask' / 'GDK_PROXIMITY_OUT_MASK'

=item * 'substructure-mask' / 'GDK_SUBSTRUCTURE_MASK'

=item * 'scroll-mask' / 'GDK_SCROLL_MASK'

=item * 'all-events-mask' / 'GDK_ALL_EVENTS_MASK'

=back



=head1 SEE ALSO

L<Gtk2>, L<Glib::Object>, L<Gtk2::Object>, L<Gtk2::Widget>

=head1 COPYRIGHT

Copyright (C) 2003-2005 by the gtk2-perl team.

This software is licensed under the LGPL.  See L<Gtk2> for a full notice.


=cut

