diff src/gtklog.c @ 12838:cb36bc2db7c5

[gaim-migrate @ 15186] Adding a log-displaying signal. I'm using this in a patch I'm writing for gaim-encryption. committer: Tailor Script <tailor@pidgin.im>
author Richard Laager <rlaager@wiktel.com>
date Wed, 11 Jan 2006 23:26:51 +0000
parents e856f985a0b9
children 0aa231ebbfd5
line wrap: on
line diff
--- a/src/gtklog.c	Wed Jan 11 23:23:38 2006 +0000
+++ b/src/gtklog.c	Wed Jan 11 23:26:51 2006 +0000
@@ -174,7 +174,7 @@
 }
 
 static void log_select_cb(GtkTreeSelection *sel, GaimGtkLogViewer *viewer) {
-	GtkTreeIter   iter;
+	GtkTreeIter iter;
 	GValue val;
 	GtkTreeModel *model = GTK_TREE_MODEL(viewer->treestore);
 	GaimLog *log = NULL;
@@ -231,6 +231,9 @@
 	gtk_imhtml_clear(GTK_IMHTML(viewer->imhtml));
 	gtk_imhtml_set_protocol_name(GTK_IMHTML(viewer->imhtml),
 	                            gaim_account_get_protocol_name(log->account));
+
+	gaim_signal_emit(gaim_gtk_log_get_handle(), "log-displaying", viewer, log);
+
 	gtk_imhtml_append_text(GTK_IMHTML(viewer->imhtml), read,
 			       GTK_IMHTML_NO_COMMENTS | GTK_IMHTML_NO_TITLE | GTK_IMHTML_NO_SCROLL |
 			       ((flags & GAIM_LOG_READ_NO_NEWLINE) ? GTK_IMHTML_NO_NEWLINE : 0));
@@ -572,3 +575,34 @@
 
 	syslog_viewer = display_log_viewer(NULL, logs, _("System Log"), NULL, 0);
 }
+
+/****************************************************************************
+ * GTK+ LOG SUBSYSTEM *******************************************************
+ ****************************************************************************/
+
+void *
+gaim_gtk_log_get_handle(void)
+{
+	static int handle;
+
+	return &handle;
+}
+
+void gaim_gtk_log_init(void)
+{
+	void *handle = gaim_gtk_log_get_handle();
+
+	gaim_signal_register(handle, "log-displaying",
+	                     gaim_marshal_VOID__POINTER_POINTER,
+	                     NULL, 2,
+	                     gaim_value_new(GAIM_TYPE_BOXED,
+	                                    "GaimGtkLogViewer *"),
+	                     gaim_value_new(GAIM_TYPE_SUBTYPE,
+	                                    GAIM_SUBTYPE_LOG));
+}
+
+void
+gaim_gtk_log_uninit(void)
+{
+	gaim_signals_unregister_by_instance(gaim_gtk_log_get_handle());
+}