## SecretPrompt SecretPrompt — a prompt in the Service |

## Synopsis

    #include <libsecret/secret.h>

    struct              SecretPrompt;
    struct              SecretPromptClass;
    void                secret_prompt_perform               (SecretPrompt *self,
                                                             gulong window_id,
                                                             const GVariantType *return_type,
                                                             GCancellable *cancellable,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    GVariant *          secret_prompt_perform_finish        (SecretPrompt *self,
                                                             GAsyncResult *result,
                                                             GError **error);
    GVariant *          secret_prompt_perform_sync          (SecretPrompt *self,
                                                             gulong window_id,
                                                             GCancellable *cancellable,
                                                             const GVariantType *return_type,
                                                             GError **error);
    GVariant *          secret_prompt_run                   (SecretPrompt *self,
                                                             gulong window_id,
                                                             GCancellable *cancellable,
                                                             const GVariantType *return_type,
                                                             GError **error);

## Object Hierarchy

      GObject
       +----GDBusProxy
             +----SecretPrompt

## Implemented Interfaces

SecretPrompt implements GDBusInterface, GInitable and GAsyncInitable.

## Description

A SecretPrompt represents a prompt in the Secret Service.

Certain actions on the Secret Service require user prompting to complete, such as creating a collection, or unlocking a collection. When such a prompt is necessary, then a SecretPrompt object is created by this library, and passed to the `secret_service_prompt()` method. In this way it is handled automatically.

In order to customize prompt handling, override the SecretServiceClass::prompt_async and SecretServiceClass::prompt_finish virtual methods of the SecretService class.

These functions have an unstable API and may change across versions. Use `libsecret-unstable` package to access them.

## Details

### struct SecretPrompt

    struct SecretPrompt;

A proxy object representing a prompt that the Secret Service will display to the user.

### struct SecretPromptClass

    struct SecretPromptClass {
    	GDBusProxyClass parent_class;
    };

The class for SecretPrompt.

GDBusProxyClass `parent_class`; | the parent class

### secret_prompt_perform ()

    void                secret_prompt_perform               (SecretPrompt *self,
                                                             gulong window_id,
                                                             const GVariantType *return_type,
                                                             GCancellable *cancellable,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Runs a prompt and performs the prompting. Returns `TRUE` if the prompt was completed and not dismissed.

If `window_id` is non-zero then it is used as an XWindow id. The Secret Service can make its prompt transient for the window with this id. In some Secret Service implementations this is not possible, so the behavior depending on this should degrade gracefully.

This method will return immediately and complete asynchronously.

`self` : | a prompt
`window_id` : | XWindow id for parent window to be transient for
`return_type` : | the variant type of the prompt result
`cancellable` : | optional cancellation object
`callback` : | called when the operation completes
`user_data` : | data to be passed to the callback

### secret_prompt_perform_finish ()

    GVariant *          secret_prompt_perform_finish        (SecretPrompt *self,
                                                             GAsyncResult *result,
                                                             GError **error);

Complete asynchronous operation to run a prompt and perform the prompting.

Returns a variant result if the prompt was completed and not dismissed. The type of result depends on the action the prompt is completing, and is defined in the Secret Service DBus API specification.

`self` : | a prompt
`result` : | the asynchronous result passed to the callback
`error` : | location to place an error on failure
Returns : | `NULL` if the prompt was dismissed or an error occurred, a variant result if the prompt was successful. [transfer full]

### secret_prompt_perform_sync ()

    GVariant *          secret_prompt_perform_sync          (SecretPrompt *self,
                                                             gulong window_id,
                                                             GCancellable *cancellable,
                                                             const GVariantType *return_type,
                                                             GError **error);

Runs a prompt and performs the prompting. Returns a variant result if the prompt was completed and not dismissed. The type of result depends on the action the prompt is completing, and is defined in the Secret Service DBus API specification.

If `window_id` is non-zero then it is used as an XWindow id. The Secret Service can make its prompt transient for the window with this id. In some Secret Service implementations this is not possible, so the behavior depending on this should degrade gracefully.

This method may block indefinitely and should not be used in user interface threads.

`self` : | a prompt
`window_id` : | XWindow id for parent window to be transient for
`cancellable` : | optional cancellation object
`return_type` : | the variant type of the prompt result
`error` : | location to place an error on failure
Returns : | `NULL` if the prompt was dismissed or an error occurred. [transfer full]

### secret_prompt_run ()

    GVariant *          secret_prompt_run                   (SecretPrompt *self,
                                                             gulong window_id,
                                                             GCancellable *cancellable,
                                                             const GVariantType *return_type,
                                                             GError **error);

Runs a prompt and performs the prompting. Returns a variant result if the prompt was completed and not dismissed. The type of result depends on the action the prompt is completing, and is defined in the Secret Service DBus API specification.

If `window_id` is non-zero then it is used as an XWindow id. The Secret Service can make its prompt transient for the window with this id. In some Secret Service implementations this is not possible, so the behavior depending on this should degrade gracefully.

This runs the dialog in a recursive mainloop. When run from a user interface thread, this means the user interface will remain responsive. Care should be taken that appropriate user interface actions are disabled while running the prompt.

`self` : | a prompt
`window_id` : | XWindow id for parent window to be transient for
`cancellable` : | optional cancellation object
`return_type` : | the variant type of the prompt result
`error` : | location to place an error on failure
Returns : | `NULL` if the prompt was dismissed or an error occurred. [transfer full]