[gtk+] gtkcontainer: clarify requirements for implementations



commit 81cb57b260b22ab2e1a0cb2b29c7c09fd3de128c
Author: Carlos Soriano <csoriano gnome org>
Date:   Wed Nov 11 11:37:28 2015 +0100

    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

 gtk/gtkcontainer.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkcontainer.c b/gtk/gtkcontainer.c
index 30a6d1e..9c4b81d 100644
--- a/gtk/gtkcontainer.c
+++ b/gtk/gtkcontainer.c
@@ -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.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]