177 lines
4.8 KiB
C
177 lines
4.8 KiB
C
/*
|
|
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 <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
/*
|
|
* 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 <gtk/gtk.h>
|
|
#include <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;
|
|
|
|
|
|
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,
|
|
gint 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__ */
|