/* * 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 should be included directly." #endif #include G_BEGIN_DECLS #define NAUTILUS_TYPE_PROPERTIES_MODEL_PROVIDER (nautilus_properties_model_provider_get_type ()) G_DECLARE_INTERFACE (NautilusPropertiesModelProvider, nautilus_properties_model_provider, NAUTILUS, PROPERTIES_MODEL_PROVIDER, GObject) /** * SECTION:nautilus-properties-model-provider * @title: NautilusPropertiesModelProvider * @short_description: Interface to provide additional properties * * #NautilusPropertiesModelProvider allows extension to provide additional * information for the file properties. */ /** * NautilusPropertiesModelProviderInterface: * @g_iface: The parent interface. * @get_models: Returns a #GList of #NautilusPropertiesModel. * See nautilus_properties_model_provider_get_models() for details. * * Interface for extensions to provide additional properties. */ struct _NautilusPropertiesModelProviderInterface { GTypeInterface g_iface; GList *(*get_models) (NautilusPropertiesModelProvider *provider, GList *files); }; /** * nautilus_properties_model_provider_get_models: * @provider: a #NautilusPropertiesModelProvider * @files: (element-type NautilusFileInfo): a #GList of #NautilusFileInfo * * This function is called by the application when it wants properties models * from the extension. * * This function is called in the main thread before the Properties are shown, * so it should return quickly. The models can be populated and updated * asynchronously. * * Returns: (nullable) (element-type NautilusPropertiesModel) (transfer full): A #GList of allocated #NautilusPropertiesModel models. */ GList *nautilus_properties_model_provider_get_models (NautilusPropertiesModelProvider *provider, GList *files); G_END_DECLS