Mercurial > pidgin.yaz
comparison pidgin/gtkconv.c @ 26213:ff4212a5268f
propagate from branch 'im.pidgin.pidgin' (head 431618de0f30a6938f7e14d2d61ee5d7738acd59)
to branch 'im.pidgin.pidgin.vv' (head 8df00cb1a28baa69d0a68e0e96af201ec7d87c09)
author | Marcus Lundblad <ml@update.uu.se> |
---|---|
date | Mon, 02 Mar 2009 18:47:27 +0000 |
parents | 4b8c4870b13a 9fcff08ce726 |
children | 38238d41923b |
comparison
equal
deleted
inserted
replaced
25446:52fbda23e398 | 26213:ff4212a5268f |
---|---|
1197 | 1197 |
1198 gtk_widget_show_all(gtkwin->dialogs.search); | 1198 gtk_widget_show_all(gtkwin->dialogs.search); |
1199 gtk_widget_grab_focus(s->entry); | 1199 gtk_widget_grab_focus(s->entry); |
1200 } | 1200 } |
1201 | 1201 |
1202 #ifdef USE_VV | |
1203 static void | |
1204 menu_initiate_media_call_cb(gpointer data, guint action, GtkWidget *widget) | |
1205 { | |
1206 PidginWindow *win = (PidginWindow *)data; | |
1207 PurpleConversation *conv = pidgin_conv_window_get_active_conversation(win); | |
1208 PurpleAccount *account = purple_conversation_get_account(conv); | |
1209 | |
1210 purple_prpl_initiate_media(account, | |
1211 purple_conversation_get_name(conv), | |
1212 action == 0 ? PURPLE_MEDIA_AUDIO : | |
1213 action == 1 ? PURPLE_MEDIA_VIDEO : | |
1214 action == 2 ? PURPLE_MEDIA_AUDIO | | |
1215 PURPLE_MEDIA_VIDEO : PURPLE_MEDIA_NONE); | |
1216 } | |
1217 #endif | |
1218 | |
1202 static void | 1219 static void |
1203 menu_send_file_cb(gpointer data, guint action, GtkWidget *widget) | 1220 menu_send_file_cb(gpointer data, guint action, GtkWidget *widget) |
1204 { | 1221 { |
1205 PidginWindow *win = data; | 1222 PidginWindow *win = data; |
1206 PurpleConversation *conv = pidgin_conv_window_get_active_conversation(win); | 1223 PurpleConversation *conv = pidgin_conv_window_get_active_conversation(win); |
3110 "<StockItem>", GTK_STOCK_SAVE_AS }, | 3127 "<StockItem>", GTK_STOCK_SAVE_AS }, |
3111 { N_("/Conversation/Clea_r Scrollback"), "<CTL>L", menu_clear_cb, 0, "<StockItem>", GTK_STOCK_CLEAR }, | 3128 { N_("/Conversation/Clea_r Scrollback"), "<CTL>L", menu_clear_cb, 0, "<StockItem>", GTK_STOCK_CLEAR }, |
3112 | 3129 |
3113 { "/Conversation/sep1", NULL, NULL, 0, "<Separator>", NULL }, | 3130 { "/Conversation/sep1", NULL, NULL, 0, "<Separator>", NULL }, |
3114 | 3131 |
3132 #ifdef USE_VV | |
3133 { N_("/Conversation/M_edia"), NULL, NULL, 0, "<Branch>", NULL }, | |
3134 | |
3135 { N_("/Conversation/Media/_Audio Call"), NULL, menu_initiate_media_call_cb, 0, | |
3136 "<StockItem>", PIDGIN_STOCK_TOOLBAR_AUDIO_CALL }, | |
3137 { N_("/Conversation/Media/_Video Call"), NULL, menu_initiate_media_call_cb, 1, | |
3138 "<StockItem>", PIDGIN_STOCK_TOOLBAR_VIDEO_CALL }, | |
3139 { N_("/Conversation/Media/Audio\\/Video _Call"), NULL, menu_initiate_media_call_cb, 2, | |
3140 "<StockItem>", PIDGIN_STOCK_TOOLBAR_VIDEO_CALL }, | |
3141 #endif | |
3142 | |
3115 { N_("/Conversation/Se_nd File..."), NULL, menu_send_file_cb, 0, "<StockItem>", PIDGIN_STOCK_TOOLBAR_SEND_FILE }, | 3143 { N_("/Conversation/Se_nd File..."), NULL, menu_send_file_cb, 0, "<StockItem>", PIDGIN_STOCK_TOOLBAR_SEND_FILE }, |
3116 { N_("/Conversation/Add Buddy _Pounce..."), NULL, menu_add_pounce_cb, | 3144 { N_("/Conversation/Add Buddy _Pounce..."), NULL, menu_add_pounce_cb, |
3117 0, "<Item>", NULL }, | 3145 0, "<Item>", NULL }, |
3118 { N_("/Conversation/_Get Info"), "<CTL>O", menu_get_info_cb, 0, | 3146 { N_("/Conversation/_Get Info"), "<CTL>O", menu_get_info_cb, 0, |
3119 "<StockItem>", PIDGIN_STOCK_TOOLBAR_USER_INFO }, | 3147 "<StockItem>", PIDGIN_STOCK_TOOLBAR_USER_INFO }, |
3420 | 3448 |
3421 win->menu.view_log = | 3449 win->menu.view_log = |
3422 gtk_item_factory_get_widget(win->menu.item_factory, | 3450 gtk_item_factory_get_widget(win->menu.item_factory, |
3423 N_("/Conversation/View Log")); | 3451 N_("/Conversation/View Log")); |
3424 | 3452 |
3453 #ifdef USE_VV | |
3454 win->menu.audio_call = | |
3455 gtk_item_factory_get_widget(win->menu.item_factory, | |
3456 N_("/Conversation/Media/Audio Call")); | |
3457 win->menu.video_call = | |
3458 gtk_item_factory_get_widget(win->menu.item_factory, | |
3459 N_("/Conversation/Media/Video Call")); | |
3460 win->menu.audio_video_call = | |
3461 gtk_item_factory_get_widget(win->menu.item_factory, | |
3462 N_("/Conversation/Media/Audio\\/Video Call")); | |
3463 #endif | |
3464 | |
3425 /* --- */ | 3465 /* --- */ |
3426 | 3466 |
3427 win->menu.send_file = | 3467 win->menu.send_file = |
3428 gtk_item_factory_get_widget(win->menu.item_factory, | 3468 gtk_item_factory_get_widget(win->menu.item_factory, |
3429 N_("/Conversation/Send File...")); | 3469 N_("/Conversation/Send File...")); |
6403 if (conv->features & PURPLE_CONNECTION_ALLOW_CUSTOM_SMILEY) | 6443 if (conv->features & PURPLE_CONNECTION_ALLOW_CUSTOM_SMILEY) |
6404 buttons |= GTK_IMHTML_CUSTOM_SMILEY; | 6444 buttons |= GTK_IMHTML_CUSTOM_SMILEY; |
6405 else | 6445 else |
6406 buttons &= ~GTK_IMHTML_CUSTOM_SMILEY; | 6446 buttons &= ~GTK_IMHTML_CUSTOM_SMILEY; |
6407 | 6447 |
6448 #ifdef USE_VV | |
6449 /* check if account support voice calls, and if the current buddy | |
6450 supports it */ | |
6451 if (account != NULL && purple_conversation_get_type(conv) | |
6452 == PURPLE_CONV_TYPE_IM) { | |
6453 PurpleMediaCaps caps = | |
6454 purple_prpl_get_media_caps(account, | |
6455 purple_conversation_get_name(conv)); | |
6456 | |
6457 gtk_widget_set_sensitive(win->menu.audio_call, | |
6458 caps & PURPLE_MEDIA_CAPS_AUDIO | |
6459 ? TRUE : FALSE); | |
6460 gtk_widget_set_sensitive(win->menu.video_call, | |
6461 caps & PURPLE_MEDIA_CAPS_VIDEO | |
6462 ? TRUE : FALSE); | |
6463 gtk_widget_set_sensitive(win->menu.audio_video_call, | |
6464 caps & PURPLE_MEDIA_CAPS_AUDIO_VIDEO | |
6465 ? TRUE : FALSE); | |
6466 } else if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) { | |
6467 /* for now, don't care about chats... */ | |
6468 gtk_widget_set_sensitive(win->menu.audio_call, FALSE); | |
6469 gtk_widget_set_sensitive(win->menu.video_call, FALSE); | |
6470 gtk_widget_set_sensitive(win->menu.audio_video_call, FALSE); | |
6471 } else { | |
6472 gtk_widget_set_sensitive(win->menu.audio_call, FALSE); | |
6473 gtk_widget_set_sensitive(win->menu.video_call, FALSE); | |
6474 gtk_widget_set_sensitive(win->menu.audio_video_call, FALSE); | |
6475 } | |
6476 #endif | |
6477 | |
6408 gtk_imhtml_set_format_functions(GTK_IMHTML(gtkconv->entry), buttons); | 6478 gtk_imhtml_set_format_functions(GTK_IMHTML(gtkconv->entry), buttons); |
6409 if (account != NULL) | 6479 if (account != NULL) |
6410 gtk_imhtmltoolbar_associate_smileys(GTK_IMHTMLTOOLBAR(gtkconv->toolbar), purple_account_get_protocol_id(account)); | 6480 gtk_imhtmltoolbar_associate_smileys(GTK_IMHTMLTOOLBAR(gtkconv->toolbar), purple_account_get_protocol_id(account)); |
6411 | 6481 |
6412 /* Deal with menu items */ | 6482 /* Deal with menu items */ |
6940 gtk_container_add(GTK_CONTAINER(gtkconv->u.im->icon_container), event); | 7010 gtk_container_add(GTK_CONTAINER(gtkconv->u.im->icon_container), event); |
6941 #if GTK_CHECK_VERSION(2,4,0) | 7011 #if GTK_CHECK_VERSION(2,4,0) |
6942 gtk_event_box_set_visible_window(GTK_EVENT_BOX(event), FALSE); | 7012 gtk_event_box_set_visible_window(GTK_EVENT_BOX(event), FALSE); |
6943 #endif | 7013 #endif |
6944 gtk_widget_add_events(event, | 7014 gtk_widget_add_events(event, |
6945 GDK_POINTER_MOTION_MASK | GDK_LEAVE_NOTIFY_MASK); | 7015 GDK_POINTER_MOTION_MASK | GDK_LEAVE_NOTIFY_MASK); |
6946 g_signal_connect(G_OBJECT(event), "button-press-event", | 7016 g_signal_connect(G_OBJECT(event), "button-press-event", |
6947 G_CALLBACK(icon_menu), gtkconv); | 7017 G_CALLBACK(icon_menu), gtkconv); |
6948 | 7018 |
6949 pidgin_tooltip_setup_for_widget(event, gtkconv, pidgin_conv_create_tooltip, NULL); | 7019 pidgin_tooltip_setup_for_widget(event, gtkconv, pidgin_conv_create_tooltip, NULL); |
6950 gtk_widget_show(event); | 7020 gtk_widget_show(event); |
7779 show_buddy_icons_pref_cb, NULL); | 7849 show_buddy_icons_pref_cb, NULL); |
7780 purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/blist/show_protocol_icons", | 7850 purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/blist/show_protocol_icons", |
7781 show_protocol_icons_pref_cb, NULL); | 7851 show_protocol_icons_pref_cb, NULL); |
7782 purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/conversations/im/hide_new", | 7852 purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/conversations/im/hide_new", |
7783 hide_new_pref_cb, NULL); | 7853 hide_new_pref_cb, NULL); |
7784 | |
7785 | 7854 |
7786 | 7855 |
7787 /********************************************************************** | 7856 /********************************************************************** |
7788 * Register signals | 7857 * Register signals |
7789 **********************************************************************/ | 7858 **********************************************************************/ |