summaryrefslogtreecommitdiff
path: root/gtk/gtkmaplistmodel.h
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2018-09-11 01:28:19 +0200
committerBenjamin Otte <otte@redhat.com>2018-09-16 18:50:17 +0200
commitb6acc31d4489dc81f3a5b140a96be28ee1d41276 (patch)
tree718f2f2fc33503dcfb3ef4885f1ec8136d999435 /gtk/gtkmaplistmodel.h
parent6d0fe46cba6966ec1b905513e1c283e25d33571f (diff)
downloadgtk+-b6acc31d4489dc81f3a5b140a96be28ee1d41276.tar.gz
GtkMapListModel: add
Diffstat (limited to 'gtk/gtkmaplistmodel.h')
-rw-r--r--gtk/gtkmaplistmodel.h72
1 files changed, 72 insertions, 0 deletions
diff --git a/gtk/gtkmaplistmodel.h b/gtk/gtkmaplistmodel.h
new file mode 100644
index 0000000000..185c8ed0da
--- /dev/null
+++ b/gtk/gtkmaplistmodel.h
@@ -0,0 +1,72 @@
+/*
+ * Copyright © 2018 Benjamin Otte
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Authors: Benjamin Otte <otte@gnome.org>
+ */
+
+#ifndef __GTK_MAP_LIST_MODEL_H__
+#define __GTK_MAP_LIST_MODEL_H__
+
+
+#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
+#include <gio/gio.h>
+#include <gtk/gtkwidget.h>
+
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_MAP_LIST_MODEL (gtk_map_list_model_get_type ())
+
+GDK_AVAILABLE_IN_ALL
+G_DECLARE_FINAL_TYPE (GtkMapListModel, gtk_map_list_model, GTK, MAP_LIST_MODEL, GObject)
+
+/**
+ * GtkMapListModelMapFunc:
+ * @item: (transfer full): The item to map
+ * @data: user data
+ *
+ * User function that is called to map an @item of the original model.
+ *
+ * Returns: (transfer full): The item to map to. This function may not return %NULL
+ */
+typedef gpointer (* GtkMapListModelMapFunc) (gpointer item, gpointer data);
+
+GDK_AVAILABLE_IN_ALL
+GtkMapListModel * gtk_map_list_model_new (GType item_type,
+ GListModel *model,
+ GtkMapListModelMapFunc map_func,
+ gpointer user_data,
+ GDestroyNotify user_destroy);
+
+GDK_AVAILABLE_IN_ALL
+void gtk_map_list_model_set_map_func (GtkMapListModel *self,
+ GtkMapListModelMapFunc map_func,
+ gpointer user_data,
+ GDestroyNotify user_destroy);
+GDK_AVAILABLE_IN_ALL
+void gtk_map_list_model_set_model (GtkMapListModel *self,
+ GListModel *model);
+GDK_AVAILABLE_IN_ALL
+GListModel * gtk_map_list_model_get_model (GtkMapListModel *self);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_map_list_model_has_map (GtkMapListModel *self);
+
+G_END_DECLS
+
+#endif /* __GTK_MAP_LIST_MODEL_H__ */