Mercurial > pidgin
comparison src/dialogs.c @ 2763:477a035d81e5
[gaim-migrate @ 2776]
more font stuff! yay!
committer: Tailor Script <tailor@pidgin.im>
| author | Eric Warmenhoven <eric@warmenhoven.org> |
|---|---|
| date | Mon, 19 Nov 2001 12:03:38 +0000 |
| parents | 367d19133917 |
| children | a0fd8f91e294 |
comparison
equal
deleted
inserted
replaced
| 2762:8eb8db9a8449 | 2763:477a035d81e5 |
|---|---|
| 2651 { | 2651 { |
| 2652 /* this could be expanded to include font size, weight, etc. | 2652 /* this could be expanded to include font size, weight, etc. |
| 2653 but for now only works with font face */ | 2653 but for now only works with font face */ |
| 2654 int i, j = 0, k = 0; | 2654 int i, j = 0, k = 0; |
| 2655 char *fontname; | 2655 char *fontname; |
| 2656 char font[64]; | |
| 2657 struct conversation *c = gtk_object_get_user_data(GTK_OBJECT(fontsel)); | 2656 struct conversation *c = gtk_object_get_user_data(GTK_OBJECT(fontsel)); |
| 2658 | 2657 |
| 2659 if (c) { | 2658 if (c) { |
| 2660 fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(fontsel)); | 2659 fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(fontsel)); |
| 2661 | 2660 |
| 2662 for (i = 0; i < strlen(fontname); i++) { | 2661 set_font_face(fontname, c); |
| 2663 if (fontname[i] == '-') { | |
| 2664 if (++j > 2) | |
| 2665 break; | |
| 2666 } else if (j == 2) | |
| 2667 font[k++] = fontname[i]; | |
| 2668 } | |
| 2669 font[k] = '\0'; | |
| 2670 | |
| 2671 debug_printf("Setting font face %s\n", font); | |
| 2672 | |
| 2673 set_font_face(font, c); | |
| 2674 } else { | 2662 } else { |
| 2675 fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(fontsel)); | 2663 fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(fontsel)); |
| 2676 | 2664 |
| 2677 for (i = 0; i < strlen(fontname); i++) { | 2665 for (i = 0; i < strlen(fontname); i++) { |
| 2678 if (fontname[i] == '-') { | 2666 if (fontname[i] == '-') { |
| 2680 break; | 2668 break; |
| 2681 } else if (j == 2) | 2669 } else if (j == 2) |
| 2682 fontface[k++] = fontname[i]; | 2670 fontface[k++] = fontname[i]; |
| 2683 } | 2671 } |
| 2684 fontface[k] = '\0'; | 2672 fontface[k] = '\0'; |
| 2673 | |
| 2674 g_snprintf(fontxfld, sizeof(fontxfld), "%s", fontname); | |
| 2685 } | 2675 } |
| 2686 | 2676 |
| 2687 cancel_font(NULL, c); | 2677 cancel_font(NULL, c); |
| 2688 } | 2678 } |
| 2689 | 2679 |
| 2708 break; | 2698 break; |
| 2709 } else if (j == 2) | 2699 } else if (j == 2) |
| 2710 fontface[k++] = fontname[i]; | 2700 fontface[k++] = fontname[i]; |
| 2711 } | 2701 } |
| 2712 fontface[k] = '\0'; | 2702 fontface[k] = '\0'; |
| 2703 g_snprintf(fontxfld, sizeof(fontxfld), "%s", fontname); | |
| 2713 update_convo_font(); | 2704 update_convo_font(); |
| 2714 } | 2705 } |
| 2715 | 2706 |
| 2716 void show_font_dialog(struct conversation *c, GtkWidget *font) | 2707 void show_font_dialog(struct conversation *c, GtkWidget *font) |
| 2717 { | 2708 { |
| 2718 | 2709 |
| 2719 if (!font) { /* we came from the prefs dialog */ | 2710 if (!font) { /* we came from the prefs dialog */ |
| 2720 if (fontseld) | 2711 if (fontseld) |
| 2721 return; | 2712 return; |
| 2722 fontseld = gtk_font_selection_dialog_new(_("Select Font")); | 2713 fontseld = gtk_font_selection_dialog_new(_("Select Font")); |
| 2723 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(fontseld), | 2714 if (fontxfld[0]) { |
| 2724 DEFAULT_FONT_XFLD); | 2715 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(fontseld), |
| 2716 fontxfld); | |
| 2717 } else { | |
| 2718 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(fontseld), | |
| 2719 DEFAULT_FONT_XFLD); | |
| 2720 } | |
| 2725 | 2721 |
| 2726 gtk_object_set_user_data(GTK_OBJECT(fontseld), NULL); | 2722 gtk_object_set_user_data(GTK_OBJECT(fontseld), NULL); |
| 2727 gtk_signal_connect(GTK_OBJECT(fontseld), "delete_event", | 2723 gtk_signal_connect(GTK_OBJECT(fontseld), "delete_event", |
| 2728 GTK_SIGNAL_FUNC(destroy_fontsel), NULL); | 2724 GTK_SIGNAL_FUNC(destroy_fontsel), NULL); |
| 2729 gtk_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(fontseld)->cancel_button), | 2725 gtk_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(fontseld)->cancel_button), |
| 2743 if (font) | 2739 if (font) |
| 2744 gtk_object_set_user_data(GTK_OBJECT(c->font_dialog), c); | 2740 gtk_object_set_user_data(GTK_OBJECT(c->font_dialog), c); |
| 2745 else | 2741 else |
| 2746 gtk_object_set_user_data(GTK_OBJECT(c->font_dialog), NULL); | 2742 gtk_object_set_user_data(GTK_OBJECT(c->font_dialog), NULL); |
| 2747 | 2743 |
| 2748 gtk_font_selection_dialog_set_font_name((GtkFontSelectionDialog *) c->font_dialog, | 2744 if (c->fontxfld[0]) { |
| 2749 DEFAULT_FONT_XFLD); | 2745 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(fontseld), |
| 2746 c->fontxfld); | |
| 2747 } else { | |
| 2748 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(fontseld), | |
| 2749 DEFAULT_FONT_XFLD); | |
| 2750 } | |
| 2750 | 2751 |
| 2751 gtk_signal_connect(GTK_OBJECT(c->font_dialog), "delete_event", | 2752 gtk_signal_connect(GTK_OBJECT(c->font_dialog), "delete_event", |
| 2752 GTK_SIGNAL_FUNC(delete_event_dialog), c); | 2753 GTK_SIGNAL_FUNC(delete_event_dialog), c); |
| 2753 gtk_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(c->font_dialog)->ok_button), | 2754 gtk_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(c->font_dialog)->ok_button), |
| 2754 "clicked", GTK_SIGNAL_FUNC(apply_font), c->font_dialog); | 2755 "clicked", GTK_SIGNAL_FUNC(apply_font), c->font_dialog); |
| 2755 gtk_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(c->font_dialog)->cancel_button), | 2756 gtk_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(c->font_dialog)->cancel_button), |
| 2756 "clicked", GTK_SIGNAL_FUNC(cancel_font), c); | 2757 "clicked", GTK_SIGNAL_FUNC(cancel_font), c); |
| 2757 | |
| 2758 gtk_font_selection_dialog_set_font_name((GtkFontSelectionDialog *) c->font_dialog, | |
| 2759 DEFAULT_FONT_XFLD); | |
| 2760 | 2758 |
| 2761 gtk_widget_realize(c->font_dialog); | 2759 gtk_widget_realize(c->font_dialog); |
| 2762 | 2760 |
| 2763 aol_icon(c->font_dialog->window); | 2761 aol_icon(c->font_dialog->window); |
| 2764 } | 2762 } |
