Made hunspell into a pluggable factory. This MIGHT cause issues with mythes if hunspell is not available...
Originally committed to SVN as r1108.
This commit is contained in:
parent
b2f2cf2d7f
commit
4f1dc2c59d
14 changed files with 108 additions and 199 deletions
|
@ -40,7 +40,6 @@
|
||||||
#include "dialog_about.h"
|
#include "dialog_about.h"
|
||||||
#include "version.h"
|
#include "version.h"
|
||||||
#include "options.h"
|
#include "options.h"
|
||||||
#include "setup.h"
|
|
||||||
|
|
||||||
|
|
||||||
///////////////
|
///////////////
|
||||||
|
@ -62,21 +61,11 @@ AboutScreen::AboutScreen(wxWindow *parent)
|
||||||
libString += _T("wxWidgets - Copyright (c) 1998-2006 Julian Smart, Robert Roebling et al;\n");
|
libString += _T("wxWidgets - Copyright (c) 1998-2006 Julian Smart, Robert Roebling et al;\n");
|
||||||
libString += _T("wxStyledTextCtrl - Copyright (c) 2004 wxCode;\n");
|
libString += _T("wxStyledTextCtrl - Copyright (c) 2004 wxCode;\n");
|
||||||
libString += _T("Lua - Copyright (c) 1994-2006 Lua.org, PUC-Rio;\n");
|
libString += _T("Lua - Copyright (c) 1994-2006 Lua.org, PUC-Rio;\n");
|
||||||
#if USE_HUNSPELL == 1
|
|
||||||
libString += _T("Hunspell - Copyright (c) Kevin Hendricks;\n");
|
libString += _T("Hunspell - Copyright (c) Kevin Hendricks;\n");
|
||||||
#endif
|
|
||||||
#if USE_PORTAUDIO == 1
|
|
||||||
libString += _T("PortAudio - Copyright (c) 1999-2000 Ross Bencina, Phil Burk;\n");
|
libString += _T("PortAudio - Copyright (c) 1999-2000 Ross Bencina, Phil Burk;\n");
|
||||||
#endif
|
libString += _T("FFmpeg - Copyright (c) 2001 Fabrice Bellard,;\n");
|
||||||
#if USE_LAVC == 1
|
libString += _T("libass - Copyright (c) 2006-2007, Evgeniy Stepanov;\n");
|
||||||
libString += _T("FFmpeg - Copyright (c) ??;\n");
|
|
||||||
#endif
|
|
||||||
#if USE_LIBASS == 1
|
|
||||||
libString += _T("libass - Copyright (c) 2006, Evgeniy Stepanov;\n");
|
|
||||||
#endif
|
|
||||||
#if USE_ASA == 1
|
|
||||||
libString += _T("asa - Copyright (c) 2004-2007, David Lamparter;\n");
|
libString += _T("asa - Copyright (c) 2004-2007, David Lamparter;\n");
|
||||||
#endif
|
|
||||||
libString += _T("MyThes - Copyright (c) 2003 Kevin B. Hendricks, Stratford, Ontario, Canada\n");
|
libString += _T("MyThes - Copyright (c) 2003 Kevin B. Hendricks, Stratford, Ontario, Canada\n");
|
||||||
libString += _T("Matroska Parser and VideoSink - Copyright (c) 2004-2007 Mike Matsnev\n");
|
libString += _T("Matroska Parser and VideoSink - Copyright (c) 2004-2007 Mike Matsnev\n");
|
||||||
|
|
||||||
|
|
|
@ -66,7 +66,7 @@ DialogSpellChecker::DialogSpellChecker(wxFrame *parent)
|
||||||
: wxDialog(parent, -1, _("Spell Checker"), wxDefaultPosition, wxDefaultSize)
|
: wxDialog(parent, -1, _("Spell Checker"), wxDefaultPosition, wxDefaultSize)
|
||||||
{
|
{
|
||||||
// Get spell checker
|
// Get spell checker
|
||||||
spellchecker = SpellChecker::GetSpellChecker();
|
spellchecker = SpellCheckerFactory::GetSpellChecker();
|
||||||
if (!spellchecker) {
|
if (!spellchecker) {
|
||||||
wxMessageBox(_T("No spellchecker available."),_T("Error"),wxICON_ERROR);
|
wxMessageBox(_T("No spellchecker available."),_T("Error"),wxICON_ERROR);
|
||||||
Destroy();
|
Destroy();
|
||||||
|
|
|
@ -234,9 +234,7 @@ void FrameMain::InitToolbar () {
|
||||||
Toolbar->AddTool(Menu_Tools_Fonts_Collector,_("Fonts Collector"),wxBITMAP(font_collector_button),_("Open Fonts Collector"));
|
Toolbar->AddTool(Menu_Tools_Fonts_Collector,_("Fonts Collector"),wxBITMAP(font_collector_button),_("Open Fonts Collector"));
|
||||||
Toolbar->AddTool(Menu_Tools_Resample,_("Resample"),wxBITMAP(resample_toolbutton),_("Resample Script Resolution"));
|
Toolbar->AddTool(Menu_Tools_Resample,_("Resample"),wxBITMAP(resample_toolbutton),_("Resample Script Resolution"));
|
||||||
Toolbar->AddTool(Menu_Tools_Timing_Processor,_("Timing Post-Processor"),wxBITMAP(timing_processor_toolbutton),_("Open Timing Post-processor dialog"));
|
Toolbar->AddTool(Menu_Tools_Timing_Processor,_("Timing Post-Processor"),wxBITMAP(timing_processor_toolbutton),_("Open Timing Post-processor dialog"));
|
||||||
#if USE_HUNSPELL == 1
|
|
||||||
Toolbar->AddTool(Menu_Tools_SpellCheck,_("Spell Checker"),wxBITMAP(spellcheck_toolbutton),_("Open Spell checker"));
|
Toolbar->AddTool(Menu_Tools_SpellCheck,_("Spell Checker"),wxBITMAP(spellcheck_toolbutton),_("Open Spell checker"));
|
||||||
#endif
|
|
||||||
Toolbar->AddSeparator();
|
Toolbar->AddSeparator();
|
||||||
|
|
||||||
// Options
|
// Options
|
||||||
|
@ -332,9 +330,7 @@ void FrameMain::InitMenu() {
|
||||||
AppendBitmapMenuItem (subtitlesMenu,Menu_Tools_Translation, _("&Translation Assistant..."),_("Open translation assistant"), wxBITMAP(translation_toolbutton));
|
AppendBitmapMenuItem (subtitlesMenu,Menu_Tools_Translation, _("&Translation Assistant..."),_("Open translation assistant"), wxBITMAP(translation_toolbutton));
|
||||||
AppendBitmapMenuItem (subtitlesMenu,Menu_Tools_Resample,_("Resample resolution..."), _("Changes resolution and modifies subtitles to conform to change"), wxBITMAP(resample_toolbutton));
|
AppendBitmapMenuItem (subtitlesMenu,Menu_Tools_Resample,_("Resample resolution..."), _("Changes resolution and modifies subtitles to conform to change"), wxBITMAP(resample_toolbutton));
|
||||||
AppendBitmapMenuItem (subtitlesMenu,Menu_Tools_Fonts_Collector, _("&Fonts Collector..."),_("Open fonts collector"), wxBITMAP(font_collector_button));
|
AppendBitmapMenuItem (subtitlesMenu,Menu_Tools_Fonts_Collector, _("&Fonts Collector..."),_("Open fonts collector"), wxBITMAP(font_collector_button));
|
||||||
#if USE_HUNSPELL == 1
|
|
||||||
AppendBitmapMenuItem (subtitlesMenu,Menu_Tools_SpellCheck, _("Spe&ll Checker..."),_("Open spell checker"), wxBITMAP(spellcheck_toolbutton));
|
AppendBitmapMenuItem (subtitlesMenu,Menu_Tools_SpellCheck, _("Spe&ll Checker..."),_("Open spell checker"), wxBITMAP(spellcheck_toolbutton));
|
||||||
#endif
|
|
||||||
MenuBar->Append(subtitlesMenu, _("&Subtitles"));
|
MenuBar->Append(subtitlesMenu, _("&Subtitles"));
|
||||||
|
|
||||||
// Create timing menu
|
// Create timing menu
|
||||||
|
|
|
@ -38,12 +38,11 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include "setup.h"
|
|
||||||
#include "mythes.hxx"
|
#include "mythes.hxx"
|
||||||
|
|
||||||
// some basic utility routines
|
// some basic utility routines
|
||||||
|
|
||||||
#if USE_HUNSPELL == 0
|
#if 0
|
||||||
// string duplication routine
|
// string duplication routine
|
||||||
char * mystrdup(const char * p)
|
char * mystrdup(const char * p)
|
||||||
{
|
{
|
||||||
|
@ -56,7 +55,17 @@ char * mystrdup(const char * p)
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// remove cross-platform text line end characters
|
||||||
|
void mychomp(char * s)
|
||||||
|
{
|
||||||
|
int k = strlen(s);
|
||||||
|
if ((k > 0) && ((*(s+k-1)=='\r') || (*(s+k-1)=='\n'))) *(s+k-1) = '\0';
|
||||||
|
if ((k > 1) && (*(s+k-2) == '\r')) *(s+k-2) = '\0';
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
char * mystrdup(const char * p);
|
||||||
|
void mychomp(char * s);
|
||||||
|
|
||||||
|
|
||||||
// return index of char in string
|
// return index of char in string
|
||||||
|
@ -68,17 +77,6 @@ int mystr_indexOfChar(const char * d, int c)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// remove cross-platform text line end characters
|
|
||||||
#if USE_HUNSPELL == 0
|
|
||||||
void mychomp(char * s)
|
|
||||||
{
|
|
||||||
int k = strlen(s);
|
|
||||||
if ((k > 0) && ((*(s+k-1)=='\r') || (*(s+k-1)=='\n'))) *(s+k-1) = '\0';
|
|
||||||
if ((k > 1) && (*(s+k-2) == '\r')) *(s+k-2) = '\0';
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
MyThes::MyThes(const char* idxpath, const char * datpath)
|
MyThes::MyThes(const char* idxpath, const char * datpath)
|
||||||
{
|
{
|
||||||
nw = 0;
|
nw = 0;
|
||||||
|
|
|
@ -108,6 +108,7 @@ void OptionsManager::LoadDefaults(bool onlyDefaults) {
|
||||||
|
|
||||||
// Edit Box
|
// Edit Box
|
||||||
SetText(_T("Dictionaries path"),_T("dictionaries"));
|
SetText(_T("Dictionaries path"),_T("dictionaries"));
|
||||||
|
SetText(_T("Spell Checker"),_T("hunspell"));
|
||||||
SetBool(_T("Link time boxes commit"),true);
|
SetBool(_T("Link time boxes commit"),true);
|
||||||
SetModificationType(MOD_EDIT_BOX);
|
SetModificationType(MOD_EDIT_BOX);
|
||||||
SetBool(_T("Call tips enabled"),true);
|
SetBool(_T("Call tips enabled"),true);
|
||||||
|
|
|
@ -93,15 +93,4 @@
|
||||||
#pragma comment(lib, "wsock32.lib")
|
#pragma comment(lib, "wsock32.lib")
|
||||||
|
|
||||||
|
|
||||||
////////////
|
|
||||||
// Hunspell
|
|
||||||
#if USE_HUNSPELL == 1
|
|
||||||
#ifdef __WXDEBUG__
|
|
||||||
#pragma comment(lib,"hunspelld.lib")
|
|
||||||
#else
|
|
||||||
#pragma comment(lib,"hunspell.lib")
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#endif // VisualC
|
#endif // VisualC
|
||||||
|
|
|
@ -42,36 +42,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////
|
|
||||||
// Enable DirectShow Video Provider
|
|
||||||
// Requires: Win32, DirectX SDK
|
|
||||||
#define USE_DIRECTSHOW 0
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////
|
|
||||||
// Enable DirectSound Audio Player
|
|
||||||
// Requires: Win32, DirectX SDK
|
|
||||||
#define USE_DIRECTSOUND 1
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////
|
|
||||||
// Enable PortAudio Audio Player
|
|
||||||
// Requires: PortAudio library
|
|
||||||
#define USE_PORTAUDIO 0
|
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////
|
|
||||||
// Enable Hunspell spellchecker
|
|
||||||
#define USE_HUNSPELL 0
|
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////
|
|
||||||
// Enable LAVC video provider
|
|
||||||
// Requires: FFMPEG library
|
|
||||||
#define USE_LAVC 0
|
|
||||||
|
|
||||||
|
|
||||||
////////////////////////
|
////////////////////////
|
||||||
// Enable PRS Exporting
|
// Enable PRS Exporting
|
||||||
// Requires: wxPNG library
|
// Requires: wxPNG library
|
||||||
|
@ -84,17 +54,7 @@
|
||||||
#define USE_FEXTRACKER 1
|
#define USE_FEXTRACKER 1
|
||||||
|
|
||||||
|
|
||||||
// The following two are Linux-specific, so it would involve changing the makefiles
|
|
||||||
// Therefore, I haven't changed the code to make them work, yet
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////
|
/////////////////
|
||||||
// Enable LibASS
|
// Enable LibASS
|
||||||
// Requires: libass library, GNU?
|
// Requires: libass library
|
||||||
#define USE_LIBASS 0
|
#define USE_LIBASS 0
|
||||||
|
|
||||||
|
|
||||||
//////////////
|
|
||||||
// Enable ASA
|
|
||||||
// Requires: asa library
|
|
||||||
#define USE_ASA 0
|
|
||||||
|
|
|
@ -38,22 +38,35 @@
|
||||||
// Headers
|
// Headers
|
||||||
#include "setup.h"
|
#include "setup.h"
|
||||||
#include "spellchecker.h"
|
#include "spellchecker.h"
|
||||||
#if USE_HUNSPELL == 1
|
#include "options.h"
|
||||||
#include "spellchecker_hunspell.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////
|
/////////////////////
|
||||||
// Get spell checker
|
// Get spell checker
|
||||||
SpellChecker *SpellChecker::GetSpellChecker() {
|
SpellChecker *SpellCheckerFactory::GetSpellChecker() {
|
||||||
// Initialize
|
// List of providers
|
||||||
SpellChecker *check = NULL;
|
wxArrayString list = GetFactoryList(Options.AsText(_T("Spell Checker")));
|
||||||
|
|
||||||
// Try hunspell
|
// None available
|
||||||
#if USE_HUNSPELL == 1
|
if (list.Count() == 0) throw _T("No spell checkers are available.");
|
||||||
check = new HunspellSpellChecker();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Return
|
// Get provider
|
||||||
return check;
|
wxString error;
|
||||||
|
for (unsigned int i=0;i<list.Count();i++) {
|
||||||
|
try {
|
||||||
|
SpellChecker *checker = GetFactory(list[i])->CreateSpellChecker();
|
||||||
|
if (checker) return checker;
|
||||||
}
|
}
|
||||||
|
catch (wxString err) { error += list[i] + _T(" factory: ") + err + _T("\n"); }
|
||||||
|
catch (const wxChar *err) { error += list[i] + _T(" factory: ") + wxString(err) + _T("\n"); }
|
||||||
|
catch (...) { error += list[i] + _T(" factory: Unknown error\n"); }
|
||||||
|
}
|
||||||
|
|
||||||
|
// Failed
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//////////
|
||||||
|
// Static
|
||||||
|
template <class SpellCheckerFactory> std::map<wxString,SpellCheckerFactory*>* AegisubFactory<SpellCheckerFactory>::factories=NULL;
|
||||||
|
|
|
@ -40,14 +40,13 @@
|
||||||
///////////
|
///////////
|
||||||
// Headers
|
// Headers
|
||||||
#include <wx/wxprec.h>
|
#include <wx/wxprec.h>
|
||||||
|
#include "factory.h"
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////
|
///////////////////////////
|
||||||
// Spellchecking interface
|
// Spellchecking interface
|
||||||
class SpellChecker {
|
class SpellChecker {
|
||||||
public:
|
public:
|
||||||
static SpellChecker *GetSpellChecker();
|
|
||||||
|
|
||||||
SpellChecker() {}
|
SpellChecker() {}
|
||||||
virtual ~SpellChecker() {}
|
virtual ~SpellChecker() {}
|
||||||
|
|
||||||
|
@ -60,3 +59,16 @@ public:
|
||||||
virtual wxArrayString GetLanguageList()=0;
|
virtual wxArrayString GetLanguageList()=0;
|
||||||
virtual void SetLanguage(wxString language)=0;
|
virtual void SetLanguage(wxString language)=0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
///////////
|
||||||
|
// Factory
|
||||||
|
class SpellCheckerFactory : public AegisubFactory<SpellCheckerFactory> {
|
||||||
|
protected:
|
||||||
|
virtual SpellChecker *CreateSpellChecker()=0;
|
||||||
|
SpellCheckerFactory(wxString name) { RegisterFactory(name); }
|
||||||
|
|
||||||
|
public:
|
||||||
|
virtual ~SpellCheckerFactory() {}
|
||||||
|
static SpellChecker *GetSpellChecker();
|
||||||
|
};
|
||||||
|
|
|
@ -36,18 +36,63 @@
|
||||||
|
|
||||||
///////////
|
///////////
|
||||||
// Headers
|
// Headers
|
||||||
#include "setup.h"
|
#include "spellchecker.h"
|
||||||
#if USE_HUNSPELL == 1
|
#include "main.h"
|
||||||
|
#include "utils.h"
|
||||||
|
#include "options.h"
|
||||||
#include <hunspell/hunspell.hxx>
|
#include <hunspell/hunspell.hxx>
|
||||||
#include <wx/wxprec.h>
|
#include <wx/wxprec.h>
|
||||||
|
#include <wx/wxprec.h>
|
||||||
#include <wx/dir.h>
|
#include <wx/dir.h>
|
||||||
#include <wx/filename.h>
|
#include <wx/filename.h>
|
||||||
#include <wx/wfstream.h>
|
#include <wx/wfstream.h>
|
||||||
#include <wx/txtstrm.h>
|
#include <wx/txtstrm.h>
|
||||||
#include "spellchecker_hunspell.h"
|
|
||||||
#include "main.h"
|
|
||||||
#include "utils.h"
|
/////////////
|
||||||
#include "options.h"
|
// Libraries
|
||||||
|
#if __VISUALC__ >= 1200
|
||||||
|
#ifdef __WXDEBUG__
|
||||||
|
#pragma comment(lib,"hunspelld.lib")
|
||||||
|
#else
|
||||||
|
#pragma comment(lib,"hunspell.lib")
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////
|
||||||
|
// Hunspell class
|
||||||
|
class HunspellSpellChecker : public SpellChecker {
|
||||||
|
private:
|
||||||
|
Hunspell *hunspell;
|
||||||
|
wxCSConv *conv;
|
||||||
|
wxString affpath;
|
||||||
|
wxString dicpath;
|
||||||
|
|
||||||
|
void Reset();
|
||||||
|
|
||||||
|
public:
|
||||||
|
HunspellSpellChecker();
|
||||||
|
~HunspellSpellChecker();
|
||||||
|
|
||||||
|
void AddWord(wxString word);
|
||||||
|
bool CanAddWord(wxString word);
|
||||||
|
|
||||||
|
bool CheckWord(wxString word);
|
||||||
|
wxArrayString GetSuggestions(wxString word);
|
||||||
|
|
||||||
|
wxArrayString GetLanguageList();
|
||||||
|
void SetLanguage(wxString language);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
///////////
|
||||||
|
// Factory
|
||||||
|
class HunspellSpellCheckerFactory : public SpellCheckerFactory {
|
||||||
|
public:
|
||||||
|
SpellChecker *CreateSpellChecker() { return new HunspellSpellChecker(); }
|
||||||
|
HunspellSpellCheckerFactory() : SpellCheckerFactory(_T("hunspell")) {}
|
||||||
|
} registerHunspell;
|
||||||
|
|
||||||
|
|
||||||
///////////////
|
///////////////
|
||||||
|
@ -234,5 +279,3 @@ void HunspellSpellChecker::SetLanguage(wxString language) {
|
||||||
conv = NULL;
|
conv = NULL;
|
||||||
if (hunspell) conv = new wxCSConv(wxString(hunspell->get_dic_encoding(),wxConvUTF8));
|
if (hunspell) conv = new wxCSConv(wxString(hunspell->get_dic_encoding(),wxConvUTF8));
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -1,76 +0,0 @@
|
||||||
// Copyright (c) 2006, Rodrigo Braz Monteiro
|
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without
|
|
||||||
// modification, are permitted provided that the following conditions are met:
|
|
||||||
//
|
|
||||||
// * Redistributions of source code must retain the above copyright notice,
|
|
||||||
// this list of conditions and the following disclaimer.
|
|
||||||
// * Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
// this list of conditions and the following disclaimer in the documentation
|
|
||||||
// and/or other materials provided with the distribution.
|
|
||||||
// * Neither the name of the Aegisub Group nor the names of its contributors
|
|
||||||
// may be used to endorse or promote products derived from this software
|
|
||||||
// without specific prior written permission.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
// POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
//
|
|
||||||
// -----------------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// AEGISUB
|
|
||||||
//
|
|
||||||
// Website: http://aegisub.cellosoft.com
|
|
||||||
// Contact: mailto:zeratul@cellosoft.com
|
|
||||||
//
|
|
||||||
|
|
||||||
|
|
||||||
///////////
|
|
||||||
// Headers
|
|
||||||
#include "setup.h"
|
|
||||||
#if USE_HUNSPELL == 1
|
|
||||||
#include "spellchecker.h"
|
|
||||||
#include <wx/wxprec.h>
|
|
||||||
|
|
||||||
|
|
||||||
//////////////
|
|
||||||
// Prototypes
|
|
||||||
class Hunspell;
|
|
||||||
|
|
||||||
|
|
||||||
//////////////////
|
|
||||||
// Hunspell class
|
|
||||||
class HunspellSpellChecker : public SpellChecker {
|
|
||||||
private:
|
|
||||||
Hunspell *hunspell;
|
|
||||||
wxCSConv *conv;
|
|
||||||
wxString affpath;
|
|
||||||
wxString dicpath;
|
|
||||||
|
|
||||||
void Reset();
|
|
||||||
|
|
||||||
public:
|
|
||||||
HunspellSpellChecker();
|
|
||||||
~HunspellSpellChecker();
|
|
||||||
|
|
||||||
void AddWord(wxString word);
|
|
||||||
bool CanAddWord(wxString word);
|
|
||||||
|
|
||||||
bool CheckWord(wxString word);
|
|
||||||
wxArrayString GetSuggestions(wxString word);
|
|
||||||
|
|
||||||
wxArrayString GetLanguageList();
|
|
||||||
void SetLanguage(wxString language);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -79,7 +79,6 @@
|
||||||
#include <wx/event.h>
|
#include <wx/event.h>
|
||||||
#include <wx/stc/stc.h>
|
#include <wx/stc/stc.h>
|
||||||
#include <wx/string.h>
|
#include <wx/string.h>
|
||||||
//#include <GL/glew.h>
|
|
||||||
#include <GL/gl.h>
|
#include <GL/gl.h>
|
||||||
#include <GL/glu.h>
|
#include <GL/glu.h>
|
||||||
#include <wx/glcanvas.h>
|
#include <wx/glcanvas.h>
|
||||||
|
@ -92,18 +91,4 @@
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
|
|
||||||
///////////////
|
|
||||||
// DirectSound
|
|
||||||
#if USE_DIRECTSOUND == 1
|
|
||||||
//#include <dsound.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
////////////
|
|
||||||
// Hunspell
|
|
||||||
#if USE_HUNSPELL == 1
|
|
||||||
#include <hunspell/hunspell.hxx>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#endif // C++
|
#endif // C++
|
||||||
|
|
|
@ -69,7 +69,7 @@ SubsTextEditCtrl::SubsTextEditCtrl(wxWindow* parent, wxWindowID id, const wxStri
|
||||||
CmdKeyClear('U',wxSTC_SCMOD_CTRL);
|
CmdKeyClear('U',wxSTC_SCMOD_CTRL);
|
||||||
|
|
||||||
// Set spellchecker
|
// Set spellchecker
|
||||||
spellchecker = SpellChecker::GetSpellChecker();
|
spellchecker = SpellCheckerFactory::GetSpellChecker();
|
||||||
|
|
||||||
// Set thesaurus
|
// Set thesaurus
|
||||||
thesaurus = Thesaurus::GetThesaurus();
|
thesaurus = Thesaurus::GetThesaurus();
|
||||||
|
|
|
@ -185,7 +185,7 @@ void TextFileReader::SetEncodingConfiguration() {
|
||||||
wxString TextFileReader::ReadLineFromFile() {
|
wxString TextFileReader::ReadLineFromFile() {
|
||||||
Open();
|
Open();
|
||||||
wxString wxbuffer;
|
wxString wxbuffer;
|
||||||
int bufAlloc = 1024;
|
size_t bufAlloc = 1024;
|
||||||
wxbuffer.Alloc(bufAlloc);
|
wxbuffer.Alloc(bufAlloc);
|
||||||
#ifdef TEXT_READER_USE_STDIO
|
#ifdef TEXT_READER_USE_STDIO
|
||||||
char buffer[512];
|
char buffer[512];
|
||||||
|
@ -199,7 +199,6 @@ wxString TextFileReader::ReadLineFromFile() {
|
||||||
char charbuffer[3];
|
char charbuffer[3];
|
||||||
charbuffer[2] = 0;
|
charbuffer[2] = 0;
|
||||||
wchar_t ch = 0;
|
wchar_t ch = 0;
|
||||||
int n = 0;
|
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
#ifdef TEXT_READER_USE_STDIO
|
#ifdef TEXT_READER_USE_STDIO
|
||||||
while (ch != L'\n' && !feof(file)) {
|
while (ch != L'\n' && !feof(file)) {
|
||||||
|
|
Loading…
Reference in a new issue