Mercurial > pidgin
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 } |