From ff8c35e557bdaa65f8d9a7c560a738c156fcbd76 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 13 Aug 2004 01:10:38 +0000 Subject: [PATCH] Adjust to GtkAboutDialog API changes. Thu Aug 12 21:02:57 2004 Matthias Clasen * demos/gtk-demo/appwindow.c (about_cb): Adjust to GtkAboutDialog API changes. * gtk/gtkaboutdialog.h: * gtk/gtkaboutdialog.c (gtk_about_dialog_set_email_hook): (gtk_about_dialog_set_url_hook): Add callback data and destroy notify for language bindings. (#149999, Olivier Andrieu) --- ChangeLog | 9 +++++++++ ChangeLog.pre-2-10 | 9 +++++++++ ChangeLog.pre-2-6 | 9 +++++++++ ChangeLog.pre-2-8 | 9 +++++++++ demos/gtk-demo/appwindow.c | 4 ++-- gtk/gtkaboutdialog.c | 41 ++++++++++++++++++++++++++------------ gtk/gtkaboutdialog.h | 11 +++++++--- 7 files changed, 74 insertions(+), 18 deletions(-) diff --git a/ChangeLog b/ChangeLog index 335c4431f1..208bcd21df 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +Thu Aug 12 21:02:57 2004 Matthias Clasen + + * demos/gtk-demo/appwindow.c (about_cb): Adjust to GtkAboutDialog API changes. + + * gtk/gtkaboutdialog.h: + * gtk/gtkaboutdialog.c (gtk_about_dialog_set_email_hook): + (gtk_about_dialog_set_url_hook): Add callback data and destroy notify + for language bindings. (#149999, Olivier Andrieu) + 2004-08-12 Matthias Clasen * gtk/gtkfilesystem.c: Underscore-prefix gtk_file_system_module_get_type(). diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 335c4431f1..208bcd21df 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,12 @@ +Thu Aug 12 21:02:57 2004 Matthias Clasen + + * demos/gtk-demo/appwindow.c (about_cb): Adjust to GtkAboutDialog API changes. + + * gtk/gtkaboutdialog.h: + * gtk/gtkaboutdialog.c (gtk_about_dialog_set_email_hook): + (gtk_about_dialog_set_url_hook): Add callback data and destroy notify + for language bindings. (#149999, Olivier Andrieu) + 2004-08-12 Matthias Clasen * gtk/gtkfilesystem.c: Underscore-prefix gtk_file_system_module_get_type(). diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 335c4431f1..208bcd21df 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,12 @@ +Thu Aug 12 21:02:57 2004 Matthias Clasen + + * demos/gtk-demo/appwindow.c (about_cb): Adjust to GtkAboutDialog API changes. + + * gtk/gtkaboutdialog.h: + * gtk/gtkaboutdialog.c (gtk_about_dialog_set_email_hook): + (gtk_about_dialog_set_url_hook): Add callback data and destroy notify + for language bindings. (#149999, Olivier Andrieu) + 2004-08-12 Matthias Clasen * gtk/gtkfilesystem.c: Underscore-prefix gtk_file_system_module_get_type(). diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 335c4431f1..208bcd21df 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,12 @@ +Thu Aug 12 21:02:57 2004 Matthias Clasen + + * demos/gtk-demo/appwindow.c (about_cb): Adjust to GtkAboutDialog API changes. + + * gtk/gtkaboutdialog.h: + * gtk/gtkaboutdialog.c (gtk_about_dialog_set_email_hook): + (gtk_about_dialog_set_url_hook): Add callback data and destroy notify + for language bindings. (#149999, Olivier Andrieu) + 2004-08-12 Matthias Clasen * gtk/gtkfilesystem.c: Underscore-prefix gtk_file_system_module_get_type(). diff --git a/demos/gtk-demo/appwindow.c b/demos/gtk-demo/appwindow.c index fd6d7c85e9..a3323bb20a 100644 --- a/demos/gtk-demo/appwindow.c +++ b/demos/gtk-demo/appwindow.c @@ -126,8 +126,8 @@ about_cb (GtkAction *action, g_object_unref (pixbuf); } - gtk_about_dialog_set_email_hook (activate_email); - gtk_about_dialog_set_url_hook (activate_url); + gtk_about_dialog_set_email_hook (activate_email, NULL, NULL); + gtk_about_dialog_set_url_hook (activate_url, NULL, NULL); gtk_show_about_dialog (GTK_WINDOW (window), "name", "GTK+ Code Demos", "version", "2.4.3", diff --git a/gtk/gtkaboutdialog.c b/gtk/gtkaboutdialog.c index d78aff15a2..4f8834e257 100644 --- a/gtk/gtkaboutdialog.c +++ b/gtk/gtkaboutdialog.c @@ -155,7 +155,12 @@ static void display_license_dialog (GtkWidget static GtkAboutDialogActivateLinkFunc activate_email_hook = NULL; +static gpointer activate_email_hook_data = NULL; +static GDestroyNotify activate_email_hook_destroy = NULL; + static GtkAboutDialogActivateLinkFunc activate_url_hook = NULL; +static gpointer activate_url_hook_data = NULL; +static GDestroyNotify activate_url_hook_destroy = NULL; G_DEFINE_TYPE (GtkAboutDialog, gtk_about_dialog, GTK_TYPE_DIALOG); @@ -1284,7 +1289,7 @@ activate_url (GtkWidget *widget, gchar *url = g_object_get_data (G_OBJECT (widget), "url"); if (activate_url_hook != NULL) - (* activate_url_hook) (about, url); + (* activate_url_hook) (about, url, activate_url_hook_data); } static void @@ -1349,13 +1354,13 @@ follow_if_link (GtkAboutDialog *about, if (email != NULL && activate_email_hook != NULL) { - (* activate_email_hook) (about, email); + (* activate_email_hook) (about, email, activate_email_hook_data); break; } if (url != NULL && activate_url_hook != NULL) { - (* activate_url_hook) (about, url); + (* activate_url_hook) (about, url, activate_url_hook_data); break; } } @@ -1523,7 +1528,6 @@ add_credits_page (GtkAboutDialog *about, gchar *q0, *q1, *q2, *r1, *r2; GtkWidget *sw, *view; GtkTextBuffer *buffer; - GtkStyle *style; gboolean linkify_email, linkify_urls; GdkColor *style_link_color; GdkColor link_color = { 0, 0, 0, 0xffff }; @@ -1789,6 +1793,8 @@ gtk_about_dialog_new (void) /** * gtk_about_dialog_set_email_hook: * @func: a function to call when an email link is activated. + * @data: data to pass to @func + * @destroy: #GDestroyNotify for @data * * Installs a global function to be called whenever the user activates an * email link in an about dialog. @@ -1798,13 +1804,20 @@ gtk_about_dialog_new (void) * Since: 2.6 */ GtkAboutDialogActivateLinkFunc -gtk_about_dialog_set_email_hook (GtkAboutDialogActivateLinkFunc func) +gtk_about_dialog_set_email_hook (GtkAboutDialogActivateLinkFunc func, + gpointer data, + GDestroyNotify destroy) { GtkAboutDialogActivateLinkFunc old; + if (activate_email_hook_destroy != NULL) + (* activate_email_hook_destroy) (activate_url_hook_data); + old = activate_email_hook; activate_email_hook = func; + activate_email_hook_data = data; + activate_email_hook_destroy = destroy; return old; } @@ -1812,6 +1825,8 @@ gtk_about_dialog_set_email_hook (GtkAboutDialogActivateLinkFunc func) /** * gtk_about_dialog_set_url_hook: * @func: a function to call when a URL link is activated. + * @data: data to pass to @func + * @destroy: #GDestroyNotify for @data * * Installs a global function to be called whenever the user activates a * URL link in an about dialog. @@ -1821,13 +1836,20 @@ gtk_about_dialog_set_email_hook (GtkAboutDialogActivateLinkFunc func) * Since: 2.6 */ GtkAboutDialogActivateLinkFunc -gtk_about_dialog_set_url_hook (GtkAboutDialogActivateLinkFunc func) +gtk_about_dialog_set_url_hook (GtkAboutDialogActivateLinkFunc func, + gpointer data, + GDestroyNotify destroy) { GtkAboutDialogActivateLinkFunc old; + if (activate_url_hook_destroy != NULL) + (* activate_url_hook_destroy) (activate_email_hook_data); + old = activate_url_hook; activate_url_hook = func; + activate_url_hook_data = data; + activate_url_hook_destroy = destroy; return old; } @@ -1882,10 +1904,3 @@ gtk_show_about_dialog (GtkWindow *parent, gtk_window_present (GTK_WINDOW (dialog)); } - - - - - - - diff --git a/gtk/gtkaboutdialog.h b/gtk/gtkaboutdialog.h index 6386e20577..7c58eee160 100644 --- a/gtk/gtkaboutdialog.h +++ b/gtk/gtkaboutdialog.h @@ -102,10 +102,15 @@ void gtk_about_dialog_set_logo (GtkAboutDialog GdkPixbuf *logo); typedef void (* GtkAboutDialogActivateLinkFunc) (GtkAboutDialog *about, - const gchar *link); + const gchar *link, + gpointer data); -GtkAboutDialogActivateLinkFunc gtk_about_dialog_set_email_hook (GtkAboutDialogActivateLinkFunc func); -GtkAboutDialogActivateLinkFunc gtk_about_dialog_set_url_hook (GtkAboutDialogActivateLinkFunc func); +GtkAboutDialogActivateLinkFunc gtk_about_dialog_set_email_hook (GtkAboutDialogActivateLinkFunc func, + gpointer data, + GDestroyNotify destroy); +GtkAboutDialogActivateLinkFunc gtk_about_dialog_set_url_hook (GtkAboutDialogActivateLinkFunc func, + gpointer data, + GDestroyNotify destroy); G_END_DECLS