mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-16 23:24:16 +00:00
GtkStyleSet: Register GtkThemingEngine type.
This has been also hooked up to the CSS provider, which parses the "engine" value to load the corresponding module.
This commit is contained in:
parent
327a9fc66a
commit
66d1cb8054
@ -905,6 +905,14 @@ parse_value (GType type,
|
|||||||
g_value_set_double (value, g_ascii_strtod (value_str, NULL));
|
g_value_set_double (value, g_ascii_strtod (value_str, NULL));
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
else if (type == GTK_TYPE_THEMING_ENGINE)
|
||||||
|
{
|
||||||
|
GtkThemingEngine *engine;
|
||||||
|
|
||||||
|
engine = gtk_theming_engine_load (value_str);
|
||||||
|
g_value_set_object (value, engine);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
g_warning ("Cannot parse string '%s' for type %s", value_str, g_type_name (type));
|
g_warning ("Cannot parse string '%s' for type %s", value_str, g_type_name (type));
|
||||||
|
|
||||||
|
@ -145,6 +145,10 @@ rebuild_properties (GtkStyleContext *context)
|
|||||||
g_object_unref (provider_style);
|
g_object_unref (provider_style);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gtk_style_set_get (priv->store, GTK_STATE_NORMAL,
|
||||||
|
"engine", &priv->theming_engine,
|
||||||
|
NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
#include "gtkstyleprovider.h"
|
#include "gtkstyleprovider.h"
|
||||||
#include "gtkstyleset.h"
|
#include "gtkstyleset.h"
|
||||||
#include "gtkprivate.h"
|
#include "gtkprivate.h"
|
||||||
|
#include "gtkthemingengine.h"
|
||||||
#include "gtkintl.h"
|
#include "gtkintl.h"
|
||||||
|
|
||||||
#include "gtkalias.h"
|
#include "gtkalias.h"
|
||||||
@ -78,6 +79,7 @@ gtk_style_set_class_init (GtkStyleSetClass *klass)
|
|||||||
gtk_style_set_register_property ("font", PANGO_TYPE_FONT_DESCRIPTION);
|
gtk_style_set_register_property ("font", PANGO_TYPE_FONT_DESCRIPTION);
|
||||||
|
|
||||||
gtk_style_set_register_property ("padding", GTK_TYPE_BORDER);
|
gtk_style_set_register_property ("padding", GTK_TYPE_BORDER);
|
||||||
|
gtk_style_set_register_property ("engine", GTK_TYPE_THEMING_ENGINE);
|
||||||
|
|
||||||
g_type_class_add_private (object_class, sizeof (GtkStyleSetPrivate));
|
g_type_class_add_private (object_class, sizeof (GtkStyleSetPrivate));
|
||||||
}
|
}
|
||||||
|
@ -393,7 +393,7 @@ gtk_theming_engine_load (const gchar *name)
|
|||||||
|
|
||||||
if (!engine)
|
if (!engine)
|
||||||
{
|
{
|
||||||
if (!default_engine)
|
if (G_UNLIKELY (!default_engine))
|
||||||
default_engine = g_object_new (GTK_TYPE_THEMING_ENGINE, NULL);
|
default_engine = g_object_new (GTK_TYPE_THEMING_ENGINE, NULL);
|
||||||
|
|
||||||
engine = default_engine;
|
engine = default_engine;
|
||||||
|
Loading…
Reference in New Issue
Block a user