Mercurial > pidgin.yaz
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 */ |