1 /* vim: set ts=4 sw=4 wm=5 : */
2 
3 #include <gtk/gtk.h>
4 #include <gtkspell/gtkspell.h>
5 
6 int
main(int argc,char * argv[])7 main (int argc, char* argv[])
8 {
9   GtkWidget *win, *box, *scroll, *view;
10   GError *error = NULL;
11   GtkSpellChecker* spell;
12   char *errortext = NULL;
13 
14   gtk_init (&argc, &argv);
15 
16   view = gtk_text_view_new ();
17   gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (view), GTK_WRAP_WORD);
18 
19   spell = gtk_spell_checker_new ();
20   if (!gtk_spell_checker_set_language (spell, "en_US", &error))
21     {
22       g_print ("gtkspell error: %s\n", error->message);
23       errortext = g_strdup_printf ("GtkSpell was unable to initialize.\n"
24                                    "%s", error->message);
25       g_error_free (error);
26     }
27   gtk_spell_checker_attach (spell, GTK_TEXT_VIEW (view));
28 
29   scroll = gtk_scrolled_window_new (NULL, NULL);
30   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll),
31                                   GTK_POLICY_AUTOMATIC,
32                                   GTK_POLICY_AUTOMATIC);
33   gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scroll),
34                                        GTK_SHADOW_IN);
35   gtk_container_add (GTK_CONTAINER (scroll), view);
36 #if GTK_MAJOR_VERSION == 2
37   box = gtk_vbox_new (FALSE, 5);
38 #elif GTK_MAJOR_VERSION == 3
39   box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
40 #else
41   #error Unsupported GTK version
42 #endif
43   if (errortext)
44     {
45       gtk_box_pack_start (GTK_BOX (box), gtk_label_new (errortext),
46                           FALSE, FALSE, 0);
47       g_free (errortext);
48     }
49   else
50     {
51       gtk_box_pack_start (GTK_BOX (box),
52                           gtk_label_new ("Type some text into the text box.\n"
53                      "Try misspelling some words.  Then right-click on them."),
54                           FALSE, FALSE, 0);
55     }
56   gtk_box_pack_start (GTK_BOX (box), scroll, TRUE, TRUE, 0);
57   gtk_widget_show_all (box);
58 
59   win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
60   gtk_window_set_default_size (GTK_WINDOW (win), 400, 300);
61   gtk_window_set_title (GTK_WINDOW (win), "Simple GtkSpell Demonstration");
62   gtk_container_set_border_width (GTK_CONTAINER (win), 10);
63   g_signal_connect (win, "delete-event", G_CALLBACK (gtk_main_quit), NULL);
64   gtk_container_add (GTK_CONTAINER (win), box);
65 
66   gtk_widget_show (win);
67   gtk_main ();
68 
69   return 0;
70 }
71