## GtkStyleProvider

GtkStyleProvider — Interface to provide style information to GtkStyleContext

## Functions

GtkIconFactory * | gtk_style_provider_get_icon_factory ()
GtkStyleProperties * | gtk_style_provider_get_style ()
gboolean | gtk_style_provider_get_style_property ()

## Types and Values

struct | GtkStyleProviderIface
| GtkStyleProvider
#define | GTK_STYLE_PROVIDER_PRIORITY_FALLBACK
#define | GTK_STYLE_PROVIDER_PRIORITY_THEME
#define | GTK_STYLE_PROVIDER_PRIORITY_SETTINGS
#define | GTK_STYLE_PROVIDER_PRIORITY_APPLICATION
#define | GTK_STYLE_PROVIDER_PRIORITY_USER

## Object Hierarchy

        GInterface
        ╰── GtkStyleProvider

## Known Implementations

GtkStyleProvider is implemented by GtkCssProvider and GtkSettings.

## Includes

    #include <gtk/gtk.h>

## Description

GtkStyleProvider is an interface used to provide style information to a GtkStyleContext. See `gtk_style_context_add_provider()` and `gtk_style_context_add_provider_for_screen()`.

## Functions

### gtk_style_provider_get_icon_factory ()

    GtkIconFactory *
    gtk_style_provider_get_icon_factory (GtkStyleProvider *provider,
                                         GtkWidgetPath *path);

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

Will always return `NULL` for all GTK-provided style providers.

Returns the GtkIconFactory defined to be in use for `path` , or `NULL` if none is defined.

#### Parameters

provider | a GtkStyleProvider |
path | GtkWidgetPath to query |

#### Returns

The icon factory to use for `path` , or `NULL`.

[transfer none]

Since 3.0

### gtk_style_provider_get_style ()

    GtkStyleProperties *
    gtk_style_provider_get_style (GtkStyleProvider *provider,
                                  GtkWidgetPath *path);

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

Will always return `NULL` for all GTK-provided style providers as the interface cannot correctly work the way CSS is specified.

Returns the style settings affecting a widget defined by `path` , or `NULL` if `provider` doesn’t contemplate styling `path` .

#### Parameters

provider | a GtkStyleProvider |
path | GtkWidgetPath to query |

#### Returns

a GtkStyleProperties containing the style settings affecting `path` .

[transfer full]

Since 3.0

### gtk_style_provider_get_style_property ()

    gboolean
    gtk_style_provider_get_style_property (GtkStyleProvider *provider,
                                           GtkWidgetPath *path,
                                           GtkStateFlags state,
                                           GParamSpec *pspec,
                                           GValue *value);

Looks up a widget style property as defined by `provider` for the widget represented by `path` .

#### Parameters

provider | a GtkStyleProvider |
path | GtkWidgetPath to query |
state | state to query the style property for |
pspec | The GParamSpec to query |
value | return location for the property value. | [out]

#### Returns

`TRUE` if the property was found and has a value, `FALSE` otherwise

Since 3.0

## Types and Values

### struct GtkStyleProviderIface

    struct GtkStyleProviderIface {
      GtkStyleProperties * (* get_style) (GtkStyleProvider *provider,
                                          GtkWidgetPath    *path);

      gboolean (* get_style_property) (GtkStyleProvider *provider,
                                       GtkWidgetPath    *path,
                                       GtkStateFlags     state,
                                       GParamSpec       *pspec,
                                       GValue           *value);

      GtkIconFactory * (* get_icon_factory) (GtkStyleProvider *provider,
    					 GtkWidgetPath    *path);
    };

#### Members

`get_style` () | Gets a set of style information that applies to a widget path. |
`get_style_property` () | Gets the value of a widget style property that applies to a widget path. |
`get_icon_factory` () | Gets the icon factory that applies to a widget path. |

### GtkStyleProvider

    typedef struct _GtkStyleProvider GtkStyleProvider;

### GTK_STYLE_PROVIDER_PRIORITY_FALLBACK

    #define GTK_STYLE_PROVIDER_PRIORITY_FALLBACK      1

The priority used for default style information that is used in the absence of themes.

Note that this is not very useful for providing default styling for custom style classes - themes are likely to override styling provided at this priority with catch-all `* {...}` rules.

### GTK_STYLE_PROVIDER_PRIORITY_THEME

    #define GTK_STYLE_PROVIDER_PRIORITY_THEME     200

The priority used for style information provided by themes.

### GTK_STYLE_PROVIDER_PRIORITY_SETTINGS

    #define GTK_STYLE_PROVIDER_PRIORITY_SETTINGS    400

The priority used for style information provided via GtkSettings.

This priority is higher than GTK_STYLE_PROVIDER_PRIORITY_THEME to let settings override themes.

### GTK_STYLE_PROVIDER_PRIORITY_APPLICATION

    #define GTK_STYLE_PROVIDER_PRIORITY_APPLICATION 600

A priority that can be used when adding a GtkStyleProvider for application-specific style information.

### GTK_STYLE_PROVIDER_PRIORITY_USER

    #define GTK_STYLE_PROVIDER_PRIORITY_USER        800

The priority used for the style information from `~/.gtk-3.0.css`.

You should not use priorities higher than this, to give the user the last word.

## See Also

GtkStyleContext, GtkCssProvider