diff options
author | Benjamin Otte <otte@redhat.com> | 2018-09-11 01:28:19 +0200 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2018-09-16 18:50:17 +0200 |
commit | b6acc31d4489dc81f3a5b140a96be28ee1d41276 (patch) | |
tree | 718f2f2fc33503dcfb3ef4885f1ec8136d999435 /gtk/gtkmaplistmodel.h | |
parent | 6d0fe46cba6966ec1b905513e1c283e25d33571f (diff) | |
download | gtk+-b6acc31d4489dc81f3a5b140a96be28ee1d41276.tar.gz |
GtkMapListModel: add
Diffstat (limited to 'gtk/gtkmaplistmodel.h')
-rw-r--r-- | gtk/gtkmaplistmodel.h | 72 |
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__ */ |