| 1245 pidgin_pounce_editor_show(purple_conversation_get_account(conv), |
1245 pidgin_pounce_editor_show(purple_conversation_get_account(conv), |
| 1246 purple_conversation_get_name(conv), NULL); |
1246 purple_conversation_get_name(conv), NULL); |
| 1247 } |
1247 } |
| 1248 |
1248 |
| 1249 static void |
1249 static void |
| |
1250 menu_insert_link_cb(gpointer data, guint action, GtkWidget *widget) |
| |
1251 { |
| |
1252 PidginWindow *win = data; |
| |
1253 PidginConversation *gtkconv; |
| |
1254 GtkIMHtmlToolbar *toolbar; |
| |
1255 |
| |
1256 gtkconv = pidgin_conv_window_get_active_gtkconv(win); |
| |
1257 toolbar = GTK_IMHTMLTOOLBAR(gtkconv->toolbar); |
| |
1258 |
| |
1259 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toolbar->link), |
| |
1260 !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toolbar->link))); |
| |
1261 } |
| |
1262 |
| |
1263 static void |
| |
1264 menu_insert_image_cb(gpointer data, guint action, GtkWidget *widget) |
| |
1265 { |
| |
1266 PidginWindow *win = data; |
| |
1267 PurpleConversation *conv; |
| |
1268 PidginConversation *gtkconv; |
| |
1269 GtkIMHtmlToolbar *toolbar; |
| |
1270 |
| |
1271 gtkconv = pidgin_conv_window_get_active_gtkconv(win); |
| |
1272 conv = gtkconv->active_conv; |
| |
1273 toolbar = GTK_IMHTMLTOOLBAR(gtkconv->toolbar); |
| |
1274 |
| |
1275 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toolbar->image), |
| |
1276 !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toolbar->image))); |
| |
1277 } |
| |
1278 |
| |
1279 |
| |
1280 static void |
| 1250 menu_alias_cb(gpointer data, guint action, GtkWidget *widget) |
1281 menu_alias_cb(gpointer data, guint action, GtkWidget *widget) |
| 1251 { |
1282 { |
| 1252 PidginWindow *win = data; |
1283 PidginWindow *win = data; |
| 1253 PurpleConversation *conv; |
1284 PurpleConversation *conv; |
| 1254 PurpleAccount *account; |
1285 PurpleAccount *account; |
| 2816 { N_("/Conversation/_Remove..."), NULL, menu_add_remove_cb, 0, |
2847 { N_("/Conversation/_Remove..."), NULL, menu_add_remove_cb, 0, |
| 2817 "<StockItem>", GTK_STOCK_REMOVE }, |
2848 "<StockItem>", GTK_STOCK_REMOVE }, |
| 2818 |
2849 |
| 2819 { "/Conversation/sep3", NULL, NULL, 0, "<Separator>", NULL }, |
2850 { "/Conversation/sep3", NULL, NULL, 0, "<Separator>", NULL }, |
| 2820 |
2851 |
| |
2852 { N_("/Conversation/Insert Lin_k..."), NULL, menu_insert_link_cb, 0, |
| |
2853 "<StockItem>", PIDGIN_STOCK_TOOLBAR_INSERT_LINK }, |
| |
2854 { N_("/Conversation/Insert Imag_e..."), NULL, menu_insert_image_cb, 0, |
| |
2855 "<StockItem>", PIDGIN_STOCK_TOOLBAR_INSERT_IMAGE }, |
| |
2856 |
| |
2857 { "/Conversation/sep4", NULL, NULL, 0, "<Separator>", NULL }, |
| |
2858 |
| |
2859 |
| 2821 { N_("/Conversation/_Close"), NULL, menu_close_conv_cb, 0, |
2860 { N_("/Conversation/_Close"), NULL, menu_close_conv_cb, 0, |
| 2822 "<StockItem>", GTK_STOCK_CLOSE }, |
2861 "<StockItem>", GTK_STOCK_CLOSE }, |
| 2823 |
2862 |
| 2824 /* Options */ |
2863 /* Options */ |
| 2825 { N_("/_Options"), NULL, NULL, 0, "<Branch>", NULL }, |
2864 { N_("/_Options"), NULL, NULL, 0, "<Branch>", NULL }, |
| 3039 N_("/Conversation/Add...")); |
3078 N_("/Conversation/Add...")); |
| 3040 |
3079 |
| 3041 win->menu.remove = |
3080 win->menu.remove = |
| 3042 gtk_item_factory_get_widget(win->menu.item_factory, |
3081 gtk_item_factory_get_widget(win->menu.item_factory, |
| 3043 N_("/Conversation/Remove...")); |
3082 N_("/Conversation/Remove...")); |
| |
3083 |
| |
3084 /* --- */ |
| |
3085 |
| |
3086 win->menu.insert_link = |
| |
3087 gtk_item_factory_get_widget(win->menu.item_factory, |
| |
3088 N_("/Conversation/Insert Link...")); |
| |
3089 |
| |
3090 win->menu.insert_image = |
| |
3091 gtk_item_factory_get_widget(win->menu.item_factory, |
| |
3092 N_("/Conversation/Insert Image...")); |
| |
3093 |
| |
3094 /* --- */ |
| 3044 |
3095 |
| 3045 win->menu.logging = |
3096 win->menu.logging = |
| 3046 gtk_item_factory_get_widget(win->menu.item_factory, |
3097 gtk_item_factory_get_widget(win->menu.item_factory, |
| 3047 N_("/Options/Enable Logging")); |
3098 N_("/Options/Enable Logging")); |
| 3048 win->menu.sounds = |
3099 win->menu.sounds = |
| 5905 } else { |
5956 } else { |
| 5906 gtk_widget_show(win->menu.remove); |
5957 gtk_widget_show(win->menu.remove); |
| 5907 gtk_widget_hide(win->menu.add); |
5958 gtk_widget_hide(win->menu.add); |
| 5908 } |
5959 } |
| 5909 |
5960 |
| |
5961 gtk_widget_show(win->menu.insert_link); |
| |
5962 gtk_widget_show(win->menu.insert_image); |
| 5910 gtk_widget_show(win->menu.show_icon); |
5963 gtk_widget_show(win->menu.show_icon); |
| 5911 } else if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) { |
5964 } else if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) { |
| 5912 /* Show stuff that applies to Chats, hide stuff that applies to IMs */ |
5965 /* Show stuff that applies to Chats, hide stuff that applies to IMs */ |
| 5913 |
5966 |
| 5914 /* Deal with menu items */ |
5967 /* Deal with menu items */ |
| 5930 /* If the chat IS in the buddy list */ |
5983 /* If the chat IS in the buddy list */ |
| 5931 gtk_widget_hide(win->menu.add); |
5984 gtk_widget_hide(win->menu.add); |
| 5932 gtk_widget_show(win->menu.remove); |
5985 gtk_widget_show(win->menu.remove); |
| 5933 } |
5986 } |
| 5934 |
5987 |
| |
5988 gtk_widget_show(win->menu.insert_link); |
| |
5989 gtk_widget_show(win->menu.insert_image); |
| 5935 } |
5990 } |
| 5936 |
5991 |
| 5937 /* |
5992 /* |
| 5938 * Handle graying stuff out based on whether an account is connected |
5993 * Handle graying stuff out based on whether an account is connected |
| 5939 * and what features that account supports. |
5994 * and what features that account supports. |
| 5971 /* Deal with menu items */ |
6026 /* Deal with menu items */ |
| 5972 gtk_widget_set_sensitive(win->menu.view_log, TRUE); |
6027 gtk_widget_set_sensitive(win->menu.view_log, TRUE); |
| 5973 gtk_widget_set_sensitive(win->menu.add_pounce, TRUE); |
6028 gtk_widget_set_sensitive(win->menu.add_pounce, TRUE); |
| 5974 gtk_widget_set_sensitive(win->menu.get_info, (prpl_info->get_info != NULL)); |
6029 gtk_widget_set_sensitive(win->menu.get_info, (prpl_info->get_info != NULL)); |
| 5975 gtk_widget_set_sensitive(win->menu.invite, (prpl_info->chat_invite != NULL)); |
6030 gtk_widget_set_sensitive(win->menu.invite, (prpl_info->chat_invite != NULL)); |
| |
6031 gtk_widget_set_sensitive(win->menu.insert_link, (conv->features & PURPLE_CONNECTION_HTML)); |
| |
6032 gtk_widget_set_sensitive(win->menu.insert_image, (prpl_info->options & OPT_PROTO_IM_IMAGE) && !(conv->features & PURPLE_CONNECTION_NO_IMAGES)); |
| 5976 |
6033 |
| 5977 if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM) |
6034 if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM) |
| 5978 { |
6035 { |
| 5979 gtk_widget_set_sensitive(win->menu.add, (prpl_info->add_buddy != NULL)); |
6036 gtk_widget_set_sensitive(win->menu.add, (prpl_info->add_buddy != NULL)); |
| 5980 gtk_widget_set_sensitive(win->menu.remove, (prpl_info->remove_buddy != NULL)); |
6037 gtk_widget_set_sensitive(win->menu.remove, (prpl_info->remove_buddy != NULL)); |
| 6005 gtk_widget_set_sensitive(win->menu.get_info, FALSE); |
6062 gtk_widget_set_sensitive(win->menu.get_info, FALSE); |
| 6006 gtk_widget_set_sensitive(win->menu.invite, FALSE); |
6063 gtk_widget_set_sensitive(win->menu.invite, FALSE); |
| 6007 gtk_widget_set_sensitive(win->menu.alias, FALSE); |
6064 gtk_widget_set_sensitive(win->menu.alias, FALSE); |
| 6008 gtk_widget_set_sensitive(win->menu.add, FALSE); |
6065 gtk_widget_set_sensitive(win->menu.add, FALSE); |
| 6009 gtk_widget_set_sensitive(win->menu.remove, FALSE); |
6066 gtk_widget_set_sensitive(win->menu.remove, FALSE); |
| |
6067 gtk_widget_set_sensitive(win->menu.insert_link, TRUE); |
| |
6068 gtk_widget_set_sensitive(win->menu.insert_image, FALSE); |
| 6010 } |
6069 } |
| 6011 |
6070 |
| 6012 /* |
6071 /* |
| 6013 * Update the window's icon |
6072 * Update the window's icon |
| 6014 */ |
6073 */ |