merged GNU_aspell_branch

This commit is contained in:
Melvin Hadasht 2002-08-28 13:04:15 +00:00
parent ea048c0b47
commit 1535fa78e6
19 changed files with 1177 additions and 1222 deletions

View file

@ -1,3 +1,33 @@
2002-08-28 [melvin] 0.8.2claws3
Merged the GNU_aspell_branch:
Support of new GNU/aspell is now included and the old pspell
is not supported anymore.
See README.claws
* README.claws
Updated spell checker text to reflect the switch to GNU/aspell
* ac/aspell.m4 *** NEW ***
* src/gtkaspell.[ch] *** NEW ***
* ac/pspell.m4 *** DELETED ***
* src/gtkspell.[ch] *** DELETED ***
* ac/Makefile.am
Updated for GNU/aspell support
* po/POTFILES.in
Replaced gtkspell.c by gtkaspell.c
* acconfig.h
* src/Makefile.am
* src/about.c
* src/compose.[ch]
* src/crash.c
* src/main.c
* src/prefs_common.[ch]
Updated for GNU/aspell support
2002-08-28 [paul] 0.8.2claws2
* sync with 0.8.2cvs4

View file

@ -49,7 +49,7 @@ Sylpheed or Main.
-------------------------------
From the user perspective Claws is just a fancy Sylpheed, so it uses the
same sylpheed setting files located in ~/.sylpheed.
same Sylpheed setting files located in ~/.sylpheed.
It's always a good idea to back up all files in ~/.sylpheed in case
you want to switch back to Sylpheed. (You don't have to backup the
@ -61,7 +61,7 @@ Sylpheed or Main.
* Why does the advanced filtering system not work?
Claws uses the new filtering system as soon as you define a new rule for it.
Your old sylpheed filter rules will not be used. In subdirectory tools/ of
Your old Sylpheed filter rules will not be used. In subdirectory tools/ of
the distribution there is a Perl script called filter_conv.pl which converts
old filter rules to the claws filtering system.
@ -285,71 +285,59 @@ are hardly noticeable, but deserve mentioning:
a. Requirements
---------------
The spell checker in sylpheed requires the Portable Spell Checker
Interface Library pspell (http://pspell.sourceforge.net), version
0.12.2 or newer.
The spell checker in sylpheed requires the new GNU/aspell library
(http://www.gnu.org/software/aspell), version 0.50 or newer.
You will need also the actual spell checker. There are two alternatives:
i) ispell (http://fmg-www.cs.ucla.edu/fmg-members/geoff/ispell.html),
which is found on quasi every distribution. You have then to
install the pspell-ispell module found at the pspell site.
ii) aspell (http://aspell.sourceforge.net). This spell checker
must be installed after installing pspell. The version tested
is .33.7 alpha. It has three different suggestion modes (fast
-default- , normal, bad spellers), has the ability to learn
from mistakes (default).
And, last but not least, do not forget to install the dictionaries. Check
the corresponding spell checker home page for more information on this.
You also need the dictionaries. Check GNU/aspell home page for how
to download and install them.
b. Configuring Sylpheed
-----------------------
Spell checking is enabled if you configure sylpheed appropriately. Add
the option '--enable-pspell' when configuring. E.g.:
Spell checking is enabled if you configure Sylpheed appropriately. Add
the option '--enable-aspell' when configuring. E.g.:
./configure --enable-pspell
./configure --enable-aspell
The configure script needs 'pspell-config' in your path. If it is
in weird places, use '--with-pspell-prefix' to tell the path to
pspell-config. E.g., if pspell-config is really
/foo/bar/pspell-config, then use:
The configure script needs the 'aspell' executable to be in your path.
If it is in unusual places, use '--with-aspell-prefix' to tell the path of
the aspell executable. E.g., if aspell's full path is
/foo/bar/bin/aspell, then use:
./configure --enable-pspell --with-pspell-prefix=/foo/bar
./configure --enable-aspell --with-aspell-prefix=/foo/bar
If you have problems with not found includes or libraries, check
first where these are located, and add either options:
If ./configure cannot find the includes or libraries of aspell,
check first where these are located, and add either following options:
--with-pspell-includes=/foo/bar/include
--with-aspell-includes=/foo/bar/include
or
--with-pspell-libs=/foo/bar/lib
--with-aspell-libs=/foo/bar/lib
as appropriate.
Configure script summarizes the options compiled in. Check that
configure lists 'Pspell = yes'.
The configure script summarizes the options compiled in. Check that
it lists 'GNU/aspell = yes'.
Then proceed as usual, with 'make' and 'make install'.
c. Usage
--------
NOTE: if you upgraded from 0.7.0claws, please reselect your default
dictionary in the preferences.
NOTE: if you upgraded from 0.8.1claws or earlier, please reselect
your default dictionary in the preferences.
After successful compiling, you need to tell sylpheed where your
dictionaries reside. First run 'pspell-config pkgdatadir' on the
After successful compiling, you need to tell Sylpheed where your
dictionaries reside. The configure script should have found it,
but in case it did not, run 'aspell config dict-dir' on the
shell to get their path.
Then run sylpheed and go to Configuration -> Common preferences ->
Spell Checker. Check the box 'Enable spell checker (EXPERIMENTAL)' and
Then run Sylpheed and go to Configuration -> Common preferences ->
Spell Checker. Check the box 'Enable spell checker' and
use the file selector ('...' button) to select the path where the
dictionaries reside. Within the file selector, go to that directory
and select *any* file in the file lists. Click ok. You should then
and select *any* file in the file lists. Click OK. Then, you should
be able to select your default dictionary.
When composing, misspelled words are highlighted. Click on any
@ -360,20 +348,19 @@ are hardly noticeable, but deserve mentioning:
it in this message. Selecting the next entry "Add to dictionary", which
is bound to MOD1-Enter combination will add the unknown word to the
dictionary to learn it. The next entries are the suggested words.
The first 15 suggestions can be accessed typing one of the first letters
The first 15 suggestions can be accessed by typing one of the first letters
of Latin alphabet (if this does not suit your language, please send
a mail to melvin.hadasht@free.fr). If you are using an aspell
dictionary, you can use its 'learn from mistake' feature, by pressing
the MOD1 key and selecting the suggestion (with the keyboard or with
the mouse). See pspell manual §4.7.1 for an explanation of this
feature.
a mail to melvin.hadasht@free.fr). Aspell has a 'learn from mistake'
function that can be used by pressing the MOD1 key and selecting the
suggestion (with the keyboard or with the mouse). See GNU/aspell manual
§6.3 for an explanation of this feature (also called 'replacement storing').
If you click with the right mouse button everywhere else, or if you
shift-right-click even on a misspelled word, you get the
configuration menu. 'Check all' highlights all misspelled words.
With this menu, you can also change the dictionary while editing.
Finally, you can change the suggestion mode, and the learn from
misktakes feature (only when using an aspell dictionary).
misktakes feature.
Spell checking can also be done using keyboard shortcuts. In the
"Edit" menu of the compose window, there are two menus "Check backwards
@ -393,33 +380,7 @@ are hardly noticeable, but deserve mentioning:
d. Known problems
-----------------
i) libtool
The only real known problems until now are configuration and
compilation problems due to libtool interaction with pspell.
If you do not compile pspell/aspell/pspell-ispell yourself, you
need to install them with their devel packages.
Pspell work with dynamic linking of libraries and thus uses the
libltdl library of libtool. If you have weird problems when
configuring showing 'libtool', chances are the libtool used when
compiling the pspell package is not compatible with what you have
on your system. The best solution, is to install the latest
libtool AND compile yourself pspell package. I can't help more
than that in this issue.
After successfully compiled and used sylpheed with spell checking,
the same problem can appear if you upgrade your libtool to a
version which libltdl is incompatible to your older one. The
symptoms are a crash when starting to compose. Disabling spell
checking avoids the problem. The solution should be to recompile pspell.
ii) New installed ispell dictionary are not detected
Installing a new ispell dictionary needs an additional step. Go
to the 'pkgdatadir' and run 'make-ispell-pwli'. You may need to
su root.
No known problems as the time of this writing.
* simplify subject string
-----------------------------------

View file

@ -2,7 +2,7 @@ MACROS = \
aclocal-include.m4 \
check-type.m4 \
gnupg-check-typedef.m4 \
pspell.m4
aspell.m4
EXTRA_DIST = $(MACROS) \
missing/gdk-pixbuf.m4 \

144
ac/aspell.m4 Normal file
View file

@ -0,0 +1,144 @@
dnl Autoconf macros for libaspell
dnl $Id$
# Configure paths for ASPELL
# Shamelessly stolen from the one of GPGME by Werner Koch
# Melvin Hadasht 2001-09-17, 2002
dnl AM_PATH_ASPELL([MINIMUM-VERSION,
dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
dnl Test for aspell, and define ASPELL_CFLAGS and ASPELL_LIBS
dnl
AC_DEFUN(AM_PATH_ASPELL,
[dnl
dnl Get the cflags and libraries from the aspell-config script
dnl
AC_ARG_WITH(aspell-prefix,
[ --with-aspell-prefix=PFX Prefix where aspell is installed (optional)],
aspell_prefix="$withval", aspell_prefix="")
AC_ARG_ENABLE(aspell-test,
[ --disable-aspell-test Do not try to compile and run a test GNU/aspell program],
, enable_aspelltest=yes)
AC_ARG_WITH(aspell-libs,
[ --with-aspell-libs=LIBS Where GNU/aspell library reside (/usr/local/lib)],
aspell_libs="$withval", aspell_libs="")
AC_ARG_WITH(aspell-includes,
[ --with-aspell-includes=INCLUDES Where GNU/aspell headers reside (/usr/local/include)],
aspell_includes="$withval", aspell_includes="")
if test x$aspell_prefix != x ; then
if test x${ASPELL+set} != xset ; then
ASPELL=$aspell_prefix/bin/aspell
fi
if test x$aspell_includes == x ; then
aspell_includes=$aspell_prefix/include
fi
if test x$aspell_libs == x ; then
aspell_libs=$aspell_prefix/lib
fi
fi
if test x$aspell_includes == x ; then
aspell_includes=/usr/local/include
fi
if test x$aspell_libs == x ; then
aspell_libs=/usr/local/lib
fi
AC_PATH_PROG(ASPELL, aspell, no)
min_aspell_version=ifelse([$1], ,.50,$1)
AC_MSG_CHECKING(for GNU/aspell - version >= $min_aspell_version)
no_aspell=""
if test "$ASPELL" = "no" ; then
no_aspell=yes
else
ASPELL_CFLAGS="-I$aspell_includes"
ASPELL_LIBS="-L$aspell_libs -laspell"
aspell_version=`$ASPELL version|sed -e "s/\(@(#) International Ispell Version 3.1.20 (but really Aspell \)\(.*\))/\2/"`
if test "x$enable_aspelltest" = "xyes" ; then
ac_save_CFLAGS="$CFLAGS"
ac_save_LIBS="$LIBS"
CFLAGS="$CFLAGS $ASPELL_CFLAGS"
LIBS="$LIBS $ASPELL_LIBS"
dnl
dnl
dnl
rm -f conf.aspelltest
AC_TRY_RUN([
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <aspell.h>
int
main ()
{
system ("touch conf.aspelltest");
if(strcmp("$aspell_version","$min_aspell_version")<0){
printf("no\n");
return 1;
}
return 0;
}
],, no_aspell=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
fi
fi
if test "x$no_aspell" = x ; then
AC_MSG_RESULT(yes)
ifelse([$2], , :, [$2])
else
if test -f conf.aspelltest ; then
:
else
AC_MSG_RESULT(no)
fi
if test "$ASPELL" = "no" ; then
echo "*** The aspell executable could not be found"
echo "*** If aspell was installed in PREFIX, make sure PREFIX/bin is in"
echo "*** your path, or set the ASPELL environment variable to the"
echo "*** full path to aspell."
else
if test -f conf.aspelltest ; then
:
else
echo "*** Could not run aspell test program, checking why..."
CFLAGS="$CFLAGS $ASPELL_CFLAGS"
LIBS="$LIBS $ASPELL_LIBS"
AC_TRY_LINK([
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <aspell.h>
], [ AspellConfig * aspellconfig= new_aspell_config(); return 0 ],
[
echo "*** The test program compiled, but did not run. This usually means"
echo "*** that the run-time linker is not finding GNU/aspell or finding the wrong"
echo "*** version of GNU/aspell. If it is not finding GNU/aspell, you'll need to set"
echo "*** your LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
echo "*** to the installed location Also, make sure you have run ldconfig if"
echo "*** that is required on your system"
echo "***"
echo "*** If you have an old version installed, it is best to remove it,"
echo "*** although you may also be able to get things to work by"
echo "*** modifying LD_LIBRARY_PATH"
echo "***"
],
[
echo "*** The test program failed to compile or link. See the file config.log"
echo "*** for the exact error that occured. This usually means GNU/aspell was"
echo "*** incorrectly installed or that you have moved GNU/aspell since it was"
echo "*** installed. "
])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
fi
fi
ASPELL_CFLAGS=""
ASPELL_LIBS=""
ifelse([$3], , :, [$3])
fi
AC_SUBST(ASPELL_CFLAGS)
AC_SUBST(ASPELL_LIBS)
rm -f conf.aspelltest
])

View file

@ -1,135 +0,0 @@
dnl Autoconf macros for libpspell
dnl $Id$
# Configure paths for PSPELL
# Shamelessly stolen from the one of GPGME by Werner Koch
# Melvin Hadasht 2001-09-17
dnl AM_PATH_PSPELL([MINIMUM-VERSION,
dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
dnl Test for pspell, and define PSPELL_CFLAGS and PSPELL_LIBS
dnl
AC_DEFUN(AM_PATH_PSPELL,
[dnl
dnl Get the cflags and libraries from the pspell-config script
dnl
AC_ARG_WITH(pspell-prefix,
[ --with-pspell-prefix=PFX Prefix where pspell-config is installed (optional)],
pspell_config_prefix="$withval", pspell_config_prefix="")
AC_ARG_ENABLE(pspelltest,
[ --disable-pspelltest Do not try to compile and run a test pspell program],
, enable_pspelltest=yes)
AC_ARG_WITH(pspelllibs,
[ --with-pspell-libs=LIBS Where pspell library reside (/usr/local/lib)],
pspell_libs=$pspelllibs, pspell_libs='/usr/local/lib')
AC_ARG_WITH(pspellincludes,
[ --with-pspell-includes=INCLUDES Where pspell headers reside (/usr/local/include)],
pspell_includes=$pspelllibs, pspell_includes='/usr/local/include')
if test x$pspell_config_prefix != x ; then
if test x${PSPELL_CONFIG+set} != xset ; then
PSPELL_CONFIG=$pspell_config_prefix/bin/pspell-config
fi
fi
AC_PATH_PROG(PSPELL_CONFIG, pspell-config, no)
min_pspell_version=ifelse([$1], ,.12.2,$1)
AC_MSG_CHECKING(for pspell - version >= $min_pspell_version)
no_pspell=""
if test "$PSPELL_CONFIG" = "no" ; then
no_pspell=yes
else
PSPELL_CFLAGS="-I$pspell_includes"
PSPELL_LIBS="-L$pspell_libs -lpspell"
pspell_config_version=`$PSPELL_CONFIG version`
if test "x$enable_pspelltest" = "xyes" ; then
ac_save_CFLAGS="$CFLAGS"
ac_save_LIBS="$LIBS"
CFLAGS="$CFLAGS $PSPELL_CFLAGS"
LIBS="$LIBS $PSPELL_LIBS"
dnl
dnl
dnl
rm -f conf.pspelltest
AC_TRY_RUN([
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <pspell/pspell.h>
int
main ()
{
system ("touch conf.pspelltest");
if(strcmp("$pspell_config_version","$min_pspell_version")<0){
printf("no\n");
return 1;
}
return 0;
}
],, no_pspell=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
fi
fi
if test "x$no_pspell" = x ; then
AC_MSG_RESULT(yes)
ifelse([$2], , :, [$2])
else
if test -f conf.pspelltest ; then
:
else
AC_MSG_RESULT(no)
fi
if test "$PSPELL_CONFIG" = "no" ; then
echo "*** The pspell-config script installed by pspell could not be found"
echo "*** If pspell was installed in PREFIX, make sure PREFIX/bin is in"
echo "*** your path, or set the PSPELL_CONFIG environment variable to the"
echo "*** full path to pspell-config."
else
if test -f conf.pspelltest ; then
:
else
echo "*** Could not run pspell test program, checking why..."
CFLAGS="$CFLAGS $PSPELL_CFLAGS"
LIBS="$LIBS $PSPELL_LIBS"
AC_TRY_LINK([
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <pspell/pspell.h>
], [ PspellConfig * pspellconfig= new_pspell_config(); return 0 ],
[
echo "*** The test program compiled, but did not run. This usually means"
echo "*** that the run-time linker is not finding pspell or finding the wrong"
echo "*** version of pspell. If it is not finding pspell, you'll need to set your"
echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
echo "*** to the installed location Also, make sure you have run ldconfig if"
echo "*** that is required on your system"
echo "***"
echo "*** If you have an old version installed, it is best to remove it,"
echo "*** although you may also be able to get things to work by"
echo "*** modifying LD_LIBRARY_PATH"
echo "***"
],
[
echo "*** The test program failed to compile or link. See the file config.log"
echo "*** for the exact error that occured. This usually means pspell was"
echo "*** incorrectly installed or that you have moved pspell since it was"
echo "*** installed. In the latter case, you may want to edit the"
echo "*** pspell-config script: $PSPELL_CONFIG"
])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
fi
fi
PSPELL_CFLAGS=""
PSPELL_LIBS=""
ifelse([$3], , :, [$3])
fi
AC_SUBST(PSPELL_CFLAGS)
AC_SUBST(PSPELL_LIBS)
rm -f conf.pspelltest
])

View file

@ -18,11 +18,11 @@
/* Define if you use GPGME to support OpenPGP */
#undef USE_GPGME
/* Define if you use PSPELL to support spell checking */
#undef USE_PSPELL
/* Define if you use ASPELL to support spell checking */
#undef USE_ASPELL
/* Define PSPELL's default directory */
#undef PSPELL_PATH
/* Define ASPELL's default directory */
#undef ASPELL_PATH
/* Define if you use OpenSSL to support SSL */
#undef USE_SSL

View file

@ -8,7 +8,7 @@ MINOR_VERSION=8
MICRO_VERSION=2
INTERFACE_AGE=0
BINARY_AGE=0
EXTRA_VERSION=claws2
EXTRA_VERSION=claws3
VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
dnl set $target
@ -286,17 +286,17 @@ else
AC_MSG_RESULT(no)
fi
dnl PSPELL is user for spell checking
AC_ARG_ENABLE(pspell,
[ --enable-pspell Enable pspell support [default=no]],
[ac_cv_enable_pspell=$enableval], [ac_cv_enable_pspell=no])
AC_MSG_CHECKING([whether to use pspell])
if test $ac_cv_enable_pspell = yes; then
dnl ASPELL is user for spell checking
AC_ARG_ENABLE(aspell,
[ --enable-aspell Enable GNU/aspell support [default=no]],
[ac_cv_enable_aspell=$enableval], [ac_cv_enable_aspell=no])
AC_MSG_CHECKING([whether to use GNU/aspell])
if test $ac_cv_enable_aspell = yes; then
AC_MSG_RESULT(yes)
AM_PATH_PSPELL(.12.2, AC_DEFINE(USE_PSPELL), [use_pspell=no
ac_cv_enable_pspell=no])
pspell_path="`pspell-config --pkgdatadir`"
AC_DEFINE_UNQUOTED(PSPELL_PATH, "${pspell_path}/")
AM_PATH_ASPELL(0.50, AC_DEFINE(USE_ASPELL), [use_aspell=no
ac_cv_enable_aspell=no])
aspell_path="`$ASPELL config dict-dir`"
AC_DEFINE_UNQUOTED(ASPELL_PATH, "${aspell_path}/")
else
AC_MSG_RESULT(no)
fi
@ -404,7 +404,7 @@ echo "OpenSSL : $ac_cv_enable_ssl"
echo "compface : $ac_cv_enable_compface"
echo "libjconv : $ac_cv_enable_jconv"
echo "IPv6 : $ac_cv_enable_ipv6"
echo "Pspell : $ac_cv_enable_pspell"
echo "GNU/aspell : $ac_cv_enable_aspell"
echo ""
echo "The binary will be installed in $prefix/bin"
echo ""

View file

@ -32,7 +32,7 @@ src/folder.c
src/foldersel.c
src/folderview.c
src/grouplistdialog.c
src/gtkspell.c
src/gtkaspell.c
src/gtkutils.c
src/headerview.c
src/imageview.c

View file

@ -130,7 +130,7 @@ sylpheed_SOURCES = \
mbox_folder.c mbox_folder.h \
quote_fmt_lex.l quote_fmt_lex.h \
quote_fmt_parse.y quote_fmt.c quote_fmt.h \
gtkspell.c gtkspell.h gtkxtext.h \
gtkaspell.c gtkaspell.h gtkxtext.h \
matcher_parser_lex.l matcher_parser_lex.h \
matcher_parser_parse.y matcher_parser.h matcher_parser_parse.h \
string_match.h string_match.c \
@ -221,20 +221,20 @@ EXTRA_DIST = \
INCLUDES = \
-DG_LOG_DOMAIN=\"Sylpheed\" \
-I$(top_srcdir)/intl \
$(ASPELL_CFLAGS) \
$(GTK_CFLAGS) \
$(GDK_IMLIB_CFLAGS) \
$(GDK_PIXBUF_CFLAGS) \
$(GPGME_CFLAGS) \
$(PSPELL_CFLAGS) \
-I$(includedir)
sylpheed_LDADD = \
$(INTLLIBS) \
$(ASPELL_LIBS) \
$(GTK_LIBS) \
$(GDK_IMLIB_LIBS) \
$(GDK_PIXBUF_LIBS) \
$(GPGME_LIBS) \
$(PSPELL_LIBS) \
$(LDAP_LIBS)
CPPFLAGS = \

View file

@ -154,8 +154,8 @@ static void about_create(void)
#if USE_JPILOT
" JPilot"
#endif
#if USE_PSPELL
" pspell"
#if USE_ASPELL
" GNU/aspell"
#endif
"");

View file

@ -480,7 +480,7 @@ void compose_headerentry_key_press_event_cb(GtkWidget *entry,
static void compose_show_first_last_header (Compose *compose, gboolean show_first);
#if USE_PSPELL
#if USE_ASPELL
static void compose_check_all (Compose *compose);
static void compose_highlight_all (Compose *compose);
static void compose_check_backwards (Compose *compose);
@ -599,7 +599,7 @@ static GtkItemFactoryEntry compose_entries[] =
"<control><alt>L", compose_wrap_line_all, 0, NULL},
{N_("/_Edit/Edit with e_xternal editor"),
"<shift><control>X", compose_ext_editor_cb, 0, NULL},
#if USE_PSPELL
#if USE_ASPELL
{N_("/_Spelling"), NULL, NULL, 0, "<Branch>"},
{N_("/_Spelling/_Check all or check selection"),
NULL, compose_check_all, 0, NULL},
@ -4412,8 +4412,8 @@ static Compose *compose_create(PrefsAccount *account, ComposeMode mode)
GtkWidget *tmpl_menu;
gint n_entries;
#if USE_PSPELL
GtkPspell * gtkpspell = NULL;
#if USE_ASPELL
GtkAspell * gtkaspell = NULL;
#endif
static GdkGeometry geometry;
@ -4729,31 +4729,31 @@ static Compose *compose_create(PrefsAccount *account, ComposeMode mode)
compose->redirect_filename = NULL;
compose->undostruct = undostruct;
#if USE_PSPELL
#if USE_ASPELL
menu_set_sensitive(ifactory, "/Spelling", FALSE);
if (prefs_common.enable_pspell) {
gtkpspell = gtkpspell_new((const gchar*)prefs_common.dictionary,
if (prefs_common.enable_aspell) {
gtkaspell = gtkaspell_new((const gchar*)prefs_common.dictionary,
conv_get_current_charset_str(),
prefs_common.misspelled_col,
prefs_common.check_while_typing,
prefs_common.use_alternate,
GTK_STEXT(text));
if (!gtkpspell) {
alertpanel_error(_("Spell checker could not be started.\n%s"), gtkpspellcheckers->error_message);
gtkpspell_checkers_reset_error();
if (!gtkaspell) {
alertpanel_error(_("Spell checker could not be started.\n%s"), gtkaspellcheckers->error_message);
gtkaspell_checkers_reset_error();
} else {
GtkWidget *menuitem;
if (!gtkpspell_set_sug_mode(gtkpspell, prefs_common.pspell_sugmode)) {
debug_print("Pspell: could not set suggestion mode %s\n",
gtkpspellcheckers->error_message);
gtkpspell_checkers_reset_error();
if (!gtkaspell_set_sug_mode(gtkaspell, prefs_common.aspell_sugmode)) {
debug_print("Aspell: could not set suggestion mode %s\n",
gtkaspellcheckers->error_message);
gtkaspell_checkers_reset_error();
}
menuitem = gtk_item_factory_get_item(ifactory, "/Spelling/Spelling Configuration");
gtkpspell_populate_submenu(gtkpspell, menuitem);
gtkaspell_populate_submenu(gtkaspell, menuitem);
menu_set_sensitive(ifactory, "/Spelling", TRUE);
}
}
@ -4767,8 +4767,8 @@ static Compose *compose_create(PrefsAccount *account, ComposeMode mode)
compose->use_followupto = FALSE;
#endif
#if USE_PSPELL
compose->gtkpspell = gtkpspell;
#if USE_ASPELL
compose->gtkaspell = gtkaspell;
#endif
#if 0 /* NEW COMPOSE GUI */
@ -5218,9 +5218,9 @@ static void compose_destroy(Compose *compose)
if (addressbook_get_target_compose() == compose)
addressbook_set_target_compose(NULL);
#if USE_PSPELL
if (compose->gtkpspell) {
gtkpspell_delete(compose->gtkpspell);
#if USE_ASPELL
if (compose->gtkaspell) {
gtkaspell_delete(compose->gtkaspell);
}
#endif
@ -6878,23 +6878,23 @@ static gboolean compose_send_control_enter(Compose *compose)
return FALSE;
}
#if USE_PSPELL
#if USE_ASPELL
static void compose_check_all(Compose *compose)
{
if (compose->gtkpspell)
gtkpspell_check_all(compose->gtkpspell);
if (compose->gtkaspell)
gtkaspell_check_all(compose->gtkaspell);
}
static void compose_highlight_all(Compose *compose)
{
if (compose->gtkpspell)
gtkpspell_highlight_all(compose->gtkpspell);
if (compose->gtkaspell)
gtkaspell_highlight_all(compose->gtkaspell);
}
static void compose_check_backwards(Compose *compose)
{
if (compose->gtkpspell)
gtkpspell_check_backwards(compose->gtkpspell);
if (compose->gtkaspell)
gtkaspell_check_backwards(compose->gtkaspell);
else {
GtkItemFactory *ifactory;
ifactory = gtk_item_factory_from_widget(compose->popupmenu);
@ -6905,8 +6905,8 @@ static void compose_check_backwards(Compose *compose)
static void compose_check_forwards_go(Compose *compose)
{
if (compose->gtkpspell)
gtkpspell_check_forwards_go(compose->gtkpspell);
if (compose->gtkaspell)
gtkaspell_check_forwards_go(compose->gtkaspell);
else {
GtkItemFactory *ifactory;
ifactory = gtk_item_factory_from_widget(compose->popupmenu);

View file

@ -33,8 +33,8 @@ typedef struct _AttachInfo AttachInfo;
#include "prefs_account.h"
#include "undo.h"
#ifdef USE_PSPELL
#include "gtkspell.h"
#ifdef USE_ASPELL
#include "gtkaspell.h"
#endif
typedef enum
@ -192,9 +192,9 @@ struct _Compose
gint exteditor_readdes;
gint exteditor_tag;
#if USE_PSPELL
/* Pspell spell checker */
GtkPspell *gtkpspell;
#if USE_ASPELL
/* GNU/aspell spell checker */
GtkAspell *gtkaspell;
#endif
/* Priority */

View file

@ -428,8 +428,8 @@ static const gchar *get_compiled_in_features(void)
#if USE_JPILOT
" JPilot"
#endif
#if USE_PSPELL
" pspell"
#if USE_ASPELL
" GNU/aspell"
#endif
"");
}

File diff suppressed because it is too large Load diff

152
src/gtkaspell.h Normal file
View file

@ -0,0 +1,152 @@
/*
Stuphead: (C) 2000,2001 Grigroy Bakunov, Sergey Pinaev
*/
/* gtkaspell - a spell-checking addon for GtkText
* Copyright (c) 2001-2002 Melvin Hadasht
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/*
* Adapted by the Sylpheed Claws Team.
*/
/*
* Adapted for pspell (c) 2001-2002 Melvin Hadasht
* Adapted for GNU/aspell (c) 2002 Melvin Hadasht
*
*/
#ifndef __GTKASPELL_H__
#define __GTKASPELL_H__
#include <gtk/gtkoptionmenu.h>
#include <aspell.h>
#include "gtkstext.h"
#define ASPELL_FASTMODE 1
#define ASPELL_NORMALMODE 2
#define ASPELL_BADSPELLERMODE 3
#define GTKASPELLWORDSIZE 1024
typedef struct _GtkAspellCheckers
{
GSList *checkers;
GSList *dictionary_list;
gchar *error_message;
} GtkAspellCheckers;
typedef struct _Dictionary {
gchar *fullname;
gchar *dictname;
gchar *encoding;
} Dictionary;
typedef struct _GtkAspeller {
Dictionary *dictionary;
gint sug_mode;
AspellConfig *config;
AspellSpeller *checker;
} GtkAspeller;
typedef void (*ContCheckFunc) (gpointer *gtkaspell);
typedef struct _GtkAspell
{
GtkAspeller *gtkaspeller;
GtkAspeller *alternate_speller;
gchar theword[GTKASPELLWORDSIZE];
gint start_pos;
gint end_pos;
gint orig_pos;
gint end_check_pos;
gboolean misspelled;
gboolean check_while_typing;
gboolean use_alternate;
ContCheckFunc continue_check;
GtkWidget *config_menu;
GtkWidget *popup_config_menu;
GtkWidget *sug_menu;
GtkWidget *replace_entry;
gint default_sug_mode;
gint max_sug;
GList *suggestions_list;
GtkSText *gtktext;
GdkColor highlight;
} GtkAspell;
typedef AspellConfig GtkAspellConfig;
extern GtkAspellCheckers *gtkaspellcheckers;
GtkAspellCheckers* gtkaspell_checkers_new ();
GtkAspellCheckers* gtkaspell_checkers_delete ();
void gtkaspell_checkers_reset_error ();
GtkAspell* gtkaspell_new (const gchar *dictionary,
const gchar *encoding,
gint misspelled_color,
gboolean check_while_typing,
gboolean use_alternate,
GtkSText *gtktext);
void gtkaspell_delete (GtkAspell *gtkaspell);
guchar* gtkaspell_get_dict (GtkAspell *gtkaspell);
guchar* gtkaspell_get_path (GtkAspell *gtkaspell);
gboolean gtkaspell_set_sug_mode (GtkAspell *gtkaspell,
gint themode);
GSList* gtkaspell_get_dictionary_list (const char *aspell_path,
gint refresh);
void gtkaspell_free_dictionary_list (GSList *list);
void gtkaspell_check_forwards_go (GtkAspell *gtkaspell);
void gtkaspell_check_backwards (GtkAspell *gtkaspell);
void gtkaspell_check_all (GtkAspell *gtkaspell);
void gtkaspell_uncheck_all (GtkAspell *gtkaspell);
void gtkaspell_highlight_all (GtkAspell *gtkaspell);
void gtkaspell_populate_submenu (GtkAspell *gtkaspell,
GtkWidget *menuitem);
GtkWidget* gtkaspell_dictionary_option_menu_new
(const gchar *aspell_path);
gchar* gtkaspell_get_dictionary_menu_active_item
(GtkWidget *menu);
GtkWidget* gtkaspell_sugmode_option_menu_new
(gint sugmode);
void gtkaspell_sugmode_option_menu_set
(GtkOptionMenu *optmenu,
gint sugmode);
gint gtkaspell_get_sugmode_from_option_menu
(GtkOptionMenu *optmenu);
#endif /* __GTKASPELL_H__ */

View file

@ -1,138 +0,0 @@
/*
Stuphead: (C) 2000,2001 Grigroy Bakunov, Sergey Pinaev
*/
/* gtkpspell - a spell-checking addon for GtkText
* Copyright (c) 2001-2002 Melvin Hadasht
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/*
* Adapted by the Sylpheed Claws Team.
*/
/*
* Adapted for pspell (c) 2001-2002 Melvin Hadasht
*
*/
#ifndef __GTKPSPELL_H__
#define __GTKPSPELL_H__
#include <gtk/gtkoptionmenu.h>
#include <pspell/pspell.h>
#include "gtkstext.h"
#define PSPELL_FASTMODE 1
#define PSPELL_NORMALMODE 2
#define PSPELL_BADSPELLERMODE 3
#define GTKPSPELLWORDSIZE 1024
typedef struct _GtkPspellCheckers
{
GSList *checkers;
GSList *dictionary_list;
gchar *error_message;
} GtkPspellCheckers;
typedef struct _Dictionary
{
gchar *fullname;
gchar *dictname; /* dictname points into fullname */
gchar *encoding;
} Dictionary;
typedef struct _GtkPspeller
{
Dictionary *dictionary;
gint sug_mode;
gint ispell;
PspellConfig *config;
PspellManager *checker;
} GtkPspeller;
typedef void (*ContCheckFunc) (gpointer *gtkpspell);
typedef struct _GtkPspell
{
GtkPspeller *gtkpspeller;
GtkPspeller *alternate_speller;
gchar theword[GTKPSPELLWORDSIZE];
gint start_pos;
gint end_pos;
gint orig_pos;
gint end_check_pos;
gboolean misspelled;
gboolean check_while_typing;
gboolean use_alternate;
ContCheckFunc continue_check;
GtkWidget *config_menu;
GtkWidget *popup_config_menu;
GtkWidget *sug_menu;
GtkWidget *replace_entry;
gint default_sug_mode;
gint max_sug;
GList *suggestions_list;
GtkSText *gtktext;
GdkColor highlight;
} GtkPspell;
typedef PspellConfig GtkPspellConfig;
extern GtkPspellCheckers *gtkpspellcheckers;
GtkPspellCheckers* gtkpspell_checkers_new (void);
GtkPspellCheckers* gtkpspell_checkers_delete (void);
void gtkpspell_checkers_reset_error (void);
GtkPspell* gtkpspell_new (const gchar *dictionary,
const gchar *encoding,
gint misspelled_color,
gboolean check_while_typing,
gboolean use_alternate,
GtkSText *gtktext);
void gtkpspell_delete (GtkPspell *gtkpspell);
guchar* gtkpspell_get_dict (GtkPspell *gtkpspell);
guchar* gtkpspell_get_path (GtkPspell *gtkpspell);
gboolean gtkpspell_set_sug_mode (GtkPspell *gtkpspell,
gint themode);
GSList* gtkpspell_get_dictionary_list (const char *pspell_path,
gint refresh);
void gtkpspell_free_dictionary_list (GSList *list);
void gtkpspell_check_forwards_go (GtkPspell *gtkpspell);
void gtkpspell_check_backwards (GtkPspell *gtkpspell);
void gtkpspell_check_all (GtkPspell *gtkpspell);
void gtkpspell_uncheck_all (GtkPspell *gtkpspell);
void gtkpspell_highlight_all (GtkPspell *gtkpspell);
void gtkpspell_populate_submenu (GtkPspell *gtkpspell,
GtkWidget *menuitem);
GtkWidget* gtkpspell_dictionary_option_menu_new (const gchar *pspell_path);
gchar* gtkpspell_get_dictionary_menu_active_item(GtkWidget *menu);
GtkWidget* gtkpspell_sugmode_option_menu_new (gint sugmode);
void gtkpspell_sugmode_option_menu_set (GtkOptionMenu *optmenu,
gint sugmode);
gint gtkpspell_get_sugmode_from_option_menu (GtkOptionMenu *optmenu);
#endif /* __GTKPSPELL_H__ */

View file

@ -273,8 +273,8 @@ int main(int argc, char *argv[])
gpgme_register_idle(idle_function_for_gpgme);
#endif
#if USE_PSPELL
gtkpspellcheckers = gtkpspell_checkers_new();
#if USE_ASPELL
gtkaspellcheckers = gtkaspell_checkers_new();
#endif
@ -351,8 +351,8 @@ int main(int argc, char *argv[])
addressbook_destroy();
#if USE_PSPELL
gtkpspell_checkers_delete();
#if USE_ASPELL
gtkaspell_checkers_delete();
#endif
return 0;

View file

@ -56,8 +56,8 @@
#include "stock_pixmap.h"
#include "quote_fmt.h"
#if USE_PSPELL
#include "gtkspell.h"
#if USE_ASPELL
#include "gtkaspell.h"
#endif
PrefsCommon prefs_common;
@ -129,11 +129,11 @@ static struct Compose {
} compose;
/* spelling */
#if USE_PSPELL
#if USE_ASPELL
static struct Spelling {
GtkWidget *checkbtn_enable_pspell;
GtkWidget *entry_pspell_path;
GtkWidget *btn_pspell_path;
GtkWidget *checkbtn_enable_aspell;
GtkWidget *entry_aspell_path;
GtkWidget *btn_aspell_path;
GtkWidget *optmenu_dictionary;
GtkWidget *optmenu_sugmode;
GtkWidget *misspelled_btn;
@ -260,7 +260,7 @@ static void prefs_common_recv_dialog_set_optmenu(PrefParam *pparam);
static void prefs_nextunreadmsgdialog_set_data_from_optmenu(PrefParam *pparam);
static void prefs_nextunreadmsgdialog_set_optmenu(PrefParam *pparam);
#if USE_PSPELL
#if USE_ASPELL
static void prefs_dictionary_set_data_from_optmenu (PrefParam *param);
static void prefs_dictionary_set_optmenu (PrefParam *pparam);
static void prefs_speller_sugmode_set_data_from_optmenu (PrefParam *pparam);
@ -379,17 +379,17 @@ static PrefParam param[] = {
{"smart_wrapping", "TRUE", &prefs_common.smart_wrapping,
P_BOOL, &compose.checkbtn_smart_wrapping,
prefs_set_data_from_toggle, prefs_set_toggle},
#if USE_PSPELL
{"enable_pspell", "TRUE", &prefs_common.enable_pspell,
P_BOOL, &spelling.checkbtn_enable_pspell,
#if USE_ASPELL
{"enable_aspell", "TRUE", &prefs_common.enable_aspell,
P_BOOL, &spelling.checkbtn_enable_aspell,
prefs_set_data_from_toggle, prefs_set_toggle},
{"pspell_path", PSPELL_PATH, &prefs_common.pspell_path,
P_STRING, &spelling.entry_pspell_path,
{"aspell_path", ASPELL_PATH, &prefs_common.aspell_path,
P_STRING, &spelling.entry_aspell_path,
prefs_set_data_from_entry, prefs_set_entry},
{"dictionary", "", &prefs_common.dictionary,
P_STRING, &spelling.optmenu_dictionary,
prefs_dictionary_set_data_from_optmenu, prefs_dictionary_set_optmenu },
{"pspell_sugmode", "1", &prefs_common.pspell_sugmode,
{"aspell_sugmode", "1", &prefs_common.aspell_sugmode,
P_INT, &spelling.optmenu_sugmode,
prefs_speller_sugmode_set_data_from_optmenu, prefs_speller_sugmode_set_optmenu },
{"use_alternate_dict", "FALSE", &prefs_common.use_alternate,
@ -978,7 +978,7 @@ static void prefs_common_create(void)
SET_NOTEBOOK_LABEL(dialog.notebook, _("Send"), page++);
prefs_compose_create();
SET_NOTEBOOK_LABEL(dialog.notebook, _("Compose"), page++);
#if USE_PSPELL
#if USE_ASPELL
prefs_spelling_create();
SET_NOTEBOOK_LABEL(dialog.notebook, _("Spell Checker"), page++);
#endif
@ -1386,7 +1386,7 @@ static void prefs_common_recv_dialog_newmail_notify_toggle_cb(GtkWidget *w, gpoi
gtk_widget_set_sensitive(receive.hbox_newmail_notify, toggled);
}
#if USE_PSPELL
#if USE_ASPELL
static void prefs_dictionary_set_data_from_optmenu(PrefParam *param)
{
gchar *str;
@ -1397,7 +1397,7 @@ static void prefs_dictionary_set_data_from_optmenu(PrefParam *param)
g_return_if_fail(param->widget);
g_return_if_fail(*(param->widget));
dict_fullname = gtkpspell_get_dictionary_menu_active_item
dict_fullname = gtkaspell_get_dictionary_menu_active_item
(gtk_option_menu_get_menu(GTK_OPTION_MENU(*(param->widget))));
str = *((gchar **) param->data);
if (str)
@ -1444,7 +1444,7 @@ static void prefs_speller_sugmode_set_data_from_optmenu(PrefParam *param)
g_return_if_fail(param->widget);
g_return_if_fail(*(param->widget));
sugmode = gtkpspell_get_sugmode_from_option_menu
sugmode = gtkaspell_get_sugmode_from_option_menu
(GTK_OPTION_MENU(*(param->widget)));
*((gint *) param->data) = sugmode;
}
@ -1458,11 +1458,11 @@ static void prefs_speller_sugmode_set_optmenu(PrefParam *pparam)
g_return_if_fail(pparam->data != NULL);
sugmode = *(gint *) pparam->data;
gtkpspell_sugmode_option_menu_set(optmenu, sugmode);
gtkaspell_sugmode_option_menu_set(optmenu, sugmode);
}
static void prefs_spelling_checkbtn_enable_pspell_toggle_cb
static void prefs_spelling_checkbtn_enable_aspell_toggle_cb
(GtkWidget *widget,
gpointer data)
{
@ -1470,40 +1470,40 @@ static void prefs_spelling_checkbtn_enable_pspell_toggle_cb
toggled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
gtk_widget_set_sensitive(spelling.entry_pspell_path, toggled);
gtk_widget_set_sensitive(spelling.entry_aspell_path, toggled);
gtk_widget_set_sensitive(spelling.optmenu_dictionary, toggled);
gtk_widget_set_sensitive(spelling.optmenu_sugmode, toggled);
gtk_widget_set_sensitive(spelling.btn_pspell_path, toggled);
gtk_widget_set_sensitive(spelling.btn_aspell_path, toggled);
gtk_widget_set_sensitive(spelling.misspelled_btn, toggled);
gtk_widget_set_sensitive(spelling.checkbtn_use_alternate, toggled);
gtk_widget_set_sensitive(spelling.checkbtn_check_while_typing, toggled);
}
static void prefs_spelling_btn_pspell_path_clicked_cb(GtkWidget *widget,
static void prefs_spelling_btn_aspell_path_clicked_cb(GtkWidget *widget,
gpointer data)
{
gchar *file_path, *tmp;
GtkWidget *new_menu;
file_path = filesel_select_file(_("Select dictionaries location"),
prefs_common.pspell_path);
prefs_common.aspell_path);
if (file_path == NULL) {
/* don't change */
}
else {
tmp=g_dirname(file_path);
if (prefs_common.pspell_path)
g_free(prefs_common.pspell_path);
prefs_common.pspell_path = g_strdup_printf("%s%s",tmp,
if (prefs_common.aspell_path)
g_free(prefs_common.aspell_path);
prefs_common.aspell_path = g_strdup_printf("%s%s",tmp,
G_DIR_SEPARATOR_S);
new_menu = gtkpspell_dictionary_option_menu_new(prefs_common.pspell_path);
new_menu = gtkaspell_dictionary_option_menu_new(prefs_common.aspell_path);
gtk_option_menu_set_menu(GTK_OPTION_MENU(spelling.optmenu_dictionary),
new_menu);
gtk_entry_set_text(GTK_ENTRY(spelling.entry_pspell_path),
prefs_common.pspell_path);
gtk_entry_set_text(GTK_ENTRY(spelling.entry_aspell_path),
prefs_common.aspell_path);
/* select first one */
gtk_option_menu_set_history(GTK_OPTION_MENU(
spelling.optmenu_dictionary), 0);
@ -1512,7 +1512,7 @@ static void prefs_spelling_btn_pspell_path_clicked_cb(GtkWidget *widget,
g_free(prefs_common.dictionary);
prefs_common.dictionary =
gtkpspell_get_dictionary_menu_active_item(
gtkaspell_get_dictionary_menu_active_item(
gtk_option_menu_get_menu(
GTK_OPTION_MENU(
spelling.optmenu_dictionary)));
@ -1526,11 +1526,11 @@ static void prefs_spelling_create()
GtkWidget *vbox1;
GtkWidget *frame_spell;
GtkWidget *vbox_spell;
GtkWidget *hbox_pspell_path;
GtkWidget *checkbtn_enable_pspell;
GtkWidget *label_pspell_path;
GtkWidget *entry_pspell_path;
GtkWidget *btn_pspell_path;
GtkWidget *hbox_aspell_path;
GtkWidget *checkbtn_enable_aspell;
GtkWidget *label_aspell_path;
GtkWidget *entry_aspell_path;
GtkWidget *btn_aspell_path;
GtkWidget *spell_table;
GtkWidget *label_dictionary;
GtkWidget *optmenu_dictionary;
@ -1554,11 +1554,11 @@ static void prefs_spelling_create()
gtk_container_add(GTK_CONTAINER(frame_spell), vbox_spell);
gtk_container_set_border_width(GTK_CONTAINER(vbox_spell), 8);
PACK_CHECK_BUTTON(vbox_spell, checkbtn_enable_pspell,
_("Enable spell checker (EXPERIMENTAL)"));
PACK_CHECK_BUTTON(vbox_spell, checkbtn_enable_aspell,
_("Enable spell checker"));
gtk_signal_connect(GTK_OBJECT(checkbtn_enable_pspell), "toggled",
GTK_SIGNAL_FUNC(prefs_spelling_checkbtn_enable_pspell_toggle_cb),
gtk_signal_connect(GTK_OBJECT(checkbtn_enable_aspell), "toggled",
GTK_SIGNAL_FUNC(prefs_spelling_checkbtn_enable_aspell_toggle_cb),
NULL);
/* Check while typing */
@ -1579,31 +1579,31 @@ static void prefs_spelling_create()
gtk_box_pack_start(GTK_BOX(vbox_spell), spell_table, TRUE, TRUE, 0);
label_pspell_path = gtk_label_new (_("Dictionaries path:"));
gtk_misc_set_alignment(GTK_MISC(label_pspell_path), 1.0, 0.5);
gtk_widget_show(label_pspell_path);
gtk_table_attach (GTK_TABLE (spell_table), label_pspell_path, 0, 1, 0,
label_aspell_path = gtk_label_new (_("Dictionaries path:"));
gtk_misc_set_alignment(GTK_MISC(label_aspell_path), 1.0, 0.5);
gtk_widget_show(label_aspell_path);
gtk_table_attach (GTK_TABLE (spell_table), label_aspell_path, 0, 1, 0,
1, GTK_FILL, (GTK_EXPAND | GTK_FILL), 0, 0);
hbox_pspell_path = gtk_hbox_new (FALSE, 8);
gtk_table_attach (GTK_TABLE (spell_table), hbox_pspell_path, 1, 2, 0,
hbox_aspell_path = gtk_hbox_new (FALSE, 8);
gtk_table_attach (GTK_TABLE (spell_table), hbox_aspell_path, 1, 2, 0,
1, GTK_FILL, (GTK_EXPAND | GTK_FILL), 0, 0);
gtk_widget_show(hbox_pspell_path);
gtk_widget_show(hbox_aspell_path);
entry_pspell_path = gtk_entry_new();
gtk_widget_show(entry_pspell_path);
gtk_box_pack_start(GTK_BOX(hbox_pspell_path), entry_pspell_path, TRUE,
entry_aspell_path = gtk_entry_new();
gtk_widget_show(entry_aspell_path);
gtk_box_pack_start(GTK_BOX(hbox_aspell_path), entry_aspell_path, TRUE,
TRUE, 0);
gtk_widget_set_sensitive(entry_pspell_path, prefs_common.enable_pspell);
gtk_widget_set_sensitive(entry_aspell_path, prefs_common.enable_aspell);
btn_pspell_path = gtk_button_new_with_label(" ... ");
gtk_widget_show(btn_pspell_path);
gtk_box_pack_start(GTK_BOX(hbox_pspell_path), btn_pspell_path, FALSE, FALSE, 0);
gtk_widget_set_sensitive(btn_pspell_path, prefs_common.enable_pspell);
btn_aspell_path = gtk_button_new_with_label(" ... ");
gtk_widget_show(btn_aspell_path);
gtk_box_pack_start(GTK_BOX(hbox_aspell_path), btn_aspell_path, FALSE, FALSE, 0);
gtk_widget_set_sensitive(btn_aspell_path, prefs_common.enable_aspell);
gtk_signal_connect(GTK_OBJECT(btn_pspell_path), "clicked",
GTK_SIGNAL_FUNC(prefs_spelling_btn_pspell_path_clicked_cb),
gtk_signal_connect(GTK_OBJECT(btn_aspell_path), "clicked",
GTK_SIGNAL_FUNC(prefs_spelling_btn_aspell_path_clicked_cb),
NULL);
label_dictionary = gtk_label_new(_("Default dictionary:"));
@ -1615,11 +1615,11 @@ static void prefs_spelling_create()
optmenu_dictionary = gtk_option_menu_new();
gtk_widget_show(optmenu_dictionary);
gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu_dictionary),
gtkpspell_dictionary_option_menu_new(
prefs_common.pspell_path));
gtkaspell_dictionary_option_menu_new(
prefs_common.aspell_path));
gtk_table_attach (GTK_TABLE (spell_table), optmenu_dictionary, 1, 2, 1,
2, GTK_FILL, (GTK_EXPAND | GTK_FILL), 0, 0);
gtk_widget_set_sensitive(optmenu_dictionary, prefs_common.enable_pspell);
gtk_widget_set_sensitive(optmenu_dictionary, prefs_common.enable_aspell);
/* Suggestion mode */
sugmode_label = gtk_label_new(_("Default suggestion mode"));
@ -1631,10 +1631,10 @@ static void prefs_spelling_create()
sugmode_optmenu = gtk_option_menu_new();
gtk_widget_show(sugmode_optmenu);
gtk_option_menu_set_menu(GTK_OPTION_MENU(sugmode_optmenu),
gtkpspell_sugmode_option_menu_new(prefs_common.pspell_sugmode));
gtkaspell_sugmode_option_menu_new(prefs_common.aspell_sugmode));
gtk_table_attach(GTK_TABLE(spell_table), sugmode_optmenu, 1, 2, 2, 3,
GTK_FILL, (GTK_EXPAND | GTK_FILL), 0, 0);
gtk_widget_set_sensitive(sugmode_optmenu, prefs_common.enable_pspell);
gtk_widget_set_sensitive(sugmode_optmenu, prefs_common.enable_aspell);
/* Color */
color_label = gtk_label_new(_("Misspelled word color:"));
@ -1652,15 +1652,15 @@ static void prefs_spelling_create()
set_button_bg_color(spelling.misspelled_btn,
prefs_common.misspelled_col);
gtk_widget_set_usize (spelling.misspelled_btn, 30, 20);
gtk_widget_set_sensitive(spelling.misspelled_btn, prefs_common.enable_pspell);
gtk_widget_set_sensitive(spelling.misspelled_btn, prefs_common.enable_aspell);
gtk_signal_connect (GTK_OBJECT (spelling.misspelled_btn), "clicked",
GTK_SIGNAL_FUNC(quote_color_set_dialog), "Misspelled word");
gtk_container_add(GTK_CONTAINER(col_align), spelling.misspelled_btn);
spelling.checkbtn_enable_pspell = checkbtn_enable_pspell;
spelling.entry_pspell_path = entry_pspell_path;
spelling.btn_pspell_path = btn_pspell_path;
spelling.checkbtn_enable_aspell = checkbtn_enable_aspell;
spelling.entry_aspell_path = entry_aspell_path;
spelling.btn_aspell_path = btn_aspell_path;
spelling.optmenu_dictionary = optmenu_dictionary;
spelling.optmenu_sugmode = sugmode_optmenu;
spelling.checkbtn_use_alternate = checkbtn_use_alternate;
@ -3376,7 +3376,7 @@ static void quote_color_set_dialog(GtkWidget *widget, gpointer data)
} else if(g_strcasecmp(type, "TGTFLD") == 0) {
title = _("Pick color for target folder");
rgbvalue = prefs_common.tgt_folder_col;
#if USE_PSPELL
#if USE_ASPELL
} else if(g_strcasecmp(type, "Misspelled word") == 0) {
title = _("Pick color for misspelled word");
rgbvalue = prefs_common.misspelled_col;
@ -3448,7 +3448,7 @@ static void quote_colors_set_dialog_ok(GtkWidget *widget, gpointer data)
prefs_common.tgt_folder_col = rgbvalue;
set_button_bg_color(color_buttons.tgt_folder_btn, rgbvalue);
folderview_set_target_folder_color(prefs_common.tgt_folder_col);
#if USE_PSPELL
#if USE_ASPELL
} else if (g_strcasecmp(type, "Misspelled word") == 0) {
prefs_common.misspelled_col = rgbvalue;
set_button_bg_color(spelling.misspelled_btn, rgbvalue);

View file

@ -96,12 +96,12 @@ struct _PrefsCommon
gboolean block_cursor;
gchar *quote_chars;
#if USE_PSPELL
gboolean enable_pspell;
gchar *pspell_path;
#if USE_ASPELL
gboolean enable_aspell;
gchar *aspell_path;
gchar *dictionary;
gint misspelled_col;
gint pspell_sugmode;
gint aspell_sugmode;
gboolean check_while_typing;
gboolean use_alternate;
#endif