comparison 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
comparison
equal deleted inserted replaced
12837:1096bdfef887 12838:cb36bc2db7c5
172 else 172 else
173 gtk_tree_view_expand_row(tv, path, FALSE); 173 gtk_tree_view_expand_row(tv, path, FALSE);
174 } 174 }
175 175
176 static void log_select_cb(GtkTreeSelection *sel, GaimGtkLogViewer *viewer) { 176 static void log_select_cb(GtkTreeSelection *sel, GaimGtkLogViewer *viewer) {
177 GtkTreeIter iter; 177 GtkTreeIter iter;
178 GValue val; 178 GValue val;
179 GtkTreeModel *model = GTK_TREE_MODEL(viewer->treestore); 179 GtkTreeModel *model = GTK_TREE_MODEL(viewer->treestore);
180 GaimLog *log = NULL; 180 GaimLog *log = NULL;
181 GdkCursor *cursor; 181 GdkCursor *cursor;
182 GaimLogReadFlags flags; 182 GaimLogReadFlags flags;
229 viewer->flags = flags; 229 viewer->flags = flags;
230 230
231 gtk_imhtml_clear(GTK_IMHTML(viewer->imhtml)); 231 gtk_imhtml_clear(GTK_IMHTML(viewer->imhtml));
232 gtk_imhtml_set_protocol_name(GTK_IMHTML(viewer->imhtml), 232 gtk_imhtml_set_protocol_name(GTK_IMHTML(viewer->imhtml),
233 gaim_account_get_protocol_name(log->account)); 233 gaim_account_get_protocol_name(log->account));
234
235 gaim_signal_emit(gaim_gtk_log_get_handle(), "log-displaying", viewer, log);
236
234 gtk_imhtml_append_text(GTK_IMHTML(viewer->imhtml), read, 237 gtk_imhtml_append_text(GTK_IMHTML(viewer->imhtml), read,
235 GTK_IMHTML_NO_COMMENTS | GTK_IMHTML_NO_TITLE | GTK_IMHTML_NO_SCROLL | 238 GTK_IMHTML_NO_COMMENTS | GTK_IMHTML_NO_TITLE | GTK_IMHTML_NO_SCROLL |
236 ((flags & GAIM_LOG_READ_NO_NEWLINE) ? GTK_IMHTML_NO_NEWLINE : 0)); 239 ((flags & GAIM_LOG_READ_NO_NEWLINE) ? GTK_IMHTML_NO_NEWLINE : 0));
237 g_free(read); 240 g_free(read);
238 241
570 } 573 }
571 logs = g_list_sort(logs, gaim_log_compare); 574 logs = g_list_sort(logs, gaim_log_compare);
572 575
573 syslog_viewer = display_log_viewer(NULL, logs, _("System Log"), NULL, 0); 576 syslog_viewer = display_log_viewer(NULL, logs, _("System Log"), NULL, 0);
574 } 577 }
578
579 /****************************************************************************
580 * GTK+ LOG SUBSYSTEM *******************************************************
581 ****************************************************************************/
582
583 void *
584 gaim_gtk_log_get_handle(void)
585 {
586 static int handle;
587
588 return &handle;
589 }
590
591 void gaim_gtk_log_init(void)
592 {
593 void *handle = gaim_gtk_log_get_handle();
594
595 gaim_signal_register(handle, "log-displaying",
596 gaim_marshal_VOID__POINTER_POINTER,
597 NULL, 2,
598 gaim_value_new(GAIM_TYPE_BOXED,
599 "GaimGtkLogViewer *"),
600 gaim_value_new(GAIM_TYPE_SUBTYPE,
601 GAIM_SUBTYPE_LOG));
602 }
603
604 void
605 gaim_gtk_log_uninit(void)
606 {
607 gaim_signals_unregister_by_instance(gaim_gtk_log_get_handle());
608 }