1
0
Fork 0
gnome-software/lib/gs-plugin-types.h
Daniel Baumann 68ee05b3fd
Adding upstream version 48.2.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-22 21:00:23 +02:00

480 lines
17 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
* vi:set noexpandtab tabstop=8 shiftwidth=8:
*
* Copyright (C) 2012-2018 Richard Hughes <richard@hughsie.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#pragma once
#include <glib-object.h>
G_BEGIN_DECLS
/**
* GsPluginStatus:
* @GS_PLUGIN_STATUS_UNKNOWN: Unknown status
* @GS_PLUGIN_STATUS_WAITING: Waiting
* @GS_PLUGIN_STATUS_FINISHED: Finished
* @GS_PLUGIN_STATUS_SETUP: Setup in progress
* @GS_PLUGIN_STATUS_DOWNLOADING: Downloading in progress
* @GS_PLUGIN_STATUS_QUERYING: Querying in progress
* @GS_PLUGIN_STATUS_INSTALLING: Installing in progress
* @GS_PLUGIN_STATUS_REMOVING: Removing in progress
*
* The status of the plugin.
**/
typedef enum {
GS_PLUGIN_STATUS_UNKNOWN,
GS_PLUGIN_STATUS_WAITING,
GS_PLUGIN_STATUS_FINISHED,
GS_PLUGIN_STATUS_SETUP,
GS_PLUGIN_STATUS_DOWNLOADING,
GS_PLUGIN_STATUS_QUERYING,
GS_PLUGIN_STATUS_INSTALLING,
GS_PLUGIN_STATUS_REMOVING,
GS_PLUGIN_STATUS_LAST /*< skip >*/
} GsPluginStatus;
/**
* GsPluginFlags:
* @GS_PLUGIN_FLAGS_NONE: No flags set
* @GS_PLUGIN_FLAGS_INTERACTIVE: User initiated the job
*
* The flags for the plugin at this point in time.
**/
typedef enum {
GS_PLUGIN_FLAGS_NONE = 0,
GS_PLUGIN_FLAGS_INTERACTIVE = 1 << 4,
} GsPluginFlags;
/**
* GsPluginError:
* @GS_PLUGIN_ERROR_FAILED: Generic failure
* @GS_PLUGIN_ERROR_NOT_SUPPORTED: Action not supported
* @GS_PLUGIN_ERROR_CANCELLED: Action was cancelled
* @GS_PLUGIN_ERROR_NO_NETWORK: No network connection available
* @GS_PLUGIN_ERROR_NO_SECURITY: Security policy forbid action
* @GS_PLUGIN_ERROR_NO_SPACE: No disk space to allow action
* @GS_PLUGIN_ERROR_AUTH_REQUIRED: Authentication was required
* @GS_PLUGIN_ERROR_AUTH_INVALID: Provided authentication was invalid
* @GS_PLUGIN_ERROR_PLUGIN_DEPSOLVE_FAILED: The plugins installed are incompatible
* @GS_PLUGIN_ERROR_DOWNLOAD_FAILED: The download action failed
* @GS_PLUGIN_ERROR_WRITE_FAILED: The save-to-disk failed
* @GS_PLUGIN_ERROR_INVALID_FORMAT: The data format is invalid
* @GS_PLUGIN_ERROR_DELETE_FAILED: The delete action failed
* @GS_PLUGIN_ERROR_RESTART_REQUIRED: A restart is required
* @GS_PLUGIN_ERROR_AC_POWER_REQUIRED: AC power is required
* @GS_PLUGIN_ERROR_TIMED_OUT: The job timed out
* @GS_PLUGIN_ERROR_BATTERY_LEVEL_TOO_LOW: The system battery level is too low
*
* The failure error types.
**/
typedef enum {
GS_PLUGIN_ERROR_FAILED,
GS_PLUGIN_ERROR_NOT_SUPPORTED,
GS_PLUGIN_ERROR_CANCELLED,
GS_PLUGIN_ERROR_NO_NETWORK,
GS_PLUGIN_ERROR_NO_SECURITY,
GS_PLUGIN_ERROR_NO_SPACE,
GS_PLUGIN_ERROR_AUTH_REQUIRED,
GS_PLUGIN_ERROR_AUTH_INVALID,
GS_PLUGIN_ERROR_PLUGIN_DEPSOLVE_FAILED,
GS_PLUGIN_ERROR_DOWNLOAD_FAILED,
GS_PLUGIN_ERROR_WRITE_FAILED,
GS_PLUGIN_ERROR_INVALID_FORMAT,
GS_PLUGIN_ERROR_DELETE_FAILED,
GS_PLUGIN_ERROR_RESTART_REQUIRED,
GS_PLUGIN_ERROR_AC_POWER_REQUIRED,
GS_PLUGIN_ERROR_TIMED_OUT,
GS_PLUGIN_ERROR_BATTERY_LEVEL_TOO_LOW,
GS_PLUGIN_ERROR_LAST /*< skip >*/
} GsPluginError;
/**
* GsPluginRefineFlags:
* @GS_PLUGIN_REFINE_FLAGS_NONE: No explicit flags set
* @GS_PLUGIN_REFINE_FLAGS_REQUIRE_ID: Require the apps ID; this is the minimum possible requirement
* @GS_PLUGIN_REFINE_FLAGS_REQUIRE_LICENSE: Require the license
* @GS_PLUGIN_REFINE_FLAGS_REQUIRE_URL: Require the URL
* @GS_PLUGIN_REFINE_FLAGS_REQUIRE_DESCRIPTION: Require the long description
* @GS_PLUGIN_REFINE_FLAGS_REQUIRE_SIZE: Require the installed and download sizes
* @GS_PLUGIN_REFINE_FLAGS_REQUIRE_RATING: Require the rating
* @GS_PLUGIN_REFINE_FLAGS_REQUIRE_VERSION: Require the version
* @GS_PLUGIN_REFINE_FLAGS_REQUIRE_HISTORY: Require the history
* @GS_PLUGIN_REFINE_FLAGS_REQUIRE_SETUP_ACTION: Require enough to install or remove the package
* @GS_PLUGIN_REFINE_FLAGS_REQUIRE_UPDATE_DETAILS: Require update details
* @GS_PLUGIN_REFINE_FLAGS_REQUIRE_ORIGIN: Require the origin
* @GS_PLUGIN_REFINE_FLAGS_REQUIRE_RELATED: Require related packages
* @GS_PLUGIN_REFINE_FLAGS_REQUIRE_ADDONS: Require available addons
* @GS_PLUGIN_REFINE_FLAGS_ALLOW_PACKAGES: Allow packages to be returned
* @GS_PLUGIN_REFINE_FLAGS_REQUIRE_UPDATE_SEVERITY: Require update severity
* @GS_PLUGIN_REFINE_FLAGS_REQUIRE_UPGRADE_REMOVED: Require distro upgrades
* @GS_PLUGIN_REFINE_FLAGS_REQUIRE_PROVENANCE: Require the provenance
* @GS_PLUGIN_REFINE_FLAGS_REQUIRE_REVIEWS: Require user-reviews
* @GS_PLUGIN_REFINE_FLAGS_REQUIRE_REVIEW_RATINGS: Require user-ratings
* @GS_PLUGIN_REFINE_FLAGS_DISABLE_FILTERING: Normally the results of a refine are
* filtered to remove non-valid apps; if this flag is set, that wont happen.
* This is intended to be used by internal #GsPluginLoader code. (Since: 42)
* @GS_PLUGIN_REFINE_FLAGS_REQUIRE_ICON: Require the icon to be loaded
* @GS_PLUGIN_REFINE_FLAGS_REQUIRE_PERMISSIONS: Require the needed permissions
* @GS_PLUGIN_REFINE_FLAGS_REQUIRE_ORIGIN_HOSTNAME: Require the origin hostname
* @GS_PLUGIN_REFINE_FLAGS_REQUIRE_ORIGIN_UI: Require the origin for UI
* @GS_PLUGIN_REFINE_FLAGS_REQUIRE_RUNTIME: Require the runtime
* @GS_PLUGIN_REFINE_FLAGS_REQUIRE_SCREENSHOTS: Require screenshot information
* @GS_PLUGIN_REFINE_FLAGS_REQUIRE_CATEGORIES: Require categories
* @GS_PLUGIN_REFINE_FLAGS_REQUIRE_PROJECT_GROUP: Require project group
* @GS_PLUGIN_REFINE_FLAGS_REQUIRE_DEVELOPER_NAME: Require developer name
* @GS_PLUGIN_REFINE_FLAGS_REQUIRE_KUDOS: Require kudos
* @GS_PLUGIN_REFINE_FLAGS_REQUIRE_CONTENT_RATING: Require content rating
* @GS_PLUGIN_REFINE_FLAGS_REQUIRE_SIZE_DATA: Require user and cache data sizes (Since: 41)
* @GS_PLUGIN_REFINE_FLAGS_MASK: All flags (Since: 40)
*
* The refine flags.
**/
typedef enum {
GS_PLUGIN_REFINE_FLAGS_NONE = 0,
GS_PLUGIN_REFINE_FLAGS_REQUIRE_ID = 1 << 0,
GS_PLUGIN_REFINE_FLAGS_REQUIRE_LICENSE = 1 << 1,
GS_PLUGIN_REFINE_FLAGS_REQUIRE_URL = 1 << 2,
GS_PLUGIN_REFINE_FLAGS_REQUIRE_DESCRIPTION = 1 << 3,
GS_PLUGIN_REFINE_FLAGS_REQUIRE_SIZE = 1 << 4,
GS_PLUGIN_REFINE_FLAGS_REQUIRE_RATING = 1 << 5,
GS_PLUGIN_REFINE_FLAGS_REQUIRE_VERSION = 1 << 6,
GS_PLUGIN_REFINE_FLAGS_REQUIRE_HISTORY = 1 << 7,
GS_PLUGIN_REFINE_FLAGS_REQUIRE_SETUP_ACTION = 1 << 8,
GS_PLUGIN_REFINE_FLAGS_REQUIRE_UPDATE_DETAILS = 1 << 9,
GS_PLUGIN_REFINE_FLAGS_REQUIRE_ORIGIN = 1 << 10,
GS_PLUGIN_REFINE_FLAGS_REQUIRE_RELATED = 1 << 11,
GS_PLUGIN_REFINE_FLAGS_REQUIRE_SIZE_DATA = 1 << 12,
GS_PLUGIN_REFINE_FLAGS_REQUIRE_ADDONS = 1 << 13,
GS_PLUGIN_REFINE_FLAGS_ALLOW_PACKAGES = 1 << 14, /* TODO: move to request */
GS_PLUGIN_REFINE_FLAGS_REQUIRE_UPDATE_SEVERITY = 1 << 15,
GS_PLUGIN_REFINE_FLAGS_REQUIRE_UPGRADE_REMOVED = 1 << 16,
GS_PLUGIN_REFINE_FLAGS_REQUIRE_PROVENANCE = 1 << 17,
GS_PLUGIN_REFINE_FLAGS_REQUIRE_REVIEWS = 1 << 18,
GS_PLUGIN_REFINE_FLAGS_REQUIRE_REVIEW_RATINGS = 1 << 19,
GS_PLUGIN_REFINE_FLAGS_DISABLE_FILTERING = 1 << 20,
GS_PLUGIN_REFINE_FLAGS_REQUIRE_ICON = 1 << 21,
GS_PLUGIN_REFINE_FLAGS_REQUIRE_PERMISSIONS = 1 << 22,
GS_PLUGIN_REFINE_FLAGS_REQUIRE_ORIGIN_HOSTNAME = 1 << 23,
GS_PLUGIN_REFINE_FLAGS_REQUIRE_ORIGIN_UI = 1 << 24,
GS_PLUGIN_REFINE_FLAGS_REQUIRE_RUNTIME = 1 << 25,
GS_PLUGIN_REFINE_FLAGS_REQUIRE_SCREENSHOTS = 1 << 26,
GS_PLUGIN_REFINE_FLAGS_REQUIRE_CATEGORIES = 1 << 27,
GS_PLUGIN_REFINE_FLAGS_REQUIRE_PROJECT_GROUP = 1 << 28,
GS_PLUGIN_REFINE_FLAGS_REQUIRE_DEVELOPER_NAME = 1 << 29,
GS_PLUGIN_REFINE_FLAGS_REQUIRE_KUDOS = 1 << 30,
GS_PLUGIN_REFINE_FLAGS_REQUIRE_CONTENT_RATING = 1 << 31,
GS_PLUGIN_REFINE_FLAGS_MASK = ~0,
} GsPluginRefineFlags;
/**
* GsPluginListAppsFlags:
* @GS_PLUGIN_LIST_APPS_FLAGS_NONE: No flags set.
* @GS_PLUGIN_LIST_APPS_FLAGS_INTERACTIVE: User initiated the job.
*
* Flags for an operation to list apps matching a given query.
*
* Since: 43
*/
typedef enum {
GS_PLUGIN_LIST_APPS_FLAGS_NONE = 0,
GS_PLUGIN_LIST_APPS_FLAGS_INTERACTIVE = 1 << 0,
} GsPluginListAppsFlags;
/**
* GsPluginRefineCategoriesFlags:
* @GS_PLUGIN_REFINE_CATEGORIES_FLAGS_NONE: No flags set.
* @GS_PLUGIN_REFINE_CATEGORIES_FLAGS_INTERACTIVE: User initiated the job.
* @GS_PLUGIN_REFINE_CATEGORIES_FLAGS_SIZE: Work out the number of apps in each category.
*
* Flags for an operation to refine categories.
*
* Since: 43
*/
typedef enum {
GS_PLUGIN_REFINE_CATEGORIES_FLAGS_NONE = 0,
GS_PLUGIN_REFINE_CATEGORIES_FLAGS_INTERACTIVE = 1 << 0,
GS_PLUGIN_REFINE_CATEGORIES_FLAGS_SIZE = 1 << 1,
} GsPluginRefineCategoriesFlags;
/**
* GsPluginRefreshMetadataFlags:
* @GS_PLUGIN_REFRESH_METADATA_FLAGS_NONE: No flags set.
* @GS_PLUGIN_REFRESH_METADATA_FLAGS_INTERACTIVE: User initiated the job.
*
* Flags for an operation to refresh metadata.
*
* Since: 42
*/
typedef enum {
GS_PLUGIN_REFRESH_METADATA_FLAGS_NONE = 0,
GS_PLUGIN_REFRESH_METADATA_FLAGS_INTERACTIVE = 1 << 0,
} GsPluginRefreshMetadataFlags;
/**
* GsPluginListDistroUpgradesFlags:
* @GS_PLUGIN_LIST_DISTRO_UPGRADES_FLAGS_NONE: No flags set.
* @GS_PLUGIN_LIST_DISTRO_UPGRADES_FLAGS_INTERACTIVE: User initiated the job.
*
* Flags for an operation to list available distro upgrades.
*
* Since: 42
*/
typedef enum {
GS_PLUGIN_LIST_DISTRO_UPGRADES_FLAGS_NONE = 0,
GS_PLUGIN_LIST_DISTRO_UPGRADES_FLAGS_INTERACTIVE = 1 << 0,
} GsPluginListDistroUpgradesFlags;
/**
* GsPluginManageRepositoryFlags:
* @GS_PLUGIN_MANAGE_REPOSITORY_FLAGS_NONE: No flags set.
* @GS_PLUGIN_MANAGE_REPOSITORY_FLAGS_INTERACTIVE: User initiated the job.
* @GS_PLUGIN_MANAGE_REPOSITORY_FLAGS_INSTALL: Install the repository.
* @GS_PLUGIN_MANAGE_REPOSITORY_FLAGS_REMOVE: Remove the repository.
* @GS_PLUGIN_MANAGE_REPOSITORY_FLAGS_ENABLE: Enable the repository.
* @GS_PLUGIN_MANAGE_REPOSITORY_FLAGS_DISABLE: Disable the repository.
*
* Flags for an operation on a repository.
*
* Since: 42
*/
typedef enum {
GS_PLUGIN_MANAGE_REPOSITORY_FLAGS_NONE = 0,
GS_PLUGIN_MANAGE_REPOSITORY_FLAGS_INTERACTIVE = 1 << 0,
GS_PLUGIN_MANAGE_REPOSITORY_FLAGS_INSTALL = 1 << 1,
GS_PLUGIN_MANAGE_REPOSITORY_FLAGS_REMOVE = 1 << 2,
GS_PLUGIN_MANAGE_REPOSITORY_FLAGS_ENABLE = 1 << 3,
GS_PLUGIN_MANAGE_REPOSITORY_FLAGS_DISABLE = 1 << 4,
} GsPluginManageRepositoryFlags;
/**
* GsPluginInstallAppsFlags:
* @GS_PLUGIN_INSTALL_APPS_FLAGS_NONE: No flags set.
* @GS_PLUGIN_INSTALL_APPS_FLAGS_INTERACTIVE: User initiated the job.
* @GS_PLUGIN_INSTALL_APPS_FLAGS_NO_DOWNLOAD: Only use locally cached resources,
* and error if they dont exist.
* @GS_PLUGIN_INSTALL_APPS_FLAGS_NO_APPLY: Only download the resources, and dont
* do the installation.
*
* Flags for an operation to download or install apps.
*
* Since: 47
*/
typedef enum {
GS_PLUGIN_INSTALL_APPS_FLAGS_NONE = 0,
GS_PLUGIN_INSTALL_APPS_FLAGS_INTERACTIVE = 1 << 0,
GS_PLUGIN_INSTALL_APPS_FLAGS_NO_DOWNLOAD = 1 << 1,
GS_PLUGIN_INSTALL_APPS_FLAGS_NO_APPLY = 1 << 2,
} GsPluginInstallAppsFlags;
/**
* GsPluginUninstallAppsFlags:
* @GS_PLUGIN_UNINSTALL_APPS_FLAGS_NONE: No flags set.
* @GS_PLUGIN_UNINSTALL_APPS_FLAGS_INTERACTIVE: User initiated the job.
*
* Flags for an operation to uninstall apps.
*
* Since: 47
*/
typedef enum {
GS_PLUGIN_UNINSTALL_APPS_FLAGS_NONE = 0,
GS_PLUGIN_UNINSTALL_APPS_FLAGS_INTERACTIVE = 1 << 0,
} GsPluginUninstallAppsFlags;
/**
* GsPluginUpdateAppsFlags:
* @GS_PLUGIN_UPDATE_APPS_FLAGS_NONE: No flags set.
* @GS_PLUGIN_UPDATE_APPS_FLAGS_INTERACTIVE: User initiated the job.
* @GS_PLUGIN_UPDATE_APPS_FLAGS_NO_DOWNLOAD: Only use locally cached resources,
* and error if they dont exist.
* @GS_PLUGIN_UPDATE_APPS_FLAGS_NO_APPLY: Only download the resources, and dont
* apply the updates.
*
* Flags for an operation to download or update apps.
*
* Since: 44
*/
typedef enum {
GS_PLUGIN_UPDATE_APPS_FLAGS_NONE = 0,
GS_PLUGIN_UPDATE_APPS_FLAGS_INTERACTIVE = 1 << 0,
GS_PLUGIN_UPDATE_APPS_FLAGS_NO_DOWNLOAD = 1 << 1,
GS_PLUGIN_UPDATE_APPS_FLAGS_NO_APPLY = 1 << 2,
} GsPluginUpdateAppsFlags;
/**
* GsPluginCancelOfflineUpdateFlags:
* @GS_PLUGIN_CANCEL_OFFLINE_UPDATE_FLAGS_NONE: No flags set.
* @GS_PLUGIN_CANCEL_OFFLINE_UPDATE_FLAGS_INTERACTIVE: User initiated the job.
*
* Flags for an operation to cancel a pending offline update.
*
* Since: 47
*/
typedef enum {
GS_PLUGIN_CANCEL_OFFLINE_UPDATE_FLAGS_NONE = 0,
GS_PLUGIN_CANCEL_OFFLINE_UPDATE_FLAGS_INTERACTIVE = 1 << 0,
} GsPluginCancelOfflineUpdateFlags;
/**
* GsPluginDownloadUpgradeFlags:
* @GS_PLUGIN_DOWNLOAD_UPGRADE_FLAGS_NONE: No flags set.
* @GS_PLUGIN_DOWNLOAD_UPGRADE_FLAGS_INTERACTIVE: User initiated the job.
*
* Flags for an operation to download an upgrade.
*
* Since: 47
*/
typedef enum {
GS_PLUGIN_DOWNLOAD_UPGRADE_FLAGS_NONE = 0,
GS_PLUGIN_DOWNLOAD_UPGRADE_FLAGS_INTERACTIVE = 1 << 0,
} GsPluginDownloadUpgradeFlags;
/**
* GsPluginTriggerUpgradeFlags:
* @GS_PLUGIN_TRIGGER_UPGRADE_FLAGS_NONE: No flags set.
* @GS_PLUGIN_TRIGGER_UPGRADE_FLAGS_INTERACTIVE: User initiated the job.
*
* Flags for an operation to trigger an upgrade.
*
* Since: 47
*/
typedef enum {
GS_PLUGIN_TRIGGER_UPGRADE_FLAGS_NONE = 0,
GS_PLUGIN_TRIGGER_UPGRADE_FLAGS_INTERACTIVE = 1 << 0,
} GsPluginTriggerUpgradeFlags;
/**
* GsPluginLaunchFlags:
* @GS_PLUGIN_LAUNCH_FLAGS_NONE: No flags set.
* @GS_PLUGIN_LAUNCH_FLAGS_INTERACTIVE: User initiated the job.
*
* Flags for a launch operation.
*
* Since: 47
*/
typedef enum {
GS_PLUGIN_LAUNCH_FLAGS_NONE = 0,
GS_PLUGIN_LAUNCH_FLAGS_INTERACTIVE = 1 << 0,
} GsPluginLaunchFlags;
/**
* GsPluginFileToAppFlags:
* @GS_PLUGIN_FILE_TO_APP_FLAGS_NONE: No flags set.
* @GS_PLUGIN_FILE_TO_APP_FLAGS_INTERACTIVE: User initiated the job.
*
* Flags for a file-to-app operation.
*
* Since: 47
*/
typedef enum {
GS_PLUGIN_FILE_TO_APP_FLAGS_NONE = 0,
GS_PLUGIN_FILE_TO_APP_FLAGS_INTERACTIVE = 1 << 0,
} GsPluginFileToAppFlags;
/**
* GsPluginUrlToAppFlags:
* @GS_PLUGIN_URL_TO_APP_FLAGS_NONE: No flags set.
* @GS_PLUGIN_URL_TO_APP_FLAGS_INTERACTIVE: User initiated the job.
*
* Flags for a url-to-app operation.
*
* Since: 47
*/
typedef enum {
GS_PLUGIN_URL_TO_APP_FLAGS_NONE = 0,
GS_PLUGIN_URL_TO_APP_FLAGS_INTERACTIVE = 1 << 0,
} GsPluginUrlToAppFlags;
/**
* GsPluginProgressCallback:
* @plugin: the #GsPlugin reporting its progress
* @progress: the percentage completion (0100 inclusive), or
* %GS_APP_PROGRESS_UNKNOWN for unknown
* @user_data: user data passed to the calling function
*
* Callback to report the progress of a particular @plugin through a particular
* operation.
*
* Since: 44
*/
typedef void (* GsPluginProgressCallback) (GsPlugin *plugin,
guint progress,
gpointer user_data);
/**
* GsPluginAppNeedsUserActionCallback:
* @plugin: the #GsPlugin asking for user action
* @app: (nullable) (transfer none): the related #GsApp, or %NULL if no app is
* explicitly related to the necessary user action
* @action_screenshot: (nullable) (transfer none): a screenshot (with caption
* set) which gives the user instructions about what action to take, or %NULL
* if no instructions are available
* @user_data: user data passed to the calling function
*
* Callback to ask the user to perform a physical action during a plugin
* operation.
*
* This will typically be something like unplugging and reconnecting a hardware
* device, and instructions will be given via @action_screenshot.
*
* Since: 44
*/
typedef void (* GsPluginAppNeedsUserActionCallback) (GsPlugin *plugin,
GsApp *app,
AsScreenshot *action_screenshot,
gpointer user_data);
/**
* GsPluginRule:
* @GS_PLUGIN_RULE_CONFLICTS: The plugin conflicts with another
* @GS_PLUGIN_RULE_RUN_AFTER: Order the plugin after another
* @GS_PLUGIN_RULE_RUN_BEFORE: Order the plugin before another
* @GS_PLUGIN_RULE_BETTER_THAN: Results are better than another
*
* The rules used for ordering plugins.
* Plugins are expected to add rules in the init function for their #GsPlugin
* subclass.
**/
typedef enum {
GS_PLUGIN_RULE_CONFLICTS,
GS_PLUGIN_RULE_RUN_AFTER,
GS_PLUGIN_RULE_RUN_BEFORE,
GS_PLUGIN_RULE_BETTER_THAN,
GS_PLUGIN_RULE_LAST /*< skip >*/
} GsPluginRule;
/**
* GsPluginAction:
* @GS_PLUGIN_ACTION_UNKNOWN: Action is unknown
* @GS_PLUGIN_ACTION_INSTALL: Install an app
* @GS_PLUGIN_ACTION_UPGRADE_DOWNLOAD: Download a distro upgrade
* @GS_PLUGIN_ACTION_LAUNCH: Launch an app
* @GS_PLUGIN_ACTION_FILE_TO_APP: Convert the file to an app
* @GS_PLUGIN_ACTION_URL_TO_APP: Convert the URI to an app
* @GS_PLUGIN_ACTION_GET_LANGPACKS: Get appropriate language pack
* @GS_PLUGIN_ACTION_INSTALL_REPO: Install a repository (Since: 41)
* @GS_PLUGIN_ACTION_REMOVE_REPO: Remove a repository (Since: 41)
* @GS_PLUGIN_ACTION_ENABLE_REPO: Enable a repository (Since: 41)
* @GS_PLUGIN_ACTION_DISABLE_REPO: Disable a repository (Since: 41)
*
* The plugin action.
**/
typedef enum {
GS_PLUGIN_ACTION_UNKNOWN,
GS_PLUGIN_ACTION_INSTALL,
GS_PLUGIN_ACTION_UPGRADE_DOWNLOAD,
GS_PLUGIN_ACTION_LAUNCH,
GS_PLUGIN_ACTION_FILE_TO_APP,
GS_PLUGIN_ACTION_URL_TO_APP,
GS_PLUGIN_ACTION_GET_LANGPACKS,
GS_PLUGIN_ACTION_INSTALL_REPO,
GS_PLUGIN_ACTION_REMOVE_REPO,
GS_PLUGIN_ACTION_ENABLE_REPO,
GS_PLUGIN_ACTION_DISABLE_REPO,
GS_PLUGIN_ACTION_LAST /*< skip >*/
} GsPluginAction;
G_END_DECLS