static void modifier_style_set_color (GtkModifierStyle *style, const gchar *prop, GtkStateFlags state, const GdkRGBA *color) { GtkModifierStylePrivate *priv; GdkRGBA *old_color; g_return_if_fail (GTK_IS_MODIFIER_STYLE (style)); priv = style->priv; gtk_style_properties_get (priv->style, state, prop, &old_color, NULL); if ((!color && !old_color) || (color && old_color && gdk_rgba_equal (color, old_color))) { gdk_rgba_free (old_color); return; } if (color) gtk_style_properties_set (priv->style, state, prop, color, NULL); else gtk_style_properties_unset_property (priv->style, prop, state); g_signal_emit (style, signals[CHANGED], 0); gdk_rgba_free (old_color); }
void _gtk_modifier_style_map_color (GtkModifierStyle *style, const gchar *name, const GdkRGBA *color) { GtkModifierStylePrivate *priv; GtkSymbolicColor *symbolic_color = NULL; g_return_if_fail (GTK_IS_MODIFIER_STYLE (style)); g_return_if_fail (name != NULL); priv = style->priv; G_GNUC_BEGIN_IGNORE_DEPRECATIONS; if (color) symbolic_color = gtk_symbolic_color_new_literal (color); gtk_style_properties_map_color (priv->style, name, symbolic_color); G_GNUC_END_IGNORE_DEPRECATIONS; g_signal_emit (style, signals[CHANGED], 0); _gtk_style_provider_private_changed (GTK_STYLE_PROVIDER_PRIVATE (style)); }
void _gtk_modifier_style_set_color (GtkModifierStyle *style, GtkStateFlags state, const GdkRGBA *color) { g_return_if_fail (GTK_IS_MODIFIER_STYLE (style)); modifier_style_set_color (style, "color", state, color); }
void _gtk_modifier_style_set_font (GtkModifierStyle *style, const PangoFontDescription *font_desc) { GtkModifierStylePrivate *priv; g_return_if_fail (GTK_IS_MODIFIER_STYLE (style)); priv = style->priv; if (font_desc) gtk_style_properties_set (priv->style, 0, "font", font_desc, NULL); else gtk_style_properties_unset_property (priv->style, "font", 0); g_signal_emit (style, signals[CHANGED], 0); _gtk_style_provider_private_changed (GTK_STYLE_PROVIDER_PRIVATE (style)); }
void _gtk_modifier_style_map_color (GtkModifierStyle *style, const gchar *name, const GdkRGBA *color) { GtkModifierStylePrivate *priv; GtkSymbolicColor *symbolic_color = NULL; g_return_if_fail (GTK_IS_MODIFIER_STYLE (style)); g_return_if_fail (name != NULL); priv = style->priv; if (color) symbolic_color = gtk_symbolic_color_new_literal (color); gtk_style_properties_map_color (priv->style, name, symbolic_color); g_signal_emit (style, signals[CHANGED], 0); }
void _gtk_modifier_style_set_color_property (GtkModifierStyle *style, GType widget_type, const gchar *prop_name, const GdkRGBA *color) { GtkModifierStylePrivate *priv; const GdkRGBA *old_color; gchar *str; g_return_if_fail (GTK_IS_MODIFIER_STYLE (style)); g_return_if_fail (g_type_is_a (widget_type, GTK_TYPE_WIDGET)); g_return_if_fail (prop_name != NULL); priv = style->priv; str = g_strdup_printf ("-%s-%s", g_type_name (widget_type), prop_name); old_color = g_hash_table_lookup (priv->color_properties, str); if ((!color && !old_color) || (color && old_color && gdk_rgba_equal (color, old_color))) { g_free (str); return; } if (color) { g_hash_table_insert (priv->color_properties, str, gdk_rgba_copy (color)); } else { g_hash_table_remove (priv->color_properties, str); g_free (str); } g_signal_emit (style, signals[CHANGED], 0); _gtk_style_provider_private_changed (GTK_STYLE_PROVIDER_PRIVATE (style)); }
static void modifier_style_set_color (GtkModifierStyle *style, const gchar *prop, GtkStateFlags state, const GdkRGBA *color) { GtkModifierStylePrivate *priv; g_return_if_fail (GTK_IS_MODIFIER_STYLE (style)); priv = style->priv; if (color) gtk_style_properties_set (priv->style, state, prop, color, NULL); else gtk_style_properties_unset_property (priv->style, prop, state); g_signal_emit (style, signals[CHANGED], 0); _gtk_style_provider_private_changed (GTK_STYLE_PROVIDER_PRIVATE (style)); }
void _gtk_modifier_style_set_font (GtkModifierStyle *style, const PangoFontDescription *font_desc) { GtkModifierStylePrivate *priv; PangoFontDescription *old_font; g_return_if_fail (GTK_IS_MODIFIER_STYLE (style)); priv = style->priv; gtk_style_properties_get (priv->style, 0, "font", &old_font, NULL); if ((!old_font && !font_desc) || (old_font && font_desc && pango_font_description_equal (old_font, font_desc))) { if (old_font) pango_font_description_free (old_font); return; } if (font_desc) gtk_style_properties_set (priv->style, 0, "font", font_desc, NULL); else gtk_style_properties_unset_property (priv->style, "font", 0); if (old_font) pango_font_description_free (old_font); g_signal_emit (style, signals[CHANGED], 0); }