1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
2  *
3  * Copyright (C) 2014-2016 Richard Hughes <richard@hughsie.com>
4  *
5  * SPDX-License-Identifier: LGPL-2.1+
6  */
7 
8 #pragma once
9 
10 #if !defined (__APPSTREAM_GLIB_H_INSIDE__) && !defined (AS_COMPILATION)
11 #error "Only <appstream-glib.h> can be included directly."
12 #endif
13 
14 #include <glib.h>
15 
16 G_BEGIN_DECLS
17 
18 /**
19  * AsIdKind:
20  * @AS_ID_KIND_UNKNOWN:			Type invalid or not known
21  * @AS_ID_KIND_DESKTOP:			A desktop application
22  * @AS_ID_KIND_FONT:			A font add-on
23  * @AS_ID_KIND_CODEC:			A codec add-on
24  * @AS_ID_KIND_INPUT_METHOD:		A input method add-on
25  * @AS_ID_KIND_WEB_APP:			A web appication
26  * @AS_ID_KIND_SOURCE:			A software source
27  * @AS_ID_KIND_ADDON:			An addon, e.g. a plugin
28  * @AS_ID_KIND_FIRMWARE:		A firmware update
29  * @AS_ID_KIND_RUNTIME:			Runtime platform
30  * @AS_ID_KIND_GENERIC:			Generic component
31  *
32  * The component type.
33  **/
34 typedef enum {
35 	AS_ID_KIND_UNKNOWN,		/* Since: 0.1.0 */
36 	AS_ID_KIND_DESKTOP,		/* Since: 0.1.0 */
37 	AS_ID_KIND_FONT,		/* Since: 0.1.0 */
38 	AS_ID_KIND_CODEC,		/* Since: 0.1.0 */
39 	AS_ID_KIND_INPUT_METHOD,	/* Since: 0.1.0 */
40 	AS_ID_KIND_WEB_APP,		/* Since: 0.1.0 */
41 	AS_ID_KIND_SOURCE,		/* Since: 0.1.0 */
42 	AS_ID_KIND_ADDON,		/* Since: 0.1.7 */
43 	AS_ID_KIND_FIRMWARE,		/* Since: 0.3.5 */
44 	AS_ID_KIND_RUNTIME,		/* Since: 0.5.6 */
45 	AS_ID_KIND_GENERIC,		/* Since: 0.5.8 */
46 	/*< private >*/
47 	AS_ID_KIND_LAST
48 } AsIdKind G_GNUC_DEPRECATED_FOR(AsAppKind);
49 
50 /**
51  * AsUrlKind:
52  * @AS_URL_KIND_UNKNOWN:		Type invalid or not known
53  * @AS_URL_KIND_HOMEPAGE:		Application project homepage
54  * @AS_URL_KIND_BUGTRACKER:		Application bugtracker
55  * @AS_URL_KIND_FAQ:			Application FAQ page
56  * @AS_URL_KIND_DONATION:		Application donation page
57  * @AS_URL_KIND_HELP:			Application help manual
58  * @AS_URL_KIND_MISSING:		The package is available, but missing
59  * @AS_URL_KIND_TRANSLATE:		Application translation page
60  * @AS_URL_KIND_DETAILS:		Release details
61  * @AS_URL_KIND_SOURCE:			Link to source code
62  * @AS_URL_KIND_CONTACT:		URL to contact developer on
63  *
64  * The URL type.
65  **/
66 typedef enum {
67 	AS_URL_KIND_UNKNOWN,		/* Since: 0.1.0 */
68 	AS_URL_KIND_HOMEPAGE,		/* Since: 0.1.0 */
69 	AS_URL_KIND_BUGTRACKER,		/* Since: 0.1.1 */
70 	AS_URL_KIND_FAQ,		/* Since: 0.1.1 */
71 	AS_URL_KIND_DONATION,		/* Since: 0.1.1 */
72 	AS_URL_KIND_HELP,		/* Since: 0.1.5 */
73 	AS_URL_KIND_MISSING,		/* Since: 0.2.2 */
74 	AS_URL_KIND_TRANSLATE,		/* Since: 0.6.1 */
75 	AS_URL_KIND_DETAILS,		/* Since: 0.7.15 */
76 	AS_URL_KIND_SOURCE,		/* Since: 0.7.15 */
77 	AS_URL_KIND_CONTACT,		/* Since: 0.7.15 */
78 	/*< private >*/
79 	AS_URL_KIND_LAST
80 } AsUrlKind;
81 
82 /**
83  * AsKudoKind:
84  * @AS_KUDO_KIND_UNKNOWN:		Type invalid or not known
85  * @AS_KUDO_KIND_SEARCH_PROVIDER:	Installs a search provider
86  * @AS_KUDO_KIND_USER_DOCS:		Installs user documentation
87  * @AS_KUDO_KIND_APP_MENU:		Uses the GNOME application menu
88  * @AS_KUDO_KIND_MODERN_TOOLKIT:	Uses a modern toolkit like GTK3 or QT5
89  * @AS_KUDO_KIND_NOTIFICATIONS:		Registers notifications with KDE or GNOME
90  * @AS_KUDO_KIND_HIGH_CONTRAST:		Installs a high contrast icon
91  * @AS_KUDO_KIND_HI_DPI_ICON:		Installs a high DPI icon
92  *
93  * The kudo type.
94  **/
95 typedef enum {
96 	AS_KUDO_KIND_UNKNOWN,		/* Since: 0.2.2 */
97 	AS_KUDO_KIND_SEARCH_PROVIDER,	/* Since: 0.2.2 */
98 	AS_KUDO_KIND_USER_DOCS, 	/* Since: 0.2.2 */
99 	AS_KUDO_KIND_APP_MENU,		/* Since: 0.2.2 */
100 	AS_KUDO_KIND_MODERN_TOOLKIT,	/* Since: 0.2.2 */
101 	AS_KUDO_KIND_NOTIFICATIONS,	/* Since: 0.2.2 */
102 	AS_KUDO_KIND_HIGH_CONTRAST,	/* Since: 0.3.0 */
103 	AS_KUDO_KIND_HI_DPI_ICON,	/* Since: 0.3.1 */
104 	/*< private >*/
105 	AS_KUDO_KIND_LAST
106 } AsKudoKind;
107 
108 /**
109  * AsUrgencyKind:
110  * @AS_URGENCY_KIND_UNKNOWN:		Urgency invalid or not known
111  * @AS_URGENCY_KIND_LOW:		Low urgency release
112  * @AS_URGENCY_KIND_MEDIUM:		Medium urgency release
113  * @AS_URGENCY_KIND_HIGH:		High urgency release
114  * @AS_URGENCY_KIND_CRITICAL:		Critically urgent release
115  *
116  * The urgency of a release.
117  **/
118 typedef enum {
119 	AS_URGENCY_KIND_UNKNOWN,	/* Since: 0.5.1 */
120 	AS_URGENCY_KIND_LOW,		/* Since: 0.5.1 */
121 	AS_URGENCY_KIND_MEDIUM,		/* Since: 0.5.1 */
122 	AS_URGENCY_KIND_HIGH,		/* Since: 0.5.1 */
123 	AS_URGENCY_KIND_CRITICAL,	/* Since: 0.5.1 */
124 	/*< private >*/
125 	AS_URGENCY_KIND_LAST
126 } AsUrgencyKind;
127 
128 /**
129  * AsSizeKind:
130  * @AS_SIZE_KIND_UNKNOWN:		Not known
131  * @AS_SIZE_KIND_INSTALLED:		Installed size
132  * @AS_SIZE_KIND_DOWNLOAD:		Download size
133  *
134  * The release size kind.
135  **/
136 typedef enum {
137 	AS_SIZE_KIND_UNKNOWN,		/* Since: 0.5.2 */
138 	AS_SIZE_KIND_INSTALLED,		/* Since: 0.5.2 */
139 	AS_SIZE_KIND_DOWNLOAD,		/* Since: 0.5.2 */
140 	/*< private >*/
141 	AS_SIZE_KIND_LAST
142 } AsSizeKind;
143 
144 const gchar	*as_size_kind_to_string		(AsSizeKind	 size_kind);
145 AsSizeKind	 as_size_kind_from_string	(const gchar	*size_kind);
146 
147 const gchar	*as_urgency_kind_to_string	(AsUrgencyKind	 urgency_kind);
148 AsUrgencyKind	 as_urgency_kind_from_string	(const gchar	*urgency_kind);
149 
150 const gchar	*as_url_kind_to_string		(AsUrlKind	 url_kind);
151 AsUrlKind	 as_url_kind_from_string	(const gchar	*url_kind);
152 
153 const gchar	*as_kudo_kind_to_string		(AsKudoKind	 kudo_kind);
154 AsKudoKind	 as_kudo_kind_from_string	(const gchar	*kudo_kind);
155 
156 /* deprecated */
157 G_GNUC_BEGIN_IGNORE_DEPRECATIONS
158 const gchar	*as_id_kind_to_string		(AsIdKind	 id_kind)
159 G_DEPRECATED_FOR(as_app_kind_to_string);
160 AsIdKind	 as_id_kind_from_string		(const gchar	*id_kind)
161 G_DEPRECATED_FOR(as_app_kind_from_string);
162 G_GNUC_END_IGNORE_DEPRECATIONS
163 
164 G_END_DECLS
165