X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkstyleprovider.h;h=81bf5d6a6007abc2d693b5f1c3c17cf1a2a44f0a;hb=1ddfc3a985d7b7652a0106699b2cf2d2abf7abe3;hp=6e12bb3c662ba97223314c9d83ad224d7d02d67c;hpb=7c5c4d86aefd6e39d7f23eaf4e107467300b9295;p=~andy%2Fgtk diff --git a/gtk/gtkstyleprovider.h b/gtk/gtkstyleprovider.h index 6e12bb3c6..81bf5d6a6 100644 --- a/gtk/gtkstyleprovider.h +++ b/gtk/gtkstyleprovider.h @@ -12,18 +12,21 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * License along with this library. If not, see . */ #ifndef __GTK_STYLE_PROVIDER_H__ #define __GTK_STYLE_PROVIDER_H__ +#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) +#error "Only can be included directly." +#endif + #include -#include "gtkwidgetpath.h" -#include "gtkstyleset.h" -#include "gtkenums.h" +#include +#include +#include +#include G_BEGIN_DECLS @@ -32,29 +35,93 @@ G_BEGIN_DECLS #define GTK_IS_STYLE_PROVIDER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GTK_TYPE_STYLE_PROVIDER)) #define GTK_STYLE_PROVIDER_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GTK_TYPE_STYLE_PROVIDER, GtkStyleProviderIface)) -typedef struct GtkStyleProviderIface GtkStyleProviderIface; -typedef struct GtkStyleProvider GtkStyleProvider; /* dummy typedef */ +/** + * GTK_STYLE_PROVIDER_PRIORITY_FALLBACK: + * + * The priority used for default style information + * that is used in the absence of themes. + */ +#define GTK_STYLE_PROVIDER_PRIORITY_FALLBACK 1 -typedef enum { - GTK_SELECTOR_TYPE_PATH, - GTK_SELECTOR_TYPE_NAME, - GTK_SELECTOR_TYPE_CLASS_PATH, - GTK_SELECTOR_TYPE_CLASS_NAME -} GtkSelectorType; +/** + * GTK_STYLE_PROVIDER_PRIORITY_THEME: + * + * The priority used for style information provided + * by themes. + */ +#define GTK_STYLE_PROVIDER_PRIORITY_THEME 200 -struct GtkStyleProviderIface +/** + * GTK_STYLE_PROVIDER_PRIORITY_SETTINGS: + * + * The priority used for style information provided + * via #GtkSettings. + * + * This priority is higher than #GTK_STYLE_PROVIDER_PRIORITY_THEME + * to let settings override themes. + */ +#define GTK_STYLE_PROVIDER_PRIORITY_SETTINGS 400 + +/** + * GTK_STYLE_PROVIDER_PRIORITY_APPLICATION: + * + * A priority that can be used when adding a #GtkStyleProvider + * for application-specific style information. + */ +#define GTK_STYLE_PROVIDER_PRIORITY_APPLICATION 600 + +/** + * GTK_STYLE_PROVIDER_PRIORITY_USER: + * + * 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. + */ +#define GTK_STYLE_PROVIDER_PRIORITY_USER 800 + +typedef struct _GtkStyleProviderIface GtkStyleProviderIface; +typedef struct _GtkStyleProvider GtkStyleProvider; /* dummy typedef */ + +/** + * GtkStyleProviderIface: + * @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. + */ +struct _GtkStyleProviderIface { GTypeInterface g_iface; - GtkStyleSet * (* get_style) (GtkStyleProvider *provider, - GtkWidgetPath *path); + 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); }; GType gtk_style_provider_get_type (void) G_GNUC_CONST; -GtkStyleSet *gtk_style_provider_get_style (GtkStyleProvider *provider, - GtkWidgetPath *path); +GDK_DEPRECATED_IN_3_8 +GtkStyleProperties *gtk_style_provider_get_style (GtkStyleProvider *provider, + GtkWidgetPath *path); + +gboolean gtk_style_provider_get_style_property (GtkStyleProvider *provider, + GtkWidgetPath *path, + GtkStateFlags state, + GParamSpec *pspec, + GValue *value); +GDK_DEPRECATED_IN_3_8_FOR(NULL) +GtkIconFactory * gtk_style_provider_get_icon_factory (GtkStyleProvider *provider, + GtkWidgetPath *path); G_END_DECLS