comparison pidgin/gtkconv.c @ 17776:68d034c6e65d

Bring back Conversation->Insert Link and Conversation->Insert Image. Fixes #565
author Stu Tomlinson <stu@nosnilmot.com>
date Thu, 07 Jun 2007 11:01:28 +0000
parents 1873848dfddb
children 192a86dfade8 0b3d6ea61760 be1c61b5f30d
comparison
equal deleted inserted replaced
17775:52c0ca2e78e4 17776:68d034c6e65d
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 */