| 158 static void pidgin_conv_updated(PurpleConversation *conv, PurpleConvUpdateType type); |
158 static void pidgin_conv_updated(PurpleConversation *conv, PurpleConvUpdateType type); |
| 159 static void conv_set_unseen(PurpleConversation *gtkconv, PidginUnseenState state); |
159 static void conv_set_unseen(PurpleConversation *gtkconv, PidginUnseenState state); |
| 160 static void gtkconv_set_unseen(PidginConversation *gtkconv, PidginUnseenState state); |
160 static void gtkconv_set_unseen(PidginConversation *gtkconv, PidginUnseenState state); |
| 161 static void update_typing_icon(PidginConversation *gtkconv); |
161 static void update_typing_icon(PidginConversation *gtkconv); |
| 162 static void update_typing_message(PidginConversation *gtkconv, const char *message); |
162 static void update_typing_message(PidginConversation *gtkconv, const char *message); |
| |
163 #if !GTK_CHECK_VERSION(2,4,0) |
| 163 static const char *item_factory_translate_func (const char *path, gpointer func_data); |
164 static const char *item_factory_translate_func (const char *path, gpointer func_data); |
| |
165 #endif |
| 164 gboolean pidgin_conv_has_focus(PurpleConversation *conv); |
166 gboolean pidgin_conv_has_focus(PurpleConversation *conv); |
| 165 static GdkColor* generate_nick_colors(guint *numcolors, GdkColor background); |
167 static GdkColor* generate_nick_colors(guint *numcolors, GdkColor background); |
| 166 static gboolean color_is_visible(GdkColor foreground, GdkColor background, int color_contrast, int brightness_contrast); |
168 static gboolean color_is_visible(GdkColor foreground, GdkColor background, int color_contrast, int brightness_contrast); |
| 167 static GtkTextTag *get_buddy_tag(PurpleConversation *conv, const char *who, PurpleMessageFlags flag, gboolean create); |
169 static GtkTextTag *get_buddy_tag(PurpleConversation *conv, const char *who, PurpleMessageFlags flag, gboolean create); |
| 168 static void pidgin_conv_update_fields(PurpleConversation *conv, PidginConvFields fields); |
170 static void pidgin_conv_update_fields(PurpleConversation *conv, PidginConvFields fields); |
| 1201 gtk_widget_grab_focus(s->entry); |
1223 gtk_widget_grab_focus(s->entry); |
| 1202 } |
1224 } |
| 1203 |
1225 |
| 1204 #ifdef USE_VV |
1226 #ifdef USE_VV |
| 1205 static void |
1227 static void |
| |
1228 #if GTK_CHECK_VERSION(2,4,0) |
| |
1229 menu_initiate_media_call_cb(GtkAction *action, gpointer data) |
| |
1230 #else |
| 1206 menu_initiate_media_call_cb(gpointer data, guint action, GtkWidget *widget) |
1231 menu_initiate_media_call_cb(gpointer data, guint action, GtkWidget *widget) |
| |
1232 #endif |
| 1207 { |
1233 { |
| 1208 PidginWindow *win = (PidginWindow *)data; |
1234 PidginWindow *win = (PidginWindow *)data; |
| 1209 PurpleConversation *conv = pidgin_conv_window_get_active_conversation(win); |
1235 PurpleConversation *conv = pidgin_conv_window_get_active_conversation(win); |
| 1210 PurpleAccount *account = purple_conversation_get_account(conv); |
1236 PurpleAccount *account = purple_conversation_get_account(conv); |
| 1211 |
1237 |
| |
1238 /* FIXME: action is not an int... */ |
| 1212 purple_prpl_initiate_media(account, |
1239 purple_prpl_initiate_media(account, |
| 1213 purple_conversation_get_name(conv), |
1240 purple_conversation_get_name(conv), |
| 1214 action == 0 ? PURPLE_MEDIA_AUDIO : |
1241 action == 0 ? PURPLE_MEDIA_AUDIO : |
| 1215 action == 1 ? PURPLE_MEDIA_VIDEO : |
1242 action == 1 ? PURPLE_MEDIA_VIDEO : |
| 1216 action == 2 ? PURPLE_MEDIA_AUDIO | |
1243 action == 2 ? PURPLE_MEDIA_AUDIO | |
| 1217 PURPLE_MEDIA_VIDEO : PURPLE_MEDIA_NONE); |
1244 PURPLE_MEDIA_VIDEO : PURPLE_MEDIA_NONE); |
| 1218 } |
1245 } |
| 1219 #endif |
1246 #endif |
| 1220 |
1247 |
| 1221 static void |
1248 static void |
| |
1249 #if GTK_CHECK_VERSION(2,4,0) |
| |
1250 menu_send_file_cb(GtkAction *action, gpointer data) |
| |
1251 #else |
| 1222 menu_send_file_cb(gpointer data, guint action, GtkWidget *widget) |
1252 menu_send_file_cb(gpointer data, guint action, GtkWidget *widget) |
| |
1253 #endif |
| 1223 { |
1254 { |
| 1224 PidginWindow *win = data; |
1255 PidginWindow *win = data; |
| 1225 PurpleConversation *conv = pidgin_conv_window_get_active_conversation(win); |
1256 PurpleConversation *conv = pidgin_conv_window_get_active_conversation(win); |
| 1226 |
1257 |
| 1227 if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM) { |
1258 if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM) { |
| 1299 pidgin_dialogs_alias_chat(c); |
1346 pidgin_dialogs_alias_chat(c); |
| 1300 } |
1347 } |
| 1301 } |
1348 } |
| 1302 |
1349 |
| 1303 static void |
1350 static void |
| |
1351 #if GTK_CHECK_VERSION(2,4,0) |
| |
1352 menu_get_info_cb(GtkAction *action, gpointer data) |
| |
1353 #else |
| 1304 menu_get_info_cb(gpointer data, guint action, GtkWidget *widget) |
1354 menu_get_info_cb(gpointer data, guint action, GtkWidget *widget) |
| |
1355 #endif |
| 1305 { |
1356 { |
| 1306 PidginWindow *win = data; |
1357 PidginWindow *win = data; |
| 1307 PurpleConversation *conv; |
1358 PurpleConversation *conv; |
| 1308 |
1359 |
| 1309 conv = pidgin_conv_window_get_active_conversation(win); |
1360 conv = pidgin_conv_window_get_active_conversation(win); |
| 1310 |
1361 |
| 1311 info_cb(NULL, PIDGIN_CONVERSATION(conv)); |
1362 info_cb(NULL, PIDGIN_CONVERSATION(conv)); |
| 1312 } |
1363 } |
| 1313 |
1364 |
| 1314 static void |
1365 static void |
| |
1366 #if GTK_CHECK_VERSION(2,4,0) |
| |
1367 menu_invite_cb(GtkAction *action, gpointer data) |
| |
1368 #else |
| 1315 menu_invite_cb(gpointer data, guint action, GtkWidget *widget) |
1369 menu_invite_cb(gpointer data, guint action, GtkWidget *widget) |
| |
1370 #endif |
| 1316 { |
1371 { |
| 1317 PidginWindow *win = data; |
1372 PidginWindow *win = data; |
| 1318 PurpleConversation *conv; |
1373 PurpleConversation *conv; |
| 1319 |
1374 |
| 1320 conv = pidgin_conv_window_get_active_conversation(win); |
1375 conv = pidgin_conv_window_get_active_conversation(win); |
| 1321 |
1376 |
| 1322 invite_cb(NULL, PIDGIN_CONVERSATION(conv)); |
1377 invite_cb(NULL, PIDGIN_CONVERSATION(conv)); |
| 1323 } |
1378 } |
| 1324 |
1379 |
| 1325 static void |
1380 static void |
| |
1381 #if GTK_CHECK_VERSION(2,4,0) |
| |
1382 menu_block_cb(GtkAction *action, gpointer data) |
| |
1383 #else |
| 1326 menu_block_cb(gpointer data, guint action, GtkWidget *widget) |
1384 menu_block_cb(gpointer data, guint action, GtkWidget *widget) |
| |
1385 #endif |
| 1327 { |
1386 { |
| 1328 PidginWindow *win = data; |
1387 PidginWindow *win = data; |
| 1329 PurpleConversation *conv; |
1388 PurpleConversation *conv; |
| 1330 |
1389 |
| 1331 conv = pidgin_conv_window_get_active_conversation(win); |
1390 conv = pidgin_conv_window_get_active_conversation(win); |
| 1332 |
1391 |
| 1333 block_cb(NULL, PIDGIN_CONVERSATION(conv)); |
1392 block_cb(NULL, PIDGIN_CONVERSATION(conv)); |
| 1334 } |
1393 } |
| 1335 |
1394 |
| 1336 static void |
1395 static void |
| |
1396 #if GTK_CHECK_VERSION(2,4,0) |
| |
1397 menu_unblock_cb(GtkAction *action, gpointer data) |
| |
1398 #else |
| 1337 menu_unblock_cb(gpointer data, guint action, GtkWidget *widget) |
1399 menu_unblock_cb(gpointer data, guint action, GtkWidget *widget) |
| |
1400 #endif |
| 1338 { |
1401 { |
| 1339 PidginWindow *win = data; |
1402 PidginWindow *win = data; |
| 1340 PurpleConversation *conv; |
1403 PurpleConversation *conv; |
| 1341 |
1404 |
| 1342 conv = pidgin_conv_window_get_active_conversation(win); |
1405 conv = pidgin_conv_window_get_active_conversation(win); |
| 1343 |
1406 |
| 1344 unblock_cb(NULL, PIDGIN_CONVERSATION(conv)); |
1407 unblock_cb(NULL, PIDGIN_CONVERSATION(conv)); |
| 1345 } |
1408 } |
| 1346 |
1409 |
| 1347 static void |
1410 static void |
| |
1411 #if GTK_CHECK_VERSION(2,4,0) |
| |
1412 menu_add_remove_cb(GtkAction *action, gpointer data) |
| |
1413 #else |
| 1348 menu_add_remove_cb(gpointer data, guint action, GtkWidget *widget) |
1414 menu_add_remove_cb(gpointer data, guint action, GtkWidget *widget) |
| |
1415 #endif |
| 1349 { |
1416 { |
| 1350 PidginWindow *win = data; |
1417 PidginWindow *win = data; |
| 1351 PurpleConversation *conv; |
1418 PurpleConversation *conv; |
| 1352 |
1419 |
| 1353 conv = pidgin_conv_window_get_active_conversation(win); |
1420 conv = pidgin_conv_window_get_active_conversation(win); |
| 1483 return; |
1574 return; |
| 1484 |
1575 |
| 1485 gtkconv = PIDGIN_CONVERSATION(conv); |
1576 gtkconv = PIDGIN_CONVERSATION(conv); |
| 1486 |
1577 |
| 1487 gtkconv->make_sound = |
1578 gtkconv->make_sound = |
| |
1579 #if GTK_CHECK_VERSION(2,4,0) |
| |
1580 gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action)); |
| |
1581 #else |
| 1488 gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)); |
1582 gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)); |
| |
1583 #endif |
| 1489 node = get_conversation_blist_node(conv); |
1584 node = get_conversation_blist_node(conv); |
| 1490 if (node) |
1585 if (node) |
| 1491 purple_blist_node_set_bool(node, "gtk-mute-sound", !gtkconv->make_sound); |
1586 purple_blist_node_set_bool(node, "gtk-mute-sound", !gtkconv->make_sound); |
| 1492 } |
1587 } |
| 1493 |
1588 |
| 1494 static void |
1589 static void |
| |
1590 #if GTK_CHECK_VERSION(2,4,0) |
| |
1591 menu_timestamps_cb(GtkAction *action, gpointer data) |
| |
1592 { |
| |
1593 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/conversations/show_timestamps", |
| |
1594 gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action))); |
| |
1595 } |
| |
1596 #else |
| 1495 menu_timestamps_cb(gpointer data, guint action, GtkWidget *widget) |
1597 menu_timestamps_cb(gpointer data, guint action, GtkWidget *widget) |
| 1496 { |
1598 { |
| 1497 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/conversations/show_timestamps", |
1599 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/conversations/show_timestamps", |
| 1498 gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))); |
1600 gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))); |
| 1499 } |
1601 } |
| |
1602 #endif |
| 1500 |
1603 |
| 1501 static void |
1604 static void |
| 1502 chat_do_im(PidginConversation *gtkconv, const char *who) |
1605 chat_do_im(PidginConversation *gtkconv, const char *who) |
| 1503 { |
1606 { |
| 1504 PurpleConversation *conv = gtkconv->active_conv; |
1607 PurpleConversation *conv = gtkconv->active_conv; |
| 3124 { |
3227 { |
| 3125 g_return_val_if_fail(gtkconv != NULL, NULL); |
3228 g_return_val_if_fail(gtkconv != NULL, NULL); |
| 3126 return gtkconv->win; |
3229 return gtkconv->win; |
| 3127 } |
3230 } |
| 3128 |
3231 |
| |
3232 #if GTK_CHECK_VERSION(2,4,0) |
| |
3233 |
| |
3234 static GtkActionEntry menu_entries[] = |
| |
3235 /* TODO: fill out tooltips... */ |
| |
3236 { |
| |
3237 /* Conversation menu */ |
| |
3238 { "ConversationMenu", NULL, N_("_Conversation"), NULL, NULL, NULL }, |
| |
3239 { "NewInstantMessage", PIDGIN_STOCK_TOOLBAR_MESSAGE_NEW, N_("New Instant _Message..."), "<control>M", NULL, menu_new_conv_cb }, |
| |
3240 { "Find", GTK_STOCK_FIND, N_("_Find..."), NULL, NULL, menu_find_cb }, |
| |
3241 { "ViewLog", NULL, N_("View _Log"), NULL, NULL, menu_view_log_cb }, |
| |
3242 { "SaveAs", GTK_STOCK_SAVE_AS, N_("_Save As..."), NULL, NULL, menu_save_as_cb }, |
| |
3243 { "ClearScrollback", GTK_STOCK_CLEAR, N_("Clea_r Scrollback"), "<control>L", NULL, menu_clear_cb }, |
| |
3244 |
| |
3245 #ifdef USE_VV |
| |
3246 { "MediaMenu", NULL, N_("M_edia"), NULL, NULL, NULL }, |
| |
3247 { "AudioCall", PIDGIN_STOCK_TOOLBAR_AUDIO_CALL, N_("_Audio Call"), NULL, NULL, menu_initiate_media_call_cb }, |
| |
3248 { "VideoCall", PIDGIN_STOCK_TOOLBAR_VIDEO_CALL, N_("_Video Call"), NULL, NULL, menu_initiate_media_call_cb }, |
| |
3249 { "AudioVideoCall", PIDGIN_STOCK_TOOLBAR_VIDEO_CALL, N_("Audio\\/Video _Call"), NULL, NULL, menu_initiate_media_call_cb }, |
| |
3250 #endif |
| |
3251 |
| |
3252 { "SendFile", PIDGIN_STOCK_TOOLBAR_SEND_FILE, N_("Se_nd File..."), NULL, NULL, menu_send_file_cb }, |
| |
3253 { "AddBuddyPounce", NULL, N_("Add Buddy _Pounce..."), NULL, NULL, menu_add_pounce_cb }, |
| |
3254 { "GetInfo", PIDGIN_STOCK_TOOLBAR_USER_INFO, N_("_Get Info"), "<control>O", NULL, menu_get_info_cb }, |
| |
3255 { "Invite", NULL, N_("In_vite..."), NULL, NULL, menu_invite_cb }, |
| |
3256 { "MoreMenu", NULL, N_("M_ore"), NULL, NULL, NULL }, |
| |
3257 { "Alias", NULL, N_("Al_ias..."), NULL, NULL, menu_alias_cb }, |
| |
3258 { "Block", PIDGIN_STOCK_TOOLBAR_BLOCK, N_("_Block..."), NULL, NULL, menu_block_cb }, |
| |
3259 { "Unblock", PIDGIN_STOCK_TOOLBAR_UNBLOCK, N_("_Unblock..."), NULL, NULL, menu_unblock_cb }, |
| |
3260 { "Add", GTK_STOCK_ADD, N_("_Add..."), NULL, NULL, menu_add_remove_cb }, |
| |
3261 { "Remove", GTK_STOCK_REMOVE, N_("_Remove..."), NULL, NULL, menu_add_remove_cb }, |
| |
3262 { "InsertLink", PIDGIN_STOCK_TOOLBAR_INSERT_LINK, N_("Insert Lin_k..."), NULL, NULL, menu_insert_link_cb }, |
| |
3263 { "InsertImage", PIDGIN_STOCK_TOOLBAR_INSERT_IMAGE, N_("Insert Imag_e..."), NULL, NULL, menu_insert_image_cb }, |
| |
3264 { "Close", GTK_STOCK_CLOSE, N_("_Close"), NULL, NULL, menu_close_conv_cb }, |
| |
3265 |
| |
3266 /* Options */ |
| |
3267 { "OptionsMenu", NULL, N_("_Options"), NULL, NULL, NULL }, |
| |
3268 }; |
| |
3269 |
| |
3270 /* Toggle items */ |
| |
3271 static const GtkToggleActionEntry menu_toggle_entries[] = { |
| |
3272 { "EnableLogging", NULL, N_("Enable _Logging"), NULL, NULL, menu_logging_cb, FALSE }, |
| |
3273 { "EnableSounds", NULL, N_("Enable _Sounds"), NULL, NULL, menu_sounds_cb, FALSE }, |
| |
3274 { "ShowFormattingToolbars", NULL, N_("Show Formatting _Toolbars"), NULL, NULL, menu_toolbar_cb, FALSE }, |
| |
3275 { "ShowTimestamps", NULL, N_("Show Ti_mestamps"), NULL, NULL, menu_timestamps_cb, FALSE }, |
| |
3276 }; |
| |
3277 |
| |
3278 static const char *conversation_menu = |
| |
3279 "<ui>" |
| |
3280 "<menubar name='Conversation'>" |
| |
3281 "<menu action='ConversationMenu'>" |
| |
3282 "<menuitem action='NewInstantMessage'/>" |
| |
3283 "<separator/>" |
| |
3284 "<menuitem action='Find'/>" |
| |
3285 "<menuitem action='ViewLog'/>" |
| |
3286 "<menuitem action='SaveAs'/>" |
| |
3287 "<menuitem action='ClearScrollback'/>" |
| |
3288 "<separator/>" |
| |
3289 #ifdef USE_VV |
| |
3290 "<menu action='MediaMenu'>" |
| |
3291 "<menuitem action='AudioCall'/>" |
| |
3292 "<menuitem action='VideoCall'/>" |
| |
3293 "<menuitem action='AudioVideoCall'/>" |
| |
3294 "</menu>" |
| |
3295 #endif |
| |
3296 "<menuitem action='SendFile'/>" |
| |
3297 "<menuitem action='AddBuddyPounce'/>" |
| |
3298 "<menuitem action='GetInfo'/>" |
| |
3299 "<menuitem action='Invite'/>" |
| |
3300 "<menu action='MoreMenu'/>" |
| |
3301 "<separator/>" |
| |
3302 "<menuitem action='Alias'/>" |
| |
3303 "<menuitem action='Block'/>" |
| |
3304 "<menuitem action='Unblock'/>" |
| |
3305 "<menuitem action='Add'/>" |
| |
3306 "<menuitem action='Remove'/>" |
| |
3307 "<separator/>" |
| |
3308 "<menuitem action='InsertLink'/>" |
| |
3309 "<menuitem action='InsertImage'/>" |
| |
3310 "<separator/>" |
| |
3311 "<menuitem action='Close'/>" |
| |
3312 "</menu>" |
| |
3313 "<menu action='OptionsMenu'>" |
| |
3314 "<menuitem action='EnableLogging'/>" |
| |
3315 "<menuitem action='EnableSounds'/>" |
| |
3316 "<separator/>" |
| |
3317 "<menuitem action='ShowFormattingToolbars'/>" |
| |
3318 "<menuitem action='ShowTimestamps'/>" |
| |
3319 "</menu>" |
| |
3320 "</menubar>" |
| |
3321 "</ui>"; |
| |
3322 |
| |
3323 #else |
| |
3324 |
| 3129 static GtkItemFactoryEntry menu_items[] = |
3325 static GtkItemFactoryEntry menu_items[] = |
| 3130 { |
3326 { |
| 3131 /* Conversation menu */ |
3327 /* Conversation menu */ |
| 3132 { N_("/_Conversation"), NULL, NULL, 0, "<Branch>", NULL }, |
3328 { N_("/_Conversation"), NULL, NULL, 0, "<Branch>", NULL }, |
| 3133 |
3329 |
| 3427 GtkWidget *menuitem = gtk_item_factory_get_item(win->menu.item_factory, N_("/Conversation")); |
3632 GtkWidget *menuitem = gtk_item_factory_get_item(win->menu.item_factory, N_("/Conversation")); |
| 3428 g_signal_handlers_unblock_by_func(G_OBJECT(menuitem), G_CALLBACK(menubar_activated), win); |
3633 g_signal_handlers_unblock_by_func(G_OBJECT(menuitem), G_CALLBACK(menubar_activated), win); |
| 3429 g_signal_handlers_disconnect_by_func(G_OBJECT(win->menu.menubar), |
3634 g_signal_handlers_disconnect_by_func(G_OBJECT(win->menu.menubar), |
| 3430 G_CALLBACK(focus_out_from_menubar), win); |
3635 G_CALLBACK(focus_out_from_menubar), win); |
| 3431 } |
3636 } |
| |
3637 #endif |
| 3432 |
3638 |
| 3433 static GtkWidget * |
3639 static GtkWidget * |
| 3434 setup_menubar(PidginWindow *win) |
3640 setup_menubar(PidginWindow *win) |
| 3435 { |
3641 { |
| 3436 GtkAccelGroup *accel_group; |
3642 GtkAccelGroup *accel_group; |
| 3437 const char *method; |
3643 const char *method; |
| |
3644 |
| |
3645 #if GTK_CHECK_VERSION(2,4,0) |
| |
3646 GtkActionGroup *action_group; |
| |
3647 GError *error; |
| |
3648 |
| |
3649 action_group = gtk_action_group_new("ConversationActions"); |
| |
3650 gtk_action_group_add_actions(action_group, |
| |
3651 menu_entries, |
| |
3652 G_N_ELEMENTS(menu_entries), |
| |
3653 win); |
| |
3654 gtk_action_group_add_toggle_actions(action_group, |
| |
3655 menu_toggle_entries, |
| |
3656 G_N_ELEMENTS(menu_toggle_entries), |
| |
3657 win); |
| |
3658 #ifdef ENABLE_NLS |
| |
3659 gtk_action_group_set_translation_domain(action_group, |
| |
3660 PACKAGE); |
| |
3661 #endif |
| |
3662 |
| |
3663 win->menu.ui = gtk_ui_manager_new(); |
| |
3664 gtk_ui_manager_insert_action_group(win->menu.ui, action_group, 0); |
| |
3665 |
| |
3666 accel_group = gtk_ui_manager_get_accel_group(win->menu.ui); |
| |
3667 gtk_window_add_accel_group(GTK_WINDOW(win->window), accel_group); |
| |
3668 g_signal_connect(G_OBJECT(accel_group), "accel-changed", |
| |
3669 G_CALLBACK(pidgin_save_accels_cb), NULL); |
| |
3670 |
| |
3671 error = NULL; |
| |
3672 if (!gtk_ui_manager_add_ui_from_string(win->menu.ui, conversation_menu, -1, &error)) |
| |
3673 { |
| |
3674 g_message("building menus failed: %s", error->message); |
| |
3675 g_error_free(error); |
| |
3676 exit(EXIT_FAILURE); |
| |
3677 } |
| |
3678 |
| |
3679 win->menu.menubar = |
| |
3680 gtk_ui_manager_get_widget(win->menu.ui, "/Conversation"); |
| |
3681 |
| |
3682 win->menu.view_log = |
| |
3683 gtk_ui_manager_get_widget(win->menu.ui, |
| |
3684 "/Conversation/ConversationMenu/ViewLog"); |
| |
3685 |
| |
3686 #ifdef USE_VV |
| |
3687 win->audio_call = |
| |
3688 gtk_ui_manager_get_widget(win->menu.ui, |
| |
3689 "/Conversation/ConversationMenu/MediaMenu/AudioCall"); |
| |
3690 win->video_call = |
| |
3691 gtk_ui_manager_get_widget(win->menu.ui, |
| |
3692 "/Conversation/ConversationMenu/MediaMenu/VideoCall"); |
| |
3693 win->audio_video_call = |
| |
3694 gtk_ui_manager_get_widget(win->menu.ui, |
| |
3695 "/Conversation/ConversationMenu/MediaMenu/AudioVideoCall"); |
| |
3696 #endif |
| |
3697 |
| |
3698 /* --- */ |
| |
3699 |
| |
3700 win->menu.send_file = |
| |
3701 gtk_ui_manager_get_widget(win->menu.ui, |
| |
3702 "/Conversation/ConversationMenu/SendFile"); |
| |
3703 |
| |
3704 win->menu.add_pounce = |
| |
3705 gtk_ui_manager_get_widget(win->menu.ui, |
| |
3706 "/Conversation/ConversationMenu/AddBuddyPounce"); |
| |
3707 |
| |
3708 /* --- */ |
| |
3709 |
| |
3710 win->menu.get_info = |
| |
3711 gtk_ui_manager_get_widget(win->menu.ui, |
| |
3712 "/Conversation/ConversationMenu/GetInfo"); |
| |
3713 |
| |
3714 win->menu.invite = |
| |
3715 gtk_ui_manager_get_widget(win->menu.ui, |
| |
3716 "/Conversation/ConversationMenu/Invite"); |
| |
3717 |
| |
3718 /* --- */ |
| |
3719 |
| |
3720 win->menu.alias = |
| |
3721 gtk_ui_manager_get_widget(win->menu.ui, |
| |
3722 "/Conversation/ConversationMenu/Alias"); |
| |
3723 |
| |
3724 win->menu.block = |
| |
3725 gtk_ui_manager_get_widget(win->menu.ui, |
| |
3726 "/Conversation/ConversationMenu/Block"); |
| |
3727 |
| |
3728 win->menu.unblock = |
| |
3729 gtk_ui_manager_get_widget(win->menu.ui, |
| |
3730 "/Conversation/ConversationMenu/Unblock"); |
| |
3731 |
| |
3732 win->menu.add = |
| |
3733 gtk_ui_manager_get_widget(win->menu.ui, |
| |
3734 "/Conversation/ConversationMenu/Add"); |
| |
3735 |
| |
3736 win->menu.remove = |
| |
3737 gtk_ui_manager_get_widget(win->menu.ui, |
| |
3738 "/Conversation/ConversationMenu/Remove"); |
| |
3739 |
| |
3740 /* --- */ |
| |
3741 |
| |
3742 win->menu.insert_link = |
| |
3743 gtk_ui_manager_get_widget(win->menu.ui, |
| |
3744 "/Conversation/ConversationMenu/InsertLink"); |
| |
3745 |
| |
3746 win->menu.insert_image = |
| |
3747 gtk_ui_manager_get_widget(win->menu.ui, |
| |
3748 "/Conversation/ConversationMenu/InsertImage"); |
| |
3749 |
| |
3750 /* --- */ |
| |
3751 |
| |
3752 win->menu.logging = |
| |
3753 gtk_ui_manager_get_widget(win->menu.ui, |
| |
3754 "/Conversation/OptionsMenu/EnableLogging"); |
| |
3755 win->menu.sounds = |
| |
3756 gtk_ui_manager_get_widget(win->menu.ui, |
| |
3757 "/Conversation/OptionsMenu/EnableSounds"); |
| |
3758 method = purple_prefs_get_string(PIDGIN_PREFS_ROOT "/sound/method"); |
| |
3759 if (method != NULL && !strcmp(method, "none")) |
| |
3760 { |
| |
3761 gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(win->menu.sounds), |
| |
3762 FALSE); |
| |
3763 gtk_widget_set_sensitive(win->menu.sounds, FALSE); |
| |
3764 } |
| |
3765 purple_prefs_connect_callback(win, PIDGIN_PREFS_ROOT "/sound/method", |
| |
3766 sound_method_pref_changed_cb, win); |
| |
3767 |
| |
3768 win->menu.show_formatting_toolbar = |
| |
3769 gtk_ui_manager_get_widget(win->menu.ui, |
| |
3770 "/Conversation/OptionsMenu/ShowFormattingToolbars"); |
| |
3771 win->menu.show_timestamps = |
| |
3772 gtk_ui_manager_get_widget(win->menu.ui, |
| |
3773 "/Conversation/OptionsMenu/ShowTimestamps"); |
| |
3774 win->menu.show_icon = NULL; |
| |
3775 |
| |
3776 #else |
| 3438 GtkWidget *menuitem; |
3777 GtkWidget *menuitem; |
| 3439 |
3778 |
| 3440 accel_group = gtk_accel_group_new (); |
3779 accel_group = gtk_accel_group_new (); |
| 3441 gtk_window_add_accel_group(GTK_WINDOW(win->window), accel_group); |
3780 gtk_window_add_accel_group(GTK_WINDOW(win->window), accel_group); |
| 3442 g_object_unref(accel_group); |
3781 g_object_unref(accel_group); |