summaryrefslogtreecommitdiff
path: root/editeng/inc/editeng/svxacorr.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'editeng/inc/editeng/svxacorr.hxx')
-rw-r--r--editeng/inc/editeng/svxacorr.hxx403
1 files changed, 0 insertions, 403 deletions
diff --git a/editeng/inc/editeng/svxacorr.hxx b/editeng/inc/editeng/svxacorr.hxx
deleted file mode 100644
index 3f2ae90c56..0000000000
--- a/editeng/inc/editeng/svxacorr.hxx
+++ /dev/null
@@ -1,403 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _MySVXACORR_HXX
-#define _MySVXACORR_HXX
-
-#include <com/sun/star/embed/XStorage.hpp>
-#include <tools/rtti.hxx>
-#include <svl/svarray.hxx>
-#include <i18npool/lang.h>
-#include <tools/time.hxx>
-#include <tools/date.hxx>
-#include <tools/string.hxx>
-#include <editeng/swafopt.hxx>
-#include "editeng/editengdllapi.h"
-
-class CharClass;
-class SfxPoolItem;
-class SvxAutoCorrect;
-class SvStringsISortDtor;
-class SfxObjectShell;
-class SvxAutoCorrLanguageTable_Impl;
-class SvxAutoCorrLastFileAskTable_Impl;
-class SotStorageRef;
-class SotStorage;
-class Window;
-
-// Auto correct flags
-const long CptlSttSntnc = 0x00000001; // Capital letters at the beginning of a sentence
-const long CptlSttWrd = 0x00000002; // not two Capital letters at the beginning of a word
-const long AddNonBrkSpace = 0x00000004; // Add non breaking space before :;?!
-const long ChgOrdinalNumber = 0x00000008; // Ordinal-Number 1st, 2nd,..
-const long ChgToEnEmDash = 0x00000010; // - -> Endash/Emdash
-const long ChgWeightUnderl = 0x00000020; // * -> Bold, _ -> Underscore
-const long SetINetAttr = 0x00000040; // Set INetAttribut
-const long Autocorrect = 0x00000080; // Call AutoCorrect
-const long ChgQuotes = 0x00000100; // replace double quotes
-const long SaveWordCplSttLst= 0x00000200; // Save Auto correction of Capital letter at beginning of sentence.
-const long SaveWordWrdSttLst= 0x00000400; // Save Auto correction of 2 Capital letter at beginning of word.
-const long IgnoreDoubleSpace= 0x00000800; // Ignore 2 Spaces
-const long ChgSglQuotes = 0x00001000; // Replace simple quotes
-const long CorrectCapsLock = 0x00002000; // Correct accidental use of cAPS LOCK key
-
-const long ChgWordLstLoad = 0x20000000; // Replacement list loaded
-const long CplSttLstLoad = 0x40000000; // Exception list for Capital letters Start loaded
-const long WrdSttLstLoad = 0x80000000; // Exception list for Word Start loaded
-
-// TODO: handle unicodes > U+FFFF and check users of this class
-
-// only a mapping class
-class EDITENG_DLLPUBLIC SvxAutoCorrDoc
-{
-public:
- SvxAutoCorrDoc() {}
- virtual ~SvxAutoCorrDoc();
-
- virtual sal_Bool Delete( xub_StrLen nStt, xub_StrLen nEnd ) = 0;
- virtual sal_Bool Insert( xub_StrLen nPos, const String& rTxt ) = 0;
- virtual sal_Bool Replace( xub_StrLen nPos, const String& rTxt ) = 0;
- virtual sal_Bool ReplaceRange( xub_StrLen nPos, xub_StrLen nLen, const String& rTxt ) = 0;
-
- virtual sal_Bool SetAttr( xub_StrLen nStt, xub_StrLen nEnd, sal_uInt16 nSlotId,
- SfxPoolItem& ) = 0;
-
- virtual sal_Bool SetINetAttr( xub_StrLen nStt, xub_StrLen nEnd, const String& rURL ) = 0;
-
- // Return the text of a previous paragraph. This must not be empty!
- // If no paragraph exits or just an empty one, then return 0.
- // The flag indicates:
- // TRUE: before the normal insertion position (TRUE)
- // FALSE: in which the corrected word was inserted.
- // (Does not to have to be the same paragraph !!!!)
- virtual const String* GetPrevPara( sal_Bool bAtNormalPos ) = 0;
-
- virtual sal_Bool ChgAutoCorrWord( xub_StrLen& rSttPos, xub_StrLen nEndPos,
- SvxAutoCorrect& rACorrect,
- const String** ppPara ) = 0;
- // Is called after the change of the signs by the functions
- // - FnCptlSttWrd
- // - FnCptlSttSntnc
- // As an option, the words can then be inserted into the exception lists.
- virtual void SaveCpltSttWord( sal_uLong nFlag, xub_StrLen nPos,
- const String& rExceptWord,
- sal_Unicode cChar );
-
- // which language at the position?
- virtual LanguageType GetLanguage( xub_StrLen nPos, sal_Bool bPrevPara = sal_False ) const;
-};
-
-
-class EDITENG_DLLPUBLIC SvxAutocorrWord
-{
- String sShort, sLong;
- sal_Bool bIsTxtOnly; // Is pure ASCII - Text
-public:
- SvxAutocorrWord( const String& rS, const String& rL, sal_Bool bFlag = sal_True )
- : sShort( rS ), sLong( rL ), bIsTxtOnly( bFlag )
- {}
-
- const String& GetShort() const { return sShort; }
- const String& GetLong() const { return sLong; }
- sal_Bool IsTextOnly() const { return bIsTxtOnly; }
-};
-
-typedef SvxAutocorrWord* SvxAutocorrWordPtr;
-SV_DECL_PTRARR_SORT_DEL_VISIBILITY( SvxAutocorrWordList, SvxAutocorrWordPtr, 10, 10 , EDITENG_DLLPUBLIC)
-
-class EDITENG_DLLPUBLIC SvxAutoCorrectLanguageLists
-{
- String sShareAutoCorrFile, sUserAutoCorrFile;
- // If the AutoCorr file is newer
- Date aModifiedDate;
- Time aModifiedTime, aLastCheckTime;
-
- LanguageType eLanguage; //LANGUAGE_DONTKNOW use for all languages
- SvStringsISortDtor* pCplStt_ExcptLst;
- SvStringsISortDtor* pWrdStt_ExcptLst;
- SvxAutocorrWordList* pAutocorr_List;
- SvxAutoCorrect& rAutoCorrect;
-
- long nFlags;
-
- sal_Bool IsFileChanged_Imp();
- void LoadXMLExceptList_Imp( SvStringsISortDtor*& rpLst,
- const sal_Char* pStrmName,
- SotStorageRef& rStg);
- void SaveExceptList_Imp( const SvStringsISortDtor& rLst,
- const sal_Char* pStrmName,
- SotStorageRef& rStg,
- sal_Bool bConvert = sal_False);
-
- sal_Bool MakeBlocklist_Imp( SotStorage& rStg );
- void RemoveStream_Imp( const String& rName );
- void MakeUserStorage_Impl();
-
-public:
- SvxAutoCorrectLanguageLists( SvxAutoCorrect& rParent,
- const String& rShareAutoCorrectFile,
- const String& rUserAutoCorrectFile,
- LanguageType eLang);
- ~SvxAutoCorrectLanguageLists();
-
- // Load, Set, Get - the replacement list
- SvxAutocorrWordList* LoadAutocorrWordList();
- void SetAutocorrWordList( SvxAutocorrWordList* pList );
- const SvxAutocorrWordList* GetAutocorrWordList();
-
- // Load, Set, Get - the exception list for Capital letter at the
- // beginning of a sentence
- SvStringsISortDtor* LoadCplSttExceptList();
- void SaveCplSttExceptList();
- void SetCplSttExceptList( SvStringsISortDtor* pList );
- SvStringsISortDtor* GetCplSttExceptList();
- sal_Bool AddToCplSttExceptList(const String& rNew);
-
- // Load, Set, Get the exception list for 2 Capital letters at the
- // begining of a word.
- SvStringsISortDtor* LoadWrdSttExceptList();
- void SaveWrdSttExceptList();
- void SetWrdSttExceptList( SvStringsISortDtor* pList );
- SvStringsISortDtor* GetWrdSttExceptList();
- sal_Bool AddToWrdSttExceptList(const String& rNew);
-
- // Save word substitutions:
- // Store these directly in the storage. The word list is updated
- // accordingly!
- // - pure Text
- sal_Bool PutText( const String& rShort, const String& rLong );
- // - Text with attribution (only the SWG - SWG format!)
- sal_Bool PutText( const String& rShort, SfxObjectShell& );
- // - Deleting an entry
- sal_Bool DeleteText( const String& rShort );
-};
-
-
-class EDITENG_DLLPUBLIC SvxAutoCorrect
-{
- friend class SvxAutoCorrectLanguageLists;
-
- String sShareAutoCorrFile, sUserAutoCorrFile;
-
- SvxSwAutoFmtFlags aSwFlags; // StarWriter AutoFormat Flags
-
- // all languages in a table
- SvxAutoCorrLanguageTable_Impl* pLangTable;
- SvxAutoCorrLastFileAskTable_Impl* pLastFileTable;
- CharClass* pCharClass;
-
- bool bRunNext;
-
- LanguageType eCharClassLang;
-
- long nFlags;
- sal_Unicode cStartDQuote, cEndDQuote, cStartSQuote, cEndSQuote,
- cEmDash, cEnDash;
-
-
- // private methods
- SvxAutoCorrectLanguageLists& _GetLanguageList( LanguageType eLang );
-
- void _GetCharClass( LanguageType eLang );
-
-protected:
- // - Text with attribution (only the SWG - SWG format!)
- // rShort is the stream name - encrypted!
- virtual sal_Bool PutText( const com::sun::star::uno::Reference < com::sun::star::embed::XStorage >& rStg, const String& rFileName, const String& rShort, SfxObjectShell& ,
- String& );
-
- // required language in the table add if possible only when the file exists
- sal_Bool CreateLanguageFile(LanguageType eLang, sal_Bool bNewFile = sal_True);
- // - Return the replacement text (only for SWG format, all others can be
- // taken from the word list!)
- // rShort is the stream name - encrypted!
-public:
-
- sal_Unicode GetQuote( sal_Unicode cInsChar, sal_Bool bSttQuote,
- LanguageType eLang ) const;
- virtual sal_Bool GetLongText( const com::sun::star::uno::Reference < com::sun::star::embed::XStorage >& rStg, const String& rFileName, const String& rShort, String& rLong );
-
- TYPEINFO();
-
- SvxAutoCorrect( const String& rShareAutocorrFile,
- const String& rUserAutocorrFile );
- SvxAutoCorrect( const SvxAutoCorrect& );
- virtual ~SvxAutoCorrect();
-
- // Execute an AutoCorrect.
- // Returns what has been executed, according to the above flags
- sal_uLong AutoCorrect( SvxAutoCorrDoc& rDoc, const String& rTxt,
- xub_StrLen nPos, sal_Unicode cInsChar, sal_Bool bInsert, Window* pFrameWin = NULL );
-
- // Return for the autotext expansion the previous word,
- // AutoCorrect - corresponding algorithm
- sal_Bool GetPrevAutoCorrWord( SvxAutoCorrDoc& rDoc, const String& rTxt,
- xub_StrLen nPos, String& rWord ) const;
-
- // Search for or or the words in the replacement table.
- // rText - check in this text the words of the list
- // rStt - the detected starting position
- // nEnd - to check position - as of this item forward
- // rLang - Input: in which language is searched
- // Output: in which "language list" was it found
- const SvxAutocorrWord* SearchWordsInList( const String& rTxt,
- xub_StrLen& rStt, xub_StrLen nEndPos,
- SvxAutoCorrDoc& rDoc,
- LanguageType& rLang );
-
- // Query/Set the Character for the Quote substitution
- sal_Unicode GetStartSingleQuote() const { return cStartSQuote; }
- sal_Unicode GetEndSingleQuote() const { return cEndSQuote; }
- sal_Unicode GetStartDoubleQuote() const { return cStartDQuote; }
- sal_Unicode GetEndDoubleQuote() const { return cEndDQuote; }
-
- void SetStartSingleQuote( const sal_Unicode cStart ) { cStartSQuote = cStart; }
- void SetEndSingleQuote( const sal_Unicode cEnd ) { cEndSQuote = cEnd; }
- void SetStartDoubleQuote( const sal_Unicode cStart ) { cStartDQuote = cStart; }
- void SetEndDoubleQuote( const sal_Unicode cEnd ) { cEndDQuote = cEnd; }
-
- String GetQuote( SvxAutoCorrDoc& rDoc, xub_StrLen nInsPos,
- sal_Unicode cInsChar, sal_Bool bSttQuote );
- void InsertQuote( SvxAutoCorrDoc& rDoc, xub_StrLen nInsPos,
- sal_Unicode cInsChar, sal_Bool bSttQuote, sal_Bool bIns );
-
- // Query/Set the name of the AutoCorrect file
- // the default is "autocorr.dat"
- String GetAutoCorrFileName( LanguageType eLang = LANGUAGE_SYSTEM,
- sal_Bool bNewFile = sal_False,
- sal_Bool bTstUserExist = sal_False ) const;
- void SetUserAutoCorrFileName( const String& rNew );
- void SetShareAutoCorrFileName( const String& rNew );
-
- // Query/Set the current settings of AutoCorrect
- long GetFlags() const { return nFlags; }
- inline SvxSwAutoFmtFlags& GetSwFlags() { return aSwFlags;}
- sal_Bool IsAutoCorrFlag( long nFlag ) const
- { return nFlags & nFlag ? sal_True : sal_False; }
- void SetAutoCorrFlag( long nFlag, sal_Bool bOn = sal_True );
-
- // Load, Set, Get - the replacement list
- SvxAutocorrWordList* LoadAutocorrWordList(
- LanguageType eLang = LANGUAGE_SYSTEM )
- { return _GetLanguageList( eLang ).LoadAutocorrWordList(); }
- const SvxAutocorrWordList* GetAutocorrWordList(
- LanguageType eLang = LANGUAGE_SYSTEM )
- { return _GetLanguageList( eLang ).GetAutocorrWordList(); }
-
- // Save word substitutions:
- // Save these directly in the storage. The word list is updated
- // accordingly!
- // - pure Text
- sal_Bool PutText( const String& rShort, const String& rLong, LanguageType eLang = LANGUAGE_SYSTEM );
- // - Text with attribution (only in the SWG - SWG format!)
- sal_Bool PutText( const String& rShort, SfxObjectShell& rShell,
- LanguageType eLang = LANGUAGE_SYSTEM )
- { return _GetLanguageList( eLang ).PutText(rShort, rShell ); }
-
- // - Delete a entry
- sal_Bool DeleteText( const String& rShort, LanguageType eLang = LANGUAGE_SYSTEM);
-
- // Load, Set, Get - the exception list for capital letters at the
- // beginning of a sentence
- void SaveCplSttExceptList( LanguageType eLang = LANGUAGE_SYSTEM );
- SvStringsISortDtor* LoadCplSttExceptList(
- LanguageType eLang = LANGUAGE_SYSTEM)
- { return _GetLanguageList( eLang ).LoadCplSttExceptList(); }
- const SvStringsISortDtor* GetCplSttExceptList(
- LanguageType eLang = LANGUAGE_SYSTEM )
- { return _GetLanguageList( eLang ).GetCplSttExceptList(); }
-
- // Adds a single word. The list will be immediately written to the file!
- sal_Bool AddCplSttException( const String& rNew,
- LanguageType eLang = LANGUAGE_SYSTEM );
-
- // Load, Set, Get the exception list for 2 Capital letters at the
- // beginning of a word.
- void SaveWrdSttExceptList( LanguageType eLang = LANGUAGE_SYSTEM );
- SvStringsISortDtor* LoadWrdSttExceptList(
- LanguageType eLang = LANGUAGE_SYSTEM )
- { return _GetLanguageList( eLang ).LoadWrdSttExceptList(); }
- const SvStringsISortDtor* GetWrdSttExceptList(
- LanguageType eLang = LANGUAGE_SYSTEM )
- { return _GetLanguageList( eLang ).GetWrdSttExceptList(); }
- // Adds a single word. The list will be immediately written to the file!
- sal_Bool AddWrtSttException( const String& rNew, LanguageType eLang = LANGUAGE_SYSTEM);
-
- // Search through the Languages for the entry
- sal_Bool FindInWrdSttExceptList( LanguageType eLang, const String& sWord );
- sal_Bool FindInCplSttExceptList( LanguageType eLang, const String& sWord,
- sal_Bool bAbbreviation = sal_False);
-
- // Methods for the auto-correction
- sal_Bool FnCptlSttWrd( SvxAutoCorrDoc&, const String&,
- xub_StrLen nSttPos, xub_StrLen nEndPos,
- LanguageType eLang = LANGUAGE_SYSTEM );
- sal_Bool FnChgOrdinalNumber( SvxAutoCorrDoc&, const String&,
- xub_StrLen nSttPos, xub_StrLen nEndPos,
- LanguageType eLang = LANGUAGE_SYSTEM );
- sal_Bool FnChgToEnEmDash( SvxAutoCorrDoc&, const String&,
- xub_StrLen nSttPos, xub_StrLen nEndPos,
- LanguageType eLang = LANGUAGE_SYSTEM );
- sal_Bool FnAddNonBrkSpace( SvxAutoCorrDoc&, const String&,
- xub_StrLen nSttPos, xub_StrLen nEndPos,
- LanguageType eLang = LANGUAGE_SYSTEM );
- sal_Bool FnSetINetAttr( SvxAutoCorrDoc&, const String&,
- xub_StrLen nSttPos, xub_StrLen nEndPos,
- LanguageType eLang = LANGUAGE_SYSTEM );
- sal_Bool FnChgWeightUnderl( SvxAutoCorrDoc&, const String&,
- xub_StrLen nSttPos, xub_StrLen nEndPos,
- LanguageType eLang = LANGUAGE_SYSTEM );
- sal_Bool FnCptlSttSntnc( SvxAutoCorrDoc&, const String&, sal_Bool bNormalPos,
- xub_StrLen nSttPos, xub_StrLen nEndPos,
- LanguageType eLang = LANGUAGE_SYSTEM);
- bool FnCorrectCapsLock( SvxAutoCorrDoc&, const String&,
- xub_StrLen nSttPos, xub_StrLen nEndPos,
- LanguageType eLang = LANGUAGE_SYSTEM );
-
- bool HasRunNext() { return bRunNext; }
-
- static long GetDefaultFlags();
-
-// returns sal_True for charcters where the function
-// 'SvxAutoCorrect::AutoCorrect' should be called.
-// (used to avoid occasional 'collisions' with (Thai) input-sequence-checking)
- static sal_Bool IsAutoCorrectChar( sal_Unicode cChar );
-
- sal_Bool NeedsHardspaceAutocorr( sal_Unicode cChar );
-
- CharClass& GetCharClass( LanguageType eLang )
- {
- if( !pCharClass || eLang != eCharClassLang )
- _GetCharClass( eLang );
- return *pCharClass;
- }
-};
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */