1#include "resource-holder.h"
2
3struct _ResourceHolder {
4 GObject instance;
5
6 char *name;
7 char *path;
8 int count;
9 gsize size;
10 GListModel *children;
11 ResourceHolder *parent;
12};
13
14G_DEFINE_TYPE (ResourceHolder, resource_holder, G_TYPE_OBJECT)
15
16static void
17resource_holder_init (ResourceHolder *holder)
18{
19}
20
21static void
22resource_holder_finalize (GObject *object)
23{
24 ResourceHolder *holder = RESOURCE_HOLDER (ptr: object);
25
26 g_free (mem: holder->name);
27 g_free (mem: holder->path);
28 g_clear_object (&holder->children);
29
30 G_OBJECT_CLASS (resource_holder_parent_class)->finalize (object);
31}
32
33static void
34resource_holder_class_init (ResourceHolderClass *class)
35{
36 GObjectClass *object_class = G_OBJECT_CLASS (class);
37
38 object_class->finalize = resource_holder_finalize;
39}
40
41ResourceHolder *
42resource_holder_new (const char *name,
43 const char *path,
44 int count,
45 gsize size,
46 GListModel *children)
47{
48 ResourceHolder *holder;
49
50 holder = g_object_new (RESOURCE_TYPE_HOLDER, NULL);
51
52 holder->name = g_strdup (str: name);
53 holder->path = g_strdup (str: path);
54 holder->count = count;
55 holder->size = size;
56 g_set_object (&holder->children, children);
57
58 if (children)
59 {
60 int i;
61 for (i = 0; i < g_list_model_get_n_items (list: children); i++)
62 {
63 ResourceHolder *child = g_list_model_get_item (list: children, position: i);
64 child->parent = holder;
65 g_object_unref (object: child);
66 }
67 }
68
69 return holder;
70}
71
72const char *
73resource_holder_get_name (ResourceHolder *holder)
74{
75 return holder->name;
76}
77
78const char *
79resource_holder_get_path (ResourceHolder *holder)
80{
81 return holder->path;
82}
83
84int
85resource_holder_get_count (ResourceHolder *holder)
86{
87 return holder->count;
88}
89
90gsize
91resource_holder_get_size (ResourceHolder *holder)
92{
93 return holder->size;
94}
95
96GListModel *
97resource_holder_get_children (ResourceHolder *holder)
98{
99 return holder->children;
100}
101
102ResourceHolder *
103resource_holder_get_parent (ResourceHolder *holder)
104{
105 return holder->parent;
106}
107

source code of gtk/gtk/inspector/resource-holder.c