Mercurial > pidgin
view src/win32/wspell.c @ 4866:703e02e52262
[gaim-migrate @ 5196]
Added new typed and typing images to replace the gear.
Missing stock icons now result in critical errors being shown.
Restored the away button icon.
Yay! You may now serve me cheese.
committer: Tailor Script <tailor@pidgin.im>
author | Christian Hammond <chipx86@chipx86.com> |
---|---|
date | Sat, 22 Mar 2003 22:24:33 +0000 |
parents | 0fe2ffdb7906 |
children | a96653493416 |
line wrap: on
line source
/* * wspell.c * * Author: Herman Bloggs <hermanator12002@yahoo.com> * Date: March, 2003 * Description: Windows Gaim gtkspell interface. */ #include <windows.h> #include <string.h> #include <stdlib.h> #include <glib.h> #include <gtk/gtk.h> #include <gtkspell/gtkspell.h> #include "win32dep.h" extern void debug_printf(char * fmt, ...); /* GTKSPELL DUMMY FUNCS */ GtkSpell* wgtkspell_new_attach(GtkTextView *view, const gchar *lang, GError **error) {return NULL;} GtkSpell* wgtkspell_get_from_text_view(GtkTextView *view) {return NULL;} void wgtkspell_detach(GtkSpell *spell) {} gboolean wgtkspell_set_language(GtkSpell *spell, const gchar *lang, GError **error) {return 0;} void wgtkspell_recheck_all(GtkSpell *spell) {} /* GTKSPELL PROTOS */ GtkSpell* (*wgaim_gtkspell_new_attach) (GtkTextView *, const gchar *, GError **) = wgtkspell_new_attach; GtkSpell* (*wgaim_gtkspell_get_from_text_view) (GtkTextView*) = wgtkspell_get_from_text_view; void (*wgaim_gtkspell_detach) (GtkSpell*) = wgtkspell_detach; gboolean (*wgaim_gtkspell_set_language) (GtkSpell*, const gchar*, GError**) = wgtkspell_set_language; void (*wgaim_gtkspell_recheck_all) (GtkSpell*) = wgtkspell_recheck_all; static void load_gtkspell() { wgaim_gtkspell_new_attach = (void*)wgaim_find_and_loadproc("libgtkspell.dll", "gtkspell_new_attach" ); wgaim_gtkspell_get_from_text_view = (void*)wgaim_find_and_loadproc("libgtkspell.dll", "gtkspell_get_from_text_view"); wgaim_gtkspell_detach = (void*)wgaim_find_and_loadproc("libgtkspell.dll", "gtkspell_detach"); wgaim_gtkspell_set_language = (void*)wgaim_find_and_loadproc("libgtkspell.dll", "gtkspell_set_language"); wgaim_gtkspell_recheck_all = (void*)wgaim_find_and_loadproc("libgtkspell.dll", "gtkspell_recheck_all"); } void wgaim_gtkspell_init() { HKEY hKey; const char buffer[1024] = ""; DWORD size = sizeof(buffer); DWORD type; if(ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Aspell", 0, KEY_QUERY_VALUE, &hKey)) { /* Official aspell.net win32 installation or Gaim's aspell installation */ if(ERROR_SUCCESS == RegQueryValueEx(hKey, "Path", NULL, &type, (LPBYTE)buffer, &size) || ERROR_SUCCESS == RegQueryValueEx(hKey, "", NULL, &type, (LPBYTE)buffer, &size)) { int mark = strlen(buffer); strcat(buffer, "\\aspell-15.dll"); if(_access( buffer, 0 ) < 0) debug_printf("Couldn't find aspell-15.dll\n"); else { char* tmp=NULL; buffer[mark] = '\0'; debug_printf("Found Aspell in %s\n", buffer); /* Add path to Aspell dlls to PATH */ tmp = g_malloc0(strlen(getenv("PATH")) + strlen(buffer) + 7); sprintf(tmp, "PATH=%s;%s", getenv("PATH"), buffer); putenv(tmp); g_free(tmp); load_gtkspell(); } } else { debug_printf("Couldn't find path for Aspell\n"); } RegCloseKey(hKey); } }