comparison src/dialogs.c @ 657:4bbc103a3294

[gaim-migrate @ 667] merge buddy lists instead of overwrite them committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Thu, 10 Aug 2000 08:14:00 +0000
parents ea811c6dd3e0
children 71ea550c22ac
comparison
equal deleted inserted replaced
656:732ee4f6f541 657:4bbc103a3294
1720 } 1720 }
1721 buttons = buttons->next; 1721 buttons = buttons->next;
1722 } 1722 }
1723 1723
1724 if (d) { 1724 if (d) {
1725 deny = g_list_append(deny, name); 1725 GList *d = deny;
1726 serv_add_deny(name); 1726 while (d) {
1727 char *n = g_strdup(normalize(name));
1728 if (!strcmp(n, normalize(d->data)))
1729 break;
1730 d = d->next;
1731 g_free(n);
1732 }
1733 if (!d) {
1734 deny = g_list_append(deny, name);
1735 serv_add_deny(name);
1736 }
1727 } else { 1737 } else {
1728 permit = g_list_append(permit, name); 1738 GList *d = permit;
1729 serv_add_permit(name); 1739 while (d) {
1740 char *n = g_strdup(normalize(name));
1741 if (!strcmp(n, normalize(d->data)))
1742 break;
1743 d = d->next;
1744 g_free(n);
1745 }
1746 if (!d) {
1747 permit = g_list_append(permit, name);
1748 serv_add_permit(name);
1749 }
1730 } 1750 }
1731 1751
1732 1752
1733 1753
1734 build_permit_tree(); 1754 build_permit_tree();
2283 2303
2284 /*------------------------------------------------------*/ 2304 /*------------------------------------------------------*/
2285 /* Color Selection Dialog */ 2305 /* Color Selection Dialog */
2286 /*------------------------------------------------------*/ 2306 /*------------------------------------------------------*/
2287 2307
2308 static GtkWidget *fgcseld = NULL;
2309 static GtkWidget *bgcseld = NULL;
2310
2288 void cancel_color(GtkWidget *widget, struct conversation *c) 2311 void cancel_color(GtkWidget *widget, struct conversation *c)
2289 { 2312 {
2290 if (c->palette && widget) 2313 if (c->palette && widget)
2291 { 2314 {
2292 set_state_lock(1); 2315 set_state_lock(1);
2322 debug_print(debug_buff); 2345 debug_print(debug_buff);
2323 g_free(open_tag); 2346 g_free(open_tag);
2324 cancel_color(NULL, c); 2347 cancel_color(NULL, c);
2325 } 2348 }
2326 2349
2350 static void destroy_colorsel(GtkWidget *w, gpointer d)
2351 {
2352 if (d) {
2353 gtk_widget_destroy(fgcseld);
2354 fgcseld = NULL;
2355 } else {
2356 gtk_widget_destroy(bgcseld);
2357 bgcseld = NULL;
2358 }
2359 }
2360
2361 static void apply_color_dlg(GtkWidget *w, gpointer d)
2362 {
2363 gdouble color[3];
2364 if ((int)d == 1) {
2365 gtk_color_selection_get_color(GTK_COLOR_SELECTION(fgcseld), color);
2366 destroy_colorsel(NULL, (void *)1);
2367 } else {
2368 gtk_color_selection_get_color(GTK_COLOR_SELECTION(bgcseld), color);
2369 destroy_colorsel(NULL, (void *)2);
2370 }
2371 /* FIXME ! here we need to set the preferences, etc */
2372 }
2327 2373
2328 void show_color_dialog(struct conversation *c, GtkWidget *color) 2374 void show_color_dialog(struct conversation *c, GtkWidget *color)
2329 { 2375 {
2330 GtkWidget *colorsel; 2376 GtkWidget *colorsel;
2377
2378 if ((int)color == 1) { /* foreground */
2379 if (fgcseld) return;
2380 fgcseld = gtk_color_selection_dialog_new(_("Select Text Color"));
2381 gtk_signal_connect(GTK_OBJECT(fgcseld), "delete_event", GTK_SIGNAL_FUNC(destroy_colorsel), (void *)1);
2382 gtk_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(fgcseld)->cancel_button), "clicked", GTK_SIGNAL_FUNC(destroy_colorsel), (void *)1);
2383 gtk_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(fgcseld)->ok_button), "clicked", GTK_SIGNAL_FUNC(apply_color_dlg), (void *)1);
2384 gtk_widget_realize(fgcseld);
2385 aol_icon(fgcseld->window);
2386 gtk_widget_show(fgcseld);
2387 gdk_window_raise(fgcseld->window);
2388 return;
2389 } else if ((int)color == 2) { /* background */
2390 if (bgcseld) return;
2391 bgcseld = gtk_color_selection_dialog_new(_("Select Background Color"));
2392 gtk_signal_connect(GTK_OBJECT(bgcseld), "delete_event", GTK_SIGNAL_FUNC(destroy_colorsel), NULL);
2393 gtk_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(bgcseld)->cancel_button), "clicked", GTK_SIGNAL_FUNC(destroy_colorsel), NULL);
2394 gtk_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(bgcseld)->ok_button), "clicked", GTK_SIGNAL_FUNC(apply_color_dlg), (void *)2);
2395 gtk_widget_realize(bgcseld);
2396 aol_icon(bgcseld->window);
2397 gtk_widget_show(bgcseld);
2398 gdk_window_raise(bgcseld->window);
2399 return;
2400 }
2331 2401
2332 if (!c->color_dialog) 2402 if (!c->color_dialog)
2333 { 2403 {
2334 c->color_dialog = gtk_color_selection_dialog_new(_("Select Text Color")); 2404 c->color_dialog = gtk_color_selection_dialog_new(_("Select Text Color"));
2335 colorsel = GTK_COLOR_SELECTION_DIALOG(c->color_dialog)->colorsel; 2405 colorsel = GTK_COLOR_SELECTION_DIALOG(c->color_dialog)->colorsel;
2657 2727
2658 fread(buf, BUF_LONG, 1, f); 2728 fread(buf, BUF_LONG, 1, f);
2659 2729
2660 grp = groups; 2730 grp = groups;
2661 2731
2732 /* why is this being done? if we merge them than this shouldn't happen
2662 while(grp) { 2733 while(grp) {
2663 grp2 = grp->next; 2734 grp2 = grp->next;
2664 remove_group((struct group *)grp->data); 2735 remove_group((struct group *)grp->data);
2665 grp = grp2; 2736 grp = grp2;
2666 } 2737 }
2738 */
2667 2739
2668 parse_toc_buddy_list(buf, 1); 2740 parse_toc_buddy_list(buf, 1);
2669 2741
2670 serv_save_config(); 2742 serv_save_config();
2671 2743