| 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,6,0) |
|
| 164 static const char *item_factory_translate_func (const char *path, gpointer func_data); |
|
| 165 #endif |
|
| 166 gboolean pidgin_conv_has_focus(PurpleConversation *conv); |
163 gboolean pidgin_conv_has_focus(PurpleConversation *conv); |
| 167 static GdkColor* generate_nick_colors(guint *numcolors, GdkColor background); |
164 static GdkColor* generate_nick_colors(guint *numcolors, GdkColor background); |
| 168 static gboolean color_is_visible(GdkColor foreground, GdkColor background, int color_contrast, int brightness_contrast); |
165 static gboolean color_is_visible(GdkColor foreground, GdkColor background, int color_contrast, int brightness_contrast); |
| 169 static GtkTextTag *get_buddy_tag(PurpleConversation *conv, const char *who, PurpleMessageFlags flag, gboolean create); |
166 static GtkTextTag *get_buddy_tag(PurpleConversation *conv, const char *who, PurpleMessageFlags flag, gboolean create); |
| 170 static void pidgin_conv_update_fields(PurpleConversation *conv, PidginConvFields fields); |
167 static void pidgin_conv_update_fields(PurpleConversation *conv, PidginConvFields fields); |
| 1125 gdk_window_set_cursor(gtkblist->window->window, NULL); |
1110 gdk_window_set_cursor(gtkblist->window->window, NULL); |
| 1126 gdk_window_set_cursor(win->window->window, NULL); |
1111 gdk_window_set_cursor(win->window->window, NULL); |
| 1127 } |
1112 } |
| 1128 |
1113 |
| 1129 static void |
1114 static void |
| 1130 #if GTK_CHECK_VERSION(2,6,0) |
|
| 1131 menu_clear_cb(GtkAction *action, gpointer data) |
1115 menu_clear_cb(GtkAction *action, gpointer data) |
| 1132 #else |
|
| 1133 menu_clear_cb(gpointer data, guint action, GtkWidget *widget) |
|
| 1134 #endif |
|
| 1135 { |
1116 { |
| 1136 PidginWindow *win = data; |
1117 PidginWindow *win = data; |
| 1137 PurpleConversation *conv; |
1118 PurpleConversation *conv; |
| 1138 |
1119 |
| 1139 conv = pidgin_conv_window_get_active_conversation(win); |
1120 conv = pidgin_conv_window_get_active_conversation(win); |
| 1140 clear_conversation_scrollback(conv); |
1121 clear_conversation_scrollback(conv); |
| 1141 } |
1122 } |
| 1142 |
1123 |
| 1143 static void |
1124 static void |
| 1144 #if GTK_CHECK_VERSION(2,6,0) |
|
| 1145 menu_find_cb(GtkAction *action, gpointer data) |
1125 menu_find_cb(GtkAction *action, gpointer data) |
| 1146 #else |
|
| 1147 menu_find_cb(gpointer data, guint action, GtkWidget *widget) |
|
| 1148 #endif |
|
| 1149 { |
1126 { |
| 1150 PidginWindow *gtkwin = data; |
1127 PidginWindow *gtkwin = data; |
| 1151 PidginConversation *gtkconv = pidgin_conv_window_get_active_gtkconv(gtkwin); |
1128 PidginConversation *gtkconv = pidgin_conv_window_get_active_gtkconv(gtkwin); |
| 1152 gtk_widget_show_all(gtkconv->quickfind.container); |
1129 gtk_widget_show_all(gtkconv->quickfind.container); |
| 1153 gtk_widget_grab_focus(gtkconv->quickfind.entry); |
1130 gtk_widget_grab_focus(gtkconv->quickfind.entry); |
| 1154 } |
1131 } |
| 1155 |
1132 |
| 1156 #ifdef USE_VV |
1133 #ifdef USE_VV |
| 1157 static void |
1134 static void |
| 1158 #if GTK_CHECK_VERSION(2,6,0) |
|
| 1159 menu_initiate_media_call_cb(GtkAction *action, gpointer data) |
1135 menu_initiate_media_call_cb(GtkAction *action, gpointer data) |
| 1160 { |
1136 { |
| 1161 PidginWindow *win = (PidginWindow *)data; |
1137 PidginWindow *win = (PidginWindow *)data; |
| 1162 PurpleConversation *conv = pidgin_conv_window_get_active_conversation(win); |
1138 PurpleConversation *conv = pidgin_conv_window_get_active_conversation(win); |
| 1163 PurpleAccount *account = purple_conversation_get_account(conv); |
1139 PurpleAccount *account = purple_conversation_get_account(conv); |
| 1167 action == win->audio_call ? PURPLE_MEDIA_AUDIO : |
1143 action == win->audio_call ? PURPLE_MEDIA_AUDIO : |
| 1168 action == win->video_call ? PURPLE_MEDIA_VIDEO : |
1144 action == win->video_call ? PURPLE_MEDIA_VIDEO : |
| 1169 action == win->audio_video_call ? PURPLE_MEDIA_AUDIO | |
1145 action == win->audio_video_call ? PURPLE_MEDIA_AUDIO | |
| 1170 PURPLE_MEDIA_VIDEO : PURPLE_MEDIA_NONE); |
1146 PURPLE_MEDIA_VIDEO : PURPLE_MEDIA_NONE); |
| 1171 } |
1147 } |
| 1172 #else |
|
| 1173 menu_initiate_media_call_cb(gpointer data, guint action, GtkWidget *widget) |
|
| 1174 { |
|
| 1175 PidginWindow *win = (PidginWindow *)data; |
|
| 1176 PurpleConversation *conv = pidgin_conv_window_get_active_conversation(win); |
|
| 1177 PurpleAccount *account = purple_conversation_get_account(conv); |
|
| 1178 |
|
| 1179 purple_prpl_initiate_media(account, |
|
| 1180 purple_conversation_get_name(conv), |
|
| 1181 action == 0 ? PURPLE_MEDIA_AUDIO : |
|
| 1182 action == 1 ? PURPLE_MEDIA_VIDEO : |
|
| 1183 action == 2 ? PURPLE_MEDIA_AUDIO | |
|
| 1184 PURPLE_MEDIA_VIDEO : PURPLE_MEDIA_NONE); |
|
| 1185 } |
|
| 1186 #endif |
1148 #endif |
| 1187 #endif |
1149 |
| 1188 |
1150 static void |
| 1189 static void |
|
| 1190 #if GTK_CHECK_VERSION(2,6,0) |
|
| 1191 menu_send_file_cb(GtkAction *action, gpointer data) |
1151 menu_send_file_cb(GtkAction *action, gpointer data) |
| 1192 #else |
|
| 1193 menu_send_file_cb(gpointer data, guint action, GtkWidget *widget) |
|
| 1194 #endif |
|
| 1195 { |
1152 { |
| 1196 PidginWindow *win = data; |
1153 PidginWindow *win = data; |
| 1197 PurpleConversation *conv = pidgin_conv_window_get_active_conversation(win); |
1154 PurpleConversation *conv = pidgin_conv_window_get_active_conversation(win); |
| 1198 |
1155 |
| 1199 if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM) { |
1156 if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM) { |
| 1303 pidgin_dialogs_alias_chat(c); |
1240 pidgin_dialogs_alias_chat(c); |
| 1304 } |
1241 } |
| 1305 } |
1242 } |
| 1306 |
1243 |
| 1307 static void |
1244 static void |
| 1308 #if GTK_CHECK_VERSION(2,6,0) |
|
| 1309 menu_get_info_cb(GtkAction *action, gpointer data) |
1245 menu_get_info_cb(GtkAction *action, gpointer data) |
| 1310 #else |
|
| 1311 menu_get_info_cb(gpointer data, guint action, GtkWidget *widget) |
|
| 1312 #endif |
|
| 1313 { |
1246 { |
| 1314 PidginWindow *win = data; |
1247 PidginWindow *win = data; |
| 1315 PurpleConversation *conv; |
1248 PurpleConversation *conv; |
| 1316 |
1249 |
| 1317 conv = pidgin_conv_window_get_active_conversation(win); |
1250 conv = pidgin_conv_window_get_active_conversation(win); |
| 1318 |
1251 |
| 1319 info_cb(NULL, PIDGIN_CONVERSATION(conv)); |
1252 info_cb(NULL, PIDGIN_CONVERSATION(conv)); |
| 1320 } |
1253 } |
| 1321 |
1254 |
| 1322 static void |
1255 static void |
| 1323 #if GTK_CHECK_VERSION(2,6,0) |
|
| 1324 menu_invite_cb(GtkAction *action, gpointer data) |
1256 menu_invite_cb(GtkAction *action, gpointer data) |
| 1325 #else |
|
| 1326 menu_invite_cb(gpointer data, guint action, GtkWidget *widget) |
|
| 1327 #endif |
|
| 1328 { |
1257 { |
| 1329 PidginWindow *win = data; |
1258 PidginWindow *win = data; |
| 1330 PurpleConversation *conv; |
1259 PurpleConversation *conv; |
| 1331 |
1260 |
| 1332 conv = pidgin_conv_window_get_active_conversation(win); |
1261 conv = pidgin_conv_window_get_active_conversation(win); |
| 1333 |
1262 |
| 1334 invite_cb(NULL, PIDGIN_CONVERSATION(conv)); |
1263 invite_cb(NULL, PIDGIN_CONVERSATION(conv)); |
| 1335 } |
1264 } |
| 1336 |
1265 |
| 1337 static void |
1266 static void |
| 1338 #if GTK_CHECK_VERSION(2,6,0) |
|
| 1339 menu_block_cb(GtkAction *action, gpointer data) |
1267 menu_block_cb(GtkAction *action, gpointer data) |
| 1340 #else |
|
| 1341 menu_block_cb(gpointer data, guint action, GtkWidget *widget) |
|
| 1342 #endif |
|
| 1343 { |
1268 { |
| 1344 PidginWindow *win = data; |
1269 PidginWindow *win = data; |
| 1345 PurpleConversation *conv; |
1270 PurpleConversation *conv; |
| 1346 |
1271 |
| 1347 conv = pidgin_conv_window_get_active_conversation(win); |
1272 conv = pidgin_conv_window_get_active_conversation(win); |
| 1348 |
1273 |
| 1349 block_cb(NULL, PIDGIN_CONVERSATION(conv)); |
1274 block_cb(NULL, PIDGIN_CONVERSATION(conv)); |
| 1350 } |
1275 } |
| 1351 |
1276 |
| 1352 static void |
1277 static void |
| 1353 #if GTK_CHECK_VERSION(2,6,0) |
|
| 1354 menu_unblock_cb(GtkAction *action, gpointer data) |
1278 menu_unblock_cb(GtkAction *action, gpointer data) |
| 1355 #else |
|
| 1356 menu_unblock_cb(gpointer data, guint action, GtkWidget *widget) |
|
| 1357 #endif |
|
| 1358 { |
1279 { |
| 1359 PidginWindow *win = data; |
1280 PidginWindow *win = data; |
| 1360 PurpleConversation *conv; |
1281 PurpleConversation *conv; |
| 1361 |
1282 |
| 1362 conv = pidgin_conv_window_get_active_conversation(win); |
1283 conv = pidgin_conv_window_get_active_conversation(win); |
| 1363 |
1284 |
| 1364 unblock_cb(NULL, PIDGIN_CONVERSATION(conv)); |
1285 unblock_cb(NULL, PIDGIN_CONVERSATION(conv)); |
| 1365 } |
1286 } |
| 1366 |
1287 |
| 1367 static void |
1288 static void |
| 1368 #if GTK_CHECK_VERSION(2,6,0) |
|
| 1369 menu_add_remove_cb(GtkAction *action, gpointer data) |
1289 menu_add_remove_cb(GtkAction *action, gpointer data) |
| 1370 #else |
|
| 1371 menu_add_remove_cb(gpointer data, guint action, GtkWidget *widget) |
|
| 1372 #endif |
|
| 1373 { |
1290 { |
| 1374 PidginWindow *win = data; |
1291 PidginWindow *win = data; |
| 1375 PurpleConversation *conv; |
1292 PurpleConversation *conv; |
| 1376 |
1293 |
| 1377 conv = pidgin_conv_window_get_active_conversation(win); |
1294 conv = pidgin_conv_window_get_active_conversation(win); |
| 1497 break; |
1402 break; |
| 1498 } |
1403 } |
| 1499 } |
1404 } |
| 1500 |
1405 |
| 1501 static void |
1406 static void |
| 1502 #if GTK_CHECK_VERSION(2,6,0) |
|
| 1503 menu_toolbar_cb(GtkAction *action, gpointer data) |
1407 menu_toolbar_cb(GtkAction *action, gpointer data) |
| 1504 { |
1408 { |
| 1505 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/conversations/show_formatting_toolbar", |
1409 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/conversations/show_formatting_toolbar", |
| 1506 gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action))); |
1410 gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action))); |
| 1507 } |
1411 } |
| 1508 #else |
1412 |
| 1509 menu_toolbar_cb(gpointer data, guint action, GtkWidget *widget) |
1413 static void |
| 1510 { |
|
| 1511 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/conversations/show_formatting_toolbar", |
|
| 1512 gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))); |
|
| 1513 } |
|
| 1514 #endif |
|
| 1515 |
|
| 1516 static void |
|
| 1517 #if GTK_CHECK_VERSION(2,6,0) |
|
| 1518 menu_sounds_cb(GtkAction *action, gpointer data) |
1414 menu_sounds_cb(GtkAction *action, gpointer data) |
| 1519 #else |
|
| 1520 menu_sounds_cb(gpointer data, guint action, GtkWidget *widget) |
|
| 1521 #endif |
|
| 1522 { |
1415 { |
| 1523 PidginWindow *win = data; |
1416 PidginWindow *win = data; |
| 1524 PurpleConversation *conv; |
1417 PurpleConversation *conv; |
| 1525 PidginConversation *gtkconv; |
1418 PidginConversation *gtkconv; |
| 1526 PurpleBlistNode *node; |
1419 PurpleBlistNode *node; |
| 1531 return; |
1424 return; |
| 1532 |
1425 |
| 1533 gtkconv = PIDGIN_CONVERSATION(conv); |
1426 gtkconv = PIDGIN_CONVERSATION(conv); |
| 1534 |
1427 |
| 1535 gtkconv->make_sound = |
1428 gtkconv->make_sound = |
| 1536 #if GTK_CHECK_VERSION(2,6,0) |
|
| 1537 gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action)); |
1429 gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action)); |
| 1538 #else |
|
| 1539 gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)); |
|
| 1540 #endif |
|
| 1541 node = get_conversation_blist_node(conv); |
1430 node = get_conversation_blist_node(conv); |
| 1542 if (node) |
1431 if (node) |
| 1543 purple_blist_node_set_bool(node, "gtk-mute-sound", !gtkconv->make_sound); |
1432 purple_blist_node_set_bool(node, "gtk-mute-sound", !gtkconv->make_sound); |
| 1544 } |
1433 } |
| 1545 |
1434 |
| 1546 static void |
1435 static void |
| 1547 #if GTK_CHECK_VERSION(2,6,0) |
|
| 1548 menu_timestamps_cb(GtkAction *action, gpointer data) |
1436 menu_timestamps_cb(GtkAction *action, gpointer data) |
| 1549 { |
1437 { |
| 1550 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/conversations/show_timestamps", |
1438 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/conversations/show_timestamps", |
| 1551 gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action))); |
1439 gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action))); |
| 1552 } |
1440 } |
| 1553 #else |
|
| 1554 menu_timestamps_cb(gpointer data, guint action, GtkWidget *widget) |
|
| 1555 { |
|
| 1556 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/conversations/show_timestamps", |
|
| 1557 gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))); |
|
| 1558 } |
|
| 1559 #endif |
|
| 1560 |
1441 |
| 1561 static void |
1442 static void |
| 1562 chat_do_im(PidginConversation *gtkconv, const char *who) |
1443 chat_do_im(PidginConversation *gtkconv, const char *who) |
| 1563 { |
1444 { |
| 1564 PurpleConversation *conv = gtkconv->active_conv; |
1445 PurpleConversation *conv = gtkconv->active_conv; |
| 3361 { N_("/Options/Enable _Sounds"), NULL, menu_sounds_cb, 0, "<CheckItem>", NULL }, |
3237 { N_("/Options/Enable _Sounds"), NULL, menu_sounds_cb, 0, "<CheckItem>", NULL }, |
| 3362 { "/Options/sep0", NULL, NULL, 0, "<Separator>", NULL }, |
3238 { "/Options/sep0", NULL, NULL, 0, "<Separator>", NULL }, |
| 3363 { N_("/Options/Show Formatting _Toolbars"), NULL, menu_toolbar_cb, 0, "<CheckItem>", NULL }, |
3239 { N_("/Options/Show Formatting _Toolbars"), NULL, menu_toolbar_cb, 0, "<CheckItem>", NULL }, |
| 3364 { N_("/Options/Show Ti_mestamps"), NULL, menu_timestamps_cb, 0, "<CheckItem>", NULL }, |
3240 { N_("/Options/Show Ti_mestamps"), NULL, menu_timestamps_cb, 0, "<CheckItem>", NULL }, |
| 3365 }; |
3241 }; |
| 3366 |
|
| 3367 static const int menu_item_count = |
|
| 3368 sizeof(menu_items) / sizeof(*menu_items); |
|
| 3369 |
|
| 3370 static const char * |
|
| 3371 item_factory_translate_func (const char *path, gpointer func_data) |
|
| 3372 { |
|
| 3373 return _(path); |
|
| 3374 } |
|
| 3375 |
|
| 3376 #endif |
3242 #endif |
| 3377 |
3243 |
| 3378 static void |
3244 static void |
| 3379 sound_method_pref_changed_cb(const char *name, PurplePrefType type, |
3245 sound_method_pref_changed_cb(const char *name, PurplePrefType type, |
| 3380 gconstpointer value, gpointer data) |
3246 gconstpointer value, gpointer data) |
| 3382 PidginWindow *win = data; |
3248 PidginWindow *win = data; |
| 3383 const char *method = value; |
3249 const char *method = value; |
| 3384 |
3250 |
| 3385 if (!strcmp(method, "none")) |
3251 if (!strcmp(method, "none")) |
| 3386 { |
3252 { |
| 3387 #if GTK_CHECK_VERSION(2,6,0) |
|
| 3388 gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(win->menu.sounds), |
3253 gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(win->menu.sounds), |
| 3389 FALSE); |
3254 FALSE); |
| 3390 gtk_action_set_sensitive(win->menu.sounds, FALSE); |
3255 gtk_action_set_sensitive(win->menu.sounds, FALSE); |
| 3391 #else |
|
| 3392 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(win->menu.sounds), |
|
| 3393 FALSE); |
|
| 3394 gtk_widget_set_sensitive(win->menu.sounds, FALSE); |
|
| 3395 #endif |
|
| 3396 } |
3256 } |
| 3397 else |
3257 else |
| 3398 { |
3258 { |
| 3399 PidginConversation *gtkconv = pidgin_conv_window_get_active_gtkconv(win); |
3259 PidginConversation *gtkconv = pidgin_conv_window_get_active_gtkconv(win); |
| 3400 |
3260 |
| 3401 #if GTK_CHECK_VERSION(2,6,0) |
|
| 3402 if (gtkconv != NULL) |
3261 if (gtkconv != NULL) |
| 3403 gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(win->menu.sounds), |
3262 gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(win->menu.sounds), |
| 3404 gtkconv->make_sound); |
3263 gtkconv->make_sound); |
| 3405 gtk_action_set_sensitive(win->menu.sounds, TRUE); |
3264 gtk_action_set_sensitive(win->menu.sounds, TRUE); |
| 3406 #else |
|
| 3407 if (gtkconv != NULL) |
|
| 3408 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(win->menu.sounds), |
|
| 3409 gtkconv->make_sound); |
|
| 3410 gtk_widget_set_sensitive(win->menu.sounds, TRUE); |
|
| 3411 #endif |
|
| 3412 } |
3265 } |
| 3413 } |
3266 } |
| 3414 |
3267 |
| 3415 /* Returns TRUE if some items were added to the menu, FALSE otherwise */ |
3268 /* Returns TRUE if some items were added to the menu, FALSE otherwise */ |
| 3416 static gboolean |
3269 static gboolean |
| 3534 == PURPLE_CONV_TYPE_IM) { |
3387 == PURPLE_CONV_TYPE_IM) { |
| 3535 PurpleMediaCaps caps = |
3388 PurpleMediaCaps caps = |
| 3536 purple_prpl_get_media_caps(account, |
3389 purple_prpl_get_media_caps(account, |
| 3537 purple_conversation_get_name(conv)); |
3390 purple_conversation_get_name(conv)); |
| 3538 |
3391 |
| 3539 #if GTK_CHECK_VERSION(2,6,0) |
|
| 3540 gtk_action_set_sensitive(win->audio_call, |
3392 gtk_action_set_sensitive(win->audio_call, |
| 3541 caps & PURPLE_MEDIA_CAPS_AUDIO |
3393 caps & PURPLE_MEDIA_CAPS_AUDIO |
| 3542 ? TRUE : FALSE); |
3394 ? TRUE : FALSE); |
| 3543 gtk_action_set_sensitive(win->video_call, |
3395 gtk_action_set_sensitive(win->video_call, |
| 3544 caps & PURPLE_MEDIA_CAPS_VIDEO |
3396 caps & PURPLE_MEDIA_CAPS_VIDEO |
| 3545 ? TRUE : FALSE); |
3397 ? TRUE : FALSE); |
| 3546 gtk_action_set_sensitive(win->audio_video_call, |
3398 gtk_action_set_sensitive(win->audio_video_call, |
| 3547 caps & PURPLE_MEDIA_CAPS_AUDIO_VIDEO |
3399 caps & PURPLE_MEDIA_CAPS_AUDIO_VIDEO |
| 3548 ? TRUE : FALSE); |
3400 ? TRUE : FALSE); |
| 3549 #else |
|
| 3550 gtk_widget_set_sensitive(win->audio_call, |
|
| 3551 caps & PURPLE_MEDIA_CAPS_AUDIO |
|
| 3552 ? TRUE : FALSE); |
|
| 3553 gtk_widget_set_sensitive(win->video_call, |
|
| 3554 caps & PURPLE_MEDIA_CAPS_VIDEO |
|
| 3555 ? TRUE : FALSE); |
|
| 3556 gtk_widget_set_sensitive(win->audio_video_call, |
|
| 3557 caps & PURPLE_MEDIA_CAPS_AUDIO_VIDEO |
|
| 3558 ? TRUE : FALSE); |
|
| 3559 #endif |
|
| 3560 } else if (purple_conversation_get_type(conv) |
3401 } else if (purple_conversation_get_type(conv) |
| 3561 == PURPLE_CONV_TYPE_CHAT) { |
3402 == PURPLE_CONV_TYPE_CHAT) { |
| 3562 /* for now, don't care about chats... */ |
3403 /* for now, don't care about chats... */ |
| 3563 #if GTK_CHECK_VERSION(2,6,0) |
|
| 3564 gtk_action_set_sensitive(win->audio_call, FALSE); |
3404 gtk_action_set_sensitive(win->audio_call, FALSE); |
| 3565 gtk_action_set_sensitive(win->video_call, FALSE); |
3405 gtk_action_set_sensitive(win->video_call, FALSE); |
| 3566 gtk_action_set_sensitive(win->audio_video_call, FALSE); |
3406 gtk_action_set_sensitive(win->audio_video_call, FALSE); |
| 3567 #else |
|
| 3568 gtk_widget_set_sensitive(win->audio_call, FALSE); |
|
| 3569 gtk_widget_set_sensitive(win->video_call, FALSE); |
|
| 3570 gtk_widget_set_sensitive(win->audio_video_call, FALSE); |
|
| 3571 #endif |
|
| 3572 } else { |
3407 } else { |
| 3573 #if GTK_CHECK_VERSION(2,6,0) |
|
| 3574 gtk_action_set_sensitive(win->audio_call, FALSE); |
3408 gtk_action_set_sensitive(win->audio_call, FALSE); |
| 3575 gtk_action_set_sensitive(win->video_call, FALSE); |
3409 gtk_action_set_sensitive(win->video_call, FALSE); |
| 3576 gtk_action_set_sensitive(win->audio_video_call, FALSE); |
3410 gtk_action_set_sensitive(win->audio_video_call, FALSE); |
| 3577 #else |
|
| 3578 gtk_widget_set_sensitive(win->audio_call, FALSE); |
|
| 3579 gtk_widget_set_sensitive(win->video_call, FALSE); |
|
| 3580 gtk_widget_set_sensitive(win->audio_video_call, FALSE); |
|
| 3581 #endif |
|
| 3582 } |
3411 } |
| 3583 #endif |
3412 #endif |
| 3584 } |
3413 } |
| 3585 |
3414 |
| 3586 static void |
3415 static void |
| 3831 "/Conversation/OptionsMenu/ShowFormattingToolbars"); |
3658 "/Conversation/OptionsMenu/ShowFormattingToolbars"); |
| 3832 win->menu.show_timestamps = |
3659 win->menu.show_timestamps = |
| 3833 gtk_ui_manager_get_action(win->menu.ui, |
3660 gtk_ui_manager_get_action(win->menu.ui, |
| 3834 "/Conversation/OptionsMenu/ShowTimestamps"); |
3661 "/Conversation/OptionsMenu/ShowTimestamps"); |
| 3835 win->menu.show_icon = NULL; |
3662 win->menu.show_icon = NULL; |
| 3836 |
|
| 3837 #else |
|
| 3838 GtkWidget *menuitem; |
|
| 3839 |
|
| 3840 accel_group = gtk_accel_group_new (); |
|
| 3841 gtk_window_add_accel_group(GTK_WINDOW(win->window), accel_group); |
|
| 3842 g_object_unref(accel_group); |
|
| 3843 |
|
| 3844 win->menu.item_factory = |
|
| 3845 gtk_item_factory_new(GTK_TYPE_MENU_BAR, "<main>", accel_group); |
|
| 3846 |
|
| 3847 gtk_item_factory_set_translate_func(win->menu.item_factory, |
|
| 3848 (GtkTranslateFunc)item_factory_translate_func, |
|
| 3849 NULL, NULL); |
|
| 3850 |
|
| 3851 gtk_item_factory_create_items(win->menu.item_factory, menu_item_count, |
|
| 3852 menu_items, win); |
|
| 3853 g_signal_connect(G_OBJECT(accel_group), "accel-changed", |
|
| 3854 G_CALLBACK(pidgin_save_accels_cb), NULL); |
|
| 3855 |
|
| 3856 /* Make sure the 'Conversation -> More' menuitems are regenerated whenever |
|
| 3857 * the 'Conversation' menu pops up because the entries can change after the |
|
| 3858 * conversation is created. */ |
|
| 3859 menuitem = gtk_item_factory_get_item(win->menu.item_factory, N_("/Conversation")); |
|
| 3860 g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(menubar_activated), win); |
|
| 3861 |
|
| 3862 win->menu.menubar = |
|
| 3863 gtk_item_factory_get_widget(win->menu.item_factory, "<main>"); |
|
| 3864 |
|
| 3865 win->menu.view_log = |
|
| 3866 gtk_item_factory_get_widget(win->menu.item_factory, |
|
| 3867 N_("/Conversation/View Log")); |
|
| 3868 |
|
| 3869 #ifdef USE_VV |
|
| 3870 win->audio_call = |
|
| 3871 gtk_item_factory_get_widget(win->menu.item_factory, |
|
| 3872 N_("/Conversation/Media/Audio Call")); |
|
| 3873 win->video_call = |
|
| 3874 gtk_item_factory_get_widget(win->menu.item_factory, |
|
| 3875 N_("/Conversation/Media/Video Call")); |
|
| 3876 win->audio_video_call = |
|
| 3877 gtk_item_factory_get_widget(win->menu.item_factory, |
|
| 3878 N_("/Conversation/Media/Audio\\/Video Call")); |
|
| 3879 #endif |
|
| 3880 |
|
| 3881 /* --- */ |
|
| 3882 |
|
| 3883 win->menu.send_file = |
|
| 3884 gtk_item_factory_get_widget(win->menu.item_factory, |
|
| 3885 N_("/Conversation/Send File...")); |
|
| 3886 |
|
| 3887 g_object_set_data(G_OBJECT(win->window), "get_attention", |
|
| 3888 gtk_item_factory_get_widget(win->menu.item_factory, |
|
| 3889 N_("/Conversation/Get Attention"))); |
|
| 3890 win->menu.add_pounce = |
|
| 3891 gtk_item_factory_get_widget(win->menu.item_factory, |
|
| 3892 N_("/Conversation/Add Buddy Pounce...")); |
|
| 3893 |
|
| 3894 /* --- */ |
|
| 3895 |
|
| 3896 win->menu.get_info = |
|
| 3897 gtk_item_factory_get_widget(win->menu.item_factory, |
|
| 3898 N_("/Conversation/Get Info")); |
|
| 3899 |
|
| 3900 win->menu.invite = |
|
| 3901 gtk_item_factory_get_widget(win->menu.item_factory, |
|
| 3902 N_("/Conversation/Invite...")); |
|
| 3903 |
|
| 3904 /* --- */ |
|
| 3905 |
|
| 3906 win->menu.alias = |
|
| 3907 gtk_item_factory_get_widget(win->menu.item_factory, |
|
| 3908 N_("/Conversation/Alias...")); |
|
| 3909 |
|
| 3910 win->menu.block = |
|
| 3911 gtk_item_factory_get_widget(win->menu.item_factory, |
|
| 3912 N_("/Conversation/Block...")); |
|
| 3913 |
|
| 3914 win->menu.unblock = |
|
| 3915 gtk_item_factory_get_widget(win->menu.item_factory, |
|
| 3916 N_("/Conversation/Unblock...")); |
|
| 3917 |
|
| 3918 win->menu.add = |
|
| 3919 gtk_item_factory_get_widget(win->menu.item_factory, |
|
| 3920 N_("/Conversation/Add...")); |
|
| 3921 |
|
| 3922 win->menu.remove = |
|
| 3923 gtk_item_factory_get_widget(win->menu.item_factory, |
|
| 3924 N_("/Conversation/Remove...")); |
|
| 3925 |
|
| 3926 /* --- */ |
|
| 3927 |
|
| 3928 win->menu.insert_link = |
|
| 3929 gtk_item_factory_get_widget(win->menu.item_factory, |
|
| 3930 N_("/Conversation/Insert Link...")); |
|
| 3931 |
|
| 3932 win->menu.insert_image = |
|
| 3933 gtk_item_factory_get_widget(win->menu.item_factory, |
|
| 3934 N_("/Conversation/Insert Image...")); |
|
| 3935 |
|
| 3936 /* --- */ |
|
| 3937 |
|
| 3938 win->menu.logging = |
|
| 3939 gtk_item_factory_get_widget(win->menu.item_factory, |
|
| 3940 N_("/Options/Enable Logging")); |
|
| 3941 win->menu.sounds = |
|
| 3942 gtk_item_factory_get_widget(win->menu.item_factory, |
|
| 3943 N_("/Options/Enable Sounds")); |
|
| 3944 method = purple_prefs_get_string(PIDGIN_PREFS_ROOT "/sound/method"); |
|
| 3945 if (method != NULL && !strcmp(method, "none")) |
|
| 3946 { |
|
| 3947 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(win->menu.sounds), |
|
| 3948 FALSE); |
|
| 3949 gtk_widget_set_sensitive(win->menu.sounds, FALSE); |
|
| 3950 } |
|
| 3951 purple_prefs_connect_callback(win, PIDGIN_PREFS_ROOT "/sound/method", |
|
| 3952 sound_method_pref_changed_cb, win); |
|
| 3953 |
|
| 3954 win->menu.show_formatting_toolbar = |
|
| 3955 gtk_item_factory_get_widget(win->menu.item_factory, |
|
| 3956 N_("/Options/Show Formatting Toolbars")); |
|
| 3957 win->menu.show_timestamps = |
|
| 3958 gtk_item_factory_get_widget(win->menu.item_factory, |
|
| 3959 N_("/Options/Show Timestamps")); |
|
| 3960 win->menu.show_icon = NULL; |
|
| 3961 |
|
| 3962 #endif |
|
| 3963 |
3663 |
| 3964 win->menu.tray = pidgin_menu_tray_new(); |
3664 win->menu.tray = pidgin_menu_tray_new(); |
| 3965 gtk_menu_shell_append(GTK_MENU_SHELL(win->menu.menubar), |
3665 gtk_menu_shell_append(GTK_MENU_SHELL(win->menu.menubar), |
| 3966 win->menu.tray); |
3666 win->menu.tray); |
| 3967 gtk_widget_show(win->menu.tray); |
3667 gtk_widget_show(win->menu.tray); |
| 6916 */ |
6604 */ |
| 6917 if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM) { |
6605 if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM) { |
| 6918 /* Show stuff that applies to IMs, hide stuff that applies to chats */ |
6606 /* Show stuff that applies to IMs, hide stuff that applies to chats */ |
| 6919 |
6607 |
| 6920 /* Deal with menu items */ |
6608 /* Deal with menu items */ |
| 6921 gtk_widget_show(win->menu.view_log); |
6609 gtk_action_set_visible(win->menu.view_log, TRUE); |
| 6922 gtk_widget_show(win->menu.send_file); |
6610 gtk_action_set_visible(win->menu.send_file, TRUE); |
| 6923 gtk_widget_show(g_object_get_data(G_OBJECT(win->window), "get_attention")); |
6611 gtk_action_set_visible(g_object_get_data(G_OBJECT(win->window), "get_attention"), TRUE); |
| 6924 gtk_widget_show(win->menu.add_pounce); |
6612 gtk_action_set_visible(win->menu.add_pounce, TRUE); |
| 6925 gtk_widget_show(win->menu.get_info); |
6613 gtk_action_set_visible(win->menu.get_info, TRUE); |
| 6926 gtk_widget_hide(win->menu.invite); |
6614 gtk_action_set_visible(win->menu.invite, FALSE); |
| 6927 gtk_widget_show(win->menu.alias); |
6615 gtk_action_set_visible(win->menu.alias, TRUE); |
| 6928 if (purple_privacy_check(account, purple_conversation_get_name(conv))) { |
6616 if (purple_privacy_check(account, purple_conversation_get_name(conv))) { |
| 6929 gtk_widget_hide(win->menu.unblock); |
6617 gtk_action_set_visible(win->menu.unblock, FALSE); |
| 6930 gtk_widget_show(win->menu.block); |
6618 gtk_action_set_visible(win->menu.block, TRUE); |
| 6931 } else { |
6619 } else { |
| 6932 gtk_widget_hide(win->menu.block); |
6620 gtk_action_set_visible(win->menu.block, FALSE); |
| 6933 gtk_widget_show(win->menu.unblock); |
6621 gtk_action_set_visible(win->menu.unblock, TRUE); |
| 6934 } |
6622 } |
| 6935 |
6623 |
| 6936 if ((account == NULL) || purple_find_buddy(account, purple_conversation_get_name(conv)) == NULL) { |
6624 if ((account == NULL) || purple_find_buddy(account, purple_conversation_get_name(conv)) == NULL) { |
| 6937 gtk_widget_show(win->menu.add); |
6625 gtk_action_set_visible(win->menu.add, TRUE); |
| 6938 gtk_widget_hide(win->menu.remove); |
6626 gtk_action_set_visible(win->menu.remove, FALSE); |
| 6939 } else { |
6627 } else { |
| 6940 gtk_widget_show(win->menu.remove); |
6628 gtk_action_set_visible(win->menu.remove, TRUE); |
| 6941 gtk_widget_hide(win->menu.add); |
6629 gtk_action_set_visible(win->menu.add, FALSE); |
| 6942 } |
6630 } |
| 6943 |
6631 |
| 6944 gtk_widget_show(win->menu.insert_link); |
6632 gtk_action_set_visible(win->menu.insert_link, TRUE); |
| 6945 gtk_widget_show(win->menu.insert_image); |
6633 gtk_action_set_visible(win->menu.insert_image, TRUE); |
| 6946 } else if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) { |
6634 } else if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) { |
| 6947 /* Show stuff that applies to Chats, hide stuff that applies to IMs */ |
6635 /* Show stuff that applies to Chats, hide stuff that applies to IMs */ |
| 6948 |
6636 |
| 6949 /* Deal with menu items */ |
6637 /* Deal with menu items */ |
| 6950 gtk_widget_show(win->menu.view_log); |
6638 gtk_action_set_visible(win->menu.view_log, TRUE); |
| 6951 gtk_widget_hide(win->menu.send_file); |
6639 gtk_action_set_visible(win->menu.send_file, FALSE); |
| 6952 gtk_widget_hide(g_object_get_data(G_OBJECT(win->window), "get_attention")); |
6640 gtk_action_set_visible(g_object_get_data(G_OBJECT(win->window), "get_attention"), FALSE); |
| 6953 gtk_widget_hide(win->menu.add_pounce); |
6641 gtk_action_set_visible(win->menu.add_pounce, FALSE); |
| 6954 gtk_widget_hide(win->menu.get_info); |
6642 gtk_action_set_visible(win->menu.get_info, FALSE); |
| 6955 gtk_widget_show(win->menu.invite); |
6643 gtk_action_set_visible(win->menu.invite, TRUE); |
| 6956 gtk_widget_show(win->menu.alias); |
6644 gtk_action_set_visible(win->menu.alias, TRUE); |
| 6957 gtk_widget_hide(win->menu.block); |
6645 gtk_action_set_visible(win->menu.block, FALSE); |
| 6958 gtk_widget_hide(win->menu.unblock); |
6646 gtk_action_set_visible(win->menu.unblock, FALSE); |
| 6959 |
6647 |
| 6960 if ((account == NULL) || purple_blist_find_chat(account, purple_conversation_get_name(conv)) == NULL) { |
6648 if ((account == NULL) || purple_blist_find_chat(account, purple_conversation_get_name(conv)) == NULL) { |
| 6961 /* If the chat is NOT in the buddy list */ |
6649 /* If the chat is NOT in the buddy list */ |
| 6962 gtk_widget_show(win->menu.add); |
6650 gtk_action_set_visible(win->menu.add, TRUE); |
| 6963 gtk_widget_hide(win->menu.remove); |
6651 gtk_action_set_visible(win->menu.remove, FALSE); |
| 6964 } else { |
6652 } else { |
| 6965 /* If the chat IS in the buddy list */ |
6653 /* If the chat IS in the buddy list */ |
| 6966 gtk_widget_hide(win->menu.add); |
6654 gtk_action_set_visible(win->menu.add, FALSE); |
| 6967 gtk_widget_show(win->menu.remove); |
6655 gtk_action_set_visible(win->menu.remove, TRUE); |
| 6968 } |
6656 } |
| 6969 |
6657 |
| 6970 gtk_widget_show(win->menu.insert_link); |
6658 gtk_action_set_visible(win->menu.insert_link, TRUE); |
| 6971 gtk_widget_show(win->menu.insert_image); |
6659 gtk_action_set_visible(win->menu.insert_image, TRUE); |
| 6972 } |
6660 } |
| 6973 |
6661 |
| 6974 /* |
6662 /* |
| 6975 * Handle graying stuff out based on whether an account is connected |
6663 * Handle graying stuff out based on whether an account is connected |
| 6976 * and what features that account supports. |
6664 * and what features that account supports. |
| 7011 gtk_imhtml_set_format_functions(GTK_IMHTML(gtkconv->entry), buttons); |
6699 gtk_imhtml_set_format_functions(GTK_IMHTML(gtkconv->entry), buttons); |
| 7012 if (account != NULL) |
6700 if (account != NULL) |
| 7013 gtk_imhtmltoolbar_associate_smileys(GTK_IMHTMLTOOLBAR(gtkconv->toolbar), purple_account_get_protocol_id(account)); |
6701 gtk_imhtmltoolbar_associate_smileys(GTK_IMHTMLTOOLBAR(gtkconv->toolbar), purple_account_get_protocol_id(account)); |
| 7014 |
6702 |
| 7015 /* Deal with menu items */ |
6703 /* Deal with menu items */ |
| 7016 gtk_widget_set_sensitive(win->menu.view_log, TRUE); |
6704 gtk_action_set_sensitive(win->menu.view_log, TRUE); |
| 7017 gtk_widget_set_sensitive(win->menu.add_pounce, TRUE); |
6705 gtk_action_set_sensitive(win->menu.add_pounce, TRUE); |
| 7018 gtk_widget_set_sensitive(win->menu.get_info, (prpl_info->get_info != NULL)); |
6706 gtk_action_set_sensitive(win->menu.get_info, (prpl_info->get_info != NULL)); |
| 7019 gtk_widget_set_sensitive(win->menu.invite, (prpl_info->chat_invite != NULL)); |
6707 gtk_action_set_sensitive(win->menu.invite, (prpl_info->chat_invite != NULL)); |
| 7020 gtk_widget_set_sensitive(win->menu.insert_link, (conv->features & PURPLE_CONNECTION_HTML)); |
6708 gtk_action_set_sensitive(win->menu.insert_link, (conv->features & PURPLE_CONNECTION_HTML)); |
| 7021 gtk_widget_set_sensitive(win->menu.insert_image, !(conv->features & PURPLE_CONNECTION_NO_IMAGES)); |
6709 gtk_action_set_sensitive(win->menu.insert_image, !(conv->features & PURPLE_CONNECTION_NO_IMAGES)); |
| 7022 |
6710 |
| 7023 if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM) |
6711 if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM) |
| 7024 { |
6712 { |
| 7025 gtk_widget_set_sensitive(win->menu.add, (prpl_info->add_buddy != NULL)); |
6713 gtk_action_set_sensitive(win->menu.add, (prpl_info->add_buddy != NULL)); |
| 7026 gtk_widget_set_sensitive(win->menu.remove, (prpl_info->remove_buddy != NULL)); |
6714 gtk_action_set_sensitive(win->menu.remove, (prpl_info->remove_buddy != NULL)); |
| 7027 gtk_widget_set_sensitive(win->menu.send_file, |
6715 gtk_action_set_sensitive(win->menu.send_file, |
| 7028 (prpl_info->send_file != NULL && (!prpl_info->can_receive_file || |
6716 (prpl_info->send_file != NULL && (!prpl_info->can_receive_file || |
| 7029 prpl_info->can_receive_file(gc, purple_conversation_get_name(conv))))); |
6717 prpl_info->can_receive_file(gc, purple_conversation_get_name(conv))))); |
| 7030 gtk_widget_set_sensitive(g_object_get_data(G_OBJECT(win->window), "get_attention"), (prpl_info->send_attention != NULL)); |
6718 gtk_action_set_sensitive(g_object_get_data(G_OBJECT(win->window), "get_attention"), (prpl_info->send_attention != NULL)); |
| 7031 gtk_widget_set_sensitive(win->menu.alias, |
6719 gtk_action_set_sensitive(win->menu.alias, |
| 7032 (account != NULL) && |
6720 (account != NULL) && |
| 7033 (purple_find_buddy(account, purple_conversation_get_name(conv)) != NULL)); |
6721 (purple_find_buddy(account, purple_conversation_get_name(conv)) != NULL)); |
| 7034 } |
6722 } |
| 7035 else if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) |
6723 else if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) |
| 7036 { |
6724 { |
| 7037 gtk_widget_set_sensitive(win->menu.add, (prpl_info->join_chat != NULL)); |
6725 gtk_action_set_sensitive(win->menu.add, (prpl_info->join_chat != NULL)); |
| 7038 gtk_widget_set_sensitive(win->menu.remove, (prpl_info->join_chat != NULL)); |
6726 gtk_action_set_sensitive(win->menu.remove, (prpl_info->join_chat != NULL)); |
| 7039 gtk_widget_set_sensitive(win->menu.alias, |
6727 gtk_action_set_sensitive(win->menu.alias, |
| 7040 (account != NULL) && |
6728 (account != NULL) && |
| 7041 (purple_blist_find_chat(account, purple_conversation_get_name(conv)) != NULL)); |
6729 (purple_blist_find_chat(account, purple_conversation_get_name(conv)) != NULL)); |
| 7042 } |
6730 } |
| 7043 |
6731 |
| 7044 } else { |
6732 } else { |
| 7045 /* Account is offline */ |
6733 /* Account is offline */ |
| 7046 /* Or it's a chat that we've left. */ |
6734 /* Or it's a chat that we've left. */ |
| 7047 |
6735 |
| 7048 /* Then deal with menu items */ |
6736 /* Then deal with menu items */ |
| 7049 gtk_widget_set_sensitive(win->menu.view_log, TRUE); |
6737 gtk_action_set_sensitive(win->menu.view_log, TRUE); |
| 7050 gtk_widget_set_sensitive(win->menu.send_file, FALSE); |
6738 gtk_action_set_sensitive(win->menu.send_file, FALSE); |
| 7051 gtk_widget_set_sensitive(g_object_get_data(G_OBJECT(win->window), |
6739 gtk_action_set_sensitive(g_object_get_data(G_OBJECT(win->window), |
| 7052 "get_attention"), FALSE); |
6740 "get_attention"), FALSE); |
| 7053 gtk_widget_set_sensitive(win->menu.add_pounce, TRUE); |
6741 gtk_action_set_sensitive(win->menu.add_pounce, TRUE); |
| 7054 gtk_widget_set_sensitive(win->menu.get_info, FALSE); |
6742 gtk_action_set_sensitive(win->menu.get_info, FALSE); |
| 7055 gtk_widget_set_sensitive(win->menu.invite, FALSE); |
6743 gtk_action_set_sensitive(win->menu.invite, FALSE); |
| 7056 gtk_widget_set_sensitive(win->menu.alias, FALSE); |
6744 gtk_action_set_sensitive(win->menu.alias, FALSE); |
| 7057 gtk_widget_set_sensitive(win->menu.add, FALSE); |
6745 gtk_action_set_sensitive(win->menu.add, FALSE); |
| 7058 gtk_widget_set_sensitive(win->menu.remove, FALSE); |
6746 gtk_action_set_sensitive(win->menu.remove, FALSE); |
| 7059 gtk_widget_set_sensitive(win->menu.insert_link, TRUE); |
6747 gtk_action_set_sensitive(win->menu.insert_link, TRUE); |
| 7060 gtk_widget_set_sensitive(win->menu.insert_image, FALSE); |
6748 gtk_action_set_sensitive(win->menu.insert_image, FALSE); |
| 7061 } |
6749 } |
| 7062 |
6750 |
| 7063 /* |
6751 /* |
| 7064 * Update the window's icon |
6752 * Update the window's icon |
| 7065 */ |
6753 */ |
| 9576 gtkconv_set_unseen(gtkconv, PIDGIN_UNSEEN_NONE); |
9240 gtkconv_set_unseen(gtkconv, PIDGIN_UNSEEN_NONE); |
| 9577 } |
9241 } |
| 9578 |
9242 |
| 9579 /* Update the menubar */ |
9243 /* Update the menubar */ |
| 9580 |
9244 |
| 9581 #if GTK_CHECK_VERSION(2,6,0) |
|
| 9582 gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(gtkconv->win->menu.logging), |
9245 gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(gtkconv->win->menu.logging), |
| 9583 purple_conversation_is_logging(conv)); |
9246 purple_conversation_is_logging(conv)); |
| 9584 #else |
|
| 9585 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtkconv->win->menu.logging), |
|
| 9586 purple_conversation_is_logging(conv)); |
|
| 9587 #endif |
|
| 9588 |
9247 |
| 9589 generate_send_to_items(win); |
9248 generate_send_to_items(win); |
| 9590 regenerate_options_items(win); |
9249 regenerate_options_items(win); |
| 9591 regenerate_plugins_items(win); |
9250 regenerate_plugins_items(win); |
| 9592 |
9251 |
| 9593 pidgin_conv_switch_active_conversation(conv); |
9252 pidgin_conv_switch_active_conversation(conv); |
| 9594 |
9253 |
| 9595 sound_method = purple_prefs_get_string(PIDGIN_PREFS_ROOT "/sound/method"); |
9254 sound_method = purple_prefs_get_string(PIDGIN_PREFS_ROOT "/sound/method"); |
| 9596 #if GTK_CHECK_VERSION(2,6,0) |
|
| 9597 if (strcmp(sound_method, "none") != 0) |
9255 if (strcmp(sound_method, "none") != 0) |
| 9598 gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(win->menu.sounds), |
9256 gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(win->menu.sounds), |
| 9599 gtkconv->make_sound); |
9257 gtkconv->make_sound); |
| 9600 |
9258 |
| 9601 gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(win->menu.show_formatting_toolbar), |
9259 gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(win->menu.show_formatting_toolbar), |
| 9602 purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/show_formatting_toolbar")); |
9260 purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/show_formatting_toolbar")); |
| 9603 |
9261 |
| 9604 gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(win->menu.show_timestamps), |
9262 gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(win->menu.show_timestamps), |
| 9605 purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/show_timestamps")); |
9263 purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/show_timestamps")); |
| 9606 #else |
|
| 9607 if (strcmp(sound_method, "none") != 0) |
|
| 9608 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(win->menu.sounds), |
|
| 9609 gtkconv->make_sound); |
|
| 9610 |
|
| 9611 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(win->menu.show_formatting_toolbar), |
|
| 9612 purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/show_formatting_toolbar")); |
|
| 9613 |
|
| 9614 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(win->menu.show_timestamps), |
|
| 9615 purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/show_timestamps")); |
|
| 9616 #endif |
|
| 9617 |
9264 |
| 9618 /* |
9265 /* |
| 9619 * We pause icons when they are not visible. If this icon should |
9266 * We pause icons when they are not visible. If this icon should |
| 9620 * be animated then start it back up again. |
9267 * be animated then start it back up again. |
| 9621 */ |
9268 */ |