22#include <com/sun/star/i18n/XBreakIterator.hpp>
23#include <com/sun/star/lang/XComponent.hpp>
24#include <com/sun/star/lang/XServiceInfo.hpp>
25#include <com/sun/star/lang/XEventListener.hpp>
26#include <com/sun/star/linguistic2/XProofreadingIterator.hpp>
27#include <com/sun/star/linguistic2/XLinguServiceEventListener.hpp>
28#include <com/sun/star/linguistic2/XLinguServiceEventBroadcaster.hpp>
29#include <com/sun/star/util/XChangesBatch.hpp>
32#include <osl/mutex.hxx>
33#include <osl/conditn.hxx>
34#include <osl/thread.h>
36#include <com/sun/star/uno/Any.hxx>
54 css::uno::Reference< css::text::XFlatParagraph >
m_xPara;
75 public cppu::WeakImplHelper
77 css::linguistic2::XProofreadingIterator,
78 css::linguistic2::XLinguServiceEventListener,
79 css::linguistic2::XLinguServiceEventBroadcaster,
80 css::lang::XComponent,
81 css::lang::XServiceInfo
96 typedef std::map< XComponent *, OUString >
DocMap_t;
105 typedef std::map< OUString, css::uno::Reference< css::linguistic2::XProofreader > >
GCReferences_t;
125 OUString
GetOrCreateDocId(
const css::uno::Reference< css::lang::XComponent > &xComp );
128 const css::uno::Reference< css::text::XFlatParagraphIterator >& xFlatParaIterator,
129 const css::uno::Reference< css::text::XFlatParagraph >& xFlatPara,
130 const OUString &rDocId, sal_Int32 nStartIndex,
bool bAutomatic );
132 void ProcessResult(
const css::linguistic2::ProofreadingResult &rRes,
133 const css::uno::Reference< css::text::XFlatParagraphIterator > &rxFlatParagraphIterator,
134 bool bIsAutomaticChecking );
136 sal_Int32
GetSuggestedEndOfSentence(
const OUString &rText, sal_Int32 nSentenceStartPos,
const css::lang::Locale &rLocale );
139 css::uno::Reference< css::linguistic2::XProofreader >
GetGrammarChecker( css::lang::Locale & rLocale );
141 css::uno::Reference< css::util::XChangesBatch >
const &
GetUpdateAccess()
const;
149 std::pair<OUString, std::optional<OUString>>
160 virtual void SAL_CALL
startProofreading(
const css::uno::Reference< css::uno::XInterface >& xDocument,
const css::uno::Reference< css::text::XFlatParagraphIteratorProvider >& xIteratorProvider )
override;
161 virtual css::linguistic2::ProofreadingResult SAL_CALL
checkSentenceAtPosition(
const css::uno::Reference< css::uno::XInterface >& xDocument,
const css::uno::Reference< css::text::XFlatParagraph >& xFlatParagraph,
const OUString& aText,
const css::lang::Locale& aLocale, ::sal_Int32 nStartOfSentencePosition, ::sal_Int32 nSuggestedBehindEndOfSentencePosition, ::sal_Int32 nErrorPositionInParagraph )
override;
163 virtual sal_Bool SAL_CALL
isProofreading(
const css::uno::Reference< css::uno::XInterface >& xDocument )
override;
173 virtual void SAL_CALL
dispose( )
override;
174 virtual void SAL_CALL
addEventListener(
const css::uno::Reference< css::lang::XEventListener >& xListener )
override;
175 virtual void SAL_CALL
removeEventListener(
const css::uno::Reference< css::lang::XEventListener >& aListener )
override;
178 virtual void SAL_CALL
disposing(
const css::lang::EventObject& Source )
override;
186 virtual void SetServiceList(
const css::lang::Locale &rLocale,
const css::uno::Sequence< OUString > &rSvcImplNames )
override;
187 virtual css::uno::Sequence< OUString >
GetServiceList(
const css::lang::Locale &rLocale )
const override;
198 virtual css::uno::Any SAL_CALL
getValue(
const OUString& aKey)
override;
200 virtual void SAL_CALL
insertValue(
const OUString& aKey,
const css::uno::Any& aValue)
override;
201 virtual ::sal_Int32 SAL_CALL
getCount()
override;
211 std::map<OUString, css::uno::Any>
maMap;
virtual sal_Bool SAL_CALL addLinguServiceEventListener(const css::uno::Reference< css::linguistic2::XLinguServiceEventListener > &xLstnr) override
GrammarCheckingIterator(const GrammarCheckingIterator &)=delete
comphelper::OInterfaceContainerHelper3< css::lang::XEventListener > m_aEventListeners
css::uno::Reference< css::linguistic2::XProofreader > GetGrammarChecker(css::lang::Locale &rLocale)
void GetConfiguredGCSvcs_Impl()
virtual sal_Bool SAL_CALL removeLinguServiceEventListener(const css::uno::Reference< css::linguistic2::XLinguServiceEventListener > &xLstnr) override
FPQueue_t m_aFPEntriesQueue
virtual OUString SAL_CALL getImplementationName() override
std::map< OUString, css::uno::Reference< css::linguistic2::XProofreader > > GCReferences_t
virtual void SAL_CALL dispose() override
virtual sal_Bool SAL_CALL isProofreading(const css::uno::Reference< css::uno::XInterface > &xDocument) override
std::deque< FPEntry > FPQueue_t
GCReferences_t m_aGCReferencesByService
virtual ~GrammarCheckingIterator() override
virtual css::uno::Sequence< OUString > GetServiceList(const css::lang::Locale &rLocale) const override
std::map< OUString, OUString > GCImplNames_t
void AddEntry(const css::uno::Reference< css::text::XFlatParagraphIterator > &xFlatParaIterator, const css::uno::Reference< css::text::XFlatParagraph > &xFlatPara, const OUString &rDocId, sal_Int32 nStartIndex, bool bAutomatic)
virtual void SAL_CALL processLinguServiceEvent(const css::linguistic2::LinguServiceEvent &aLngSvcEvent) override
comphelper::OInterfaceContainerHelper3< css::linguistic2::XLinguServiceEventListener > m_aNotifyListeners
static osl::Mutex & MyMutex()
beware of initialization order!
virtual void SAL_CALL disposing(const css::lang::EventObject &Source) override
std::map< XComponent *, OUString > DocMap_t
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
OUString m_aCurCheckedDocId
virtual void SAL_CALL startProofreading(const css::uno::Reference< css::uno::XInterface > &xDocument, const css::uno::Reference< css::text::XFlatParagraphIteratorProvider > &xIteratorProvider) override
void ProcessResult(const css::linguistic2::ProofreadingResult &rRes, const css::uno::Reference< css::text::XFlatParagraphIterator > &rxFlatParagraphIterator, bool bIsAutomaticChecking)
std::pair< OUString, std::optional< OUString > > getServiceForLocale(const css::lang::Locale &rLocale) const
virtual void SetServiceList(const css::lang::Locale &rLocale, const css::uno::Sequence< OUString > &rSvcImplNames) override
OUString GetOrCreateDocId(const css::uno::Reference< css::lang::XComponent > &xComp)
osl::Condition m_aWakeUpThread
virtual void SAL_CALL removeEventListener(const css::uno::Reference< css::lang::XEventListener > &aListener) override
virtual css::linguistic2::ProofreadingResult SAL_CALL checkSentenceAtPosition(const css::uno::Reference< css::uno::XInterface > &xDocument, const css::uno::Reference< css::text::XFlatParagraph > &xFlatParagraph, const OUString &aText, const css::lang::Locale &aLocale, ::sal_Int32 nStartOfSentencePosition, ::sal_Int32 nSuggestedBehindEndOfSentencePosition, ::sal_Int32 nErrorPositionInParagraph) override
css::uno::Reference< css::util::XChangesBatch > const & GetUpdateAccess() const
GrammarCheckingIterator()
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual void SAL_CALL addEventListener(const css::uno::Reference< css::lang::XEventListener > &xListener) override
css::uno::Reference< css::util::XChangesBatch > m_xUpdateAccess
bool m_bGCServicesChecked
sal_Int32 m_nDocIdCounter
css::uno::Reference< css::i18n::XBreakIterator > m_xBreakIterator
virtual void SAL_CALL resetIgnoreRules() override
GrammarCheckingIterator & operator=(const GrammarCheckingIterator &)=delete
sal_Int32 GetSuggestedEndOfSentence(const OUString &rText, sal_Int32 nSentenceStartPos, const css::lang::Locale &rLocale)
GCImplNames_t m_aGCImplNamesByLang
Implementation of the css::container::XStringKeyMap interface.
virtual css::uno::Any SAL_CALL getValueByIndex(::sal_Int32 nIndex) override
void operator=(LngXStringKeyMap const &)=delete
virtual OUString SAL_CALL getKeyByIndex(::sal_Int32 nIndex) override
virtual sal_Bool SAL_CALL hasValue(const OUString &aKey) override
LngXStringKeyMap(LngXStringKeyMap const &)=delete
virtual css::uno::Any SAL_CALL getValue(const OUString &aKey) override
virtual void SAL_CALL insertValue(const OUString &aKey, const css::uno::Any &aValue) override
virtual ::sal_Int32 SAL_CALL getCount() override
~LngXStringKeyMap() override
std::map< OUString, css::uno::Any > maMap
css::uno::Reference< css::text::XFlatParagraphIterator > m_xParaIterator
css::uno::Reference< css::text::XFlatParagraph > m_xPara