| 1363 |
1362 |
| 1364 /******************************* Menu bar *************************************/ |
1363 /******************************* Menu bar *************************************/ |
| 1365 accel_group = gtk_accel_group_new(); |
1364 accel_group = gtk_accel_group_new(); |
| 1366 gtk_window_add_accel_group(GTK_WINDOW (gtkblist->window), accel_group); |
1365 gtk_window_add_accel_group(GTK_WINDOW (gtkblist->window), accel_group); |
| 1367 g_object_unref(accel_group); |
1366 g_object_unref(accel_group); |
| 1368 ift = gtk_item_factory_new(GTK_TYPE_MENU_BAR, "<GaimMain>", accel_group); |
1367 gtkblist->ift = gtk_item_factory_new(GTK_TYPE_MENU_BAR, "<GaimMain>", accel_group); |
| 1369 gtk_item_factory_set_translate_func (ift, |
1368 gtk_item_factory_set_translate_func (gtkblist->ift, |
| 1370 item_factory_translate_func, |
1369 item_factory_translate_func, |
| 1371 NULL, NULL); |
1370 NULL, NULL); |
| 1372 gtk_item_factory_create_items(ift, sizeof(blist_menu) / sizeof(*blist_menu), |
1371 gtk_item_factory_create_items(gtkblist->ift, sizeof(blist_menu) / sizeof(*blist_menu), |
| 1373 blist_menu, NULL); |
1372 blist_menu, NULL); |
| 1374 gtk_box_pack_start(GTK_BOX(gtkblist->vbox), gtk_item_factory_get_widget(ift, "<GaimMain>"), FALSE, FALSE, 0); |
1373 gtk_box_pack_start(GTK_BOX(gtkblist->vbox), gtk_item_factory_get_widget(gtkblist->ift, "<GaimMain>"), FALSE, FALSE, 0); |
| 1375 |
1374 |
| 1376 awaymenu = gtk_item_factory_get_widget(ift, N_("/Tools/Away")); |
1375 awaymenu = gtk_item_factory_get_widget(gtkblist->ift, N_("/Tools/Away")); |
| 1377 do_away_menu(); |
1376 do_away_menu(); |
| 1378 |
1377 |
| 1379 gtkblist->bpmenu = gtk_item_factory_get_widget(ift, N_("/Tools/Buddy Pounce")); |
1378 gtkblist->bpmenu = gtk_item_factory_get_widget(gtkblist->ift, N_("/Tools/Buddy Pounce")); |
| 1380 gaim_gtkpounce_menu_build(gtkblist->bpmenu); |
1379 gaim_gtkpounce_menu_build(gtkblist->bpmenu); |
| 1381 |
1380 |
| 1382 protomenu = gtk_item_factory_get_widget(ift, N_("/Tools/Protocol Actions")); |
1381 protomenu = gtk_item_factory_get_widget(gtkblist->ift, N_("/Tools/Protocol Actions")); |
| 1383 do_proto_menu(); |
1382 do_proto_menu(); |
| 1384 |
1383 |
| 1385 /****************************** GtkTreeView **********************************/ |
1384 /****************************** GtkTreeView **********************************/ |
| 1386 sw = gtk_scrolled_window_new(NULL,NULL); |
1385 sw = gtk_scrolled_window_new(NULL,NULL); |
| 1387 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); |
1386 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); |
| 1460 gaim_gtk_blist_update_columns(); |
1459 gaim_gtk_blist_update_columns(); |
| 1461 |
1460 |
| 1462 /* set the Show Offline Buddies option. must be done |
1461 /* set the Show Offline Buddies option. must be done |
| 1463 * after the treeview or faceprint gets mad. -Robot101 |
1462 * after the treeview or faceprint gets mad. -Robot101 |
| 1464 */ |
1463 */ |
| 1465 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item (ift, N_("/Buddies/Show Offline Buddies"))), |
1464 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item (gtkblist->ift, N_("/Buddies/Show Offline Buddies"))), |
| 1466 blist_options & OPT_BLIST_SHOW_OFFLINE); |
1465 blist_options & OPT_BLIST_SHOW_OFFLINE); |
| 1467 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item (ift, N_("/Buddies/Show Empty Groups"))), |
1466 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item (gtkblist->ift, N_("/Buddies/Show Empty Groups"))), |
| 1468 !(blist_options & OPT_BLIST_NO_MT_GRP)); |
1467 !(blist_options & OPT_BLIST_NO_MT_GRP)); |
| 1469 |
1468 |
| 1470 /* OK... let's show this bad boy. */ |
1469 /* OK... let's show this bad boy. */ |
| 1471 gaim_gtk_blist_refresh(list); |
1470 gaim_gtk_blist_refresh(list); |
| 1472 gaim_gtk_blist_restore_position(); |
1471 gaim_gtk_blist_restore_position(); |
| 1716 if (!get_iter_from_node(node, &iter)) { |
1715 if (!get_iter_from_node(node, &iter)) { |
| 1717 new_entry = TRUE; |
1716 new_entry = TRUE; |
| 1718 if (GAIM_BLIST_NODE_IS_BUDDY(node)) { |
1717 if (GAIM_BLIST_NODE_IS_BUDDY(node)) { |
| 1719 if (((struct buddy*)node)->present != GAIM_BUDDY_OFFLINE || ((blist_options & OPT_BLIST_SHOW_OFFLINE) && ((struct buddy*)node)->account->gc)) { |
1718 if (((struct buddy*)node)->present != GAIM_BUDDY_OFFLINE || ((blist_options & OPT_BLIST_SHOW_OFFLINE) && ((struct buddy*)node)->account->gc)) { |
| 1720 GtkTreeIter groupiter; |
1719 GtkTreeIter groupiter; |
| 1721 GaimBlistNode *oldersibling; |
|
| 1722 GtkTreeIter oldersiblingiter; |
|
| 1723 char *collapsed = gaim_group_get_setting((struct group *)node->parent, "collapsed"); |
1720 char *collapsed = gaim_group_get_setting((struct group *)node->parent, "collapsed"); |
| 1724 |
1721 |
| 1725 if(node->parent && |
1722 if(node->parent && |
| 1726 !get_iter_from_node(node->parent, &groupiter)) { |
1723 !get_iter_from_node(node->parent, &groupiter)) { |
| 1727 /* This buddy's group has not yet been added. |
1724 /* This buddy's group has not yet been added. |
| 1945 gtkblist->window = gtkblist->vbox = gtkblist->treeview = NULL; |
1942 gtkblist->window = gtkblist->vbox = gtkblist->treeview = NULL; |
| 1946 gtkblist->treemodel = NULL; |
1943 gtkblist->treemodel = NULL; |
| 1947 gtkblist->idle_column = NULL; |
1944 gtkblist->idle_column = NULL; |
| 1948 gtkblist->warning_column = gtkblist->buddy_icon_column = NULL; |
1945 gtkblist->warning_column = gtkblist->buddy_icon_column = NULL; |
| 1949 gtkblist->bbox = gtkblist->tipwindow = NULL; |
1946 gtkblist->bbox = gtkblist->tipwindow = NULL; |
| |
1947 g_object_unref(G_OBJECT(gtkblist->ift)); |
| 1950 protomenu = NULL; |
1948 protomenu = NULL; |
| 1951 awaymenu = NULL; |
1949 awaymenu = NULL; |
| 1952 gtkblist = NULL; |
1950 gtkblist = NULL; |
| 1953 } |
1951 } |
| 1954 |
1952 |