| 2868 idletime = g_strdup(_("Idle ")); |
2865 idletime = g_strdup(_("Idle ")); |
| 2869 } |
2866 } |
| 2870 |
2867 |
| 2871 warning_level = gaim_presence_get_warning_level(presence); |
2868 warning_level = gaim_presence_get_warning_level(presence); |
| 2872 |
2869 |
| 2873 if (warning_level > 0 && |
2870 if (warning_level > 0) { |
| 2874 gaim_prefs_get_bool("/gaim/gtk/blist/show_warning_level")) |
|
| 2875 { |
|
| 2876 warning = g_strdup_printf(_("Warned (%d%%) "), warning_level); |
2871 warning = g_strdup_printf(_("Warned (%d%%) "), warning_level); |
| 2877 } |
2872 } |
| 2878 |
2873 |
| 2879 if(!GAIM_BUDDY_IS_ONLINE(b) && !statustext) |
2874 if(!GAIM_BUDDY_IS_ONLINE(b) && !statustext) |
| 2880 statustext = g_strdup(_("Offline ")); |
2875 statustext = g_strdup(_("Offline ")); |
| 3046 if (gaim_prefs_get_bool("/gaim/gtk/blist/show_buddy_icons")) { |
3041 if (gaim_prefs_get_bool("/gaim/gtk/blist/show_buddy_icons")) { |
| 3047 gtk_tree_view_column_set_visible(gtkblist->buddy_icon_column, TRUE); |
3042 gtk_tree_view_column_set_visible(gtkblist->buddy_icon_column, TRUE); |
| 3048 gtk_tree_view_column_set_visible(gtkblist->idle_column, FALSE); |
3043 gtk_tree_view_column_set_visible(gtkblist->idle_column, FALSE); |
| 3049 gtk_tree_view_column_set_visible(gtkblist->warning_column, FALSE); |
3044 gtk_tree_view_column_set_visible(gtkblist->warning_column, FALSE); |
| 3050 } else { |
3045 } else { |
| 3051 gtk_tree_view_column_set_visible(gtkblist->idle_column, |
3046 gtk_tree_view_column_set_visible(gtkblist->idle_column, TRUE); |
| 3052 gaim_prefs_get_bool("/gaim/gtk/blist/show_idle_time")); |
3047 gtk_tree_view_column_set_visible(gtkblist->warning_column, TRUE); |
| 3053 gtk_tree_view_column_set_visible(gtkblist->warning_column, |
|
| 3054 gaim_prefs_get_bool("/gaim/gtk/blist/show_warning_level")); |
|
| 3055 gtk_tree_view_column_set_visible(gtkblist->buddy_icon_column, FALSE); |
3048 gtk_tree_view_column_set_visible(gtkblist->buddy_icon_column, FALSE); |
| 3056 } |
3049 } |
| 3057 } |
3050 } |
| 3058 |
3051 |
| 3059 enum {DRAG_BUDDY, DRAG_ROW, DRAG_VCARD, DRAG_TEXT, DRAG_URI,NUM_TARGETS}; |
3052 enum {DRAG_BUDDY, DRAG_ROW, DRAG_VCARD, DRAG_TEXT, DRAG_URI,NUM_TARGETS}; |
| 3208 g_object_set(rend, "ellipsize", PANGO_ELLIPSIZE_END); |
3201 g_object_set(rend, "ellipsize", PANGO_ELLIPSIZE_END); |
| 3209 #endif |
3202 #endif |
| 3210 gtk_tree_view_append_column(GTK_TREE_VIEW(gtkblist->treeview), column); |
3203 gtk_tree_view_append_column(GTK_TREE_VIEW(gtkblist->treeview), column); |
| 3211 |
3204 |
| 3212 rend = gtk_cell_renderer_text_new(); |
3205 rend = gtk_cell_renderer_text_new(); |
| |
3206 gtkblist->idle_column = gtk_tree_view_column_new_with_attributes("Idle", rend, "markup", IDLE_COLUMN, NULL); |
| |
3207 gtk_tree_view_append_column(GTK_TREE_VIEW(gtkblist->treeview), gtkblist->idle_column); |
| |
3208 g_object_set(rend, "xalign", 1.0, "ypad", 0, NULL); |
| |
3209 |
| |
3210 rend = gtk_cell_renderer_text_new(); |
| 3213 gtkblist->warning_column = gtk_tree_view_column_new_with_attributes("Warning", rend, "markup", WARNING_COLUMN, NULL); |
3211 gtkblist->warning_column = gtk_tree_view_column_new_with_attributes("Warning", rend, "markup", WARNING_COLUMN, NULL); |
| 3214 gtk_tree_view_append_column(GTK_TREE_VIEW(gtkblist->treeview), gtkblist->warning_column); |
3212 gtk_tree_view_append_column(GTK_TREE_VIEW(gtkblist->treeview), gtkblist->warning_column); |
| 3215 g_object_set(rend, "xalign", 1.0, "ypad", 0, NULL); |
|
| 3216 |
|
| 3217 rend = gtk_cell_renderer_text_new(); |
|
| 3218 gtkblist->idle_column = gtk_tree_view_column_new_with_attributes("Idle", rend, "markup", IDLE_COLUMN, NULL); |
|
| 3219 gtk_tree_view_append_column(GTK_TREE_VIEW(gtkblist->treeview), gtkblist->idle_column); |
|
| 3220 g_object_set(rend, "xalign", 1.0, "ypad", 0, NULL); |
3213 g_object_set(rend, "xalign", 1.0, "ypad", 0, NULL); |
| 3221 |
3214 |
| 3222 rend = gtk_cell_renderer_pixbuf_new(); |
3215 rend = gtk_cell_renderer_pixbuf_new(); |
| 3223 gtkblist->buddy_icon_column = gtk_tree_view_column_new_with_attributes("Buddy Icon", rend, "pixbuf", BUDDY_ICON_COLUMN, NULL); |
3216 gtkblist->buddy_icon_column = gtk_tree_view_column_new_with_attributes("Buddy Icon", rend, "pixbuf", BUDDY_ICON_COLUMN, NULL); |
| 3224 g_object_set(rend, "xalign", 1.0, "ypad", 0, NULL); |
3217 g_object_set(rend, "xalign", 1.0, "ypad", 0, NULL); |
| 3260 gaim_gtk_blist_restore_position(); |
3253 gaim_gtk_blist_restore_position(); |
| 3261 gtk_widget_show(gtkblist->window); |
3254 gtk_widget_show(gtkblist->window); |
| 3262 } |
3255 } |
| 3263 |
3256 |
| 3264 /* start the refresh timer */ |
3257 /* start the refresh timer */ |
| 3265 if (gaim_prefs_get_bool("/gaim/gtk/blist/show_idle_time") || |
3258 gtkblist->refresh_timer = g_timeout_add(30000, (GSourceFunc)gaim_gtk_blist_refresh_timer, list); |
| 3266 gaim_prefs_get_bool("/gaim/gtk/blist/show_buddy_icons")) { |
3259 |
| 3267 |
|
| 3268 gtkblist->refresh_timer = g_timeout_add(30000, |
|
| 3269 (GSourceFunc)gaim_gtk_blist_refresh_timer, list); |
|
| 3270 } |
|
| 3271 |
|
| 3272 handle = gaim_gtk_blist_get_handle(); |
3260 handle = gaim_gtk_blist_get_handle(); |
| 3273 |
3261 |
| 3274 /* things that affect how buddies are displayed */ |
3262 /* things that affect how buddies are displayed */ |
| 3275 gaim_prefs_connect_callback(handle, "/gaim/gtk/blist/show_buddy_icons", |
3263 gaim_prefs_connect_callback(handle, "/gaim/gtk/blist/show_buddy_icons", |
| 3276 _prefs_change_redo_list, NULL); |
|
| 3277 gaim_prefs_connect_callback(handle, "/gaim/gtk/blist/show_warning_level", |
|
| 3278 _prefs_change_redo_list, NULL); |
|
| 3279 gaim_prefs_connect_callback(handle, "/gaim/gtk/blist/show_idle_time", |
|
| 3280 _prefs_change_redo_list, NULL); |
3264 _prefs_change_redo_list, NULL); |
| 3281 gaim_prefs_connect_callback(handle, "/gaim/gtk/blist/show_empty_groups", |
3265 gaim_prefs_connect_callback(handle, "/gaim/gtk/blist/show_empty_groups", |
| 3282 _prefs_change_redo_list, NULL); |
3266 _prefs_change_redo_list, NULL); |
| 3283 gaim_prefs_connect_callback(handle, "/gaim/gtk/blist/show_offline_buddies", |
3267 gaim_prefs_connect_callback(handle, "/gaim/gtk/blist/show_offline_buddies", |
| 3284 _prefs_change_redo_list, NULL); |
3268 _prefs_change_redo_list, NULL); |
| 3287 gaim_prefs_connect_callback(handle, "/gaim/gtk/blist/sort_type", |
3271 gaim_prefs_connect_callback(handle, "/gaim/gtk/blist/sort_type", |
| 3288 _prefs_change_sort_method, NULL); |
3272 _prefs_change_sort_method, NULL); |
| 3289 |
3273 |
| 3290 /* things that affect what columns are displayed */ |
3274 /* things that affect what columns are displayed */ |
| 3291 gaim_prefs_connect_callback(handle, "/gaim/gtk/blist/show_buddy_icons", |
3275 gaim_prefs_connect_callback(handle, "/gaim/gtk/blist/show_buddy_icons", |
| 3292 gaim_gtk_blist_update_columns, NULL); |
|
| 3293 gaim_prefs_connect_callback(handle, "/gaim/gtk/blist/show_idle_time", |
|
| 3294 gaim_gtk_blist_update_columns, NULL); |
|
| 3295 gaim_prefs_connect_callback(handle, "/gaim/gtk/blist/show_warning_level", |
|
| 3296 gaim_gtk_blist_update_columns, NULL); |
3276 gaim_gtk_blist_update_columns, NULL); |
| 3297 |
3277 |
| 3298 /* menus */ |
3278 /* menus */ |
| 3299 gaim_prefs_connect_callback(handle, "/gaim/gtk/sound/mute", |
3279 gaim_prefs_connect_callback(handle, "/gaim/gtk/sound/mute", |
| 3300 gaim_gtk_blist_mute_pref_cb, NULL); |
3280 gaim_gtk_blist_mute_pref_cb, NULL); |
| 3361 GaimGtkBuddyList *gtkblist; |
3341 GaimGtkBuddyList *gtkblist; |
| 3362 |
3342 |
| 3363 blist = gaim_get_blist(); |
3343 blist = gaim_get_blist(); |
| 3364 gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); |
3344 gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); |
| 3365 |
3345 |
| 3366 if (gaim_prefs_get_bool("/gaim/gtk/blist/show_idle_time") || |
3346 gtkblist->refresh_timer = g_timeout_add(30000,(GSourceFunc)gaim_gtk_blist_refresh_timer, blist); |
| 3367 gaim_prefs_get_bool("/gaim/gtk/blist/show_buddy_icons")) { |
|
| 3368 |
|
| 3369 gtkblist->refresh_timer = g_timeout_add(30000, |
|
| 3370 (GSourceFunc)gaim_gtk_blist_refresh_timer, blist); |
|
| 3371 } else { |
|
| 3372 g_source_remove(gtkblist->refresh_timer); |
|
| 3373 gtkblist->refresh_timer = 0; |
|
| 3374 } |
|
| 3375 } |
3347 } |
| 3376 |
3348 |
| 3377 static gboolean get_iter_from_node(GaimBlistNode *node, GtkTreeIter *iter) { |
3349 static gboolean get_iter_from_node(GaimBlistNode *node, GtkTreeIter *iter) { |
| 3378 struct _gaim_gtk_blist_node *gtknode = (struct _gaim_gtk_blist_node *)node->ui_data; |
3350 struct _gaim_gtk_blist_node *gtknode = (struct _gaim_gtk_blist_node *)node->ui_data; |
| 3379 GtkTreePath *path; |
3351 GtkTreePath *path; |
| 4510 /* Initialize prefs */ |
4482 /* Initialize prefs */ |
| 4511 gaim_prefs_add_none("/gaim/gtk/blist"); |
4483 gaim_prefs_add_none("/gaim/gtk/blist"); |
| 4512 gaim_prefs_add_bool("/gaim/gtk/blist/auto_expand_contacts", TRUE); |
4484 gaim_prefs_add_bool("/gaim/gtk/blist/auto_expand_contacts", TRUE); |
| 4513 gaim_prefs_add_bool("/gaim/gtk/blist/show_buddy_icons", TRUE); |
4485 gaim_prefs_add_bool("/gaim/gtk/blist/show_buddy_icons", TRUE); |
| 4514 gaim_prefs_add_bool("/gaim/gtk/blist/show_empty_groups", FALSE); |
4486 gaim_prefs_add_bool("/gaim/gtk/blist/show_empty_groups", FALSE); |
| 4515 gaim_prefs_add_bool("/gaim/gtk/blist/show_idle_time", TRUE); |
|
| 4516 gaim_prefs_add_bool("/gaim/gtk/blist/show_offline_buddies", FALSE); |
4487 gaim_prefs_add_bool("/gaim/gtk/blist/show_offline_buddies", FALSE); |
| 4517 gaim_prefs_add_bool("/gaim/gtk/blist/show_warning_level", TRUE); |
|
| 4518 gaim_prefs_add_bool("/gaim/gtk/blist/list_visible", TRUE); |
4488 gaim_prefs_add_bool("/gaim/gtk/blist/list_visible", TRUE); |
| 4519 gaim_prefs_add_string("/gaim/gtk/blist/sort_type", "alphabetical"); |
4489 gaim_prefs_add_string("/gaim/gtk/blist/sort_type", "alphabetical"); |
| 4520 gaim_prefs_add_int("/gaim/gtk/blist/x", 0); |
4490 gaim_prefs_add_int("/gaim/gtk/blist/x", 0); |
| 4521 gaim_prefs_add_int("/gaim/gtk/blist/y", 0); |
4491 gaim_prefs_add_int("/gaim/gtk/blist/y", 0); |
| 4522 gaim_prefs_add_int("/gaim/gtk/blist/width", 309); /* Golden ratio, baby */ |
4492 gaim_prefs_add_int("/gaim/gtk/blist/width", 309); /* Golden ratio, baby */ |