Commit 9a2527b3 authored by Matthias Clasen's avatar Matthias Clasen

Make it possible to set style classes for label links

This makes it possible to style links in labels differently
in certain situations.
parent 92f6bcdc
......@@ -229,9 +229,11 @@
*
* Since 2.18, GTK+ supports markup for clickable hyperlinks in addition
* to regular Pango markup. The markup for links is borrowed from HTML,
* using the `<a>` with “href“ and “title“ attributes. GTK+ renders links
* using the `<a>` with “href“, “title“ and “class“ attributes. GTK+ renders links
* similar to the way they appear in web browsers, with colored, underlined
* text. The “title“ attribute is displayed as a tooltip on the link.
* text. The “title“ attribute is displayed as a tooltip on the link. The “class“
* attribute is used as style class on the CSS node for the link, it is supported
* since 3.22.7.
*
* An example looks like this:
*
......@@ -2399,6 +2401,7 @@ start_element_handler (GMarkupParseContext *context,
GtkLabelLink *link;
const gchar *uri = NULL;
const gchar *title = NULL;
const gchar *class = NULL;
gboolean visited = FALSE;
gint line_number;
gint char_number;
......@@ -2416,6 +2419,8 @@ start_element_handler (GMarkupParseContext *context,
uri = attribute_values[i];
else if (strcmp (attr, "title") == 0)
title = attribute_values[i];
else if (strcmp (attr, "class") == 0)
class = attribute_values[i];
else
{
g_set_error (error,
......@@ -2463,6 +2468,9 @@ start_element_handler (GMarkupParseContext *context,
link->cssnode = gtk_css_node_new ();
gtk_css_node_set_name (link->cssnode, I_("link"));
gtk_css_node_set_parent (link->cssnode, widget_node);
if (class)
gtk_css_node_add_class (link->cssnode, g_quark_from_string (class));
state = gtk_css_node_get_state (widget_node);
if (visited)
state |= GTK_STATE_FLAG_VISITED;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment