## Container for Signatures Container for Signatures |

## Synopsis

    struct              ESignatureList;
    ESignatureList *    e_signature_list_new                (void);
    void                e_signature_list_construct          (ESignatureList *signature_list,
                                                             GConfClient *client);
    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);
    ESignature *        e_signature_list_find_by_name       (ESignatureList *signature_list,
                                                             const gchar *signature_name);
    ESignature *        e_signature_list_find_by_uid        (ESignatureList *signature_list,
                                                             const gchar *signature_uid);

## Object Hierarchy

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

## Signals

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

## Description

## Details

### struct ESignatureList

    struct ESignatureList;

### e_signature_list_new ()

    ESignatureList *    e_signature_list_new                (void);

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.

Returns : | the list of signatures

### e_signature_list_construct ()

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

### 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_by_name ()

    ESignature *        e_signature_list_find_by_name       (ESignatureList *signature_list,
                                                             const gchar *signature_name);

Searches `signature_list` for the given signature name.

`signature_list` : | an ESignatureList
`name` : | the signature name to find
Returns : | the matching signature or `NULL` if it doesn't exist

### e_signature_list_find_by_uid ()

    ESignature *        e_signature_list_find_by_uid        (ESignatureList *signature_list,
                                                             const gchar *signature_uid);

Searches `signature_list` for the given signature UID.

`signature_list` : | an ESignatureList
`name` : | the signature UID to find
Returns : | the matching 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

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

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

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

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