1 #include <math.h>
2 #include <stdio.h>
3 #include <string.h>
4 #include <gtk/gtk.h>
5 #include <gdk/gdk.h>
6 #include <pango/pango.h>
7 #include "gtkfontcombo.h"
8
9 #define PREVIEW_TEXT "ABCDEFGHI abcdefghi 0123456789"
10
11 void
quit()12 quit ()
13 {
14 gtk_main_quit();
15 }
16
17 void
new_font(GtkFontCombo * font_combo,gpointer data)18 new_font(GtkFontCombo *font_combo, gpointer data)
19 {
20 GtkWidget *preview_entry;
21 GtkStyle *style, *previous_style;
22 const gchar *text;
23
24 preview_entry = GTK_WIDGET(data);
25
26 previous_style = gtk_widget_get_style(preview_entry);
27 style = gtk_style_copy (previous_style);
28
29 pango_font_description_free(style->font_desc);
30 style->font_desc = gtk_font_combo_get_font_description(font_combo);
31
32 gtk_widget_set_style(GTK_WIDGET(preview_entry), style);
33 gtk_style_unref(style);
34
35 printf("NEW FONT %s\n",pango_font_description_to_string(style->font_desc));
36
37 text = gtk_entry_get_text(GTK_ENTRY(preview_entry));
38 if (strlen(text) == 0)
39 gtk_entry_set_text(GTK_ENTRY(preview_entry), PREVIEW_TEXT);
40 gtk_entry_set_position(GTK_ENTRY(preview_entry), 0);
41 }
42
main(int argc,char * argv[])43 int main(int argc, char *argv[])
44 {
45 GtkWidget *window1;
46 GtkWidget *vbox1;
47 GtkWidget *font_combo;
48 GtkWidget *preview_entry;
49
50 gtk_init(&argc,&argv);
51
52 window1=gtk_window_new(GTK_WINDOW_TOPLEVEL);
53 gtk_window_set_title(GTK_WINDOW(window1), "GtkFontCombo Demo");
54 gtk_container_border_width(GTK_CONTAINER(window1),0);
55
56 g_signal_connect (GTK_OBJECT (window1), "destroy",
57 G_CALLBACK (quit), NULL);
58
59 vbox1=gtk_vbox_new(FALSE,0);
60 gtk_container_add(GTK_CONTAINER(window1),vbox1);
61 gtk_widget_show(vbox1);
62
63 font_combo = gtk_font_combo_new();
64 gtk_box_pack_start(GTK_BOX(vbox1),font_combo, FALSE, FALSE, 0);
65 gtk_widget_show(font_combo);
66
67 preview_entry = gtk_entry_new();
68 gtk_box_pack_start(GTK_BOX(vbox1),preview_entry, TRUE, TRUE,0);
69 gtk_widget_show(preview_entry);
70 gtk_entry_set_text(GTK_ENTRY(preview_entry), PREVIEW_TEXT);
71 gtk_widget_show(window1);
72
73 new_font(GTK_FONT_COMBO(font_combo), preview_entry);
74 /*********** SIGNALS ************/
75
76 g_signal_connect(GTK_OBJECT(font_combo),
77 "changed",
78 G_CALLBACK(new_font), preview_entry);
79
80 gtk_main();
81
82 return(0);
83 }
84
85
86