summaryrefslogtreecommitdiffstats
path: root/libnautilus-extension/nautilus-properties-model.h
blob: 3b60ba9284047b79fe11a2cb29f40014271dc514 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/*
 * Copyright (C) 2022 The GNOME project contributors
 *
 * SPDX-License-Identifier: GPL-2.0-or-later
 */

#pragma once

#if !defined (NAUTILUS_EXTENSION_H) && !defined (NAUTILUS_COMPILATION)
#warning "Only <nautilus-extension.h> should be included directly."
#endif

#include <gio/gio.h>

G_BEGIN_DECLS

#define NAUTILUS_TYPE_PROPERTIES_MODEL (nautilus_properties_model_get_type ())

G_DECLARE_FINAL_TYPE (NautilusPropertiesModel,
                      nautilus_properties_model,
                      NAUTILUS, PROPERTIES_MODEL,
                      GObject)

/**
 * SECTION:nautilus-properties-model
 * @title: NautilusPropertiesModel
 * @short_description: Properties set descriptor model
 *
 * #NautilusPropertiesModel is an model that describes a set of file properties.
 * Extensions can provide #NautilusPropertiesModel objects by registering a
 * #NautilusPropertiesModelProvider and returning them from
 * nautilus_properties_model_provider_get_models(), which will be called by
 * the main application when creating file properties.
 */

/**
 * nautilus_properties_model_new:
 * @title: the user-visible name for the set of properties in this model
 * @model: a #GListModel containing #NautilusPropertyItem objects.
 *
 * Returns: (transfer full): a new #NautilusPropertiesModel
 */
NautilusPropertiesModel *nautilus_properties_model_new (const char *title,
                                                        GListModel *model);

/**
 * nautilus_properties_model_get_title:
 * @self: the properties model
 *
 * Returns: (transfer none): the title of this #NautilusPropertiesModel
 */
const char *nautilus_properties_model_get_title (NautilusPropertiesModel *self);

/**
 * nautilus_properties_model_set_title:
 * @self: the properties model
 * @title: the new title of this #NautilusPropertiesModel
 */
void nautilus_properties_model_set_title (NautilusPropertiesModel *self,
                                          const char              *title);

/**
 * nautilus_properties_model_get_model:
 * @self: the properties model
 *
 * Returns: (transfer none): a #GListModel containing #NautilusPropertiesItem.
 */
GListModel * nautilus_properties_model_get_model (NautilusPropertiesModel *self);


G_END_DECLS