Mercurial > pidgin.yaz
comparison pidgin/gtkconv.c @ 18306:a3469318cf35
merge of '1021f142edad27e5a1f750f8d439c3bc5bf07b81'
and '194d749288549e6af3c41d354c2196295e8eac5f'
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Wed, 27 Jun 2007 17:24:32 +0000 |
parents | 2e7a9f33cfd3 ffd706ec0220 |
children | 6fa1bbf6b0a9 |
comparison
equal
deleted
inserted
replaced
18291:db4b0aa4ed8c | 18306:a3469318cf35 |
---|---|
345 PURPLE_MESSAGE_NO_LOG|PURPLE_MESSAGE_ERROR, time(NULL)); | 345 PURPLE_MESSAGE_NO_LOG|PURPLE_MESSAGE_ERROR, time(NULL)); |
346 return PURPLE_CMD_STATUS_OK; | 346 return PURPLE_CMD_STATUS_OK; |
347 } | 347 } |
348 } | 348 } |
349 | 349 |
350 static void clear_conversation_scrollback(PurpleConversation *conv) | |
351 { | |
352 PidginConversation *gtkconv = NULL; | |
353 | |
354 gtkconv = PIDGIN_CONVERSATION(conv); | |
355 | |
356 gtk_imhtml_clear(GTK_IMHTML(gtkconv->imhtml)); | |
357 } | |
358 | |
350 static PurpleCmdRet | 359 static PurpleCmdRet |
351 clear_command_cb(PurpleConversation *conv, | 360 clear_command_cb(PurpleConversation *conv, |
352 const char *cmd, char **args, char **error, void *data) | 361 const char *cmd, char **args, char **error, void *data) |
353 { | 362 { |
354 PidginConversation *gtkconv = NULL; | 363 clear_conversation_scrollback(conv); |
355 | 364 return PURPLE_CMD_STATUS_OK; |
356 gtkconv = PIDGIN_CONVERSATION(conv); | 365 } |
357 | 366 |
358 gtk_imhtml_clear(GTK_IMHTML(gtkconv->imhtml)); | 367 static PurpleCmdRet |
368 clearall_command_cb(PurpleConversation *conv, | |
369 const char *cmd, char **args, char **error, void *data) | |
370 { | |
371 purple_conversation_foreach(clear_conversation_scrollback); | |
359 return PURPLE_CMD_STATUS_OK; | 372 return PURPLE_CMD_STATUS_OK; |
360 } | 373 } |
361 | 374 |
362 static PurpleCmdRet | 375 static PurpleCmdRet |
363 help_command_cb(PurpleConversation *conv, | 376 help_command_cb(PurpleConversation *conv, |
526 PurpleMessageFlags flags = 0; | 539 PurpleMessageFlags flags = 0; |
527 char *buf, *clean; | 540 char *buf, *clean; |
528 | 541 |
529 account = purple_conversation_get_account(conv); | 542 account = purple_conversation_get_account(conv); |
530 | 543 |
531 if (!purple_account_is_connected(account)) | |
532 return; | |
533 | |
534 if ((purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) && | |
535 purple_conv_chat_has_left(PURPLE_CONV_CHAT(conv))) | |
536 return; | |
537 | |
538 if (check_for_and_do_command(conv)) { | 544 if (check_for_and_do_command(conv)) { |
539 if (gtkconv->entry_growing) { | 545 if (gtkconv->entry_growing) { |
540 reset_default_size(gtkconv); | 546 reset_default_size(gtkconv); |
541 gtkconv->entry_growing = FALSE; | 547 gtkconv->entry_growing = FALSE; |
542 } | 548 } |
543 gtk_imhtml_clear(GTK_IMHTML(gtkconv->entry)); | 549 gtk_imhtml_clear(GTK_IMHTML(gtkconv->entry)); |
544 return; | 550 return; |
545 } | 551 } |
552 | |
553 if ((purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) && | |
554 purple_conv_chat_has_left(PURPLE_CONV_CHAT(conv))) | |
555 return; | |
556 | |
557 if (!purple_account_is_connected(account)) | |
558 return; | |
546 | 559 |
547 buf = gtk_imhtml_get_markup(GTK_IMHTML(gtkconv->entry)); | 560 buf = gtk_imhtml_get_markup(GTK_IMHTML(gtkconv->entry)); |
548 clean = gtk_imhtml_get_text(GTK_IMHTML(gtkconv->entry), NULL, NULL); | 561 clean = gtk_imhtml_get_text(GTK_IMHTML(gtkconv->entry), NULL, NULL); |
549 | 562 |
550 gtk_widget_grab_focus(gtkconv->entry); | 563 gtk_widget_grab_focus(gtkconv->entry); |
3669 pixbuf = get_chat_buddy_status_icon(chat, name, flags); | 3682 pixbuf = get_chat_buddy_status_icon(chat, name, flags); |
3670 | 3683 |
3671 if (!strcmp(chat->nick, purple_normalize(conv->account, old_name != NULL ? old_name : name))) | 3684 if (!strcmp(chat->nick, purple_normalize(conv->account, old_name != NULL ? old_name : name))) |
3672 is_me = TRUE; | 3685 is_me = TRUE; |
3673 | 3686 |
3674 is_buddy = (purple_find_buddy(conv->account, name) != NULL); | 3687 is_buddy = cb->buddy; |
3675 | 3688 |
3676 tmp = g_utf8_casefold(alias, -1); | 3689 tmp = g_utf8_casefold(alias, -1); |
3677 alias_key = g_utf8_collate_key(tmp, -1); | 3690 alias_key = g_utf8_collate_key(tmp, -1); |
3678 g_free(tmp); | 3691 g_free(tmp); |
3679 | 3692 |
5561 if (!purple_conv_chat_find_user(chat, old_name)) | 5574 if (!purple_conv_chat_find_user(chat, old_name)) |
5562 return; | 5575 return; |
5563 | 5576 |
5564 g_return_if_fail(new_alias != NULL); | 5577 g_return_if_fail(new_alias != NULL); |
5565 | 5578 |
5566 cbuddy = purple_conv_chat_cb_new(new_name, new_alias, flags); | 5579 cbuddy = purple_conv_chat_cb_find(chat, new_name); |
5567 | 5580 |
5568 add_chat_buddy_common(conv, cbuddy, old_name); | 5581 add_chat_buddy_common(conv, cbuddy, old_name); |
5569 } | 5582 } |
5570 | 5583 |
5571 static void | 5584 static void |
7201 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL, | 7214 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL, |
7202 debug_command_cb, _("debug <option>: Send various debug information to the current conversation."), NULL); | 7215 debug_command_cb, _("debug <option>: Send various debug information to the current conversation."), NULL); |
7203 purple_cmd_register("clear", "", PURPLE_CMD_P_DEFAULT, | 7216 purple_cmd_register("clear", "", PURPLE_CMD_P_DEFAULT, |
7204 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL, | 7217 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL, |
7205 clear_command_cb, _("clear: Clears the conversation scrollback."), NULL); | 7218 clear_command_cb, _("clear: Clears the conversation scrollback."), NULL); |
7219 purple_cmd_register("clearall", "", PURPLE_CMD_P_DEFAULT, | |
7220 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL, | |
7221 clearall_command_cb, _("clear: Clears all conversation scrollbacks."), NULL); | |
7206 purple_cmd_register("help", "w", PURPLE_CMD_P_DEFAULT, | 7222 purple_cmd_register("help", "w", PURPLE_CMD_P_DEFAULT, |
7207 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM | PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, NULL, | 7223 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM | PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, NULL, |
7208 help_command_cb, _("help <command>: Help on a specific command."), NULL); | 7224 help_command_cb, _("help <command>: Help on a specific command."), NULL); |
7209 | 7225 |
7210 /********************************************************************** | 7226 /********************************************************************** |