## GOSelector GOSelector |

## Synopsis

    struct              GOSelector;
    gpointer            (*GOSelectorDndDataGet)             (GOSelector *selector);
    void                (*GOSelectorDndDataReceived)        (GOSelector *selector,
                                                             guchar const *data);
    void                (*GOSelectorDndFillIcon)            (GOSelector *selector,
                                                             GdkPixbuf *pixbuf);
    void                go_selector_activate                (GOSelector *selector);
    int                 go_selector_get_active              (GOSelector *selector,
                                                             gboolean *is_auto);
    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);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GtkWidget
                   +----GtkContainer
                         +----GtkBox
                               +----GOSelector

## Implemented Interfaces

GOSelector implements AtkImplementorIface, GtkBuildable and GtkOrientable.

## Signals

      "activate"                                       : Run Last

## Description

## Details

### struct GOSelector

    struct GOSelector;

### GOSelectorDndDataGet ()

    gpointer            (*GOSelectorDndDataGet)             (GOSelector *selector);

### GOSelectorDndDataReceived ()

    void                (*GOSelectorDndDataReceived)        (GOSelector *selector,
                                                             guchar const *data);

### GOSelectorDndFillIcon ()

    void                (*GOSelectorDndFillIcon)            (GOSelector *selector,
                                                             GdkPixbuf *pixbuf);

### 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` : | boolean
Returns : | current index.

### 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. [transfer none]

### 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. [scope notified]
`data_received` : | a user provided data_received method. [scope notified]
`fill_icon` : | a user function for dnd icon creation. [scope notified]

### go_selector_update_swatch ()

    void                go_selector_update_swatch           (GOSelector *selector);

Requests a swatch update.

`selector` : | a GOSelector

## Signal Details

### The `"activate"` signal

    void                user_function                      (GOSelector *goselector,
                                                            gpointer    user_data)       : Run Last

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