## EAccount

EAccount —

## Synopsis

    enum        e_account_item_t;
    enum        e_account_access_t;
                EAccount;
                EAccountIdentity;
    enum        EAccountReceiptPolicy;
                EAccountService;
    EAccount*   e_account_new                   (void);
    EAccount*   e_account_new_from_xml          (const char *xml);
    gboolean    e_account_set_from_xml          (EAccount *account,
                                                 const char *xml);
    void        e_account_import                (EAccount *dest,
                                                 EAccount *src);
    char*       e_account_to_xml                (EAccount *account);
    char*       e_account_uid_from_xml          (const char *xml);
    const char* e_account_get_string            (EAccount *,
                                                 e_account_item_t type);
    int         e_account_get_int               (EAccount *,
                                                 e_account_item_t type);
    gboolean    e_account_get_bool              (EAccount *,
                                                 e_account_item_t type);
    void        e_account_set_string            (EAccount *,
                                                 e_account_item_t type,
                                                 const char *);
    void        e_account_set_int               (EAccount *,
                                                 e_account_item_t type,
                                                 ...);
    void        e_account_set_bool              (EAccount *,
                                                 e_account_item_t type,
                                                 gboolean );
    gboolean    e_account_writable              (EAccount *ea,
                                                 e_account_item_t type);
    gboolean    e_account_writable_option       (EAccount *ea,
                                                 const char *protocol,
                                                 const char *option);

## Object Hierarchy

      GObject
       +----EAccount

## Signals

    "changed"   void        user_function      (EAccount *eaccount,
                                                gint      arg1,
                                                gpointer  user_data)      : Run last

## Description

## Details

### enum e_account_item_t

    typedef enum _e_account_item_t {
    	E_ACCOUNT_NAME,

    	E_ACCOUNT_ID_NAME,
    	E_ACCOUNT_ID_ADDRESS,
    	E_ACCOUNT_ID_REPLY_TO,
    	E_ACCOUNT_ID_ORGANIZATION,
    	E_ACCOUNT_ID_SIGNATURE,

    	E_ACCOUNT_SOURCE_URL,	/* what about separating out host/user/path settings??  sigh */
    	E_ACCOUNT_SOURCE_KEEP_ON_SERVER,
    	E_ACCOUNT_SOURCE_AUTO_CHECK,
    	E_ACCOUNT_SOURCE_AUTO_CHECK_TIME,
    	E_ACCOUNT_SOURCE_SAVE_PASSWD,

    	E_ACCOUNT_TRANSPORT_URL,
    	E_ACCOUNT_TRANSPORT_SAVE_PASSWD,

    	E_ACCOUNT_DRAFTS_FOLDER_URI,
    	E_ACCOUNT_SENT_FOLDER_URI,

    	E_ACCOUNT_CC_ALWAYS,
    	E_ACCOUNT_CC_ADDRS,

    	E_ACCOUNT_BCC_ALWAYS,
    	E_ACCOUNT_BCC_ADDRS,

    	E_ACCOUNT_RECEIPT_POLICY,

    	E_ACCOUNT_PGP_KEY,
    	E_ACCOUNT_PGP_ENCRYPT_TO_SELF,
    	E_ACCOUNT_PGP_ALWAYS_SIGN,
    	E_ACCOUNT_PGP_NO_IMIP_SIGN,
    	E_ACCOUNT_PGP_ALWAYS_TRUST,

    	E_ACCOUNT_SMIME_SIGN_KEY,
    	E_ACCOUNT_SMIME_ENCRYPT_KEY,
    	E_ACCOUNT_SMIME_SIGN_DEFAULT,
    	E_ACCOUNT_SMIME_ENCRYPT_TO_SELF,
    	E_ACCOUNT_SMIME_ENCRYPT_DEFAULT,

    	E_ACCOUNT_PROXY_PARENT_UID,

    	E_ACCOUNT_ITEM_LAST
    } e_account_item_t;

### enum e_account_access_t

    typedef enum _e_account_access_t {
    	E_ACCOUNT_ACCESS_WRITE = 1<<0,
    } e_account_access_t;

### EAccount

    typedef struct _EAccount EAccount;

### EAccountIdentity

    typedef struct {
    	char *name;
    	char *address;
    	char *reply_to;
    	char *organization;

    	char *sig_uid;
    } EAccountIdentity;

### enum EAccountReceiptPolicy

    typedef enum _EAccountReceiptPolicy {
    	E_ACCOUNT_RECEIPT_NEVER,
    	E_ACCOUNT_RECEIPT_ASK,
    	E_ACCOUNT_RECEIPT_ALWAYS
    } EAccountReceiptPolicy;

### EAccountService

    typedef struct {
    	char *url;
    	gboolean keep_on_server;
    	gboolean auto_check;
    	int auto_check_time;
    	gboolean save_passwd;
    } EAccountService;

### e_account_new ()

    EAccount*   e_account_new                   (void);

Returns : | a blank new account which can be filled in and added to an EAccountList.

### e_account_new_from_xml ()

    EAccount*   e_account_new_from_xml          (const char *xml);

`xml` : | an XML account description
Returns : | a new EAccount based on the data in `xml`, or `NULL` if `xml` could not be parsed as valid account data.

### e_account_set_from_xml ()

    gboolean    e_account_set_from_xml          (EAccount *account,
                                                 const char *xml);

Changes `account` to match `xml`.

`account` : | an EAccount
`xml` : | an XML account description.
Returns : | `TRUE` if `account` was changed, `FALSE` if `account` already matched `xml` or `xml` could not be parsed

### e_account_import ()

    void        e_account_import                (EAccount *dest,
                                                 EAccount *src);

Import the settings from `src` to `dest`.

`dest` : | destination account object
`src` : | source account object

### e_account_to_xml ()

    char*       e_account_to_xml                (EAccount *account);

`account` : | an EAccount
Returns : | an XML representation of `account`, which the caller must free.

### e_account_uid_from_xml ()

    char*       e_account_uid_from_xml          (const char *xml);

`xml` : | an XML account description
Returns : | the permanent UID of the account described by `xml` (or `NULL` if `xml` could not be parsed or did not contain a uid). The caller must free this string.

### e_account_get_string ()

    const char* e_account_get_string            (EAccount *,
                                                 e_account_item_t type);

`Param1` : |
`type` : |
Returns : |

### e_account_get_int ()

    int         e_account_get_int               (EAccount *,
                                                 e_account_item_t type);

`Param1` : |
`type` : |
Returns : |

### e_account_get_bool ()

    gboolean    e_account_get_bool              (EAccount *,
                                                 e_account_item_t type);

`Param1` : |
`type` : |
Returns : |

### e_account_set_string ()

    void        e_account_set_string            (EAccount *,
                                                 e_account_item_t type,
                                                 const char *);

`Param1` : |
`type` : |
`Param3` : |

### e_account_set_int ()

    void        e_account_set_int               (EAccount *,
                                                 e_account_item_t type,
                                                 ...);

`Param1` : |
`type` : |
`...` : |

### e_account_set_bool ()

    void        e_account_set_bool              (EAccount *,
                                                 e_account_item_t type,
                                                 gboolean );

`Param1` : |
`type` : |
`Param3` : |

### e_account_writable ()

    gboolean    e_account_writable              (EAccount *ea,
                                                 e_account_item_t type);

`ea` : |
`type` : |
Returns : |

### e_account_writable_option ()

    gboolean    e_account_writable_option       (EAccount *ea,
                                                 const char *protocol,
                                                 const char *option);

`ea` : |
`protocol` : |
`option` : |
Returns : |

## Signal Details

### The "changed" signal

    void        user_function                  (EAccount *eaccount,
                                                gint      arg1,
                                                gpointer  user_data)      : Run last

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