comparison finch/gntconv.c @ 31894:a9e077fb65e9

Add a cleared-message-history conversation signal, and use it in Pidgin and Finch This stems out of an email discussion with Andrew Victor back in July 2010 regarding letting protocol plugins clear the message scrollback area for UIs. At the time, nobody objected to having the libpurple-clearing function call the UI clearing function. This should also be happily backward-compatible.
author Paul Aurich <paul@darkrain42.org>
date Thu, 31 Mar 2011 04:41:27 +0000
parents a8cc50c2279f
children 62b11ad353eb
comparison
equal deleted inserted replaced
31893:1551c9a140fd 31894:a9e077fb65e9
394 static int handle; 394 static int handle;
395 return &handle; 395 return &handle;
396 } 396 }
397 397
398 static void 398 static void
399 cleared_message_history_cb(PurpleConversation *conv, gpointer data)
400 {
401 FinchConv *ggc = FINCH_GET_DATA(conv);
402 if (ggc)
403 gnt_text_view_clear(GNT_TEXT_VIEW(ggc->tv));
404 }
405
406 static void
399 clear_scrollback_cb(GntMenuItem *item, gpointer ggconv) 407 clear_scrollback_cb(GntMenuItem *item, gpointer ggconv)
400 { 408 {
401 FinchConv *ggc = ggconv; 409 FinchConv *ggc = ggconv;
402 gnt_text_view_clear(GNT_TEXT_VIEW(ggc->tv)); 410 purple_conversation_clear_message_history(ggc->active_conv);
403 } 411 }
404 412
405 static void 413 static void
406 send_file_cb(GntMenuItem *item, gpointer ggconv) 414 send_file_cb(GntMenuItem *item, gpointer ggconv)
407 { 415 {
1262 /* Xerox */ 1270 /* Xerox */
1263 static PurpleCmdRet 1271 static PurpleCmdRet
1264 clear_command_cb(PurpleConversation *conv, 1272 clear_command_cb(PurpleConversation *conv,
1265 const char *cmd, char **args, char **error, void *data) 1273 const char *cmd, char **args, char **error, void *data)
1266 { 1274 {
1267 FinchConv *ggconv = FINCH_GET_DATA(conv);
1268 gnt_text_view_clear(GNT_TEXT_VIEW(ggconv->tv));
1269 purple_conversation_clear_message_history(conv); 1275 purple_conversation_clear_message_history(conv);
1270 return PURPLE_CMD_RET_OK; 1276 return PURPLE_CMD_RET_OK;
1271 } 1277 }
1272 1278
1273 /* Xerox */ 1279 /* Xerox */
1457 PURPLE_CALLBACK(update_buddy_typing), NULL); 1463 PURPLE_CALLBACK(update_buddy_typing), NULL);
1458 purple_signal_connect(purple_conversations_get_handle(), "buddy-typing-stopped", finch_conv_get_handle(), 1464 purple_signal_connect(purple_conversations_get_handle(), "buddy-typing-stopped", finch_conv_get_handle(),
1459 PURPLE_CALLBACK(update_buddy_typing), NULL); 1465 PURPLE_CALLBACK(update_buddy_typing), NULL);
1460 purple_signal_connect(purple_conversations_get_handle(), "chat-left", finch_conv_get_handle(), 1466 purple_signal_connect(purple_conversations_get_handle(), "chat-left", finch_conv_get_handle(),
1461 PURPLE_CALLBACK(chat_left_cb), NULL); 1467 PURPLE_CALLBACK(chat_left_cb), NULL);
1468 purple_signal_connect(purple_conversations_get_handle(), "cleared-message-history", finch_conv_get_handle(),
1469 PURPLE_CALLBACK(cleared_message_history_cb), NULL);
1462 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-on", finch_conv_get_handle(), 1470 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-on", finch_conv_get_handle(),
1463 PURPLE_CALLBACK(buddy_signed_on_off), NULL); 1471 PURPLE_CALLBACK(buddy_signed_on_off), NULL);
1464 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-off", finch_conv_get_handle(), 1472 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-off", finch_conv_get_handle(),
1465 PURPLE_CALLBACK(buddy_signed_on_off), NULL); 1473 PURPLE_CALLBACK(buddy_signed_on_off), NULL);
1466 purple_signal_connect(purple_connections_get_handle(), "signed-on", finch_conv_get_handle(), 1474 purple_signal_connect(purple_connections_get_handle(), "signed-on", finch_conv_get_handle(),