1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- 2 * 3 * Copyright (C) 2014-2017 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 * AsTag: 20 * @AS_TAG_UNKNOWN: Type invalid or not known 21 * @AS_TAG_COMPONENTS: `components` 22 * @AS_TAG_COMPONENT: `component` 23 * @AS_TAG_ID: `id` 24 * @AS_TAG_PKGNAME: `pkgname` 25 * @AS_TAG_NAME: `name` 26 * @AS_TAG_SUMMARY: `summary` 27 * @AS_TAG_DESCRIPTION: `description` 28 * @AS_TAG_URL: `url` 29 * @AS_TAG_ICON: `icon` 30 * @AS_TAG_CATEGORIES: `categories` 31 * @AS_TAG_CATEGORY: `category` 32 * @AS_TAG_KEYWORDS: `keywords` 33 * @AS_TAG_KEYWORD: `keyword` 34 * @AS_TAG_MIMETYPES: `mimetypes` 35 * @AS_TAG_MIMETYPE: `mimetype` 36 * @AS_TAG_PROJECT_GROUP: `project_group` 37 * @AS_TAG_PROJECT_LICENSE: `project_license` 38 * @AS_TAG_SCREENSHOT: `screenshot` 39 * @AS_TAG_SCREENSHOTS: `screenshots` 40 * @AS_TAG_UPDATE_CONTACT: `update_contact` 41 * @AS_TAG_IMAGE: `image` 42 * @AS_TAG_COMPULSORY_FOR_DESKTOP: `compulsory_for_desktop` 43 * @AS_TAG_PRIORITY: `priority` 44 * @AS_TAG_CAPTION: `caption` 45 * @AS_TAG_LANGUAGES: `languages` 46 * @AS_TAG_LANG: `lang` 47 * @AS_TAG_METADATA: `metadata` 48 * @AS_TAG_VALUE: `value` 49 * @AS_TAG_RELEASES: `releases` 50 * @AS_TAG_RELEASE: `release` 51 * @AS_TAG_ARCHITECTURES: `architectures` 52 * @AS_TAG_ARCH: `arch` 53 * @AS_TAG_METADATA_LICENSE: `metadata_license` 54 * @AS_TAG_PROVIDES: `provides` 55 * @AS_TAG_EXTENDS: `extends` 56 * @AS_TAG_DEVELOPER_NAME: `developer_name` 57 * @AS_TAG_KUDOS: `kudos` 58 * @AS_TAG_KUDO: `kudo` 59 * @AS_TAG_SOURCE_PKGNAME: `source_pkgname` 60 * @AS_TAG_VETOS: `vetos` 61 * @AS_TAG_VETO: `veto` 62 * @AS_TAG_BUNDLE: `bundle` 63 * @AS_TAG_PERMISSIONS: `permissions` 64 * @AS_TAG_PERMISSION: `permission` 65 * @AS_TAG_LOCATION: `location` 66 * @AS_TAG_CHECKSUM: `checksum` 67 * @AS_TAG_SIZE: `size` 68 * @AS_TAG_TRANSLATION: `translation` 69 * @AS_TAG_CONTENT_RATING: `content_rating` 70 * @AS_TAG_CONTENT_ATTRIBUTE: `content_attribute` 71 * @AS_TAG_VERSION: `version` 72 * @AS_TAG_REVIEWS: `reviews` 73 * @AS_TAG_REVIEW: `review` 74 * @AS_TAG_REVIEWER_NAME: `reviewer_name` 75 * @AS_TAG_REVIEWER_ID: `reviewer_id` 76 * @AS_TAG_SUGGESTS: `suggests` 77 * @AS_TAG_REQUIRES: `requires` 78 * @AS_TAG_CUSTOM: `custom` 79 * @AS_TAG_LAUNCHABLE: `launchable` 80 * @AS_TAG_AGREEMENT: `agreement` 81 * @AS_TAG_AGREEMENT_SECTION: `agreement_section` 82 * 83 * The tag type. 84 **/ 85 typedef enum { 86 AS_TAG_UNKNOWN, /* Since: 0.1.0 */ 87 AS_TAG_COMPONENTS, /* Since: 0.5.0 */ 88 AS_TAG_COMPONENT, /* Since: 0.5.0 */ 89 AS_TAG_ID, /* Since: 0.1.0 */ 90 AS_TAG_PKGNAME, /* Since: 0.1.0 */ 91 AS_TAG_NAME, /* Since: 0.1.0 */ 92 AS_TAG_SUMMARY, /* Since: 0.1.0 */ 93 AS_TAG_DESCRIPTION, /* Since: 0.1.0 */ 94 AS_TAG_URL, /* Since: 0.1.0 */ 95 AS_TAG_ICON, /* Since: 0.1.0 */ 96 AS_TAG_CATEGORIES, /* Since: 0.1.0 */ 97 AS_TAG_CATEGORY, /* Since: 0.1.0 */ 98 AS_TAG_KEYWORDS, /* Since: 0.1.0 */ 99 AS_TAG_KEYWORD, /* Since: 0.1.0 */ 100 AS_TAG_MIMETYPES, /* Since: 0.1.0 */ 101 AS_TAG_MIMETYPE, /* Since: 0.1.0 */ 102 AS_TAG_PROJECT_GROUP, /* Since: 0.1.0 */ 103 AS_TAG_PROJECT_LICENSE, /* Since: 0.1.0 */ 104 AS_TAG_SCREENSHOT, /* Since: 0.1.0 */ 105 AS_TAG_SCREENSHOTS, /* Since: 0.1.0 */ 106 AS_TAG_UPDATE_CONTACT, /* Since: 0.1.0 */ 107 AS_TAG_IMAGE, /* Since: 0.1.0 */ 108 AS_TAG_COMPULSORY_FOR_DESKTOP, /* Since: 0.1.0 */ 109 AS_TAG_PRIORITY, /* Since: 0.1.0 */ 110 AS_TAG_CAPTION, /* Since: 0.1.0 */ 111 AS_TAG_LANGUAGES, /* Since: 0.1.0 */ 112 AS_TAG_LANG, /* Since: 0.1.0 */ 113 AS_TAG_METADATA, /* Since: 0.1.0 */ 114 AS_TAG_VALUE, /* Since: 0.1.0 */ 115 AS_TAG_RELEASES, /* Since: 0.1.0 */ 116 AS_TAG_RELEASE, /* Since: 0.1.0 */ 117 AS_TAG_ARCHITECTURES, /* Since: 0.1.1 */ 118 AS_TAG_ARCH, /* Since: 0.1.1 */ 119 AS_TAG_METADATA_LICENSE, /* Since: 0.1.4 */ 120 AS_TAG_PROVIDES, /* Since: 0.1.6 */ 121 AS_TAG_EXTENDS, /* Since: 0.1.7 */ 122 AS_TAG_DEVELOPER_NAME, /* Since: 0.1.8 */ 123 AS_TAG_KUDOS, /* Since: 0.2.1 */ 124 AS_TAG_KUDO, /* Since: 0.2.1 */ 125 AS_TAG_SOURCE_PKGNAME, /* Since: 0.2.4 */ 126 AS_TAG_VETOS, /* Since: 0.3.0 */ 127 AS_TAG_VETO, /* Since: 0.3.0 */ 128 AS_TAG_BUNDLE, /* Since: 0.3.5 */ 129 AS_TAG_PERMISSIONS, /* Since: 0.3.5 */ 130 AS_TAG_PERMISSION, /* Since: 0.3.5 */ 131 AS_TAG_LOCATION, /* Since: 0.3.5 */ 132 AS_TAG_CHECKSUM, /* Since: 0.3.5 */ 133 AS_TAG_SIZE, /* Since: 0.5.2 */ 134 AS_TAG_TRANSLATION, /* Since: 0.5.8 */ 135 AS_TAG_CONTENT_RATING, /* Since: 0.5.12 */ 136 AS_TAG_CONTENT_ATTRIBUTE, /* Since: 0.5.12 */ 137 AS_TAG_VERSION, /* Since: 0.6.1 */ 138 AS_TAG_REVIEWS, /* Since: 0.6.1 */ 139 AS_TAG_REVIEW, /* Since: 0.6.1 */ 140 AS_TAG_REVIEWER_NAME, /* Since: 0.6.1 */ 141 AS_TAG_REVIEWER_ID, /* Since: 0.6.1 */ 142 AS_TAG_SUGGESTS, /* Since: 0.6.1 */ 143 AS_TAG_REQUIRES, /* Since: 0.6.7 */ 144 AS_TAG_CUSTOM, /* Since: 0.6.8 */ 145 AS_TAG_LAUNCHABLE, /* Since: 0.6.13 */ 146 AS_TAG_AGREEMENT, /* Since: 0.7.8 */ 147 AS_TAG_AGREEMENT_SECTION, /* Since: 0.7.8 */ 148 AS_TAG_P, /* Since: 0.7.9 */ 149 AS_TAG_LI, /* Since: 0.7.9 */ 150 AS_TAG_UL, /* Since: 0.7.9 */ 151 AS_TAG_OL, /* Since: 0.7.9 */ 152 AS_TAG_BINARY, /* Since: 0.7.9 */ 153 AS_TAG_FONT, /* Since: 0.7.9 */ 154 AS_TAG_DBUS, /* Since: 0.7.9 */ 155 AS_TAG_MODALIAS, /* Since: 0.7.9 */ 156 AS_TAG_LIBRARY, /* Since: 0.7.9 */ 157 /*< private >*/ 158 AS_TAG_LAST 159 } AsTag; 160 161 /** 162 * AsTagFlags: 163 * @AS_TAG_FLAG_NONE: No special actions to use 164 * @AS_TAG_FLAG_USE_FALLBACKS: Use fallback tag names 165 * @AS_TAG_FLAG_USE_TRANSLATED: Use translated tag names 166 * 167 * The flags to use when matching %AsTag's. 168 **/ 169 typedef enum { 170 AS_TAG_FLAG_NONE, 171 AS_TAG_FLAG_USE_FALLBACKS = 1, /* Since: 0.1.4 */ 172 AS_TAG_FLAG_USE_TRANSLATED = 2, /* Since: 0.1.6 */ 173 /*< private >*/ 174 AS_TAG_FLAG_LAST 175 } AsTagFlags; 176 177 AsTag as_tag_from_string (const gchar *tag); 178 AsTag as_tag_from_string_full (const gchar *tag, 179 AsTagFlags flags); 180 const gchar *as_tag_to_string (AsTag tag); 181 182 G_END_DECLS 183