Github User Fetcher 1.0.0
C Application with Server and GUI
Loading...
Searching...
No Matches
gtktreelistmodel.h
Go to the documentation of this file.
1/*
2 * Copyright © 2018 Benjamin Otte
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
16 *
17 * Authors: Benjamin Otte <otte@gnome.org>
18 */
19
20#pragma once
21
22
23#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
24#error "Only <gtk/gtk.h> can be included directly."
25#endif
26
27#include <gio/gio.h>
28#include <gtk/gtkwidget.h>
29
30
32
33#define GTK_TYPE_TREE_LIST_MODEL (gtk_tree_list_model_get_type ())
34#define GTK_TYPE_TREE_LIST_ROW (gtk_tree_list_row_get_type ())
35
37G_DECLARE_FINAL_TYPE (GtkTreeListModel, gtk_tree_list_model, GTK, TREE_LIST_MODEL, GObject)
39G_DECLARE_FINAL_TYPE (GtkTreeListRow, gtk_tree_list_row, GTK, TREE_LIST_ROW, GObject)
40
41/**
42 * GtkTreeListModelCreateModelFunc:
43 * @item: (type GObject): The item that is being expanded
44 * @user_data: User data passed when registering the function
45 *
46 * Prototype of the function called to create new child models when
47 * gtk_tree_list_row_set_expanded() is called.
48 *
49 * This function can return %NULL to indicate that @item is guaranteed to be
50 * a leaf node and will never have children. If it does not have children but
51 * may get children later, it should return an empty model that is filled once
52 * children arrive.
53 *
54 * Returns: (nullable) (transfer full): The model tracking the children of
55 * @item or %NULL if @item can never have children
56 */
57typedef GListModel * (* GtkTreeListModelCreateModelFunc) (gpointer item, gpointer user_data);
58
60GtkTreeListModel * gtk_tree_list_model_new (GListModel *root,
61 gboolean passthrough,
62 gboolean autoexpand,
64 gpointer user_data,
65 GDestroyNotify user_destroy);
66
68GListModel * gtk_tree_list_model_get_model (GtkTreeListModel *self);
72void gtk_tree_list_model_set_autoexpand (GtkTreeListModel *self,
73 gboolean autoexpand);
76
78GtkTreeListRow * gtk_tree_list_model_get_child_row (GtkTreeListModel *self,
79 guint position);
81GtkTreeListRow * gtk_tree_list_model_get_row (GtkTreeListModel *self,
82 guint position);
83
85gpointer gtk_tree_list_row_get_item (GtkTreeListRow *self);
87void gtk_tree_list_row_set_expanded (GtkTreeListRow *self,
88 gboolean expanded);
96guint gtk_tree_list_row_get_depth (GtkTreeListRow *self);
98GListModel * gtk_tree_list_row_get_children (GtkTreeListRow *self);
100GtkTreeListRow * gtk_tree_list_row_get_parent (GtkTreeListRow *self);
102GtkTreeListRow * gtk_tree_list_row_get_child_row (GtkTreeListRow *self,
103 guint position);
104
105
107
#define GDK_AVAILABLE_IN_ALL
#define G_END_DECLS
Definition gmacros.h:910
#define G_BEGIN_DECLS
Definition gmacros.h:909
GDK_AVAILABLE_IN_ALL gboolean gtk_tree_list_row_is_expandable(GtkTreeListRow *self)
GDK_AVAILABLE_IN_ALL void gtk_tree_list_model_set_autoexpand(GtkTreeListModel *self, gboolean autoexpand)
GDK_AVAILABLE_IN_ALL GtkTreeListRow * gtk_tree_list_model_get_row(GtkTreeListModel *self, guint position)
GDK_AVAILABLE_IN_ALL GtkTreeListRow * gtk_tree_list_row_get_child_row(GtkTreeListRow *self, guint position)
GDK_AVAILABLE_IN_ALL GtkTreeListRow * gtk_tree_list_model_get_child_row(GtkTreeListModel *self, guint position)
GDK_AVAILABLE_IN_ALL gpointer gtk_tree_list_row_get_item(GtkTreeListRow *self)
GDK_AVAILABLE_IN_ALL GListModel * gtk_tree_list_model_get_model(GtkTreeListModel *self)
GDK_AVAILABLE_IN_ALL gboolean gtk_tree_list_model_get_autoexpand(GtkTreeListModel *self)
GDK_AVAILABLE_IN_ALL GListModel * gtk_tree_list_row_get_children(GtkTreeListRow *self)
GDK_AVAILABLE_IN_ALL guint gtk_tree_list_row_get_depth(GtkTreeListRow *self)
GDK_AVAILABLE_IN_ALL GtkTreeListRow * gtk_tree_list_row_get_parent(GtkTreeListRow *self)
GDK_AVAILABLE_IN_ALL GtkTreeListModel * gtk_tree_list_model_new(GListModel *root, gboolean passthrough, gboolean autoexpand, GtkTreeListModelCreateModelFunc create_func, gpointer user_data, GDestroyNotify user_destroy)
GDK_AVAILABLE_IN_ALL GDK_AVAILABLE_IN_ALL typedef GListModel *(* GtkTreeListModelCreateModelFunc)(gpointer item, gpointer user_data)
GDK_AVAILABLE_IN_ALL guint gtk_tree_list_row_get_position(GtkTreeListRow *self)
GDK_AVAILABLE_IN_ALL gboolean gtk_tree_list_row_get_expanded(GtkTreeListRow *self)
GDK_AVAILABLE_IN_ALL void gtk_tree_list_row_set_expanded(GtkTreeListRow *self, gboolean expanded)
GDK_AVAILABLE_IN_ALL gboolean gtk_tree_list_model_get_passthrough(GtkTreeListModel *self)
#define G_DECLARE_FINAL_TYPE(ModuleObjName, module_obj_name, MODULE, OBJ_NAME, ParentName)
Definition gtype.h:1602
gint gboolean
Definition gtypes.h:56
void * gpointer
Definition gtypes.h:109
void(* GDestroyNotify)(gpointer data)
Definition gtypes.h:140
unsigned int guint
Definition gtypes.h:61