## Container for Signatures

Container for Signatures

## Synopsis

                        ESignatureList;
    ESignatureList *    e_signature_list_new                (GConfClient *gconf);
    void                e_signature_list_construct          (ESignatureList *signature_list,
                                                             GConfClient *gconf);
    void                e_signature_list_save               (ESignatureList *signature_list);
    void                e_signature_list_add                (ESignatureList *signature_list,
                                                             ESignature *signature);
    void                e_signature_list_change             (ESignatureList *signature_list,
                                                             ESignature *signature);
    void                e_signature_list_remove             (ESignatureList *signature_list,
                                                             ESignature *signature);
    const ESignature *  e_signature_list_find               (ESignatureList *signature_list,
                                                             e_signature_find_t type,
                                                             const gchar *key);

## Object Hierarchy

      GObject
       +----EList
             +----ESignatureList

## Signals

      "signature-added"                                : Run Last
      "signature-changed"                              : Run Last
      "signature-removed"                              : Run Last

## Description

## Details

### ESignatureList

    typedef struct _ESignatureList ESignatureList;

### e_signature_list_new ()

    ESignatureList *    e_signature_list_new                (GConfClient *gconf);

Reads the list of signaturess from `gconf` and listens for changes. Will emit signature_added, signature_changed, and signature_removed signals according to notifications from GConf.

You can modify the list using `e_list_append()`, `e_list_remove()`, and `e_iterator_delete()`. After adding, removing, or changing accounts, you must call `e_signature_list_save()` to push the changes back to GConf.

`gconf` : | a GConfClient
Returns : | the list of signatures

### e_signature_list_construct ()

    void                e_signature_list_construct          (ESignatureList *signature_list,
                                                             GConfClient *gconf);

`signature_list` : |
`gconf` : |

### e_signature_list_save ()

    void                e_signature_list_save               (ESignatureList *signature_list);

Saves `signature_list` to GConf. Signals will be emitted for changes.

`signature_list` : | an ESignatureList

### e_signature_list_add ()

    void                e_signature_list_add                (ESignatureList *signature_list,
                                                             ESignature *signature);

Add an signature to the signature list. Will emit the signature-changed event.

`signature_list` : | signature list
`signature` : | signature to add

### e_signature_list_change ()

    void                e_signature_list_change             (ESignatureList *signature_list,
                                                             ESignature *signature);

Signal that the details of an signature have changed.

`signature_list` : | signature list
`signature` : | signature to change

### e_signature_list_remove ()

    void                e_signature_list_remove             (ESignatureList *signature_list,
                                                             ESignature *signature);

Remove an signature from the signature list, and emit the signature-removed signal. If the signature was the default signature, then reset the default to the first signature.

`signature_list` : | signature list
`signature` : | signature

### e_signature_list_find ()

    const ESignature *  e_signature_list_find               (ESignatureList *signature_list,
                                                             e_signature_find_t type,
                                                             const gchar *key);

Perform a search of the signature list on a single key.

`type` must be set from one of the following search types: E_SIGNATURE_FIND_NAME - Find a signature by signature name. E_SIGNATURE_FIND_UID - Find a signature based on UID

`signature_list` : | signature list
`type` : | Type of search.
`key` : | Search key.
Returns : | The signature or NULL if it doesn't exist.

## Signal Details

### The `"signature-added"` signal

    void                user_function                      (ESignatureList *esignaturelist,
                                                            ESignature     *arg1,
                                                            gpointer        user_data)           : Run Last

`esignaturelist` : | the object which received the signal.
`arg1` : |
`user_data` : | user data set when the signal handler was connected.

### The `"signature-changed"` signal

    void                user_function                      (ESignatureList *esignaturelist,
                                                            ESignature     *arg1,
                                                            gpointer        user_data)           : Run Last

`esignaturelist` : | the object which received the signal.
`arg1` : |
`user_data` : | user data set when the signal handler was connected.

### The `"signature-removed"` signal

    void                user_function                      (ESignatureList *esignaturelist,
                                                            ESignature     *arg1,
                                                            gpointer        user_data)           : Run Last

`esignaturelist` : | the object which received the signal.
`arg1` : |
`user_data` : | user data set when the signal handler was connected.