maplistmodel: Add an example to the docs
authorMatthias Clasen <mclasen@redhat.com>
Thu, 19 Dec 2019 02:56:57 +0000 (21:56 -0500)
committerBenjamin Otte <otte@redhat.com>
Tue, 4 Feb 2020 16:51:01 +0000 (17:51 +0100)
gtk/gtkmaplistmodel.c

index d30c3eb7a0b8848727d613926972e0dbd84eea9d..e7e37c8ac0d0b725806ae26c5f35bd6eda660b82 100644 (file)
  * #GtkMapListModel is a list model that takes a list model and maps the items
  * in that model to different items according to a #GtkMapListModelMapFunc.
  *
- * FIXME: Add useful examples here, like turning #GFile into #GFileInfo or #GdkPixmap.
+ * Example: Create a list of #GtkEventControllers
+ * |[
+ *   static gpointer
+ *   map_to_controllers (gpointer widget,
+ *                       gpointer data)
+ *  {
+ *     gpointer result = gtk_widget_observe_controllers (widget);
+ *     g_object_unref (widget);
+ *     return result;
+ *  }
  *
- * #GtkMapListModel will attempt to discard the mapped objects as soon as they are no
- * longer needed and recreate them if necessary.
+ *   widgets = gtk_widget_observe_children (widget);
+ *
+ *   controllers = gtk_map_list_model_new (G_TYPE_LIST_MODEL,
+ *                                         widgets,
+ *                                         map_to_controllers,
+ *                                         NULL, NULL);
+ *
+ *   model = gtk_flatten_list_model_new (GTK_TYPE_EVENT_CONTROLLER,
+ *                                       controllers);
+ * ]|
+ *
+ * #GtkMapListModel will attempt to discard the mapped objects as soon as
+ * they are no longer needed and recreate them if necessary.
  */
 
 enum {