## ENameSelectorModel ENameSelectorModel |

## Synopsis

                        ENameSelectorModel;
    ENameSelectorModel * e_name_selector_model_new          (void);
    EContactStore *     e_name_selector_model_peek_contact_store
                                                            (ENameSelectorModel *name_selector_model);
    ETreeModelGenerator * e_name_selector_model_peek_contact_filter
                                                            (ENameSelectorModel *name_selector_model);
    GList *             e_name_selector_model_list_sections (ENameSelectorModel *name_selector_model);
    gboolean            e_name_selector_model_peek_section  (ENameSelectorModel *name_selector_model,
                                                             const gchar *name,
                                                             gchar **pretty_name,
                                                             EDestinationStore **destination_store);
    void                e_name_selector_model_add_section   (ENameSelectorModel *name_selector_model,
                                                             const gchar *name,
                                                             const gchar *pretty_name,
                                                             EDestinationStore *destination_store);
    void                e_name_selector_model_remove_section
                                                            (ENameSelectorModel *name_selector_model,
                                                             const gchar *name);
    GList *             e_name_selector_model_get_contact_emails_without_used
                                                            (ENameSelectorModel *name_selector_model,
                                                             EContact *contact,
                                                             gboolean remove_used);
    void                e_name_selector_model_free_emails_list
                                                            (GList *email_list);

## Object Hierarchy

      GObject
       +----ENameSelectorModel

## Signals

      "section-added"                                  : Run Last
      "section-removed"                                : Run Last

## Description

## Details

### ENameSelectorModel

    typedef struct _ENameSelectorModel ENameSelectorModel;

### e_name_selector_model_new ()

    ENameSelectorModel * e_name_selector_model_new          (void);

Creates a new ENameSelectorModel.

Returns : | A new ENameSelectorModel.

### e_name_selector_model_peek_contact_store ()

    EContactStore *     e_name_selector_model_peek_contact_store
                                                            (ENameSelectorModel *name_selector_model);

Gets the EContactStore associated with `name_selector_model`.

`name_selector_model` : | an ENameSelectorModel
Returns : | An EContactStore.

### e_name_selector_model_peek_contact_filter ()

    ETreeModelGenerator * e_name_selector_model_peek_contact_filter
                                                            (ENameSelectorModel *name_selector_model);

Gets the ETreeModelGenerator being used to filter and/or extend the list of contacts in `name_selector_model`'s EContactStore.

`name_selector_model` : | an ENameSelectorModel
Returns : | An ETreeModelGenerator.

### e_name_selector_model_list_sections ()

    GList *             e_name_selector_model_list_sections (ENameSelectorModel *name_selector_model);

Gets a list of the destination sections in `name_selector_model`.

`name_selector_model` : | an ENameSelectorModel
Returns : | A GList of pointers to strings. The GList and the strings belong to the caller, and must be freed when no longer needed.

### e_name_selector_model_peek_section ()

    gboolean            e_name_selector_model_peek_section  (ENameSelectorModel *name_selector_model,
                                                             const gchar *name,
                                                             gchar **pretty_name,
                                                             EDestinationStore **destination_store);

Gets the parameters for a destination section.

`name_selector_model` : | an ENameSelectorModel
`name` : | internal name of the section to peek
`pretty_name` : | location in which to store a pointer to the user-visible name of the section, or `NULL` if undesired.
`destination_store` : | location in which to store a pointer to the EDestinationStore being used by the section, or `NULL` if undesired
Returns : |

### e_name_selector_model_add_section ()

    void                e_name_selector_model_add_section   (ENameSelectorModel *name_selector_model,
                                                             const gchar *name,
                                                             const gchar *pretty_name,
                                                             EDestinationStore *destination_store);

Adds a destination section to `name_selector_model`.

`name_selector_model` : | an ENameSelectorModel
`name` : | internal name of this section
`pretty_name` : | user-visible name of this section
`destination_store` : | the EDestinationStore to use to store the destinations for this section, or `NULL` if `name_selector_model` should create its own.

### e_name_selector_model_remove_section ()

    void                e_name_selector_model_remove_section
                                                            (ENameSelectorModel *name_selector_model,
                                                             const gchar *name);

Removes a destination section from `name_selector_model`.

`name_selector_model` : | an ENameSelectorModel
`name` : | internal name of the section to remove

### e_name_selector_model_get_contact_emails_without_used ()

    GList *             e_name_selector_model_get_contact_emails_without_used
                                                            (ENameSelectorModel *name_selector_model,
                                                             EContact *contact,
                                                             gboolean remove_used);

`name_selector_model` : | an ENameSelectorModel
`contact` : | to get emails from
`remove_used` : | set to `TRUE` to remove used from a list; or set to `FALSE` to set used indexes to `NULL` and keep them in the returned list
Returns : | list of all email from `contact`, without all used in any section. Each item is a string, an email address. Returned list should be freed with `e_name_selector_model_free_emails_list`.

Since 2.30

### e_name_selector_model_free_emails_list ()

    void                e_name_selector_model_free_emails_list
                                                            (GList *email_list);

Frees a list of emails returned from `e_name_selector_model_get_contact_emails_without_used`.

`email_list` : | list of emails returned from `e_name_selector_model_get_contact_emails_without_used`

Since 2.30

## Signal Details

### The `"section-added"` signal

    void                user_function                      (ENameSelectorModel *enameselectormodel,
                                                            gchar              *arg1,
                                                            gpointer            user_data)               : Run Last

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

### The `"section-removed"` signal

    void                user_function                      (ENameSelectorModel *enameselectormodel,
                                                            gchar              *arg1,
                                                            gpointer            user_data)               : Run Last

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