Migrating from GnomeHRef to GtkLinkButton
Since version 2.10, GTK+ provides the #GtkLinkButton widget as a
replacement for the GnomeHRef widget
in the libgnomeui library.
Porting an application from GnomeHRef to
#GtkLinkButton is very simple. #GtkLinkButton does not have a
default action for "clicked" signal. So instead of simply creating
the widget
GtkWidget *button;
button = gnome_href_new (url, "");
you will have to handle the activation of the #GtkLinkButton, using
the "clicked" signal for instance
static void
link_button_clicked_cb (GtkWidget *widget,
gpointer data)
{
const gchar *link;
link = gtk_link_button_get_uri (GTK_LINK_BUTTON (widget));
open_browser_at_url (link);
}
/* ... */
GtkWidget *button;
button = gtk_link_button_new (url);
g_signal_connect (button, "clicked",
G_CALLBACK (link_button_clicked_cb), NULL);
If you have more than one #GtkLinkButton instead of connecting
a signal to each one, you can use a "hook function" which will be
called whenever a user activates a link button
static void
link_button_hook (GtkLinkButton *button,
const gchar *link,
gpointer user_data)
{
open_browser_at_url (link);
}
/* ... */
GtkWidget *button1 = gtk_link_button_new (uri1);
GtkWidget *button2 = gtk_link_button_new (uri2);
gtk_link_button_set_uri_hook (link_button_hook, NULL, NULL);