/* 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 3 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, see . */ /* * Adapted by the Claws Mail Team. */ /* * Adapted for pspell (c) 2001-2002 Melvin Hadasht * Adapted for GNU/aspell (c) 2002 Melvin Hadasht * */ #ifndef __GTKENCHANT_H__ #define __GTKENCHANT_H__ #ifdef HAVE_CONFIG_H #include "claws-features.h" #endif #ifdef USE_ENCHANT #include #include #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; GdkRGBA 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; void gtkaspell_checkers_init (void); void gtkaspell_checkers_quit (void); const char * gtkaspell_checkers_strerror (void); void gtkaspell_checkers_reset_error (void); GtkAspell* gtkaspell_new (const gchar *dictionary, const gchar *alt_dictionary, const gchar *encoding, GdkRGBA misspelled_color, gboolean check_while_typing, gboolean recheck_when_changing_dict, gboolean use_alternate, gboolean use_both_dicts, GtkTextView *gtktext, GtkWindow *parent_win, void (*dict_changed_cd)(void *data), void (*spell_menu_cb)(void *data), void *data); void gtkaspell_delete (GtkAspell *gtkaspell); gboolean gtkaspell_change_dict (GtkAspell *gtkaspell, const gchar* dictionary, gboolean always_set_alt_dict); gboolean gtkaspell_change_alt_dict (GtkAspell *gtkaspell, const gchar* alt_dictionary); void gtkaspell_use_alternate_dict (GtkAspell *gtkaspell); 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 gboolean refresh); GtkTreeModel* gtkaspell_dictionary_store_new (void); GtkTreeModel* gtkaspell_dictionary_store_new_with_refresh (gboolean refresh); gchar* gtkaspell_get_dictionary_menu_active_item (GtkComboBox *combo); gint gtkaspell_set_dictionary_menu_active_item (GtkComboBox *combo, const gchar *dictionary); GSList* gtkaspell_make_config_menu (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_ENCHANT */ #endif /* __GTKENCHANT_H__ */