Mercurial > pidgin.yaz
comparison src/gtkconv.c @ 11855:dba7bf61e64c
[gaim-migrate @ 14146]
sadrul came up with a more betterer way. yay.
committer: Tailor Script <tailor@pidgin.im>
author | Stu Tomlinson <stu@nosnilmot.com> |
---|---|
date | Thu, 27 Oct 2005 19:11:33 +0000 |
parents | 4ab3ce602932 |
children | fa7b84231ece |
comparison
equal
deleted
inserted
replaced
11854:4ab3ce602932 | 11855:dba7bf61e64c |
---|---|
3802 } | 3802 } |
3803 | 3803 |
3804 return NULL; | 3804 return NULL; |
3805 } | 3805 } |
3806 | 3806 |
3807 static void | |
3808 buddy_update_cb(GaimBlistNode *bnode, gpointer null) | |
3809 { | |
3810 GList *list; | |
3811 | |
3812 g_return_if_fail(bnode); | |
3813 g_return_if_fail(GAIM_BLIST_NODE_IS_BUDDY(bnode)); | |
3814 | |
3815 for (list = gaim_gtk_conv_windows_get_list(); list; list = list->next) | |
3816 { | |
3817 GaimGtkWindow *win = list->data; | |
3818 GaimConversation *conv = gaim_gtk_conv_window_get_active_conversation(win); | |
3819 | |
3820 if (gaim_conversation_get_type(conv) != GAIM_CONV_TYPE_IM) | |
3821 continue; | |
3822 | |
3823 gaim_conversation_update(conv, GAIM_CONV_ACCOUNT_ONLINE); | |
3824 } | |
3825 } | |
3826 | |
3807 /************************************************************************** | 3827 /************************************************************************** |
3808 * Conversation UI operations | 3828 * Conversation UI operations |
3809 **************************************************************************/ | 3829 **************************************************************************/ |
3810 void | 3830 void |
3811 gaim_gtkconv_new(GaimConversation *conv) | 3831 gaim_gtkconv_new(GaimConversation *conv) |
5570 clear_command_cb, _("clear: Clears the conversation scrollback."), NULL); | 5590 clear_command_cb, _("clear: Clears the conversation scrollback."), NULL); |
5571 gaim_cmd_register("help", "w", GAIM_CMD_P_DEFAULT, | 5591 gaim_cmd_register("help", "w", GAIM_CMD_P_DEFAULT, |
5572 GAIM_CMD_FLAG_CHAT | GAIM_CMD_FLAG_IM | GAIM_CMD_FLAG_ALLOW_WRONG_ARGS, NULL, | 5592 GAIM_CMD_FLAG_CHAT | GAIM_CMD_FLAG_IM | GAIM_CMD_FLAG_ALLOW_WRONG_ARGS, NULL, |
5573 help_command_cb, _("help <command>: Help on a specific command."), NULL); | 5593 help_command_cb, _("help <command>: Help on a specific command."), NULL); |
5574 | 5594 |
5595 gaim_signal_connect(gaim_blist_get_handle(), "buddy-added", handle, | |
5596 G_CALLBACK(buddy_update_cb), NULL); | |
5597 gaim_signal_connect(gaim_blist_get_handle(), "buddy-removed", handle, | |
5598 G_CALLBACK(buddy_update_cb), NULL); | |
5599 | |
5575 gaim_conversations_set_ui_ops(&conversation_ui_ops); | 5600 gaim_conversations_set_ui_ops(&conversation_ui_ops); |
5576 } | 5601 } |
5577 | 5602 |
5578 void | 5603 void |
5579 gaim_gtk_conversations_uninit(void) | 5604 gaim_gtk_conversations_uninit(void) |
5580 { | 5605 { |
5581 gaim_prefs_disconnect_by_handle(gaim_gtk_conversations_get_handle()); | 5606 gaim_prefs_disconnect_by_handle(gaim_gtk_conversations_get_handle()); |
5607 gaim_signals_disconnect_by_handle(gaim_gtk_conversations_get_handle()); | |
5582 gaim_signals_unregister_by_instance(gaim_gtk_conversations_get_handle()); | 5608 gaim_signals_unregister_by_instance(gaim_gtk_conversations_get_handle()); |
5583 } | 5609 } |
5584 | 5610 |
5585 | 5611 |
5586 | 5612 |
6180 if ((gaim_conversation_get_type(conv) == GAIM_CONV_TYPE_IM) && | 6206 if ((gaim_conversation_get_type(conv) == GAIM_CONV_TYPE_IM) && |
6181 (gtkconv->u.im->animate)) | 6207 (gtkconv->u.im->animate)) |
6182 start_anim(NULL, gtkconv); | 6208 start_anim(NULL, gtkconv); |
6183 } | 6209 } |
6184 | 6210 |
6185 static void | |
6186 buddy_update_cb(GaimBlistNode *bnode, void *data) | |
6187 { | |
6188 GaimGtkWindow *win = (GaimGtkWindow *)data; | |
6189 GaimConversation *conv; | |
6190 | |
6191 g_return_if_fail(bnode); | |
6192 g_return_if_fail(GAIM_BLIST_NODE_IS_BUDDY(bnode)); | |
6193 | |
6194 conv = gaim_gtk_conv_window_get_active_conversation(win); | |
6195 | |
6196 if (gaim_conversation_get_type(conv) != GAIM_CONV_TYPE_IM) | |
6197 return; | |
6198 | |
6199 gaim_conversation_update(conv, GAIM_CONV_ACCOUNT_ONLINE); | |
6200 } | |
6201 | |
6202 | |
6203 /************************************************************************** | 6211 /************************************************************************** |
6204 * GTK+ window ops | 6212 * GTK+ window ops |
6205 **************************************************************************/ | 6213 **************************************************************************/ |
6206 | 6214 |
6207 static GList *window_list = NULL; | 6215 static GList *window_list = NULL; |
6264 GDK_BUTTON1_MOTION_MASK | GDK_LEAVE_NOTIFY_MASK); | 6272 GDK_BUTTON1_MOTION_MASK | GDK_LEAVE_NOTIFY_MASK); |
6265 g_signal_connect(G_OBJECT(win->notebook), "button_press_event", | 6273 g_signal_connect(G_OBJECT(win->notebook), "button_press_event", |
6266 G_CALLBACK(notebook_press_cb), win); | 6274 G_CALLBACK(notebook_press_cb), win); |
6267 g_signal_connect(G_OBJECT(win->notebook), "button_release_event", | 6275 g_signal_connect(G_OBJECT(win->notebook), "button_release_event", |
6268 G_CALLBACK(notebook_release_cb), win); | 6276 G_CALLBACK(notebook_release_cb), win); |
6269 | |
6270 gaim_signal_connect(gaim_blist_get_handle(), "buddy-added", win, | |
6271 G_CALLBACK(buddy_update_cb), win); | |
6272 gaim_signal_connect(gaim_blist_get_handle(), "buddy-removed", win, | |
6273 G_CALLBACK(buddy_update_cb), win); | |
6274 | 6277 |
6275 testidea = gtk_vbox_new(FALSE, 0); | 6278 testidea = gtk_vbox_new(FALSE, 0); |
6276 | 6279 |
6277 /* Setup the menubar. */ | 6280 /* Setup the menubar. */ |
6278 menubar = setup_menubar(win); | 6281 menubar = setup_menubar(win); |
6304 /* so don't destroy ourselves right now */ | 6307 /* so don't destroy ourselves right now */ |
6305 return; | 6308 return; |
6306 } | 6309 } |
6307 return; | 6310 return; |
6308 } | 6311 } |
6309 gaim_signals_disconnect_by_handle(win); | |
6310 gtk_widget_destroy(win->window); | 6312 gtk_widget_destroy(win->window); |
6311 | 6313 |
6312 g_object_unref(G_OBJECT(win->menu.item_factory)); | 6314 g_object_unref(G_OBJECT(win->menu.item_factory)); |
6313 | 6315 |
6314 g_free(win); | 6316 g_free(win); |