## GoSelector

GoSelector — Generic property editor with a dropdown palette

## Synopsis

    void                go_selector_activate                (GOSelector *selector);
    int                 go_selector_get_active              (GOSelector *selector,
                                                             gboolean *is_auto);
    GType               go_selector_get_type                (void);
    gpointer            go_selector_get_user_data           (GOSelector *selector);
    GtkWidget*          go_selector_new                     (GOPalette *palette);
    gboolean            go_selector_set_active              (GOSelector *selector,
                                                             int index);
    void                go_selector_setup_dnd               (GOSelector *selector,
                                                             char const *dnd_target,
                                                             int dnd_length,
                                                             GOSelectorDndDataGet data_get,
                                                             GOSelectorDndDataReceived data_received,
                                                             GOSelectorDndFillIcon fill_icon);
    void                go_selector_update_swatch           (GOSelector *selector);
    GtkWidget*          go_gradient_selector_new            (GOGradientDirection initial_direction,
                                                             GOGradientDirection default_direction);
    void                go_gradient_selector_set_colors     (GOSelector *selector,
                                                             GOColor start,
                                                             GOColor stop);

## Description

## Details

### go_selector_activate ()

    void                go_selector_activate                (GOSelector *selector);

Updates slector swatch and emits an "activate" signal.

`selector` : | a GOSelector

### go_selector_get_active ()

    int                 go_selector_get_active              (GOSelector *selector,
                                                             gboolean *is_auto);

Retrieves current selection index, and set `is_auto` to TRUE if current selection was set by clicking on automatic palette item.

`selector` : | a GOSelector
`is_auto` : |
Returns : | current index.

### go_selector_get_type ()

    GType               go_selector_get_type                (void);

Returns : |

### go_selector_get_user_data ()

    gpointer            go_selector_get_user_data           (GOSelector *selector);

A convenience function to access user_data of selector palette. (See `go_palette_get_user_data`).

`selector` : | a GOSelector
Returns : | a pointer to palette user_data.

### go_selector_new ()

    GtkWidget*          go_selector_new                     (GOPalette *palette);

Creates a new selector, using `palette`. Selector button swatch will use swatch render function of `palette`.

`palette` : | a GOPalette
Returns : | a new GtkWidget.

### go_selector_set_active ()

    gboolean            go_selector_set_active              (GOSelector *selector,
                                                             int index);

Sets current selection index, and emits "activate" signal if selection is actually changed.

`selector` : | a GOSelector
`index` : | new index
Returns : | TRUE if selection is actually changed.

### go_selector_setup_dnd ()

    void                go_selector_setup_dnd               (GOSelector *selector,
                                                             char const *dnd_target,
                                                             int dnd_length,
                                                             GOSelectorDndDataGet data_get,
                                                             GOSelectorDndDataReceived data_received,
                                                             GOSelectorDndFillIcon fill_icon);

Setups drag and drop for `selector`.

`selector` : | a GOSelector
`dnd_target` : | drag and drop target type
`dnd_length` : | length of data transfered on drop
`data_get` : | a user provided data_get method
`data_received` : | a user provided data_received method
`fill_icon` : | a user function for dnd icon creation

### go_selector_update_swatch ()

    void                go_selector_update_swatch           (GOSelector *selector);

Requests a swatch update.

`selector` : | a GOSelector

### go_gradient_selector_new ()

    GtkWidget*          go_gradient_selector_new            (GOGradientDirection initial_direction,
                                                             GOGradientDirection default_direction);

`initial_direction` : |
`default_direction` : |
Returns : |

### go_gradient_selector_set_colors ()

    void                go_gradient_selector_set_colors     (GOSelector *selector,
                                                             GOColor start,
                                                             GOColor stop);

`selector` : |
`start` : |
`stop` : |