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