## ShadeComboBox

ShadeComboBox — Defines a specialised GtkComboBox to choose pre-built shades.

## Synopsis

    #include <coreTools/toolShade.h>

                        ShadeComboBox;
    GtkWidget*          shadeComboBox_new                   (gboolean hasAlphaChannel);
    Shade*              shadeComboBoxGet_selectedShade      (ShadeComboBox *shadeComboBox);
    GdkPixbuf*          shadeComboBoxGet_pixbufFromShade    (ShadeComboBox *shadeComboBox,
                                                             Shade *shade);
    gboolean            shadeComboBoxSet_selectionByShade   (ShadeComboBox *shadeComboBox,
                                                             Shade *shade);
    GdkPixbuf*          shadeComboBoxBuild_shadeStamp       (Shade *shade,
                                                             GdkPixbuf *pixbuf);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GtkObject
                   +----GtkWidget
                         +----GtkContainer
                               +----GtkBin
                                     +----GtkComboBox
                                           +----ShadeComboBox

## Implemented Interfaces

ShadeComboBox implements AtkImplementorIface, GtkBuildable, GtkCellLayout and GtkCellEditable.

## Signals

      "shade-selected"                                 : Run First / Action

## Description

This widget looks like a GtkComboBox and it displays a list of preset colour shades. These patterns are defined by colour parameters, see Shade.

This widget can emit a "shade-selected" signal that is a wrapper around the "changed" signal, but it is emitted only when a new shade is selected and this shade is passed to the callback.

## Details

### ShadeComboBox

    typedef struct _ShadeComboBox ShadeComboBox;

Private structure to store informations of a ShadeComboBox object.

Since 3.3

### shadeComboBox_new ()

    GtkWidget*          shadeComboBox_new                   (gboolean hasAlphaChannel);

A ShadeComboBox widget is like a GtkComboBox widget, but it is already filled with the known shades. Using this widget is a convienient way to share shades between all part of V_Sim and to give a consistent look of all shade selection. If the argument `hasAlphaChannel` is FALSE, the widget display all shades but without their alpha channel, assuming it to be fully opaque.

`hasAlphaChannel` : | a boolean.
Returns : | a newly created ShadeComboBox widget.

Since 3.3

### shadeComboBoxGet_selectedShade ()

    Shade*              shadeComboBoxGet_selectedShade      (ShadeComboBox *shadeComboBox);

The user can access to the selected Shade object using this method.

`shadeComboBox` : | a ShadeComboBox widget.
Returns : | a pointer to the selected Shade object (or NULL). This object is read-only.

Since 3.3

### shadeComboBoxGet_pixbufFromShade ()

    GdkPixbuf*          shadeComboBoxGet_pixbufFromShade    (ShadeComboBox *shadeComboBox,
                                                             Shade *shade);

The `shadeComboBox` has little pixbufs to represent the shade. User methods can use these pixbufs but should considered them read-only.

`shadeComboBox` : | a ShadeComboBox widget ;
`shade` : | a Shade object.
Returns : | a pixbuf pointer corresponding to the little image shown on the `shadeComboBox`.

Since 3.3

### shadeComboBoxSet_selectionByShade ()

    gboolean            shadeComboBoxSet_selectionByShade   (ShadeComboBox *shadeComboBox,
                                                             Shade *shade);

Use this method to set the ComboBox on the given shade. This emits a 'shade-channel' signal if the shade is changed, which means, a previous shade has been modified, or a new shade is selected.

`shadeComboBox` : | a ShadeComboBox widget ;
`shade` : | a Shade object.
Returns : | TRUE if the `shade` already exists in the model.

Since 3.3

### shadeComboBoxBuild_shadeStamp ()

    GdkPixbuf*          shadeComboBoxBuild_shadeStamp       (Shade *shade,
                                                             GdkPixbuf *pixbuf);

This method is used to create pixbuf representing shades. If `pixbuf` is given, it must be a valid pixbuf, and the shade is created in it. Otherwise, a new pixbuf is created.

`shade` : | a Shade object ;
`pixbuf` : | an existing pixbuf (can be NULL).
Returns : | a pixbuf pointer.

Since 3.3

## Signal Details

### The `"shade-selected"` signal

    void                user_function                      (ShadeComboBox *combo,
                                                            gpointer       shade,
                                                            gpointer       user_data)      : Run First / Action

This signal is emitted when a new valid colour shade is selected.

`combo` : | the ShadeComboBox that emits the signal ;
`shade` : | the newly selected Shade.
`user_data` : | user data set when the signal handler was connected.

Since 3.3

## See Also

StippleComboBox, Shade