## GoSelector

GoSelector — Generic property editor with a dropdown palette

## Synopsis

                        GOSelectorPrivate;
                        GOSelector;
    GtkWidget*          go_selector_new                     (GOPalette *palette);
    int                 go_selector_get_active              (GOSelector *selector,
                                                             gboolean *is_auto);
    gboolean            go_selector_set_active              (GOSelector *selector,
                                                             int index);
    void                go_selector_update_swatch           (GOSelector *selector);
    void                go_selector_activate                (GOSelector *selector);
    gpointer            go_selector_get_user_data           (GOSelector *selector);
    void                (*GOSelectorDndDataReceived)        (GOSelector *selector,
                                                             gpointer data);
    gpointer            (*GOSelectorDndDataGet)             (GOSelector *selector);
    void                (*GOSelectorDndFillIcon)            (GOSelector *selector,
                                                             GdkPixbuf *pixbuf);
    void                go_selector_setup_dnd               (GOSelector *selector,
                                                             char const *dnd_target,
                                                             int dnd_length,
                                                             GOSelectorDndDataGet data_get,
                                                             GOSelectorDndDataReceived data_received,
                                                             GOSelectorDndFillIcon fill_icon);

## Object Hierarchy

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

## Implemented Interfaces

GOSelector implements AtkImplementorIface, GtkBuildable and GtkOrientable.

## Signals

      "activate"                                       : Run Last

## Description

## Details

### GOSelectorPrivate

    typedef struct _GOSelectorPrivate GOSelectorPrivate;

### GOSelector

    typedef struct _GOSelector GOSelector;

### 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_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_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_update_swatch ()

    void                go_selector_update_swatch           (GOSelector *selector);

Requests a swatch update.

`selector` : | a GOSelector

### go_selector_activate ()

    void                go_selector_activate                (GOSelector *selector);

Updates slector swatch and emits an "activate" signal.

`selector` : | a GOSelector

### 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.

### GOSelectorDndDataReceived ()

    void                (*GOSelectorDndDataReceived)        (GOSelector *selector,
                                                             gpointer data);

`selector` : |
`data` : |

### GOSelectorDndDataGet ()

    gpointer            (*GOSelectorDndDataGet)             (GOSelector *selector);

`selector` : |
Returns : |

### GOSelectorDndFillIcon ()

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

`selector` : |
`pixbuf` : |

### 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

## 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.