| 1184 } |
1184 } |
| 1185 |
1185 |
| 1186 } |
1186 } |
| 1187 |
1187 |
| 1188 static void |
1188 static void |
| |
1189 menu_send_attention_cb(gpointer data, guint action, GtkWidget *widget) |
| |
1190 { |
| |
1191 PidginWindow *win = data; |
| |
1192 PurpleConversation *conv = pidgin_conv_window_get_active_conversation(win); |
| |
1193 |
| |
1194 if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM) { |
| |
1195 serv_send_attention(purple_conversation_get_gc(conv), purple_conversation_get_name(conv), 0); |
| |
1196 } |
| |
1197 } |
| |
1198 |
| |
1199 static void |
| 1189 menu_add_pounce_cb(gpointer data, guint action, GtkWidget *widget) |
1200 menu_add_pounce_cb(gpointer data, guint action, GtkWidget *widget) |
| 1190 { |
1201 { |
| 1191 PidginWindow *win = data; |
1202 PidginWindow *win = data; |
| 1192 PurpleConversation *conv; |
1203 PurpleConversation *conv; |
| 1193 |
1204 |
| 2950 { N_("/Conversation/Clea_r Scrollback"), "<CTL>L", menu_clear_cb, 0, "<StockItem>", GTK_STOCK_CLEAR }, |
2961 { N_("/Conversation/Clea_r Scrollback"), "<CTL>L", menu_clear_cb, 0, "<StockItem>", GTK_STOCK_CLEAR }, |
| 2951 |
2962 |
| 2952 { "/Conversation/sep1", NULL, NULL, 0, "<Separator>", NULL }, |
2963 { "/Conversation/sep1", NULL, NULL, 0, "<Separator>", NULL }, |
| 2953 |
2964 |
| 2954 { N_("/Conversation/Se_nd File..."), NULL, menu_send_file_cb, 0, "<StockItem>", PIDGIN_STOCK_TOOLBAR_SEND_FILE }, |
2965 { N_("/Conversation/Se_nd File..."), NULL, menu_send_file_cb, 0, "<StockItem>", PIDGIN_STOCK_TOOLBAR_SEND_FILE }, |
| |
2966 { N_("/Conversation/Send _Attention..."), NULL, menu_send_attention_cb, 0, "<StockItem>", PIDGIN_STOCK_TOOLBAR_SEND_ATTENTION }, |
| 2955 { N_("/Conversation/Add Buddy _Pounce..."), NULL, menu_add_pounce_cb, |
2967 { N_("/Conversation/Add Buddy _Pounce..."), NULL, menu_add_pounce_cb, |
| 2956 0, "<Item>", NULL }, |
2968 0, "<Item>", NULL }, |
| 2957 { N_("/Conversation/_Get Info"), "<CTL>O", menu_get_info_cb, 0, |
2969 { N_("/Conversation/_Get Info"), "<CTL>O", menu_get_info_cb, 0, |
| 2958 "<StockItem>", PIDGIN_STOCK_TOOLBAR_USER_INFO }, |
2970 "<StockItem>", PIDGIN_STOCK_TOOLBAR_USER_INFO }, |
| 2959 { N_("/Conversation/In_vite..."), NULL, menu_invite_cb, 0, |
2971 { N_("/Conversation/In_vite..."), NULL, menu_invite_cb, 0, |
| 3256 |
3268 |
| 3257 win->menu.send_file = |
3269 win->menu.send_file = |
| 3258 gtk_item_factory_get_widget(win->menu.item_factory, |
3270 gtk_item_factory_get_widget(win->menu.item_factory, |
| 3259 N_("/Conversation/Send File...")); |
3271 N_("/Conversation/Send File...")); |
| 3260 |
3272 |
| |
3273 win->menu.send_attention = |
| |
3274 gtk_item_factory_get_widget(win->menu.item_factory, |
| |
3275 N_("/Conversation/Send Attention")); |
| 3261 win->menu.add_pounce = |
3276 win->menu.add_pounce = |
| 3262 gtk_item_factory_get_widget(win->menu.item_factory, |
3277 gtk_item_factory_get_widget(win->menu.item_factory, |
| 3263 N_("/Conversation/Add Buddy Pounce...")); |
3278 N_("/Conversation/Add Buddy Pounce...")); |
| 3264 |
3279 |
| 3265 /* --- */ |
3280 /* --- */ |
| 6243 /* Show stuff that applies to IMs, hide stuff that applies to chats */ |
6258 /* Show stuff that applies to IMs, hide stuff that applies to chats */ |
| 6244 |
6259 |
| 6245 /* Deal with menu items */ |
6260 /* Deal with menu items */ |
| 6246 gtk_widget_show(win->menu.view_log); |
6261 gtk_widget_show(win->menu.view_log); |
| 6247 gtk_widget_show(win->menu.send_file); |
6262 gtk_widget_show(win->menu.send_file); |
| |
6263 gtk_widget_show(win->menu.send_attention); |
| 6248 gtk_widget_show(win->menu.add_pounce); |
6264 gtk_widget_show(win->menu.add_pounce); |
| 6249 gtk_widget_show(win->menu.get_info); |
6265 gtk_widget_show(win->menu.get_info); |
| 6250 gtk_widget_hide(win->menu.invite); |
6266 gtk_widget_hide(win->menu.invite); |
| 6251 gtk_widget_show(win->menu.alias); |
6267 gtk_widget_show(win->menu.alias); |
| 6252 if (purple_privacy_check(account, purple_conversation_get_name(conv))) { |
6268 if (purple_privacy_check(account, purple_conversation_get_name(conv))) { |
| 6271 /* Show stuff that applies to Chats, hide stuff that applies to IMs */ |
6287 /* Show stuff that applies to Chats, hide stuff that applies to IMs */ |
| 6272 |
6288 |
| 6273 /* Deal with menu items */ |
6289 /* Deal with menu items */ |
| 6274 gtk_widget_show(win->menu.view_log); |
6290 gtk_widget_show(win->menu.view_log); |
| 6275 gtk_widget_hide(win->menu.send_file); |
6291 gtk_widget_hide(win->menu.send_file); |
| |
6292 gtk_widget_hide(win->menu.send_attention); |
| 6276 gtk_widget_hide(win->menu.add_pounce); |
6293 gtk_widget_hide(win->menu.add_pounce); |
| 6277 gtk_widget_hide(win->menu.get_info); |
6294 gtk_widget_hide(win->menu.get_info); |
| 6278 gtk_widget_show(win->menu.invite); |
6295 gtk_widget_show(win->menu.invite); |
| 6279 gtk_widget_show(win->menu.alias); |
6296 gtk_widget_show(win->menu.alias); |
| 6280 gtk_widget_hide(win->menu.block); |
6297 gtk_widget_hide(win->menu.block); |
| 6343 gtk_widget_set_sensitive(win->menu.add, (prpl_info->add_buddy != NULL)); |
6360 gtk_widget_set_sensitive(win->menu.add, (prpl_info->add_buddy != NULL)); |
| 6344 gtk_widget_set_sensitive(win->menu.remove, (prpl_info->remove_buddy != NULL)); |
6361 gtk_widget_set_sensitive(win->menu.remove, (prpl_info->remove_buddy != NULL)); |
| 6345 gtk_widget_set_sensitive(win->menu.send_file, |
6362 gtk_widget_set_sensitive(win->menu.send_file, |
| 6346 (prpl_info->send_file != NULL && (!prpl_info->can_receive_file || |
6363 (prpl_info->send_file != NULL && (!prpl_info->can_receive_file || |
| 6347 prpl_info->can_receive_file(gc, purple_conversation_get_name(conv))))); |
6364 prpl_info->can_receive_file(gc, purple_conversation_get_name(conv))))); |
| |
6365 gtk_widget_set_sensitive(win->menu.send_attention, (prpl_info->send_attention != NULL)); |
| 6348 gtk_widget_set_sensitive(win->menu.alias, |
6366 gtk_widget_set_sensitive(win->menu.alias, |
| 6349 (account != NULL) && |
6367 (account != NULL) && |
| 6350 (purple_find_buddy(account, purple_conversation_get_name(conv)) != NULL)); |
6368 (purple_find_buddy(account, purple_conversation_get_name(conv)) != NULL)); |
| 6351 } |
6369 } |
| 6352 else if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) |
6370 else if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) |
| 6363 /* Or it's a chat that we've left. */ |
6381 /* Or it's a chat that we've left. */ |
| 6364 |
6382 |
| 6365 /* Then deal with menu items */ |
6383 /* Then deal with menu items */ |
| 6366 gtk_widget_set_sensitive(win->menu.view_log, TRUE); |
6384 gtk_widget_set_sensitive(win->menu.view_log, TRUE); |
| 6367 gtk_widget_set_sensitive(win->menu.send_file, FALSE); |
6385 gtk_widget_set_sensitive(win->menu.send_file, FALSE); |
| |
6386 gtk_widget_set_sensitive(win->menu.send_attention, FALSE); |
| 6368 gtk_widget_set_sensitive(win->menu.add_pounce, TRUE); |
6387 gtk_widget_set_sensitive(win->menu.add_pounce, TRUE); |
| 6369 gtk_widget_set_sensitive(win->menu.get_info, FALSE); |
6388 gtk_widget_set_sensitive(win->menu.get_info, FALSE); |
| 6370 gtk_widget_set_sensitive(win->menu.invite, FALSE); |
6389 gtk_widget_set_sensitive(win->menu.invite, FALSE); |
| 6371 gtk_widget_set_sensitive(win->menu.alias, FALSE); |
6390 gtk_widget_set_sensitive(win->menu.alias, FALSE); |
| 6372 gtk_widget_set_sensitive(win->menu.add, FALSE); |
6391 gtk_widget_set_sensitive(win->menu.add, FALSE); |