3 * GtkLabel can show hyperlinks. The default action is to call
4 * gtk_show_uri() on their URI, but it is possible to override
5 * this with a custom handler.
11 response_cb (GtkWidget *dialog,
15 gtk_widget_destroy (dialog);
19 activate_link (GtkWidget *label,
23 if (g_strcmp0 (uri, "keynav") == 0)
28 parent = gtk_widget_get_toplevel (label);
29 dialog = gtk_message_dialog_new_with_markup (GTK_WINDOW (parent),
30 GTK_DIALOG_DESTROY_WITH_PARENT,
33 "The term <i>keynav</i> is a shorthand for "
34 "keyboard navigation and refers to the process of using "
35 "a program (exclusively) via keyboard input.");
37 gtk_window_present (GTK_WINDOW (dialog));
38 g_signal_connect (dialog, "response", G_CALLBACK (response_cb), NULL);
46 static GtkWidget *window = NULL;
49 do_links (GtkWidget *do_widget)
55 window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
56 gtk_window_set_screen (GTK_WINDOW (window),
57 gtk_widget_get_screen (do_widget));
58 gtk_window_set_title (GTK_WINDOW (window), "Links");
59 gtk_container_set_border_width (GTK_CONTAINER (window), 12);
60 g_signal_connect (window, "destroy",
61 G_CALLBACK (gtk_widget_destroyed), &window);
63 label = gtk_label_new ("Some <a href=\"http://en.wikipedia.org/wiki/Text\""
64 "title=\"plain text\">text</a> may be marked up\n"
65 "as hyperlinks, which can be clicked\n"
66 "or activated via <a href=\"keynav\">keynav</a>");
67 gtk_label_set_use_markup (GTK_LABEL (label), TRUE);
68 g_signal_connect (label, "activate-link", G_CALLBACK (activate_link), NULL);
69 gtk_container_add (GTK_CONTAINER (window), label);
70 gtk_widget_show (label);
73 if (!gtk_widget_get_visible (window))
75 gtk_widget_show (window);
79 gtk_widget_destroy (window);