## EProxySelector EProxySelector — Select and manage proxy profiles |

## Synopsis

    #include <e-util/e-util.h>

    struct              EProxySelector;
    GtkWidget *         e_proxy_selector_new                (ESourceRegistry *registry);
    void                e_proxy_selector_refresh            (EProxySelector *selector);
    ESourceRegistry *   e_proxy_selector_get_registry       (EProxySelector *selector);
    ESource *           e_proxy_selector_ref_selected       (EProxySelector *selector);
    gboolean            e_proxy_selector_set_selected       (EProxySelector *selector,
                                                             ESource *source);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GtkWidget
                   +----GtkContainer
                         +----GtkBox
                               +----ETreeViewFrame
                                     +----EProxySelector

## Implemented Interfaces

EProxySelector implements AtkImplementorIface, GtkBuildable, GtkOrientable and EExtensible.

## Properties

      "registry"                 ESourceRegistry*      : Read / Write / Construct Only
      "selected"                 ESource*              : Read / Write

## Description

EProxySelector displays a list of available proxy profiles, with inline toolbar controls for adding and removing profiles.

## Details

### struct EProxySelector

    struct EProxySelector;

Contains only private data that should be read and manipulated using the functions below.

### e_proxy_selector_new ()

    GtkWidget *         e_proxy_selector_new                (ESourceRegistry *registry);

Creates a new EProxySelector widget using ESource instances in `registry`.

`registry` : | an ESourceRegistry
Returns : | a new EProxySelector

### e_proxy_selector_refresh ()

    void                e_proxy_selector_refresh            (EProxySelector *selector);

Rebuilds the `selector`'s list store with an updated list of ESource instances that describe a network proxy profile, without disrupting the previously selected item (if possible).

This funtion is called automatically in response to ESourceRegistry signals which are pertinent to the `selector`.

`selector` : | an EProxySelector

### e_proxy_selector_get_registry ()

    ESourceRegistry *   e_proxy_selector_get_registry       (EProxySelector *selector);

Returns the ESourceRegistry passed to `e_proxy_selector_get_registry()`.

`selector` : | an EProxySelector
Returns : | an ESourceRegistry

### e_proxy_selector_ref_selected ()

    ESource *           e_proxy_selector_ref_selected       (EProxySelector *selector);

Returns the selected ESource in `selector`.

The function tries to ensure a valid ESource is always returned, falling back to `e_source_registry_ref_builtin_proxy()` if necessary.

The returned ESource is referenced for thread-safety and must be unreferenced with `g_object_unref()` when finished with it.

`selector` : | an EProxySelector
Returns : | an ESource

### e_proxy_selector_set_selected ()

    gboolean            e_proxy_selector_set_selected       (EProxySelector *selector,
                                                             ESource *source);

Finds the corresponding tree model row for `source`, selects the row, and returns `TRUE`. If no corresponding tree model row for `source` is found, the selection remains unchanged and the function returns `FALSE`.

`selector` : | an EProxySelector
`source` : | an ESource, or `NULL` for the built-in proxy profile
Returns : | whether `source` was selected

## Property Details

### The `"registry"` property

      "registry"                 ESourceRegistry*      : Read / Write / Construct Only

Data source registry.

### The `"selected"` property

      "selected"                 ESource*              : Read / Write

The selected data source.