summaryrefslogtreecommitdiff
path: root/linguistic/source/gciterator.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'linguistic/source/gciterator.hxx')
-rw-r--r--linguistic/source/gciterator.hxx57
1 files changed, 33 insertions, 24 deletions
diff --git a/linguistic/source/gciterator.hxx b/linguistic/source/gciterator.hxx
index 954195b422f6..e3745a205692 100644
--- a/linguistic/source/gciterator.hxx
+++ b/linguistic/source/gciterator.hxx
@@ -31,10 +31,11 @@
#ifndef _LINGUISTIC_GRAMMARCHECKINGITERATOR_HXX_
#define _LINGUISTIC_GRAMMARCHECKINGITERATOR_HXX_
+#include <com/sun/star/i18n/XBreakIterator.hpp>
#include <com/sun/star/lang/XComponent.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/lang/XEventListener.hpp>
-#include <com/sun/star/linguistic2/XGrammarCheckingIterator.hpp>
+#include <com/sun/star/linguistic2/XProofreadingIterator.hpp>
#include <com/sun/star/linguistic2/XLinguServiceEventListener.hpp>
#include <com/sun/star/linguistic2/XLinguServiceEventBroadcaster.hpp>
#include <com/sun/star/uno/XComponentContext.hpp>
@@ -43,10 +44,13 @@
#include <cppuhelper/implbase5.hxx>
#include <cppuhelper/weakref.hxx>
#include <osl/mutex.hxx>
+#include <osl/conditn.hxx>
+#include <rtl/instance.hxx>
#include <map>
#include <deque>
+#include "defs.hxx"
//////////////////////////////////////////////////////////////////////
@@ -60,16 +64,16 @@ struct FPEntry
::com::sun::star::uno::WeakReference< ::com::sun::star::text::XFlatParagraph > m_xPara;
// document ID to identify different documents
- sal_Int32 m_nDocId;
+ ::rtl::OUString m_aDocId;
// the starting position to be checked
- sal_Int32 m_nStartIndex;
+ sal_Int32 m_nStartIndex;
// the flag to identify whether the document does automatical grammar checking
- sal_Bool m_bAutomatic;
+ sal_Bool m_bAutomatic;
FPEntry()
- : m_nDocId( 0 )
+ : m_aDocId()
, m_nStartIndex( 0 )
, m_bAutomatic( 0 )
{
@@ -83,12 +87,13 @@ struct FPEntry
class GrammarCheckingIterator:
public cppu::WeakImplHelper5
<
- ::com::sun::star::linguistic2::XGrammarCheckingIterator,
+ ::com::sun::star::linguistic2::XProofreadingIterator,
::com::sun::star::linguistic2::XLinguServiceEventListener,
::com::sun::star::linguistic2::XLinguServiceEventBroadcaster,
::com::sun::star::lang::XComponent,
::com::sun::star::lang::XServiceInfo
- >
+ >,
+ public LinguDispatcher
{
com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory > m_xMSF;
@@ -103,9 +108,8 @@ class GrammarCheckingIterator:
// the flag to end the endless loop
sal_Bool m_bEnd;
- // parameter ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponen > --> the document
- // parameter sal_Int32 --> DocId to indentify the document
- typedef std::map< ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >, sal_Int32 > DocMap_t;
+ // Note that it must be the pointer and not the uno-reference to check if it is the same implementation object
+ typedef std::map< XComponent *, ::rtl::OUString > DocMap_t;
DocMap_t m_aDocIdMap;
// parameter ::rtl::OUString --> implementation name
@@ -118,18 +122,19 @@ class GrammarCheckingIterator:
GCImplNames_t m_aGCImplNamesByLang;
// implname -> UNO reference mapping
- typedef std::map< ::rtl::OUString, ::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XGrammarChecker > > GCReferences_t;
+ typedef std::map< ::rtl::OUString, ::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XProofreader > > GCReferences_t;
GCReferences_t m_aGCReferencesByService;
+ ::rtl::OUString m_aCurCheckedDocId;
sal_Bool m_bGCServicesChecked;
sal_Int32 m_nDocIdCounter;
- sal_Int32 m_nCurCheckedDocId;
sal_Int32 m_nLastEndOfSentencePos;
osl::Condition m_aWakeUpThread;
osl::Condition m_aRequestEndThread;
//! beware of initilization order !
- osl::Mutex m_aMutex;
+ struct MyMutex : public rtl::Static< osl::Mutex, MyMutex > {};
+ //
cppu::OInterfaceContainerHelper m_aEventListeners;
cppu::OInterfaceContainerHelper m_aNotifyListeners;
@@ -137,23 +142,23 @@ class GrammarCheckingIterator:
mutable ::com::sun::star::uno::Reference< ::com::sun::star::util::XChangesBatch > m_xUpdateAccess;
sal_Int32 NextDocId();
- sal_Int32 GetOrCreateDocId( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > &xComp );
+ ::rtl::OUString GetOrCreateDocId( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > &xComp );
void AddEntry(
::com::sun::star::uno::WeakReference< ::com::sun::star::text::XFlatParagraphIterator > xFlatParaIterator,
::com::sun::star::uno::WeakReference< ::com::sun::star::text::XFlatParagraph > xFlatPara,
- sal_Int32 nDocId, sal_Int32 nStartIndex, sal_Bool bAutomatic );
+ const ::rtl::OUString &rDocId, sal_Int32 nStartIndex, sal_Bool bAutomatic );
- void ProcessResult( const ::com::sun::star::linguistic2::GrammarCheckingResult &rRes, sal_Int32 nSentenceStartPos,
+ void ProcessResult( const ::com::sun::star::linguistic2::ProofreadingResult &rRes,
const ::com::sun::star::uno::Reference< ::com::sun::star::text::XFlatParagraphIterator > &rxFlatParagraphIterator,
bool bIsAutomaticChecking );
sal_Int32 GetSuggestedEndOfSentence( const ::rtl::OUString &rText, sal_Int32 nSentenceStartPos, const ::com::sun::star::lang::Locale &rLocale );
-// void GetConfiguredGCSvcs_Impl();
- void GetMatchingGCSvcs_Impl();
+ void GetConfiguredGCSvcs_Impl();
+// void GetMatchingGCSvcs_Impl();
// void GetAvailableGCSvcs_Impl();
- ::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XGrammarChecker > GetGrammarChecker( const ::com::sun::star::lang::Locale & rLocale );
+ ::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XProofreader > GetGrammarChecker( const ::com::sun::star::lang::Locale & rLocale );
::com::sun::star::uno::Reference< ::com::sun::star::util::XChangesBatch > GetUpdateAccess() const;
@@ -168,11 +173,11 @@ public:
explicit GrammarCheckingIterator( const com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory > & rxMgr );
virtual ~GrammarCheckingIterator();
- // XGrammarCheckingIterator
- virtual void SAL_CALL startGrammarChecking( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xDoc, const ::com::sun::star::uno::Reference< ::com::sun::star::text::XFlatParagraphIteratorProvider >& xIteratorProvider, ::sal_Bool bAutomatic ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::linguistic2::GrammarCheckingResult SAL_CALL checkGrammarAtPos( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xDoc, const ::com::sun::star::uno::Reference< ::com::sun::star::text::XFlatParagraph >& xFlatPara, const ::rtl::OUString& aText, const ::com::sun::star::lang::Locale& aLocale, ::sal_Int32 nStartOfSentencePos, ::sal_Int32 nSuggestedEndOfSentencePos, ::sal_Int32 nErrorPosInPara ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual ::sal_Int32 SAL_CALL getEndOfSentence( const ::com::sun::star::uno::Reference< ::com::sun::star::text::XFlatParagraph >& xFlatPara, ::sal_Int32 nSentenceStartPos ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual ::sal_Bool SAL_CALL isGrammarChecking( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xDoc, ::sal_Bool bAutomatic ) throw (::com::sun::star::uno::RuntimeException);
+ // XProofreadingIterator
+ virtual void SAL_CALL startProofreading( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xDocument, const ::com::sun::star::uno::Reference< ::com::sun::star::text::XFlatParagraphIteratorProvider >& xIteratorProvider ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::linguistic2::ProofreadingResult SAL_CALL checkSentenceAtPosition( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xDocument, const ::com::sun::star::uno::Reference< ::com::sun::star::text::XFlatParagraph >& xFlatParagraph, const ::rtl::OUString& aText, const ::com::sun::star::lang::Locale& aLocale, ::sal_Int32 nStartOfSentencePosition, ::sal_Int32 nSuggestedBehindEndOfSentencePosition, ::sal_Int32 nErrorPositionInParagraph ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL resetIgnoreRules( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::sal_Bool SAL_CALL isProofreading( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xDocument ) throw (::com::sun::star::uno::RuntimeException);
// XLinguServiceEventListener
virtual void SAL_CALL processLinguServiceEvent( const ::com::sun::star::linguistic2::LinguServiceEvent& aLngSvcEvent ) throw (::com::sun::star::uno::RuntimeException);
@@ -194,6 +199,10 @@ public:
virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException);
+ // LinguDispatcher
+ virtual void SetServiceList( const ::com::sun::star::lang::Locale &rLocale, const ::com::sun::star::uno::Sequence< rtl::OUString > &rSvcImplNames );
+ virtual ::com::sun::star::uno::Sequence< rtl::OUString > GetServiceList( const ::com::sun::star::lang::Locale &rLocale ) const;
+ virtual DspType GetDspType() const;
};