annotate src/win32/wspell.c @ 6371:8f94cce8faa5

[gaim-migrate @ 6876] I think I touched almost every file. Here's what happened. I started off fixing up the Makefile.am and configure.ac files to help with the core/UI split some. Then I got annoyed with the build_{allow,deny}_list() functions that everything used, and decided to core/UI split privacy. While doing that, I decided to redesign the dialog. So now, a lot has changed, but not really so much. Just that most files got affected. Oh yeah, and the UI stuff was taken out of internal.h and moved to gtkinternal.h. If you use this, please be aware of this change. committer: Tailor Script <tailor@pidgin.im>
author Christian Hammond <chipx86@chipx86.com>
date Tue, 05 Aug 2003 10:55:04 +0000
parents 9657e243d001
children 26b739bc9f1a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4862
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
1 /*
5913
9657e243d001 [gaim-migrate @ 6345]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 5084
diff changeset
2 * gaim
9657e243d001 [gaim-migrate @ 6345]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 5084
diff changeset
3 *
9657e243d001 [gaim-migrate @ 6345]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 5084
diff changeset
4 * File: wspell.c
9657e243d001 [gaim-migrate @ 6345]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 5084
diff changeset
5 * Date: March, 2003
9657e243d001 [gaim-migrate @ 6345]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 5084
diff changeset
6 * Description: Windows Gaim gtkspell interface.
9657e243d001 [gaim-migrate @ 6345]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 5084
diff changeset
7 *
9657e243d001 [gaim-migrate @ 6345]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 5084
diff changeset
8 * Copyright (C) 2002-2003, Herman Bloggs <hermanator12002@yahoo.com>
4862
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
9 *
5913
9657e243d001 [gaim-migrate @ 6345]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 5084
diff changeset
10 * This program is free software; you can redistribute it and/or modify
9657e243d001 [gaim-migrate @ 6345]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 5084
diff changeset
11 * it under the terms of the GNU General Public License as published by
9657e243d001 [gaim-migrate @ 6345]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 5084
diff changeset
12 * the Free Software Foundation; either version 2 of the License, or
9657e243d001 [gaim-migrate @ 6345]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 5084
diff changeset
13 * (at your option) any later version.
9657e243d001 [gaim-migrate @ 6345]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 5084
diff changeset
14 *
9657e243d001 [gaim-migrate @ 6345]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 5084
diff changeset
15 * This program is distributed in the hope that it will be useful,
9657e243d001 [gaim-migrate @ 6345]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 5084
diff changeset
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9657e243d001 [gaim-migrate @ 6345]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 5084
diff changeset
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9657e243d001 [gaim-migrate @ 6345]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 5084
diff changeset
18 * GNU General Public License for more details.
9657e243d001 [gaim-migrate @ 6345]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 5084
diff changeset
19 *
9657e243d001 [gaim-migrate @ 6345]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 5084
diff changeset
20 * You should have received a copy of the GNU General Public License
9657e243d001 [gaim-migrate @ 6345]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 5084
diff changeset
21 * along with this program; if not, write to the Free Software
9657e243d001 [gaim-migrate @ 6345]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 5084
diff changeset
22 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
9657e243d001 [gaim-migrate @ 6345]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 5084
diff changeset
23 *
4862
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
24 */
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
25 #include <windows.h>
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
26 #include <string.h>
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
27 #include <stdlib.h>
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
28 #include <glib.h>
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
29 #include <gtk/gtk.h>
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
30 #include <gtkspell/gtkspell.h>
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
31 #include "win32dep.h"
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
32
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
33 extern void debug_printf(char * fmt, ...);
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
34
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
35 /* GTKSPELL DUMMY FUNCS */
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
36 GtkSpell* wgtkspell_new_attach(GtkTextView *view,
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
37 const gchar *lang,
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
38 GError **error) {return NULL;}
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
39 GtkSpell* wgtkspell_get_from_text_view(GtkTextView *view) {return NULL;}
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
40 void wgtkspell_detach(GtkSpell *spell) {}
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
41 gboolean wgtkspell_set_language(GtkSpell *spell,
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
42 const gchar *lang,
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
43 GError **error) {return 0;}
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
44 void wgtkspell_recheck_all(GtkSpell *spell) {}
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
45
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
46 /* GTKSPELL PROTOS */
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
47 GtkSpell* (*wgaim_gtkspell_new_attach) (GtkTextView *,
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
48 const gchar *,
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
49 GError **) = wgtkspell_new_attach;
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
50
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
51 GtkSpell* (*wgaim_gtkspell_get_from_text_view) (GtkTextView*) = wgtkspell_get_from_text_view;
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
52
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
53 void (*wgaim_gtkspell_detach) (GtkSpell*) = wgtkspell_detach;
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
54
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
55 gboolean (*wgaim_gtkspell_set_language) (GtkSpell*,
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
56 const gchar*,
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
57 GError**) = wgtkspell_set_language;
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
58
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
59 void (*wgaim_gtkspell_recheck_all) (GtkSpell*) = wgtkspell_recheck_all;
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
60
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
61 static void load_gtkspell() {
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
62 wgaim_gtkspell_new_attach = (void*)wgaim_find_and_loadproc("libgtkspell.dll", "gtkspell_new_attach" );
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
63 wgaim_gtkspell_get_from_text_view = (void*)wgaim_find_and_loadproc("libgtkspell.dll", "gtkspell_get_from_text_view");
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
64 wgaim_gtkspell_detach = (void*)wgaim_find_and_loadproc("libgtkspell.dll", "gtkspell_detach");
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
65 wgaim_gtkspell_set_language = (void*)wgaim_find_and_loadproc("libgtkspell.dll", "gtkspell_set_language");
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
66 wgaim_gtkspell_recheck_all = (void*)wgaim_find_and_loadproc("libgtkspell.dll", "gtkspell_recheck_all");
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
67 }
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
68
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
69 void wgaim_gtkspell_init() {
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
70 HKEY hKey;
5084
a96653493416 [gaim-migrate @ 5439]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 4862
diff changeset
71 char buffer[1024] = "";
4862
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
72 DWORD size = sizeof(buffer);
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
73 DWORD type;
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
74
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
75 if(ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE,
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
76 "Software\\Aspell",
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
77 0,
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
78 KEY_QUERY_VALUE,
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
79 &hKey)) {
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
80 /* Official aspell.net win32 installation or Gaim's aspell installation */
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
81 if(ERROR_SUCCESS == RegQueryValueEx(hKey, "Path", NULL, &type, (LPBYTE)buffer, &size) ||
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
82 ERROR_SUCCESS == RegQueryValueEx(hKey, "", NULL, &type, (LPBYTE)buffer, &size)) {
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
83 int mark = strlen(buffer);
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
84 strcat(buffer, "\\aspell-15.dll");
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
85 if(_access( buffer, 0 ) < 0)
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
86 debug_printf("Couldn't find aspell-15.dll\n");
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
87 else {
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
88 char* tmp=NULL;
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
89 buffer[mark] = '\0';
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
90 debug_printf("Found Aspell in %s\n", buffer);
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
91 /* Add path to Aspell dlls to PATH */
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
92 tmp = g_malloc0(strlen(getenv("PATH")) + strlen(buffer) + 7);
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
93 sprintf(tmp, "PATH=%s;%s", getenv("PATH"), buffer);
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
94 putenv(tmp);
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
95 g_free(tmp);
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
96 load_gtkspell();
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
97 }
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
98 }
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
99 else {
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
100 debug_printf("Couldn't find path for Aspell\n");
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
101 }
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
102 RegCloseKey(hKey);
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
103 }
0fe2ffdb7906 [gaim-migrate @ 5189]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff changeset
104 }