## GtkGradient

GtkGradient — Gradients

## Synopsis

    #include <gtk/gtk.h>

                        GtkGradient;
    GtkGradient *       gtk_gradient_new_linear             (gdouble x0,
                                                             gdouble y0,
                                                             gdouble x1,
                                                             gdouble y1);
    GtkGradient *       gtk_gradient_new_radial             (gdouble x0,
                                                             gdouble y0,
                                                             gdouble radius0,
                                                             gdouble x1,
                                                             gdouble y1,
                                                             gdouble radius1);
    void                gtk_gradient_add_color_stop         (GtkGradient *gradient,
                                                             gdouble offset,
                                                             GtkSymbolicColor *color);
    GtkGradient *       gtk_gradient_ref                    (GtkGradient *gradient);
    void                gtk_gradient_unref                  (GtkGradient *gradient);
    gboolean            gtk_gradient_resolve                (GtkGradient *gradient,
                                                             GtkStyleProperties *props,
                                                             cairo_pattern_t **resolved_gradient);
    cairo_pattern_t *   gtk_gradient_resolve_for_context    (GtkGradient *gradient,
                                                             GtkStyleContext *context);
    char *              gtk_gradient_to_string              (GtkGradient *gradient);

## Description

GtkGradient is a boxed type that represents a gradient. It is the result of parsing a gradient expression. To obtain the gradient represented by a GtkGradient, it has to be resolved with `gtk_gradient_resolve()`, which replaces all symbolic color references by the colors they refer to (in a given context) and constructs a cairo_pattern_t value.

It is not normally necessary to deal directly with GtkGradients, since they are mostly used behind the scenes by GtkStyleContext and GtkCssProvider.

GtkGradient is deprecated. It was used internally by GTK's CSS engine to represent gradients. As its handling is not conforming to modern web standards, it is not used anymore. If you want to use gradients in your own code, please use Cairo directly.

## Details

### GtkGradient

    typedef struct _GtkGradient GtkGradient;

### gtk_gradient_new_linear ()

    GtkGradient *       gtk_gradient_new_linear             (gdouble x0,
                                                             gdouble y0,
                                                             gdouble x1,
                                                             gdouble y1);

### Warning

`gtk_gradient_new_linear` has been deprecated since version 3.8 and should not be used in newly-written code. GtkGradient is deprecated.

Creates a new linear gradient along the line defined by (x0, y0) and (x1, y1). Before using the gradient a number of stop colors must be added through `gtk_gradient_add_color_stop()`.

`x0` : | X coordinate of the starting point
`y0` : | Y coordinate of the starting point
`x1` : | X coordinate of the end point
`y1` : | Y coordinate of the end point
Returns : | A newly created GtkGradient

Since 3.0

### gtk_gradient_new_radial ()

    GtkGradient *       gtk_gradient_new_radial             (gdouble x0,
                                                             gdouble y0,
                                                             gdouble radius0,
                                                             gdouble x1,
                                                             gdouble y1,
                                                             gdouble radius1);

### Warning

`gtk_gradient_new_radial` has been deprecated since version 3.8 and should not be used in newly-written code. GtkGradient is deprecated.

Creates a new radial gradient along the two circles defined by (x0, y0, radius0) and (x1, y1, radius1). Before using the gradient a number of stop colors must be added through `gtk_gradient_add_color_stop()`.

`x0` : | X coordinate of the start circle
`y0` : | Y coordinate of the start circle
`radius0` : | radius of the start circle
`x1` : | X coordinate of the end circle
`y1` : | Y coordinate of the end circle
`radius1` : | radius of the end circle
Returns : | A newly created GtkGradient

Since 3.0

### gtk_gradient_add_color_stop ()

    void                gtk_gradient_add_color_stop         (GtkGradient *gradient,
                                                             gdouble offset,
                                                             GtkSymbolicColor *color);

### Warning

`gtk_gradient_add_color_stop` has been deprecated since version 3.8 and should not be used in newly-written code. GtkGradient is deprecated.

Adds a stop color to `gradient`.

`gradient` : | a GtkGradient
`offset` : | offset for the color stop
`color` : | color to use

Since 3.0

### gtk_gradient_ref ()

    GtkGradient *       gtk_gradient_ref                    (GtkGradient *gradient);

### Warning

`gtk_gradient_ref` has been deprecated since version 3.8 and should not be used in newly-written code. GtkGradient is deprecated.

Increases the reference count of `gradient`.

`gradient` : | a GtkGradient
Returns : | The same `gradient`

Since 3.0

### gtk_gradient_unref ()

    void                gtk_gradient_unref                  (GtkGradient *gradient);

### Warning

`gtk_gradient_unref` has been deprecated since version 3.8 and should not be used in newly-written code. GtkGradient is deprecated.

Decreases the reference count of `gradient`, freeing its memory if the reference count reaches 0.

`gradient` : | a GtkGradient

Since 3.0

### gtk_gradient_resolve ()

    gboolean            gtk_gradient_resolve                (GtkGradient *gradient,
                                                             GtkStyleProperties *props,
                                                             cairo_pattern_t **resolved_gradient);

### Warning

`gtk_gradient_resolve` has been deprecated since version 3.8 and should not be used in newly-written code. GtkGradient is deprecated.

If `gradient` is resolvable, `resolved_gradient` will be filled in with the resolved gradient as a cairo_pattern_t, and `TRUE` will be returned. Generally, if `gradient` can't be resolved, it is due to it being defined on top of a named color that doesn't exist in `props`.

`gradient` : | a GtkGradient
`props` : | GtkStyleProperties to use when resolving named colors
`resolved_gradient` : | return location for the resolved pattern. [out]
Returns : | `TRUE` if the gradient has been resolved

Since 3.0

### gtk_gradient_resolve_for_context ()

    cairo_pattern_t *   gtk_gradient_resolve_for_context    (GtkGradient *gradient,
                                                             GtkStyleContext *context);

### Warning

`gtk_gradient_resolve_for_context` is deprecated and should not be used in newly-written code.

### gtk_gradient_to_string ()

    char *              gtk_gradient_to_string              (GtkGradient *gradient);

### Warning

`gtk_gradient_to_string` has been deprecated since version 3.8 and should not be used in newly-written code. GtkGradient is deprecated.

Creates a string representation for `gradient` that is suitable for using in GTK CSS files.

`gradient` : | the gradient to print
Returns : | A string representation for `gradient`