EditView is no longer a friend of ImpEditEngine.
This commit is contained in:
@@ -29,6 +29,41 @@
|
||||
#ifndef _MyEDITENG_HXX
|
||||
#define _MyEDITENG_HXX
|
||||
|
||||
#include <rtl/ref.hxx>
|
||||
#include <vector>
|
||||
#include <com/sun/star/uno/Reference.h>
|
||||
#include <com/sun/star/i18n/WordType.hpp>
|
||||
|
||||
#include <rsc/rscsfx.hxx>
|
||||
#include <editeng/editdata.hxx>
|
||||
#include <i18npool/lang.h>
|
||||
#include "editeng/editengdllapi.h"
|
||||
|
||||
#include <tools/rtti.hxx> // due to typedef TypeId
|
||||
|
||||
#include <editeng/eedata.hxx>
|
||||
|
||||
namespace com { namespace sun { namespace star {
|
||||
namespace linguistic2 {
|
||||
class XSpellChecker1;
|
||||
class XHyphenator;
|
||||
}
|
||||
namespace datatransfer {
|
||||
class XTransferable;
|
||||
}
|
||||
namespace lang {
|
||||
struct Locale;
|
||||
}
|
||||
}}}
|
||||
|
||||
namespace svx {
|
||||
struct SpellPortion;
|
||||
typedef std::vector<SpellPortion> SpellPortions;
|
||||
}
|
||||
|
||||
namespace svl { class IUndoManager; }
|
||||
namespace basegfx { class B2DPolyPolygon; }
|
||||
|
||||
class ImpEditEngine;
|
||||
class EditView;
|
||||
class OutputDevice;
|
||||
@@ -62,41 +97,11 @@ class SvKeyValueIterator;
|
||||
class SvxForbiddenCharactersTable;
|
||||
class SvxNumberFormat;
|
||||
class FontList;
|
||||
|
||||
#include <rtl/ref.hxx>
|
||||
#include <vector>
|
||||
#include <com/sun/star/uno/Reference.h>
|
||||
|
||||
namespace com { namespace sun { namespace star {
|
||||
namespace linguistic2 {
|
||||
class XSpellChecker1;
|
||||
class XHyphenator;
|
||||
}
|
||||
namespace datatransfer {
|
||||
class XTransferable;
|
||||
}
|
||||
namespace lang {
|
||||
struct Locale;
|
||||
}
|
||||
}}}
|
||||
namespace svx{
|
||||
struct SpellPortion;
|
||||
typedef std::vector<SpellPortion> SpellPortions;
|
||||
}
|
||||
namespace svl{
|
||||
class IUndoManager;
|
||||
}
|
||||
|
||||
namespace basegfx { class B2DPolyPolygon; }
|
||||
#include <rsc/rscsfx.hxx>
|
||||
#include <editeng/editdata.hxx>
|
||||
#include <i18npool/lang.h>
|
||||
#include "editeng/editengdllapi.h"
|
||||
|
||||
#include <tools/rtti.hxx> // due to typedef TypeId
|
||||
|
||||
#include <editeng/eedata.hxx>
|
||||
class SvxFieldData;
|
||||
class ContentNode;
|
||||
class ParaPortion;
|
||||
class EditSelection;
|
||||
class EditPaM;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -125,6 +130,32 @@ private:
|
||||
EDITENG_DLLPRIVATE EditEngine& operator=( const EditEngine& );
|
||||
EDITENG_DLLPRIVATE sal_uInt8 PostKeyEvent( const KeyEvent& rKeyEvent, EditView* pView, Window* pFrameWin = NULL );
|
||||
|
||||
EDITENG_DLLPRIVATE void CursorMoved(ContentNode* pPrevNode);
|
||||
EDITENG_DLLPRIVATE void CheckIdleFormatter();
|
||||
EDITENG_DLLPRIVATE ParaPortion* FindParaPortion(ContentNode* pNode);
|
||||
EDITENG_DLLPRIVATE const ParaPortion* FindParaPortion(ContentNode* pNode) const;
|
||||
EDITENG_DLLPRIVATE const ParaPortion* GetPrevVisPortion(const ParaPortion* pCurPortion) const;
|
||||
EDITENG_DLLPRIVATE const ParaPortion* GetNextVisPortion(const ParaPortion* pCurPortion) const;
|
||||
EDITENG_DLLPRIVATE sal_uInt16 GetScriptType(const EditSelection& rSel) const;
|
||||
|
||||
EDITENG_DLLPRIVATE com::sun::star::uno::Reference<
|
||||
com::sun::star::datatransfer::XTransferable>
|
||||
CreateTransferable(const EditSelection& rSelection);
|
||||
|
||||
EDITENG_DLLPRIVATE EditSelection InsertText(
|
||||
com::sun::star::uno::Reference<com::sun::star::datatransfer::XTransferable >& rxDataObj,
|
||||
const String& rBaseURL, const EditPaM& rPaM, bool bUseSpecial);
|
||||
|
||||
EDITENG_DLLPRIVATE EditPaM EndOfWord(
|
||||
const EditPaM& rPaM, sal_Int16 nWordType = com::sun::star::i18n::WordType::ANYWORD_IGNOREWHITESPACES);
|
||||
|
||||
EDITENG_DLLPRIVATE EditPaM GetPaM(const Point& aDocPos, bool bSmart = true);
|
||||
|
||||
EDITENG_DLLPRIVATE EditSelection SelectWord(
|
||||
const EditSelection& rCurSelection,
|
||||
sal_Int16 nWordType = ::com::sun::star::i18n::WordType::ANYWORD_IGNOREWHITESPACES,
|
||||
bool bAcceptStartOfWord = true);
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
@@ -683,6 +683,69 @@ ESelection EditEngine::GetWord( const ESelection& rSelection, sal_uInt16 nWordTy
|
||||
return pE->pImpEditEngine->CreateESel( aSel );
|
||||
}
|
||||
|
||||
void EditEngine::CursorMoved(ContentNode* pPrevNode)
|
||||
{
|
||||
pImpEditEngine->CursorMoved(pPrevNode);
|
||||
}
|
||||
|
||||
void EditEngine::CheckIdleFormatter()
|
||||
{
|
||||
pImpEditEngine->CheckIdleFormatter();
|
||||
}
|
||||
|
||||
ParaPortion* EditEngine::FindParaPortion(ContentNode* pNode)
|
||||
{
|
||||
return pImpEditEngine->FindParaPortion(pNode);
|
||||
}
|
||||
|
||||
const ParaPortion* EditEngine::FindParaPortion(ContentNode* pNode) const
|
||||
{
|
||||
return pImpEditEngine->FindParaPortion(pNode);
|
||||
}
|
||||
|
||||
const ParaPortion* EditEngine::GetPrevVisPortion(const ParaPortion* pCurPortion) const
|
||||
{
|
||||
return pImpEditEngine->GetPrevVisPortion(pCurPortion);
|
||||
}
|
||||
|
||||
const ParaPortion* EditEngine::GetNextVisPortion(const ParaPortion* pCurPortion) const
|
||||
{
|
||||
return pImpEditEngine->GetNextVisPortion(pCurPortion);
|
||||
}
|
||||
|
||||
sal_uInt16 EditEngine::GetScriptType(const EditSelection& rSel) const
|
||||
{
|
||||
return pImpEditEngine->GetScriptType(rSel);
|
||||
}
|
||||
|
||||
uno::Reference<datatransfer::XTransferable> EditEngine::CreateTransferable(const EditSelection& rSelection)
|
||||
{
|
||||
return pImpEditEngine->CreateTransferable(rSelection);
|
||||
}
|
||||
|
||||
EditSelection EditEngine::InsertText(
|
||||
uno::Reference<datatransfer::XTransferable >& rxDataObj,
|
||||
const String& rBaseURL, const EditPaM& rPaM, bool bUseSpecial)
|
||||
{
|
||||
return pImpEditEngine->InsertText(rxDataObj, rBaseURL, rPaM, bUseSpecial);
|
||||
}
|
||||
|
||||
EditPaM EditEngine::EndOfWord(const EditPaM& rPaM, sal_Int16 nWordType)
|
||||
{
|
||||
return pImpEditEngine->EndOfWord(rPaM, nWordType);
|
||||
}
|
||||
|
||||
EditPaM EditEngine::GetPaM(const Point& aDocPos, bool bSmart)
|
||||
{
|
||||
return pImpEditEngine->GetPaM(aDocPos, bSmart);
|
||||
}
|
||||
|
||||
EditSelection EditEngine::SelectWord(
|
||||
const EditSelection& rCurSelection, sal_Int16 nWordType, bool bAcceptStartOfWord)
|
||||
{
|
||||
return pImpEditEngine->SelectWord(rCurSelection, nWordType, bAcceptStartOfWord);
|
||||
}
|
||||
|
||||
sal_Bool EditEngine::PostKeyEvent( const KeyEvent& rKeyEvent, EditView* pEditView, Window* pFrameWin )
|
||||
{
|
||||
DBG_CHKTHIS( EditEngine, 0 );
|
||||
|
@@ -230,25 +230,25 @@ void EditView::SetSelection( const ESelection& rESel )
|
||||
if ( !pImpEditView->GetEditSelection().HasRange() )
|
||||
{
|
||||
ContentNode* pNode = pImpEditView->GetEditSelection().Max().GetNode();
|
||||
PIMPEE->CursorMoved( pNode );
|
||||
PIMPE->CursorMoved( pNode );
|
||||
}
|
||||
EditSelection aNewSelection( PIMPEE->ConvertSelection( rESel.nStartPara, rESel.nStartPos, rESel.nEndPara, rESel.nEndPos ) );
|
||||
|
||||
// If the selection is manipulated after a KeyInput:
|
||||
PIMPEE->CheckIdleFormatter();
|
||||
PIMPE->CheckIdleFormatter();
|
||||
|
||||
// Selection may not start/end at an invisible paragraph:
|
||||
const ParaPortion* pPortion = PIMPEE->FindParaPortion( aNewSelection.Min().GetNode() );
|
||||
const ParaPortion* pPortion = PIMPE->FindParaPortion( aNewSelection.Min().GetNode() );
|
||||
if ( !pPortion->IsVisible() )
|
||||
{
|
||||
pPortion = PIMPEE->GetPrevVisPortion( pPortion );
|
||||
pPortion = PIMPE->GetPrevVisPortion( pPortion );
|
||||
ContentNode* pNode = pPortion ? pPortion->GetNode() : PIMPEE->GetEditDoc().GetObject( 0 );
|
||||
aNewSelection.Min() = EditPaM( pNode, pNode->Len() );
|
||||
}
|
||||
pPortion = PIMPEE->FindParaPortion( aNewSelection.Max().GetNode() );
|
||||
pPortion = PIMPE->FindParaPortion( aNewSelection.Max().GetNode() );
|
||||
if ( !pPortion->IsVisible() )
|
||||
{
|
||||
pPortion = PIMPEE->GetPrevVisPortion( pPortion );
|
||||
pPortion = PIMPE->GetPrevVisPortion( pPortion );
|
||||
ContentNode* pNode = pPortion ? pPortion->GetNode() : PIMPEE->GetEditDoc().GetObject( 0 );
|
||||
aNewSelection.Max() = EditPaM( pNode, pNode->Len() );
|
||||
}
|
||||
@@ -293,7 +293,7 @@ sal_uInt16 EditView::GetSelectedScriptType() const
|
||||
{
|
||||
DBG_CHKTHIS( EditView, 0 );
|
||||
DBG_CHKOBJ( pImpEditView->pEditEngine, EditEngine, 0 );
|
||||
return PIMPEE->GetScriptType( pImpEditView->GetEditSelection() );
|
||||
return PIMPE->GetScriptType( pImpEditView->GetEditSelection() );
|
||||
}
|
||||
|
||||
void EditView::Paint( const Rectangle& rRect )
|
||||
@@ -580,7 +580,8 @@ void EditView::Cut()
|
||||
|
||||
::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::XTransferable > EditView::GetTransferable()
|
||||
{
|
||||
uno::Reference< datatransfer::XTransferable > xData = GetEditEngine()->pImpEditEngine->CreateTransferable( pImpEditView->GetEditSelection() );
|
||||
uno::Reference< datatransfer::XTransferable > xData =
|
||||
GetEditEngine()->CreateTransferable( pImpEditView->GetEditSelection() );
|
||||
return xData;
|
||||
}
|
||||
|
||||
@@ -705,7 +706,8 @@ void EditView::InsertText( ::com::sun::star::uno::Reference< ::com::sun::star::d
|
||||
|
||||
PIMPEE->UndoActionStart( EDITUNDO_INSERT );
|
||||
pImpEditView->DeleteSelected();
|
||||
EditSelection aTextSel( PIMPEE->InsertText( xDataObj, rBaseURL, pImpEditView->GetEditSelection().Max(), bUseSpecial ) );
|
||||
EditSelection aTextSel =
|
||||
PIMPE->InsertText(xDataObj, rBaseURL, pImpEditView->GetEditSelection().Max(), bUseSpecial);
|
||||
PIMPEE->UndoActionEnd( EDITUNDO_INSERT );
|
||||
|
||||
aTextSel.Min() = aTextSel.Max(); // Selection not retained.
|
||||
@@ -799,7 +801,7 @@ void EditView::CompleteAutoCorrect( Window* pFrameWin )
|
||||
{
|
||||
pImpEditView->DrawSelection();
|
||||
EditSelection aSel = pImpEditView->GetEditSelection();
|
||||
aSel = PIMPEE->EndOfWord( aSel.Max() );
|
||||
aSel = PIMPE->EndOfWord( aSel.Max() );
|
||||
aSel = PIMPEE->AutoCorrect( aSel, 0, !IsInsertMode(), pFrameWin );
|
||||
pImpEditView->SetEditSelection( aSel );
|
||||
if ( PIMPEE->IsModified() )
|
||||
@@ -864,7 +866,7 @@ sal_Bool EditView::IsWrongSpelledWordAtPos( const Point& rPosPixel, sal_Bool bMa
|
||||
DBG_CHKOBJ( pImpEditView->pEditEngine, EditEngine, 0 );
|
||||
Point aPos ( pImpEditView->GetWindow()->PixelToLogic( rPosPixel ) );
|
||||
aPos = pImpEditView->GetDocPos( aPos );
|
||||
EditPaM aPaM = pImpEditView->pEditEngine->pImpEditEngine->GetPaM( aPos, sal_False );
|
||||
EditPaM aPaM = pImpEditView->pEditEngine->GetPaM(aPos, false);
|
||||
return pImpEditView->IsWrongSpelledWord( aPaM , bMarkIfWrong );
|
||||
}
|
||||
|
||||
@@ -895,7 +897,7 @@ void EditView::ExecuteSpellPopup( const Point& rPosPixel, Link* pCallBack )
|
||||
|
||||
Point aPos ( pImpEditView->GetWindow()->PixelToLogic( rPosPixel ) );
|
||||
aPos = pImpEditView->GetDocPos( aPos );
|
||||
EditPaM aPaM = pImpEditView->pEditEngine->pImpEditEngine->GetPaM( aPos, sal_False );
|
||||
EditPaM aPaM = pImpEditView->pEditEngine->GetPaM(aPos, false);
|
||||
Reference< XSpellChecker1 > xSpeller( PIMPEE->GetSpeller() );
|
||||
ESelection aOldSel = GetSelection();
|
||||
if ( xSpeller.is() && pImpEditView->IsWrongSpelledWord( aPaM, sal_True ) )
|
||||
@@ -1171,7 +1173,7 @@ sal_Bool EditView::SelectCurrentWord( sal_Int16 nWordType )
|
||||
DBG_CHKOBJ( pImpEditView->pEditEngine, EditEngine, 0 );
|
||||
EditSelection aCurSel( pImpEditView->GetEditSelection() );
|
||||
pImpEditView->DrawSelection();
|
||||
aCurSel = PIMPEE->SelectWord( aCurSel.Max(), nWordType );
|
||||
aCurSel = PIMPE->SelectWord(aCurSel.Max(), nWordType);
|
||||
pImpEditView->SetEditSelection( aCurSel );
|
||||
pImpEditView->DrawSelection();
|
||||
ShowCursor( sal_True, sal_False );
|
||||
|
@@ -65,6 +65,7 @@ DBG_NAMEEX( EditView )
|
||||
DBG_NAMEEX( EditEngine )
|
||||
|
||||
#define PIMPEE pImpEditView->pEditEngine->pImpEditEngine
|
||||
#define PIMPE pImpEditView->pEditEngine
|
||||
|
||||
#define DEL_LEFT 1
|
||||
#define DEL_RIGHT 2
|
||||
@@ -392,7 +393,6 @@ class ImpEditEngine : public SfxListener, boost::noncopyable
|
||||
friend class EditUndoInsertFeature;
|
||||
friend class EditUndoMoveParagraphs;
|
||||
|
||||
friend class EditView;
|
||||
friend class ImpEditView;
|
||||
friend class EditEngine; // For access to Imp-Methods
|
||||
friend class EditRTFParser; // For access to Imp-Methods
|
||||
|
Reference in New Issue
Block a user