| 1205 } |
1205 } |
| 1206 |
1206 |
| 1207 } |
1207 } |
| 1208 |
1208 |
| 1209 static void |
1209 static void |
| |
1210 menu_get_attention_cb(gpointer data, guint action, GtkWidget *widget) |
| |
1211 { |
| |
1212 PidginWindow *win = data; |
| |
1213 PurpleConversation *conv = pidgin_conv_window_get_active_conversation(win); |
| |
1214 |
| |
1215 if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM) { |
| |
1216 purple_prpl_send_attention(purple_conversation_get_gc(conv), |
| |
1217 purple_conversation_get_name(conv), 0); |
| |
1218 purple_conversation_attention(conv, purple_conversation_get_name(conv), |
| |
1219 0, PURPLE_MESSAGE_SEND, time(NULL)); |
| |
1220 } |
| |
1221 } |
| |
1222 |
| |
1223 static void |
| 1210 menu_add_pounce_cb(gpointer data, guint action, GtkWidget *widget) |
1224 menu_add_pounce_cb(gpointer data, guint action, GtkWidget *widget) |
| 1211 { |
1225 { |
| 1212 PidginWindow *win = data; |
1226 PidginWindow *win = data; |
| 1213 PurpleConversation *conv; |
1227 PurpleConversation *conv; |
| 1214 |
1228 |
| 3072 { N_("/Conversation/Clea_r Scrollback"), "<CTL>L", menu_clear_cb, 0, "<StockItem>", GTK_STOCK_CLEAR }, |
3086 { N_("/Conversation/Clea_r Scrollback"), "<CTL>L", menu_clear_cb, 0, "<StockItem>", GTK_STOCK_CLEAR }, |
| 3073 |
3087 |
| 3074 { "/Conversation/sep1", NULL, NULL, 0, "<Separator>", NULL }, |
3088 { "/Conversation/sep1", NULL, NULL, 0, "<Separator>", NULL }, |
| 3075 |
3089 |
| 3076 { N_("/Conversation/Se_nd File..."), NULL, menu_send_file_cb, 0, "<StockItem>", PIDGIN_STOCK_TOOLBAR_SEND_FILE }, |
3090 { N_("/Conversation/Se_nd File..."), NULL, menu_send_file_cb, 0, "<StockItem>", PIDGIN_STOCK_TOOLBAR_SEND_FILE }, |
| |
3091 { N_("/Conversation/Get _Attention"), NULL, menu_get_attention_cb, 0, "<StockItem>", PIDGIN_STOCK_TOOLBAR_SEND_ATTENTION }, |
| 3077 { N_("/Conversation/Add Buddy _Pounce..."), NULL, menu_add_pounce_cb, |
3092 { N_("/Conversation/Add Buddy _Pounce..."), NULL, menu_add_pounce_cb, |
| 3078 0, "<Item>", NULL }, |
3093 0, "<Item>", NULL }, |
| 3079 { N_("/Conversation/_Get Info"), "<CTL>O", menu_get_info_cb, 0, |
3094 { N_("/Conversation/_Get Info"), "<CTL>O", menu_get_info_cb, 0, |
| 3080 "<StockItem>", PIDGIN_STOCK_TOOLBAR_USER_INFO }, |
3095 "<StockItem>", PIDGIN_STOCK_TOOLBAR_USER_INFO }, |
| 3081 { N_("/Conversation/In_vite..."), NULL, menu_invite_cb, 0, |
3096 { N_("/Conversation/In_vite..."), NULL, menu_invite_cb, 0, |
| 3387 |
3402 |
| 3388 win->menu.send_file = |
3403 win->menu.send_file = |
| 3389 gtk_item_factory_get_widget(win->menu.item_factory, |
3404 gtk_item_factory_get_widget(win->menu.item_factory, |
| 3390 N_("/Conversation/Send File...")); |
3405 N_("/Conversation/Send File...")); |
| 3391 |
3406 |
| |
3407 win->menu.get_attention = |
| |
3408 gtk_item_factory_get_widget(win->menu.item_factory, |
| |
3409 N_("/Conversation/Get Attention...")); |
| 3392 win->menu.add_pounce = |
3410 win->menu.add_pounce = |
| 3393 gtk_item_factory_get_widget(win->menu.item_factory, |
3411 gtk_item_factory_get_widget(win->menu.item_factory, |
| 3394 N_("/Conversation/Add Buddy Pounce...")); |
3412 N_("/Conversation/Add Buddy Pounce...")); |
| 3395 |
3413 |
| 3396 /* --- */ |
3414 /* --- */ |
| 6256 /* Show stuff that applies to IMs, hide stuff that applies to chats */ |
6274 /* Show stuff that applies to IMs, hide stuff that applies to chats */ |
| 6257 |
6275 |
| 6258 /* Deal with menu items */ |
6276 /* Deal with menu items */ |
| 6259 gtk_widget_show(win->menu.view_log); |
6277 gtk_widget_show(win->menu.view_log); |
| 6260 gtk_widget_show(win->menu.send_file); |
6278 gtk_widget_show(win->menu.send_file); |
| |
6279 gtk_widget_show(win->menu.get_attention); |
| 6261 gtk_widget_show(win->menu.add_pounce); |
6280 gtk_widget_show(win->menu.add_pounce); |
| 6262 gtk_widget_show(win->menu.get_info); |
6281 gtk_widget_show(win->menu.get_info); |
| 6263 gtk_widget_hide(win->menu.invite); |
6282 gtk_widget_hide(win->menu.invite); |
| 6264 gtk_widget_show(win->menu.alias); |
6283 gtk_widget_show(win->menu.alias); |
| 6265 if (purple_privacy_check(account, purple_conversation_get_name(conv))) { |
6284 if (purple_privacy_check(account, purple_conversation_get_name(conv))) { |
| 6284 /* Show stuff that applies to Chats, hide stuff that applies to IMs */ |
6303 /* Show stuff that applies to Chats, hide stuff that applies to IMs */ |
| 6285 |
6304 |
| 6286 /* Deal with menu items */ |
6305 /* Deal with menu items */ |
| 6287 gtk_widget_show(win->menu.view_log); |
6306 gtk_widget_show(win->menu.view_log); |
| 6288 gtk_widget_hide(win->menu.send_file); |
6307 gtk_widget_hide(win->menu.send_file); |
| |
6308 gtk_widget_hide(win->menu.get_attention); |
| 6289 gtk_widget_hide(win->menu.add_pounce); |
6309 gtk_widget_hide(win->menu.add_pounce); |
| 6290 gtk_widget_hide(win->menu.get_info); |
6310 gtk_widget_hide(win->menu.get_info); |
| 6291 gtk_widget_show(win->menu.invite); |
6311 gtk_widget_show(win->menu.invite); |
| 6292 gtk_widget_show(win->menu.alias); |
6312 gtk_widget_show(win->menu.alias); |
| 6293 gtk_widget_hide(win->menu.block); |
6313 gtk_widget_hide(win->menu.block); |
| 6361 gtk_widget_set_sensitive(win->menu.add, (prpl_info->add_buddy != NULL)); |
6381 gtk_widget_set_sensitive(win->menu.add, (prpl_info->add_buddy != NULL)); |
| 6362 gtk_widget_set_sensitive(win->menu.remove, (prpl_info->remove_buddy != NULL)); |
6382 gtk_widget_set_sensitive(win->menu.remove, (prpl_info->remove_buddy != NULL)); |
| 6363 gtk_widget_set_sensitive(win->menu.send_file, |
6383 gtk_widget_set_sensitive(win->menu.send_file, |
| 6364 (prpl_info->send_file != NULL && (!prpl_info->can_receive_file || |
6384 (prpl_info->send_file != NULL && (!prpl_info->can_receive_file || |
| 6365 prpl_info->can_receive_file(gc, purple_conversation_get_name(conv))))); |
6385 prpl_info->can_receive_file(gc, purple_conversation_get_name(conv))))); |
| |
6386 gtk_widget_set_sensitive(win->menu.get_attention, (prpl_info->send_attention != NULL)); |
| 6366 gtk_widget_set_sensitive(win->menu.alias, |
6387 gtk_widget_set_sensitive(win->menu.alias, |
| 6367 (account != NULL) && |
6388 (account != NULL) && |
| 6368 (purple_find_buddy(account, purple_conversation_get_name(conv)) != NULL)); |
6389 (purple_find_buddy(account, purple_conversation_get_name(conv)) != NULL)); |
| 6369 } |
6390 } |
| 6370 else if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) |
6391 else if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) |
| 6381 /* Or it's a chat that we've left. */ |
6402 /* Or it's a chat that we've left. */ |
| 6382 |
6403 |
| 6383 /* Then deal with menu items */ |
6404 /* Then deal with menu items */ |
| 6384 gtk_widget_set_sensitive(win->menu.view_log, TRUE); |
6405 gtk_widget_set_sensitive(win->menu.view_log, TRUE); |
| 6385 gtk_widget_set_sensitive(win->menu.send_file, FALSE); |
6406 gtk_widget_set_sensitive(win->menu.send_file, FALSE); |
| |
6407 gtk_widget_set_sensitive(win->menu.get_attention, FALSE); |
| 6386 gtk_widget_set_sensitive(win->menu.add_pounce, TRUE); |
6408 gtk_widget_set_sensitive(win->menu.add_pounce, TRUE); |
| 6387 gtk_widget_set_sensitive(win->menu.get_info, FALSE); |
6409 gtk_widget_set_sensitive(win->menu.get_info, FALSE); |
| 6388 gtk_widget_set_sensitive(win->menu.invite, FALSE); |
6410 gtk_widget_set_sensitive(win->menu.invite, FALSE); |
| 6389 gtk_widget_set_sensitive(win->menu.alias, FALSE); |
6411 gtk_widget_set_sensitive(win->menu.alias, FALSE); |
| 6390 gtk_widget_set_sensitive(win->menu.add, FALSE); |
6412 gtk_widget_set_sensitive(win->menu.add, FALSE); |