gtkcontainer: clarify requirements for implementations

Spent quite a few time investigating why the widgets were
not shown in my GtkContainer implementation.

https://bugzilla.gnome.org/show_bug.cgi?id=758087
This commit is contained in:
Carlos Soriano 2015-11-11 11:37:28 +01:00
parent d0d393174b
commit 81cb57b260

View File

@ -80,6 +80,16 @@
* children in a horizontal row, and a #GtkGrid arranges the widgets it contains
* in a two-dimensional grid.
*
* For implementations of #GtkContainer the virtual method #GtkContainerClass.forall()
* is always required, since it's used for drawing and other internal operations
* on the children.
* If the #GtkContainer implementation expect to have non internal children
* it's needed to implement both #GtkContainerClass.add() and #GtkContainerClass.remove().
* If the GtkContainer implementation has internal children, they should be added
* with gtk_widget_set_parent() on init() and removed with gtk_widget_unparent()
* in the #GtkWidgetClass.destroy() implementation.
* See more about implementing custom widgets at https://wiki.gnome.org/HowDoI/CustomWidgets
*
* # Height for width geometry management
*
* GTK+ uses a height-for-width (and width-for-height) geometry management system.