*
*/
-#ifndef __GTKASPELL_H__
-#define __GTKASPELL_H__
+#ifndef __GTKENCHANT_H__
+#define __GTKENCHANT_H__
#ifdef HAVE_CONFIG_H
-# include "config.h"
+#include "claws-features.h"
#endif
-#ifdef USE_ASPELL
+#ifdef USE_ENCHANT
+
+#include <gtk/gtk.h>
+#include <enchant/enchant.h>
+
+#define GTKASPELLWORDSIZE 1024
+
+typedef struct _Dictionary {
+ gchar *fullname;
+ gchar *dictname;
+} Dictionary;
+
+typedef struct _GtkAspeller {
+ Dictionary *dictionary;
+ EnchantBroker *broker;
+ EnchantDict *speller;
+} GtkAspeller;
+
+typedef void (*ContCheckFunc) (gpointer *gtkaspell);
+
+struct _WidgetContext
+{
+ void (*set_position)(gpointer data, gint pos);
+ void (*set_menu_pos)(GtkMenu *menu, gint *x, gint *y,
+ gboolean *push_in, gpointer user_data);
+ gboolean (*find_misspelled)(gpointer data, gboolean forward);
+ gboolean (*check_word)(gpointer data);
+ void (*replace_word)(gpointer data, const gchar *newword);
+ gpointer *data;
+};
+
+typedef struct _WidgetContext WidgetContext;
+
+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 recheck_when_changing_dict;
+ gboolean use_alternate;
+ gboolean use_both_dicts;
+
+ ContCheckFunc continue_check;
+
+ GtkWidget *replace_entry;
+ GtkWidget *parent_window;
+
+ gint max_sug;
+ GList *suggestions_list;
+
+ GtkTextView *gtktext;
+ GdkColor highlight;
+ GtkAccelGroup *accel_group;
+ void (*dict_changed_cb)(void *data);
+ void (*menu_changed_cb)(void *data);
+ void *menu_changed_data;
+
+ WidgetContext ctx;
+};
+
+typedef struct _GtkAspell GtkAspell;
-#include <gtk/gtkoptionmenu.h>
-
-typedef struct _GtkAspell GtkAspell; /* Defined in gtkaspell.c */
void gtkaspell_checkers_init (void);
void gtkaspell_checkers_reset_error (void);
-GtkAspell* gtkaspell_new (const gchar *dictionary_path,
- const gchar *dictionary,
+GtkAspell* gtkaspell_new (const gchar *dictionary,
const gchar *alt_dictionary,
const gchar *encoding,
gint misspelled_color,
gboolean use_both_dicts,
GtkTextView *gtktext,
GtkWindow *parent_win,
+ void (*dict_changed_cd)(void *data),
void (*spell_menu_cb)(void *data),
void *data);
gboolean gtkaspell_change_alt_dict (GtkAspell *gtkaspell,
const gchar* alt_dictionary);
+void gtkaspell_use_alternate_dict (GtkAspell *gtkaspell);
-
-gboolean gtkaspell_set_sug_mode (GtkAspell *gtkaspell,
- gint themode);
-
+gboolean gtkaspell_check_next_prev (GtkAspell *gtkaspell,
+ gboolean forward);
void gtkaspell_check_forwards_go (GtkAspell *gtkaspell);
void gtkaspell_check_backwards (GtkAspell *gtkaspell);
void gtkaspell_check_all (GtkAspell *gtkaspell);
void gtkaspell_highlight_all (GtkAspell *gtkaspell);
-GtkWidget* gtkaspell_dictionary_combo_new (const gchar *aspell_path,
- const gboolean refresh);
+GtkWidget* gtkaspell_dictionary_combo_new (const gboolean refresh);
-GtkTreeModel* gtkaspell_dictionary_store_new (const gchar *aspell_path);
+GtkTreeModel* gtkaspell_dictionary_store_new (void);
GtkTreeModel* gtkaspell_dictionary_store_new_with_refresh
- (const gchar *aspell_path,
- gboolean refresh);
+ (gboolean refresh);
gchar* gtkaspell_get_dictionary_menu_active_item
(GtkComboBox *combo);
(GtkComboBox *combo,
const gchar *dictionary);
-GtkWidget* gtkaspell_sugmode_combo_new (gint sugmode);
-
GSList* gtkaspell_make_config_menu (GtkAspell *gtkaspell);
-gchar *gtkaspell_get_default_dictionary(GtkAspell *gtkaspell);
+gchar* gtkaspell_get_default_dictionary (GtkAspell *gtkaspell);
+
+void gtkaspell_make_context_menu (GtkMenu *menu,
+ GtkAspell *gtkaspell);
+
+int gtkaspell_misspelled_test (GtkAspell *gtkaspell,
+ char *word);
+void gtkaspell_dict_changed (GtkAspell *gtkaspell);
+void gtkaspell_context_set (GtkAspell *gtkaspell);
+void gtkaspell_free_suggestions_list (GtkAspell *gtkaspell);
+void gtkaspell_block_check (GtkAspell *gtkaspell);
+void gtkaspell_unblock_check (GtkAspell *gtkaspell);
+
-#endif /* USE_ASPELL */
-#endif /* __GTKASPELL_H__ */
+#endif /* USE_ENCHANT */
+#endif /* __GTKENCHANT_H__ */