EditView is no longer a friend of ImpEditEngine.
This commit is contained in:
@@ -29,6 +29,41 @@
|
|||||||
#ifndef _MyEDITENG_HXX
|
#ifndef _MyEDITENG_HXX
|
||||||
#define _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 ImpEditEngine;
|
||||||
class EditView;
|
class EditView;
|
||||||
class OutputDevice;
|
class OutputDevice;
|
||||||
@@ -62,41 +97,11 @@ class SvKeyValueIterator;
|
|||||||
class SvxForbiddenCharactersTable;
|
class SvxForbiddenCharactersTable;
|
||||||
class SvxNumberFormat;
|
class SvxNumberFormat;
|
||||||
class FontList;
|
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 SvxFieldData;
|
||||||
|
class ContentNode;
|
||||||
|
class ParaPortion;
|
||||||
|
class EditSelection;
|
||||||
|
class EditPaM;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
@@ -125,6 +130,32 @@ private:
|
|||||||
EDITENG_DLLPRIVATE EditEngine& operator=( const EditEngine& );
|
EDITENG_DLLPRIVATE EditEngine& operator=( const EditEngine& );
|
||||||
EDITENG_DLLPRIVATE sal_uInt8 PostKeyEvent( const KeyEvent& rKeyEvent, EditView* pView, Window* pFrameWin = NULL );
|
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:
|
protected:
|
||||||
|
|
||||||
|
|
||||||
|
@@ -683,6 +683,69 @@ ESelection EditEngine::GetWord( const ESelection& rSelection, sal_uInt16 nWordTy
|
|||||||
return pE->pImpEditEngine->CreateESel( aSel );
|
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 )
|
sal_Bool EditEngine::PostKeyEvent( const KeyEvent& rKeyEvent, EditView* pEditView, Window* pFrameWin )
|
||||||
{
|
{
|
||||||
DBG_CHKTHIS( EditEngine, 0 );
|
DBG_CHKTHIS( EditEngine, 0 );
|
||||||
|
@@ -230,25 +230,25 @@ void EditView::SetSelection( const ESelection& rESel )
|
|||||||
if ( !pImpEditView->GetEditSelection().HasRange() )
|
if ( !pImpEditView->GetEditSelection().HasRange() )
|
||||||
{
|
{
|
||||||
ContentNode* pNode = pImpEditView->GetEditSelection().Max().GetNode();
|
ContentNode* pNode = pImpEditView->GetEditSelection().Max().GetNode();
|
||||||
PIMPEE->CursorMoved( pNode );
|
PIMPE->CursorMoved( pNode );
|
||||||
}
|
}
|
||||||
EditSelection aNewSelection( PIMPEE->ConvertSelection( rESel.nStartPara, rESel.nStartPos, rESel.nEndPara, rESel.nEndPos ) );
|
EditSelection aNewSelection( PIMPEE->ConvertSelection( rESel.nStartPara, rESel.nStartPos, rESel.nEndPara, rESel.nEndPos ) );
|
||||||
|
|
||||||
// If the selection is manipulated after a KeyInput:
|
// If the selection is manipulated after a KeyInput:
|
||||||
PIMPEE->CheckIdleFormatter();
|
PIMPE->CheckIdleFormatter();
|
||||||
|
|
||||||
// Selection may not start/end at an invisible paragraph:
|
// 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() )
|
if ( !pPortion->IsVisible() )
|
||||||
{
|
{
|
||||||
pPortion = PIMPEE->GetPrevVisPortion( pPortion );
|
pPortion = PIMPE->GetPrevVisPortion( pPortion );
|
||||||
ContentNode* pNode = pPortion ? pPortion->GetNode() : PIMPEE->GetEditDoc().GetObject( 0 );
|
ContentNode* pNode = pPortion ? pPortion->GetNode() : PIMPEE->GetEditDoc().GetObject( 0 );
|
||||||
aNewSelection.Min() = EditPaM( pNode, pNode->Len() );
|
aNewSelection.Min() = EditPaM( pNode, pNode->Len() );
|
||||||
}
|
}
|
||||||
pPortion = PIMPEE->FindParaPortion( aNewSelection.Max().GetNode() );
|
pPortion = PIMPE->FindParaPortion( aNewSelection.Max().GetNode() );
|
||||||
if ( !pPortion->IsVisible() )
|
if ( !pPortion->IsVisible() )
|
||||||
{
|
{
|
||||||
pPortion = PIMPEE->GetPrevVisPortion( pPortion );
|
pPortion = PIMPE->GetPrevVisPortion( pPortion );
|
||||||
ContentNode* pNode = pPortion ? pPortion->GetNode() : PIMPEE->GetEditDoc().GetObject( 0 );
|
ContentNode* pNode = pPortion ? pPortion->GetNode() : PIMPEE->GetEditDoc().GetObject( 0 );
|
||||||
aNewSelection.Max() = EditPaM( pNode, pNode->Len() );
|
aNewSelection.Max() = EditPaM( pNode, pNode->Len() );
|
||||||
}
|
}
|
||||||
@@ -293,7 +293,7 @@ sal_uInt16 EditView::GetSelectedScriptType() const
|
|||||||
{
|
{
|
||||||
DBG_CHKTHIS( EditView, 0 );
|
DBG_CHKTHIS( EditView, 0 );
|
||||||
DBG_CHKOBJ( pImpEditView->pEditEngine, EditEngine, 0 );
|
DBG_CHKOBJ( pImpEditView->pEditEngine, EditEngine, 0 );
|
||||||
return PIMPEE->GetScriptType( pImpEditView->GetEditSelection() );
|
return PIMPE->GetScriptType( pImpEditView->GetEditSelection() );
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditView::Paint( const Rectangle& rRect )
|
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()
|
::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;
|
return xData;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -705,7 +706,8 @@ void EditView::InsertText( ::com::sun::star::uno::Reference< ::com::sun::star::d
|
|||||||
|
|
||||||
PIMPEE->UndoActionStart( EDITUNDO_INSERT );
|
PIMPEE->UndoActionStart( EDITUNDO_INSERT );
|
||||||
pImpEditView->DeleteSelected();
|
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 );
|
PIMPEE->UndoActionEnd( EDITUNDO_INSERT );
|
||||||
|
|
||||||
aTextSel.Min() = aTextSel.Max(); // Selection not retained.
|
aTextSel.Min() = aTextSel.Max(); // Selection not retained.
|
||||||
@@ -799,7 +801,7 @@ void EditView::CompleteAutoCorrect( Window* pFrameWin )
|
|||||||
{
|
{
|
||||||
pImpEditView->DrawSelection();
|
pImpEditView->DrawSelection();
|
||||||
EditSelection aSel = pImpEditView->GetEditSelection();
|
EditSelection aSel = pImpEditView->GetEditSelection();
|
||||||
aSel = PIMPEE->EndOfWord( aSel.Max() );
|
aSel = PIMPE->EndOfWord( aSel.Max() );
|
||||||
aSel = PIMPEE->AutoCorrect( aSel, 0, !IsInsertMode(), pFrameWin );
|
aSel = PIMPEE->AutoCorrect( aSel, 0, !IsInsertMode(), pFrameWin );
|
||||||
pImpEditView->SetEditSelection( aSel );
|
pImpEditView->SetEditSelection( aSel );
|
||||||
if ( PIMPEE->IsModified() )
|
if ( PIMPEE->IsModified() )
|
||||||
@@ -864,7 +866,7 @@ sal_Bool EditView::IsWrongSpelledWordAtPos( const Point& rPosPixel, sal_Bool bMa
|
|||||||
DBG_CHKOBJ( pImpEditView->pEditEngine, EditEngine, 0 );
|
DBG_CHKOBJ( pImpEditView->pEditEngine, EditEngine, 0 );
|
||||||
Point aPos ( pImpEditView->GetWindow()->PixelToLogic( rPosPixel ) );
|
Point aPos ( pImpEditView->GetWindow()->PixelToLogic( rPosPixel ) );
|
||||||
aPos = pImpEditView->GetDocPos( aPos );
|
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 );
|
return pImpEditView->IsWrongSpelledWord( aPaM , bMarkIfWrong );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -895,7 +897,7 @@ void EditView::ExecuteSpellPopup( const Point& rPosPixel, Link* pCallBack )
|
|||||||
|
|
||||||
Point aPos ( pImpEditView->GetWindow()->PixelToLogic( rPosPixel ) );
|
Point aPos ( pImpEditView->GetWindow()->PixelToLogic( rPosPixel ) );
|
||||||
aPos = pImpEditView->GetDocPos( aPos );
|
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() );
|
Reference< XSpellChecker1 > xSpeller( PIMPEE->GetSpeller() );
|
||||||
ESelection aOldSel = GetSelection();
|
ESelection aOldSel = GetSelection();
|
||||||
if ( xSpeller.is() && pImpEditView->IsWrongSpelledWord( aPaM, sal_True ) )
|
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 );
|
DBG_CHKOBJ( pImpEditView->pEditEngine, EditEngine, 0 );
|
||||||
EditSelection aCurSel( pImpEditView->GetEditSelection() );
|
EditSelection aCurSel( pImpEditView->GetEditSelection() );
|
||||||
pImpEditView->DrawSelection();
|
pImpEditView->DrawSelection();
|
||||||
aCurSel = PIMPEE->SelectWord( aCurSel.Max(), nWordType );
|
aCurSel = PIMPE->SelectWord(aCurSel.Max(), nWordType);
|
||||||
pImpEditView->SetEditSelection( aCurSel );
|
pImpEditView->SetEditSelection( aCurSel );
|
||||||
pImpEditView->DrawSelection();
|
pImpEditView->DrawSelection();
|
||||||
ShowCursor( sal_True, sal_False );
|
ShowCursor( sal_True, sal_False );
|
||||||
|
@@ -65,6 +65,7 @@ DBG_NAMEEX( EditView )
|
|||||||
DBG_NAMEEX( EditEngine )
|
DBG_NAMEEX( EditEngine )
|
||||||
|
|
||||||
#define PIMPEE pImpEditView->pEditEngine->pImpEditEngine
|
#define PIMPEE pImpEditView->pEditEngine->pImpEditEngine
|
||||||
|
#define PIMPE pImpEditView->pEditEngine
|
||||||
|
|
||||||
#define DEL_LEFT 1
|
#define DEL_LEFT 1
|
||||||
#define DEL_RIGHT 2
|
#define DEL_RIGHT 2
|
||||||
@@ -392,7 +393,6 @@ class ImpEditEngine : public SfxListener, boost::noncopyable
|
|||||||
friend class EditUndoInsertFeature;
|
friend class EditUndoInsertFeature;
|
||||||
friend class EditUndoMoveParagraphs;
|
friend class EditUndoMoveParagraphs;
|
||||||
|
|
||||||
friend class EditView;
|
|
||||||
friend class ImpEditView;
|
friend class ImpEditView;
|
||||||
friend class EditEngine; // For access to Imp-Methods
|
friend class EditEngine; // For access to Imp-Methods
|
||||||
friend class EditRTFParser; // For access to Imp-Methods
|
friend class EditRTFParser; // For access to Imp-Methods
|
||||||
|
Reference in New Issue
Block a user