|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
|
|
Packit Service |
fb6fa5 |
]>
|
|
Packit Service |
fb6fa5 |
<chapter id="gtk-migrating-GtkLinkButton">
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
<title>Migrating from GnomeHRef to GtkLinkButton</title>
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
<para>
|
|
Packit Service |
fb6fa5 |
Since version 2.10, GTK+ provides the #GtkLinkButton widget as a
|
|
Packit Service |
fb6fa5 |
replacement for the <structname>GnomeHRef</structname> widget
|
|
Packit Service |
fb6fa5 |
in the libgnomeui library.
|
|
Packit Service |
fb6fa5 |
</para>
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
<para>
|
|
Packit Service |
fb6fa5 |
Porting an application from <structname>GnomeHRef</structname> to
|
|
Packit Service |
fb6fa5 |
#GtkLinkButton is very simple. #GtkLinkButton does not have a
|
|
Packit Service |
fb6fa5 |
default action for #GtkButton::clicked signal. So instead of simply
|
|
Packit Service |
fb6fa5 |
creating the widget
|
|
Packit Service |
fb6fa5 |
<informalexample><programlisting>
|
|
Packit Service |
fb6fa5 |
GtkWidget *button;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
button = gnome_href_new (url, "");
|
|
Packit Service |
fb6fa5 |
</programlisting></informalexample>
|
|
Packit Service |
fb6fa5 |
you will have to handle the activation of the #GtkLinkButton, using
|
|
Packit Service |
fb6fa5 |
the ::clicked signal for instance
|
|
Packit Service |
fb6fa5 |
<informalexample><programlisting>
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
link_button_clicked_cb (GtkWidget *widget,
|
|
Packit Service |
fb6fa5 |
gpointer data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
const gchar *link;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
link = gtk_link_button_get_uri (GTK_LINK_BUTTON (widget));
|
|
Packit Service |
fb6fa5 |
open_browser_at_url (link);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* ... */
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
GtkWidget *button;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
button = gtk_link_button_new (url);
|
|
Packit Service |
fb6fa5 |
g_signal_connect (button, "clicked",
|
|
Packit Service |
fb6fa5 |
G_CALLBACK (link_button_clicked_cb), NULL);
|
|
Packit Service |
fb6fa5 |
</programlisting></informalexample>
|
|
Packit Service |
fb6fa5 |
If you have more than one #GtkLinkButton instead of connecting
|
|
Packit Service |
fb6fa5 |
a signal to each one, you can use a "hook function" which will be
|
|
Packit Service |
fb6fa5 |
called whenever a user activates a link button
|
|
Packit Service |
fb6fa5 |
<informalexample><programlisting>
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
link_button_hook (GtkLinkButton *button,
|
|
Packit Service |
fb6fa5 |
const gchar *link,
|
|
Packit Service |
fb6fa5 |
gpointer user_data)
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
open_browser_at_url (link);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* ... */
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
GtkWidget *button1 = gtk_link_button_new (uri1);
|
|
Packit Service |
fb6fa5 |
GtkWidget *button2 = gtk_link_button_new (uri2);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_link_button_set_uri_hook (link_button_hook, NULL, NULL);
|
|
Packit Service |
fb6fa5 |
</programlisting></informalexample>
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
</para>
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
<para>
|
|
Packit Service |
fb6fa5 |
Starting with GTK+ 2.16, it is no longer necessary to set up a uri hook
|
|
Packit Service |
fb6fa5 |
manually, since GTK+ now defaults to calling gtk_show_uri() if no uri
|
|
Packit Service |
fb6fa5 |
hook has been set.
|
|
Packit Service |
fb6fa5 |
</para>
|
|
Packit Service |
fb6fa5 |
</chapter>
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
Local variables:
|
|
Packit Service |
fb6fa5 |
mode: sgml
|
|
Packit Service |
fb6fa5 |
sgml-parent-document: ("gtk-docs.sgml" "book" "part" "chapter")
|
|
Packit Service |
fb6fa5 |
End:
|
|
Packit Service |
fb6fa5 |
-->
|