diff --git a/docs/reference/gtk/migrating-GtkStyleContext.xml b/docs/reference/gtk/migrating-GtkStyleContext.xml index b366e65e91..775fee0545 100644 --- a/docs/reference/gtk/migrating-GtkStyleContext.xml +++ b/docs/reference/gtk/migrating-GtkStyleContext.xml @@ -140,6 +140,7 @@ although custom widgets may define their own, which themes may attempt to handle. + @@ -357,6 +358,37 @@ independently. + + Access to colors has also changed a bit. With #GtkStyle, the common + way to access colors is: + + GdkColor *color1; + GdkColor color2; + + color1 = &style->bg[GTK_STATE_PRELIGHT]; + gtk_style_lookup_color (style, "focus_color", &color2); + + With #GtkStyleContext, you generally use #GdkRGBA instead of #GdkColor + and the code looks like this: + + GdkRGBA *color1; + GdkRGBA color2; + + gtk_style_context_get (context, GTK_STATE_FLAG_PRELIGHT, + "background-color", &color1, + NULL); + gtk_style_context_lookup_color (context, "focus_color", &color2); + + ... + + gdk_rgba_free (color1); + + Note that the memory handling here is different: gtk_style_context_get() + expects the address of a GdkRGBA* and returns a newly allocated struct, + gtk_style_context_lookup_color() expects the address of an existing + struct, and fills it. + + It is worth mentioning that the new file format does not support custom keybindings nor stock icon mappings as the RC format did.