## NautilusInfoProvider

NautilusInfoProvider — Interface to provide additional information about files

## Functions

void | (*NautilusInfoProviderUpdateComplete) ()
NautilusOperationResult | nautilus_info_provider_update_file_info ()
void | nautilus_info_provider_cancel_update ()
void | nautilus_info_provider_update_complete_invoke ()

## Types and Values

| NautilusInfoProvider
struct | NautilusInfoProviderIface
| NautilusOperationHandle
enum | NautilusOperationResult

## Object Hierarchy

        GEnum
        ╰── NautilusOperationResult
        GInterface
        ╰── NautilusInfoProvider

## Prerequisites

NautilusInfoProvider requires GObject.

## Includes

    #include <libnautilus-extension/nautilus-column-provider.h>

## Description

NautilusInfoProvider allows extension to provide additional information about files. When `nautilus_info_provider_update_file_info()` is called by the application, extensions will know that it's time to add extra information to the provided NautilusFileInfo.

## Functions

### NautilusInfoProviderUpdateComplete ()

    void
    (*NautilusInfoProviderUpdateComplete) (NautilusInfoProvider *provider,
                                           NautilusOperationHandle *handle,
                                           NautilusOperationResult result,
                                           gpointer user_data);

### nautilus_info_provider_update_file_info ()

    NautilusOperationResult
    nautilus_info_provider_update_file_info
                                   (NautilusInfoProvider *provider,
                                    NautilusFileInfo *file,
                                    GClosure *update_complete,
                                    NautilusOperationHandle **handle);

### nautilus_info_provider_cancel_update ()

    void
    nautilus_info_provider_cancel_update (NautilusInfoProvider *provider,
                                          NautilusOperationHandle *handle);

### nautilus_info_provider_update_complete_invoke ()

    void
    nautilus_info_provider_update_complete_invoke
                                   (GClosure *update_complete,
                                    NautilusInfoProvider *provider,
                                    NautilusOperationHandle *handle,
                                    NautilusOperationResult result);

## Types and Values

### NautilusInfoProvider

    typedef struct _NautilusInfoProvider NautilusInfoProvider;

### struct NautilusInfoProviderIface

    struct NautilusInfoProviderIface {
    	GTypeInterface g_iface;

    	NautilusOperationResult (*update_file_info) (NautilusInfoProvider     *provider,
    						     NautilusFileInfo         *file,
    						     GClosure                 *update_complete,
    						     NautilusOperationHandle **handle);
    	void                    (*cancel_update)    (NautilusInfoProvider     *provider,
    						     NautilusOperationHandle  *handle);
    };

Interface for extensions to provide additional information about files.

#### Members

`update_file_info` () | Returns a NautilusOperationResult. See `nautilus_info_provider_update_file_info()` for details. |
`cancel_update` () | Cancels a previous call to `nautilus_info_provider_update_file_info()`. See `nautilus_info_provider_cancel_update()` for details. |

### NautilusOperationHandle

    typedef struct _NautilusOperationHandle NautilusOperationHandle;

Handle for asynchronous interfaces. These are opaque handles that must be unique within an extension object. These are returned by operations that return NAUTILUS_OPERATION_IN_PROGRESS.

### enum NautilusOperationResult

Return values for asynchronous operations performed by the extension. See `nautilus_info_provider_update_file_info()`.

#### Members

NAUTILUS_OPERATION_COMPLETE | the operation succeeded, and the extension is done with the request. |
NAUTILUS_OPERATION_FAILED | the operation failed. |
NAUTILUS_OPERATION_IN_PROGRESS | the extension has begin an async operation. When this value is returned, the extension must set the handle parameter and call the callback closure when the operation is complete. |