| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| #ifndef _OUTLINER_HXX |
| #define _OUTLINER_HXX |
| |
| #include <tools/gen.hxx> |
| #include <tools/string.hxx> |
| #include <tools/debug.hxx> |
| |
| #include <svl/brdcst.hxx> |
| |
| #include <editeng/editdata.hxx> |
| #include <i18npool/lang.h> |
| #include <tools/color.hxx> |
| #include <vcl/graph.hxx> |
| #include <tools/list.hxx> |
| #include <tools/link.hxx> |
| #include <rsc/rscsfx.hxx> |
| #include "editeng/editengdllapi.h" |
| #include <editeng/numitem.hxx> |
| #include <svtools/grfmgr.hxx> |
| |
| #include <tools/rtti.hxx> // wegen typedef TypeId |
| #include <vector> |
| |
| class OutlinerEditEng; |
| class Outliner; |
| class EditView; |
| class EditUndo; |
| class ParagraphList; |
| class OutlinerParaObject; |
| class SvStream; |
| class SvxBulletItem; |
| class SvxFont; |
| class SvxSearchItem; |
| class SvxFieldItem; |
| class OLUndoRemove; |
| class Window; |
| class KeyEvent; |
| class MouseEvent; |
| class Pointer; |
| class CommandEvent; |
| class MapMode; |
| class OutputDevice; |
| class PolyPolygon; |
| class SfxStyleSheetPool; |
| class SfxStyleSheet; |
| class SfxItemPool; |
| class SfxItemSet; |
| class SvxNumBulletItem; |
| class SvxNumberFormat; |
| class SvxLRSpaceItem; |
| class EditEngine; |
| class SvKeyValueIterator; |
| class SvxForbiddenCharactersTable; |
| |
| namespace svl |
| { |
| class IUndoManager; |
| } |
| |
| #include <com/sun/star/uno/Reference.h> |
| |
| #include <vos/ref.hxx> |
| #include <editeng/svxfont.hxx> |
| #include <editeng/eedata.hxx> |
| #include <editeng/paragraphdata.hxx> |
| |
| class SvxFieldData; |
| ////////////////////////////////////////////////////////////////////////////// |
| |
| namespace com { namespace sun { namespace star { namespace linguistic2 { |
| class XSpellChecker1; |
| class XHyphenator; |
| }}}} |
| namespace svx{ |
| struct SpellPortion; |
| typedef std::vector<SpellPortion> SpellPortions; |
| } |
| |
| namespace basegfx { class B2DPolyPolygon; } |
| |
| // nur interner Gebrauch! |
| #define PARAFLAG_DROPTARGET 0x1000 |
| #define PARAFLAG_DROPTARGET_EMPTY 0x2000 |
| #define PARAFLAG_HOLDDEPTH 0x4000 |
| #define PARAFLAG_SETBULLETTEXT 0x8000 |
| #define PARAFLAG_ISPAGE 0x0100 |
| |
| // Undo-Action-Ids |
| #define OLUNDO_DEPTH EDITUNDO_USER |
| // #define OLUNDO_HEIGHT EDITUNDO_USER+1 |
| #define OLUNDO_EXPAND EDITUNDO_USER+2 |
| #define OLUNDO_COLLAPSE EDITUNDO_USER+3 |
| // #define OLUNDO_REMOVE EDITUNDO_USER+4 |
| #define OLUNDO_ATTR EDITUNDO_USER+5 |
| #define OLUNDO_INSERT EDITUNDO_USER+6 |
| // #define OLUNDO_MOVEPARAGRAPHS EDITUNDO_USER+7 |
| #define OLUNDO_CHECKPARA EDITUNDO_USER+8 |
| |
| class Paragraph : protected ParagraphData |
| { |
| private: |
| friend class Outliner; |
| friend class ParagraphList; |
| friend class OutlinerView; |
| friend class OutlinerParaObject; |
| friend class OutlinerEditEng; |
| friend class OLUndoDepth; |
| friend class OutlinerUndoCheckPara; |
| friend class OutlinerUndoChangeParaFlags; |
| |
| Paragraph& operator=(const Paragraph& rPara ); |
| |
| sal_uInt16 nFlags; |
| XubString aBulText; |
| Size aBulSize; |
| sal_Bool bVisible; |
| |
| sal_Bool IsVisible() const { return bVisible; } |
| void SetText( const XubString& rText ) { aBulText = rText; aBulSize.Width() = -1; } |
| void Invalidate() { aBulSize.Width() = -1; } |
| void SetDepth( sal_Int16 nNewDepth ) { nDepth = nNewDepth; aBulSize.Width() = -1; } |
| const XubString& GetText() const { return aBulText; } |
| |
| Paragraph( sal_Int16 nDepth ); |
| Paragraph( const Paragraph& ); |
| Paragraph( const ParagraphData& ); |
| ~Paragraph(); |
| |
| sal_Int16 GetDepth() const { return nDepth; } |
| |
| sal_Int16 GetNumberingStartValue() const { return mnNumberingStartValue; } |
| void SetNumberingStartValue( sal_Int16 nNumberingStartValue ); |
| |
| sal_Bool IsParaIsNumberingRestart() const { return mbParaIsNumberingRestart; } |
| void SetParaIsNumberingRestart( sal_Bool bParaIsNumberingRestart ); |
| |
| void SetFlag( sal_uInt16 nFlag ) { nFlags |= nFlag; } |
| void RemoveFlag( sal_uInt16 nFlag ) { nFlags &= ~nFlag; } |
| bool HasFlag( sal_uInt16 nFlag ) const { return (nFlags & nFlag) != 0; } |
| }; |
| |
| struct ParaRange |
| { |
| sal_uInt16 nStartPara; |
| sal_uInt16 nEndPara; |
| |
| ParaRange( sal_uInt16 nS, sal_uInt16 nE ) { nStartPara = nS, nEndPara = nE; } |
| |
| void Adjust(); |
| sal_uInt16 Len() const { return 1 + ( ( nEndPara > nStartPara ) ? (nEndPara-nStartPara) : (nStartPara-nEndPara) ); } |
| }; |
| |
| inline void ParaRange::Adjust() |
| { |
| if ( nStartPara > nEndPara ) |
| { |
| sal_uInt16 nTmp = nStartPara; |
| nStartPara = nEndPara; |
| nEndPara = nTmp; |
| } |
| } |
| |
| #define OL_ROOTPARENT (Paragraph*)NULL |
| |
| class EDITENG_DLLPUBLIC OutlinerView |
| { |
| friend class Outliner; |
| |
| private: |
| |
| Outliner* pOwner; |
| EditView* pEditView; |
| |
| // Drag & Drop |
| sal_Bool bBeginDragAtMove_OLDMEMBER; |
| sal_Bool bInDragMode; |
| Point aDDStartPosRef; |
| Point aDDStartPosPix; |
| sal_uLong nDDStartPara; |
| sal_uLong nDDStartParaVisChildCount; |
| sal_uLong nDDCurPara; |
| sal_uInt16 nDDStartDepth; |
| sal_uInt16 nDDCurDepth; |
| sal_uInt16 nDDMaxDepth; |
| sal_Bool bDDChangingDepth; |
| sal_Bool bDDCursorVisible; |
| long* pHorTabArrDoc; |
| long nDDScrollLRBorderWidthWin; // Left Right |
| long nDDScrollTBBorderWidthWin; // Top Bottom |
| long nDDScrollLROffs; |
| long nDDScrollTDOffs; |
| |
| void* pDummy; |
| sal_uLong nDummy; |
| |
| enum MouseTarget { |
| MouseText = 0, |
| MouseBullet = 1, |
| MouseHypertext = 2, // ausserhalb OutputArea |
| MouseOutside = 3, // ausserhalb OutputArea |
| MouseDontKnow = 4 |
| }; |
| MouseTarget OLD_ePrevMouseTarget; |
| |
| #ifdef _OUTLINER_CXX |
| |
| EDITENG_DLLPRIVATE void ImplExpandOrCollaps( sal_uInt16 nStartPara, sal_uInt16 nEndPara, sal_Bool bExpand ); |
| |
| EDITENG_DLLPRIVATE sal_uLong ImpCheckMousePos( const Point& rPosPixel, MouseTarget& reTarget); |
| EDITENG_DLLPRIVATE void ImpToggleExpand( Paragraph* pParentPara ); |
| EDITENG_DLLPRIVATE ParaRange ImpGetSelectedParagraphs( sal_Bool bIncludeHiddenChilds ); |
| EDITENG_DLLPRIVATE void ImpHideDDCursor(); |
| EDITENG_DLLPRIVATE void ImpShowDDCursor(); |
| EDITENG_DLLPRIVATE void ImpPaintDDCursor(); |
| |
| EDITENG_DLLPRIVATE void ImpDragScroll( const Point& rPosPix ); |
| EDITENG_DLLPRIVATE void ImpScrollLeft(); |
| EDITENG_DLLPRIVATE void ImpScrollRight(); |
| EDITENG_DLLPRIVATE void ImpScrollUp(); |
| EDITENG_DLLPRIVATE void ImpScrollDown(); |
| |
| EDITENG_DLLPRIVATE sal_uLong ImpGetInsertionPara( const Point& rPosPixel ); |
| EDITENG_DLLPRIVATE Point ImpGetDocPos( const Point& rPosPixel ); |
| EDITENG_DLLPRIVATE Pointer ImpGetMousePointer( MouseTarget eTarget ); |
| EDITENG_DLLPRIVATE sal_uInt16 ImpInitPaste( sal_uLong& rStart ); |
| EDITENG_DLLPRIVATE void ImpPasted( sal_uLong nStart, sal_uLong nPrevParaCount, sal_uInt16 nSize); |
| EDITENG_DLLPRIVATE sal_uInt16 ImpCalcSelectedPages( sal_Bool bIncludeFirstSelected ); |
| EDITENG_DLLPRIVATE sal_Bool ImpIsIndentingPages(); |
| |
| #endif |
| |
| public: |
| OutlinerView( Outliner* pOut, Window* pWindow ); |
| virtual ~OutlinerView(); |
| |
| EditView& GetEditView() const { return *pEditView; } |
| |
| void Scroll( long nHorzScroll, long nVertScroll ); |
| |
| void Paint( const Rectangle& rRect, OutputDevice* pTargetDevice = 0 ); |
| sal_Bool PostKeyEvent( const KeyEvent& rKEvt ); |
| sal_Bool MouseButtonDown( const MouseEvent& ); |
| sal_Bool MouseButtonUp( const MouseEvent& ); |
| sal_Bool MouseMove( const MouseEvent& ); |
| |
| void ShowCursor( sal_Bool bGotoCursor = sal_True ); |
| void HideCursor(); |
| |
| void SetOutliner( Outliner* pOutliner ); |
| Outliner* GetOutliner() const { return pOwner; } |
| |
| void SetWindow( Window* pWindow ); |
| Window* GetWindow() const; |
| |
| void SetReadOnly( sal_Bool bReadOnly ); |
| sal_Bool IsReadOnly() const; |
| |
| void SetOutputArea( const Rectangle& rRect ); |
| Rectangle GetOutputArea() const; |
| |
| Rectangle GetVisArea() const; |
| |
| List* CreateSelectionList(); |
| |
| // gibt Anzahl selektierter Absaetze zurueck |
| // MT 07/00: Who needs this? |
| sal_uLong Select( Paragraph* pParagraph, |
| sal_Bool bSelect=sal_True, |
| sal_Bool bWChilds=sal_True); |
| |
| String GetSelected() const; |
| void SelectRange( sal_uLong nFirst, sal_uInt16 nCount ); |
| void SetAttribs( const SfxItemSet& ); |
| void Indent( short nDiff ); |
| void AdjustDepth( short nDX ); // Spaeter gegeb Indent ersetzen! |
| |
| sal_Bool AdjustHeight( long nDY ); |
| void AdjustDepth( Paragraph* pPara, short nDX, |
| sal_Bool bWithChilds = sal_False ); |
| void AdjustHeight( Paragraph* pPara, long nDY, |
| sal_Bool bWithChilds=sal_False ); |
| |
| sal_uLong Read( SvStream& rInput, const String& rBaseURL, EETextFormat eFormat, sal_Bool bSelect = sal_False, SvKeyValueIterator* pHTTPHeaderAttrs = NULL ); |
| sal_uLong Write( SvStream& rOutput, EETextFormat eFormat ); |
| |
| void InsertText( const String& rNew, sal_Bool bSelect = sal_False ); |
| void InsertText( const OutlinerParaObject& rParaObj ); |
| void Expand(); |
| void Collapse(); |
| void Expand( Paragraph* ); |
| void Collapse( Paragraph* ); |
| void ExpandAll(); |
| void CollapseAll(); |
| |
| void SetBackgroundColor( const Color& rColor ); |
| Color GetBackgroundColor(); |
| |
| SfxItemSet GetAttribs(); |
| |
| void Cut(); |
| void Copy(); |
| void Paste(); |
| void PasteSpecial(); |
| void EnablePaste( sal_Bool bEnable ); |
| |
| void Undo(); |
| void Redo(); |
| |
| void SetStyleSheet( SfxStyleSheet* ); |
| SfxStyleSheet* GetStyleSheet() const; |
| |
| void SetControlWord( sal_uLong nWord ); |
| sal_uLong GetControlWord() const; |
| |
| void SetAnchorMode( EVAnchorMode eMode ); |
| EVAnchorMode GetAnchorMode() const; |
| |
| Pointer GetPointer( const Point& rPosPixel ); |
| void Command( const CommandEvent& rCEvt ); |
| void RemoveCharAttribs( sal_uLong nPara, sal_uInt16 nWhich = 0 ); |
| |
| void CompleteAutoCorrect(); |
| |
| EESpellState StartSpeller( sal_Bool bMultipleDoc = sal_False ); |
| EESpellState StartThesaurus(); |
| sal_uInt16 StartSearchAndReplace( const SvxSearchItem& rSearchItem ); |
| |
| // for text conversion |
| void StartTextConversion( LanguageType nSrcLang, LanguageType nDestLang, const Font *pDestFont, sal_Int32 nOptions, sal_Bool bIsInteractive, sal_Bool bMultipleDoc ); |
| |
| void TransliterateText( sal_Int32 nTransliterationMode ); |
| |
| ESelection GetSelection(); |
| |
| sal_uInt16 GetSelectedScriptType() const; |
| |
| void SetVisArea( const Rectangle& rRec ); |
| void SetSelection( const ESelection& ); |
| |
| void RemoveAttribs( sal_Bool bRemoveParaAttribs = sal_False, sal_uInt16 nWhich = 0, sal_Bool bKeepLanguages = sal_False ); |
| void RemoveAttribsKeepLanguages( sal_Bool bRemoveParaAttribs ); |
| sal_Bool HasSelection() const; |
| |
| void InsertField( const SvxFieldItem& rFld ); |
| const SvxFieldItem* GetFieldUnderMousePointer() const; |
| const SvxFieldItem* GetFieldUnderMousePointer( sal_uInt16& nPara, xub_StrLen& nPos ) const; |
| const SvxFieldItem* GetFieldAtSelection() const; |
| |
| /** enables bullets for the selected paragraphs if the bullets/numbering of the first paragraph is off |
| or disables bullets/numbering for the selected paragraphs if the bullets/numbering of the first paragraph is on |
| */ |
| void ToggleBullets(); |
| |
| void ToggleBulletsNumbering( |
| const bool bToggle, |
| const bool bHandleBullets, |
| const SvxNumRule* pNumRule = NULL ); |
| |
| /** apply bullets/numbering for paragraphs |
| |
| @param boolean bHandleBullets |
| true: handle bullets |
| false: handle numbering |
| |
| @param pNewNumRule |
| numbering rule which needs to be applied. can be 0. |
| |
| @param boolean bAtSelection |
| true: apply bullets/numbering at selected paragraphs |
| false: apply bullets/numbering at all paragraphs |
| */ |
| void ApplyBulletsNumbering( |
| const bool bHandleBullets, |
| const SvxNumRule* pNewNumRule, |
| const bool bCheckCurrentNumRuleBeforeApplyingNewNumRule, |
| const bool bAtSelection = false ); |
| |
| /** switch off bullets/numbering for paragraphs |
| |
| @param boolean bAtSelection |
| true: switch off bullets/numbering at selected paragraphs |
| false: switch off bullets/numbering at all paragraphs |
| */ |
| void SwitchOffBulletsNumbering( |
| const bool bAtSelection = false ); |
| |
| /** enables numbering for the selected paragraphs that are not enabled and ignore all selected |
| paragraphs that already have numbering enabled. |
| */ |
| void EnableBullets(); |
| |
| sal_Bool IsCursorAtWrongSpelledWord( sal_Bool bMarkIfWrong = sal_False ); |
| sal_Bool IsWrongSpelledWordAtPos( const Point& rPosPixel, sal_Bool bMarkIfWrong = sal_False ); |
| void SpellIgnoreWord(); |
| void ExecuteSpellPopup( const Point& rPosPixel, Link* pCallBack = 0 ); |
| |
| void SetInvalidateMore( sal_uInt16 nPixel ); |
| sal_uInt16 GetInvalidateMore() const; |
| |
| String GetSurroundingText() const; |
| Selection GetSurroundingTextSelection() const; |
| }; |
| |
| |
| // some thesaurus functionality to avoid code duplication in different projects... |
| bool EDITENG_DLLPUBLIC GetStatusValueForThesaurusFromContext( String &rStatusVal, LanguageType &rLang, const EditView &rEditView ); |
| void EDITENG_DLLPUBLIC ReplaceTextWithSynonym( EditView &rEditView, const String &rSynonmText ); |
| |
| |
| //#if 0 // _SOLAR__PRIVATE |
| DECLARE_LIST(ViewList,OutlinerView*) |
| //#else |
| //typedef List ViewList; |
| //#endif |
| |
| class EDITENG_DLLPUBLIC DrawPortionInfo |
| { |
| public: |
| const Point& mrStartPos; |
| const String& mrText; |
| sal_uInt16 mnTextStart; |
| sal_uInt16 mnTextLen; |
| sal_uInt16 mnPara; |
| xub_StrLen mnIndex; |
| const SvxFont& mrFont; |
| const sal_Int32* mpDXArray; |
| |
| const EEngineData::WrongSpellVector* mpWrongSpellVector; |
| const SvxFieldData* mpFieldData; |
| const ::com::sun::star::lang::Locale* mpLocale; |
| const Color maOverlineColor; |
| const Color maTextLineColor; |
| |
| // #101498# BiDi level needs to be transported, too. |
| sal_uInt8 mnBiDiLevel; |
| |
| // bitfield |
| unsigned mbEndOfLine : 1; |
| unsigned mbEndOfParagraph : 1; |
| unsigned mbEndOfBullet : 1; |
| |
| sal_uInt8 GetBiDiLevel() const { return mnBiDiLevel; } |
| sal_Bool IsRTL() const; |
| |
| DrawPortionInfo( |
| const Point& rPos, |
| const String& rTxt, |
| sal_uInt16 nTxtStart, |
| sal_uInt16 nTxtLen, |
| const SvxFont& rFnt, |
| sal_uInt16 nPar, |
| xub_StrLen nIdx, |
| const sal_Int32* pDXArr, |
| const EEngineData::WrongSpellVector* pWrongSpellVector, |
| const SvxFieldData* pFieldData, |
| const ::com::sun::star::lang::Locale* pLocale, |
| const Color& rOverlineColor, |
| const Color& rTextLineColor, |
| sal_uInt8 nBiDiLevel, |
| bool bEndOfLine, |
| bool bEndOfParagraph, |
| bool bEndOfBullet) |
| : mrStartPos(rPos), |
| mrText(rTxt), |
| mnTextStart(nTxtStart), |
| mnTextLen(nTxtLen), |
| mnPara(nPar), |
| mnIndex(nIdx), |
| mrFont(rFnt), |
| mpDXArray(pDXArr), |
| mpWrongSpellVector(pWrongSpellVector), |
| mpFieldData(pFieldData), |
| mpLocale(pLocale), |
| maOverlineColor(rOverlineColor), |
| maTextLineColor(rTextLineColor), |
| mnBiDiLevel(nBiDiLevel), |
| mbEndOfLine(bEndOfLine), |
| mbEndOfParagraph(bEndOfParagraph), |
| mbEndOfBullet(bEndOfBullet) |
| {} |
| }; |
| |
| class EDITENG_DLLPUBLIC DrawBulletInfo |
| { |
| public: |
| const GraphicObject maBulletGraphicObject; |
| Point maBulletPosition; |
| Size maBulletSize; |
| |
| DrawBulletInfo( |
| const GraphicObject& rBulletGraphicObject, |
| const Point& rBulletPosition, |
| const Size& rBulletSize) |
| : maBulletGraphicObject(rBulletGraphicObject), |
| maBulletPosition(rBulletPosition), |
| maBulletSize(rBulletSize) |
| {} |
| }; |
| |
| struct EDITENG_DLLPUBLIC PaintFirstLineInfo |
| { |
| sal_uInt16 mnPara; |
| const Point& mrStartPos; |
| long mnBaseLineY; |
| const Point& mrOrigin; |
| short mnOrientation; |
| OutputDevice* mpOutDev; |
| |
| PaintFirstLineInfo( sal_uInt16 nPara, const Point& rStartPos, long nBaseLineY, const Point& rOrigin, short nOrientation, OutputDevice* pOutDev ) |
| : mnPara( nPara ), mrStartPos( rStartPos ), mnBaseLineY( nBaseLineY ), mrOrigin( rOrigin ), mnOrientation( nOrientation ), mpOutDev( pOutDev ) |
| {} |
| }; |
| |
| class SdrPage; |
| |
| class EditFieldInfo |
| { |
| private: |
| Outliner* pOutliner; |
| const SvxFieldItem& rFldItem; |
| |
| Color* pTxtColor; |
| Color* pFldColor; |
| |
| String aRepresentation; |
| |
| sal_uInt16 nPara; |
| xub_StrLen nPos; |
| sal_Bool bSimpleClick; |
| |
| EditFieldInfo(); |
| EditFieldInfo( const EditFieldInfo& ); |
| |
| SdrPage* mpSdrPage; |
| |
| public: |
| EditFieldInfo( Outliner* pOutl, const SvxFieldItem& rFItem, sal_uInt16 nPa, xub_StrLen nPo ) |
| : rFldItem( rFItem ) |
| { |
| pOutliner = pOutl; |
| nPara = nPa; nPos = nPo; |
| pTxtColor = 0; pFldColor = 0; bSimpleClick = sal_False; |
| mpSdrPage = 0; |
| } |
| ~EditFieldInfo() |
| { |
| delete pTxtColor; |
| delete pFldColor; |
| } |
| |
| Outliner* GetOutliner() const { return pOutliner; } |
| |
| const SvxFieldItem& GetField() const { return rFldItem; } |
| |
| Color* GetTxtColor() const { return pTxtColor; } |
| void SetTxtColor( const Color& rColor ) |
| { delete pTxtColor; pTxtColor = new Color( rColor ); } |
| |
| Color* GetFldColor() const { return pFldColor; } |
| void SetFldColor( const Color& rColor ) |
| { delete pFldColor; pFldColor = new Color( rColor ); } |
| void ClearFldColor() |
| { delete pFldColor; pFldColor = 0; } |
| |
| sal_uInt16 GetPara() const { return nPara; } |
| xub_StrLen GetPos() const { return nPos; } |
| |
| sal_Bool IsSimpleClick() const { return bSimpleClick; } |
| void SetSimpleClick( sal_Bool bSimple ) { bSimpleClick = bSimple; } |
| |
| const String& GetRepresentation() const { return aRepresentation; } |
| String& GetRepresentation() { return aRepresentation; } |
| void SetRepresentation( const String& rStr ) { aRepresentation = rStr; } |
| |
| void SetSdrPage( SdrPage* pPage ) { mpSdrPage = pPage; } |
| SdrPage* GetSdrPage() const { return mpSdrPage; } |
| }; |
| |
| struct EBulletInfo |
| { |
| sal_Bool bVisible; |
| sal_uInt16 nType; // see SvxNumberType |
| String aText; |
| SvxFont aFont; |
| Graphic aGraphic; |
| sal_uInt16 nParagraph; |
| Rectangle aBounds; |
| |
| EBulletInfo() : bVisible( sal_False ), nType( 0 ), nParagraph( EE_PARA_NOT_FOUND ) {} |
| }; |
| |
| #define OUTLINERMODE_DONTKNOW 0x0000 |
| #define OUTLINERMODE_TEXTOBJECT 0x0001 |
| #define OUTLINERMODE_TITLEOBJECT 0x0002 |
| #define OUTLINERMODE_OUTLINEOBJECT 0x0003 |
| #define OUTLINERMODE_OUTLINEVIEW 0x0004 |
| |
| #define OUTLINERMODE_USERMASK 0x00FF |
| |
| #define OUTLINERMODE_SUBTITLE (0x0100|OUTLINERMODE_TEXTOBJECT) |
| #define OUTLINERMODE_NOTE (0x0200|OUTLINERMODE_TEXTOBJECT) |
| |
| class EDITENG_DLLPUBLIC Outliner : public SfxBroadcaster |
| { |
| friend class OutlinerView; |
| friend class OutlinerEditEng; |
| friend class OutlinerParaObject; |
| friend class OLUndoExpand; |
| friend class OutlinerUndoChangeDepth; |
| friend class OutlinerUndoCheckPara; |
| friend class OutlinerUndoChangeParaFlags; |
| |
| OutlinerEditEng* pEditEngine; |
| |
| ParagraphList* pParaList; |
| ViewList aViewList; |
| |
| Paragraph* pHdlParagraph; |
| sal_uLong mnFirstSelPage; |
| Link aDrawPortionHdl; |
| Link aDrawBulletHdl; |
| Link aExpandHdl; |
| Link aParaInsertedHdl; |
| Link aParaRemovingHdl; |
| Link aDepthChangedHdl; |
| Link aWidthArrReqHdl; |
| Link aBeginMovingHdl; |
| Link aEndMovingHdl; |
| Link aIndentingPagesHdl; |
| Link aRemovingPagesHdl; |
| Link aFieldClickedHdl; |
| Link aCalcFieldValueHdl; |
| Link maPaintFirstLineHdl; |
| Link maBeginPasteOrDropHdl; |
| Link maEndPasteOrDropHdl; |
| |
| sal_Int16 nDepthChangedHdlPrevDepth; |
| sal_uInt16 mnDepthChangeHdlPrevFlags; |
| sal_Int16 nMaxDepth; |
| const sal_Int16 nMinDepth; |
| sal_uInt16 nFirstPage; |
| |
| sal_uInt16 nOutlinerMode; |
| |
| sal_Bool bIsExpanding; // Nur in Expand/Collaps-Hdl gueltig, mal umstellen |
| sal_Bool bFirstParaIsEmpty; |
| sal_Bool bBlockInsCallback; |
| sal_Bool bStrippingPortions; |
| sal_Bool bPasting; |
| |
| sal_uLong nDummy; |
| |
| #ifdef _OUTLINER_CXX |
| |
| DECL_LINK( ParaVisibleStateChangedHdl, Paragraph* ); |
| DECL_LINK( BeginMovingParagraphsHdl, MoveParagraphsInfo* ); |
| DECL_LINK( EndMovingParagraphsHdl, MoveParagraphsInfo* ); |
| DECL_LINK( BeginPasteOrDropHdl, PasteOrDropInfos* ); |
| DECL_LINK( EndPasteOrDropHdl, PasteOrDropInfos* ); |
| DECL_LINK( EditEngineNotifyHdl, EENotify* ); |
| |
| void ImplCheckParagraphs( sal_uInt16 nStart, sal_uInt16 nEnd ); |
| bool ImplHasNumberFormat( sal_uInt16 nPara ) const; |
| Size ImplGetBulletSize( sal_uInt16 nPara ); |
| sal_uInt16 ImplGetNumbering( sal_uInt16 nPara, const SvxNumberFormat* pParaFmt ); |
| void ImplCalcBulletText( sal_uInt16 nPara, sal_Bool bRecalcLevel, sal_Bool bRecalcChilds ); |
| String ImplGetBulletText( sal_uInt16 nPara ); |
| void ImplCheckNumBulletItem( sal_uInt16 nPara ); |
| void ImplInitDepth( sal_uInt16 nPara, sal_Int16 nDepth, sal_Bool bCreateUndo, sal_Bool bUndoAction = sal_False ); |
| void ImplSetLevelDependendStyleSheet( sal_uInt16 nPara, SfxStyleSheet* pLevelStyle = NULL ); |
| |
| void ImplBlockInsertionCallbacks( sal_Bool b ); |
| |
| void ImplCheckStyleSheet( sal_uInt16 nPara, sal_Bool bReplaceExistingStyle ); |
| void ImpRecalcBulletIndent( sal_uLong nPara ); |
| |
| const SvxBulletItem& ImpGetBullet( sal_uLong nPara, sal_uInt16& ); |
| void ImpFilterIndents( sal_uLong nFirstPara, sal_uLong nLastPara ); |
| bool ImpConvertEdtToOut( sal_uInt32 nPara, EditView* pView = 0 ); |
| |
| void ImpTextPasted( sal_uLong nStartPara, sal_uInt16 nCount ); |
| long ImpCalcMaxBulletWidth( sal_uInt16 nPara, const SvxBulletItem& rBullet ); |
| Font ImpCalcBulletFont( sal_uInt16 nPara ) const; |
| Rectangle ImpCalcBulletArea( sal_uInt16 nPara, sal_Bool bAdjust, sal_Bool bReturnPaperPos ); |
| long ImpGetTextIndent( sal_uLong nPara ); |
| sal_Bool ImpCanIndentSelectedPages( OutlinerView* pCurView ); |
| sal_Bool ImpCanDeleteSelectedPages( OutlinerView* pCurView ); |
| sal_Bool ImpCanDeleteSelectedPages( OutlinerView* pCurView, sal_uInt16 nFirstPage, sal_uInt16 nPages ); |
| |
| sal_uInt16 ImplGetOutlinerMode() const { return nOutlinerMode & OUTLINERMODE_USERMASK; } |
| void ImplCheckDepth( sal_Int16& rnDepth ) const; |
| #endif |
| |
| protected: |
| void ParagraphInserted( sal_uInt16 nParagraph ); |
| void ParagraphDeleted( sal_uInt16 nParagraph ); |
| void ParaAttribsChanged( sal_uInt16 nParagraph ); |
| |
| virtual void StyleSheetChanged( SfxStyleSheet* pStyle ); |
| |
| void InvalidateBullet( Paragraph* pPara, sal_uLong nPara ); |
| void PaintBullet( sal_uInt16 nPara, const Point& rStartPos, |
| const Point& rOrigin, short nOrientation, |
| OutputDevice* pOutDev ); |
| |
| // used by OutlinerEditEng. Allows Outliner objects to provide |
| // bullet access to the EditEngine. |
| virtual const SvxNumberFormat* GetNumberFormat( sal_uInt16 nPara ) const; |
| |
| public: |
| |
| Outliner( SfxItemPool* pPool, sal_uInt16 nOutlinerMode ); |
| virtual ~Outliner(); |
| |
| void Init( sal_uInt16 nOutlinerMode ); |
| sal_uInt16 GetMode() const { return nOutlinerMode; } |
| |
| void SetVertical( sal_Bool bVertical ); |
| sal_Bool IsVertical() const; |
| |
| void SetFixedCellHeight( sal_Bool bUseFixedCellHeight ); |
| sal_Bool IsFixedCellHeight() const; |
| |
| void SetDefaultHorizontalTextDirection( EEHorizontalTextDirection eHTextDir ); |
| EEHorizontalTextDirection GetDefaultHorizontalTextDirection() const; |
| |
| sal_uInt16 GetScriptType( const ESelection& rSelection ) const; |
| LanguageType GetLanguage( sal_uInt16 nPara, sal_uInt16 nPos ) const; |
| |
| void SetAsianCompressionMode( sal_uInt16 nCompressionMode ); |
| sal_uInt16 GetAsianCompressionMode() const; |
| |
| void SetKernAsianPunctuation( sal_Bool bEnabled ); |
| sal_Bool IsKernAsianPunctuation() const; |
| |
| void SetAddExtLeading( sal_Bool b ); |
| sal_Bool IsAddExtLeading() const; |
| |
| sal_uLong InsertView( OutlinerView* pView, sal_uLong nIndex=LIST_APPEND); |
| OutlinerView* RemoveView( OutlinerView* pView ); |
| OutlinerView* RemoveView( sal_uLong nIndex ); |
| OutlinerView* GetView( sal_uLong nIndex ) const; |
| sal_uLong GetViewCount() const; |
| |
| Paragraph* Insert( const String& rText, sal_uLong nAbsPos = LIST_APPEND, sal_Int16 nDepth = 0 ); |
| void SetText( const OutlinerParaObject& ); |
| void AddText( const OutlinerParaObject& ); |
| void SetText( const String& rText, Paragraph* pParagraph ); |
| String GetText( Paragraph* pPara, sal_uLong nParaCount=1 ) const; |
| |
| OutlinerParaObject* CreateParaObject( sal_uInt16 nStartPara = 0, sal_uInt16 nParaCount = 0xFFFF ) const; |
| |
| const SfxItemSet& GetEmptyItemSet() const; |
| |
| void SetRefMapMode( const MapMode& ); |
| MapMode GetRefMapMode() const; |
| |
| void SetBackgroundColor( const Color& rColor ); |
| Color GetBackgroundColor() const; |
| |
| sal_Int16 GetMinDepth() const { return -1; } |
| |
| void SetMaxDepth( sal_Int16 nDepth, sal_Bool bCheckParas = sal_False ); |
| sal_Int16 GetMaxDepth() const { return nMaxDepth; } |
| |
| void SetUpdateMode( sal_Bool bUpdate ); |
| sal_Bool GetUpdateMode() const; |
| |
| void Clear(); |
| |
| void RemoveAttribs( const ESelection& rSelection, sal_Bool bRemoveParaAttribs, sal_uInt16 nWhich ); |
| |
| sal_uLong GetParagraphCount() const; |
| Paragraph* GetParagraph( sal_uLong nAbsPos ) const; |
| |
| sal_Bool HasParent( Paragraph* pParagraph ) const; |
| sal_Bool HasChilds( Paragraph* pParagraph ) const; |
| sal_uLong GetChildCount( Paragraph* pParent ) const; |
| sal_Bool IsExpanded( Paragraph* pPara ) const; |
| // Paragraph* GetParagraph( Paragraph* pParent, sal_uLong nRelPos ) const; |
| Paragraph* GetParent( Paragraph* pParagraph ) const; |
| // sal_uLong GetRelPos( Paragraph* pParent, Paragraph* pPara ) const; |
| sal_uLong GetAbsPos( Paragraph* pPara ); |
| |
| sal_Int16 GetDepth( sal_uLong nPara ) const; |
| void SetDepth( Paragraph* pParagraph, sal_Int16 nNewDepth ); |
| |
| void SetVisible( Paragraph* pPara, sal_Bool bVisible ); |
| sal_Bool IsVisible( Paragraph* pPara ) const { return pPara->IsVisible(); } |
| |
| void EnableUndo( sal_Bool bEnable ); |
| sal_Bool IsUndoEnabled() const; |
| void UndoActionStart( sal_uInt16 nId ); |
| void UndoActionEnd( sal_uInt16 nId ); |
| void InsertUndo( EditUndo* pUndo ); |
| sal_Bool IsInUndo(); |
| |
| void ClearModifyFlag(); |
| sal_Bool IsModified() const; |
| |
| Paragraph* GetHdlParagraph() const { return pHdlParagraph; } |
| sal_Bool IsExpanding() const { return bIsExpanding; } |
| |
| virtual void ExpandHdl(); |
| void SetExpandHdl( const Link& rLink ) { aExpandHdl = rLink; } |
| Link GetExpandHdl() const { return aExpandHdl; } |
| |
| virtual void ParagraphInsertedHdl(); |
| void SetParaInsertedHdl(const Link& rLink){aParaInsertedHdl=rLink;} |
| Link GetParaInsertedHdl() const { return aParaInsertedHdl; } |
| |
| virtual void ParagraphRemovingHdl(); |
| void SetParaRemovingHdl(const Link& rLink){aParaRemovingHdl=rLink;} |
| Link GetParaRemovingHdl() const { return aParaRemovingHdl; } |
| |
| virtual void DepthChangedHdl(); |
| void SetDepthChangedHdl(const Link& rLink){aDepthChangedHdl=rLink;} |
| Link GetDepthChangedHdl() const { return aDepthChangedHdl; } |
| sal_Int16 GetPrevDepth() const { return nDepthChangedHdlPrevDepth; } |
| sal_uInt16 GetPrevFlags() const { return mnDepthChangeHdlPrevFlags; } |
| |
| virtual long RemovingPagesHdl( OutlinerView* ); |
| void SetRemovingPagesHdl(const Link& rLink){aRemovingPagesHdl=rLink;} |
| Link GetRemovingPagesHdl() const { return aRemovingPagesHdl; } |
| virtual long IndentingPagesHdl( OutlinerView* ); |
| void SetIndentingPagesHdl(const Link& rLink){aIndentingPagesHdl=rLink;} |
| Link GetIndentingPagesHdl() const { return aIndentingPagesHdl; } |
| // nur gueltig in den beiden oberen Handlern |
| sal_uInt16 GetSelPageCount() const { return nDepthChangedHdlPrevDepth; } |
| // nur gueltig in den beiden oberen Handlern |
| sal_uLong GetFirstSelPage() const { return mnFirstSelPage; } |
| |
| void SetCalcFieldValueHdl(const Link& rLink ) { aCalcFieldValueHdl= rLink; } |
| Link GetCalcFieldValueHdl() const { return aCalcFieldValueHdl; } |
| |
| void SetFieldClickedHdl(const Link& rLink ) { aFieldClickedHdl= rLink; } |
| Link GetFieldClickedHdl() const { return aFieldClickedHdl; } |
| |
| void SetDrawPortionHdl(const Link& rLink){aDrawPortionHdl=rLink;} |
| Link GetDrawPortionHdl() const { return aDrawPortionHdl; } |
| |
| void SetDrawBulletHdl(const Link& rLink){aDrawBulletHdl=rLink;} |
| Link GetDrawBulletHdl() const { return aDrawBulletHdl; } |
| |
| void SetPaintFirstLineHdl(const Link& rLink) { maPaintFirstLineHdl = rLink; } |
| Link GetPaintFirstLineHdl() const { return maPaintFirstLineHdl; } |
| |
| void SetModifyHdl( const Link& rLink ); |
| Link GetModifyHdl() const; |
| |
| void SetNotifyHdl( const Link& rLink ); |
| Link GetNotifyHdl() const; |
| |
| void SetStatusEventHdl( const Link& rLink ); |
| Link GetStatusEventHdl() const; |
| |
| void Draw( OutputDevice* pOutDev, const Rectangle& rOutRect ); |
| void Draw( OutputDevice* pOutDev, const Rectangle& rOutRect, const Point& rStartDocPos ); |
| void Draw( OutputDevice* pOutDev, const Point& rStartPos, short nOrientation = 0 ); |
| |
| const Size& GetPaperSize() const; |
| void SetPaperSize( const Size& rSize ); |
| |
| void SetFirstPageNumber( sal_uInt16 n ) { nFirstPage = n; } |
| sal_uInt16 GetFirstPageNumber() const { return nFirstPage; } |
| |
| void SetPolygon( const basegfx::B2DPolyPolygon& rPolyPolygon ); |
| void SetPolygon( const basegfx::B2DPolyPolygon& rPolyPolygon, const basegfx::B2DPolyPolygon* pLinePolyPolygon); |
| void ClearPolygon(); |
| const PolyPolygon* GetPolygon(); |
| |
| const Size& GetMinAutoPaperSize() const; |
| void SetMinAutoPaperSize( const Size& rSz ); |
| |
| const Size& GetMaxAutoPaperSize() const; |
| void SetMaxAutoPaperSize( const Size& rSz ); |
| |
| void SetDefTab( sal_uInt16 nTab ); |
| sal_uInt16 GetDefTab() const; |
| |
| sal_Bool IsFlatMode() const; |
| void SetFlatMode( sal_Bool bFlat ); |
| |
| void EnableAutoColor( sal_Bool b ); |
| sal_Bool IsAutoColorEnabled() const; |
| |
| void ForceAutoColor( sal_Bool b ); |
| sal_Bool IsForceAutoColor() const; |
| |
| EBulletInfo GetBulletInfo( sal_uInt16 nPara ); |
| |
| void SetWordDelimiters( const String& rDelimiters ); |
| String GetWordDelimiters() const; |
| String GetWord( sal_uInt16 nPara, xub_StrLen nIndex ); |
| |
| void StripPortions(); |
| |
| // #101498# |
| virtual void DrawingText( |
| const Point& rStartPos, const String& rText, sal_uInt16 nTextStart, sal_uInt16 nTextLen, |
| const sal_Int32* pDXArray, const SvxFont& rFont, sal_uInt16 nPara, xub_StrLen nIndex, sal_uInt8 nRightToLeft, |
| const EEngineData::WrongSpellVector* pWrongSpellVector, |
| const SvxFieldData* pFieldData, |
| bool bEndOfLine, |
| bool bEndOfParagraph, |
| bool bEndOfBullet, |
| const ::com::sun::star::lang::Locale* pLocale, |
| const Color& rOverlineColor, |
| const Color& rTextLineColor); |
| |
| Size CalcTextSize(); |
| |
| Point GetDocPos( Paragraph* pPara ); |
| |
| void SetStyleSheetPool( SfxStyleSheetPool* pSPool ); |
| SfxStyleSheetPool* GetStyleSheetPool(); |
| |
| sal_Bool IsInSelectionMode() const; |
| |
| void SetStyleSheet( sal_uLong nPara, SfxStyleSheet* pStyle ); |
| SfxStyleSheet* GetStyleSheet( sal_uLong nPara ); |
| |
| void SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& ); |
| SfxItemSet GetParaAttribs( sal_uInt16 nPara ); |
| |
| void Remove( Paragraph* pPara, sal_uLong nParaCount ); |
| sal_Bool Expand( Paragraph* ); |
| sal_Bool Collapse( Paragraph* ); |
| |
| void SetParaFlag( Paragraph* pPara, sal_uInt16 nFlag ); |
| void RemoveParaFlag( Paragraph* pPara, sal_uInt16 nFlag ); |
| bool HasParaFlag( const Paragraph* pPara, sal_uInt16 nFlag ) const; |
| |
| // gibt ein Array mit den Bulletbreiten der n Einrueckebenen |
| // zurueck. Letzter Wert muss -1 sein. Wird vom Outliner geloescht. |
| Link GetWidthArrReqHdl() const{ return aWidthArrReqHdl; } |
| void SetWidthArrReqHdl(const Link& rLink){aWidthArrReqHdl=rLink; } |
| |
| void SetControlWord( sal_uLong nWord ); |
| sal_uLong GetControlWord() const; |
| |
| Link GetBeginMovingHdl() const { return aBeginMovingHdl; } |
| void SetBeginMovingHdl(const Link& rLink) {aBeginMovingHdl=rLink;} |
| Link GetEndMovingHdl() const {return aEndMovingHdl;} |
| void SetEndMovingHdl( const Link& rLink){aEndMovingHdl=rLink;} |
| |
| sal_uLong GetLineCount( sal_uLong nParagraph ) const; |
| sal_uInt16 GetLineLen( sal_uLong nParagraph, sal_uInt16 nLine ) const; |
| sal_uLong GetLineHeight( sal_uLong nParagraph, sal_uLong nLine = 0 ); |
| |
| // nFormat muss ein Wert aus dem enum EETextFormat sein (wg.CLOOKS) |
| sal_uLong Read( SvStream& rInput, const String& rBaseURL, sal_uInt16, SvKeyValueIterator* pHTTPHeaderAttrs = NULL ); |
| |
| ::svl::IUndoManager& GetUndoManager(); |
| ::svl::IUndoManager* SetUndoManager(::svl::IUndoManager* pNew); |
| |
| void QuickSetAttribs( const SfxItemSet& rSet, const ESelection& rSel ); |
| void QuickInsertField( const SvxFieldItem& rFld, const ESelection& rSel ); |
| void QuickInsertLineBreak( const ESelection& rSel ); |
| |
| // nur fuer EditEngine-Modus |
| void QuickInsertText( const String& rText, const ESelection& rSel ); |
| void QuickDelete( const ESelection& rSel ); |
| void QuickRemoveCharAttribs( sal_uInt16 nPara, sal_uInt16 nWhich = 0 ); |
| void QuickFormatDoc( sal_Bool bFull = sal_False ); |
| |
| sal_Bool UpdateFields(); |
| void RemoveFields( sal_Bool bKeepFieldText, TypeId aType = NULL ); |
| |
| virtual void FieldClicked( const SvxFieldItem& rField, sal_uInt16 nPara, xub_StrLen nPos ); |
| virtual void FieldSelected( const SvxFieldItem& rField, sal_uInt16 nPara, xub_StrLen nPos ); |
| virtual String CalcFieldValue( const SvxFieldItem& rField, sal_uInt16 nPara, xub_StrLen nPos, Color*& rTxtColor, Color*& rFldColor ); |
| |
| void SetSpeller( ::com::sun::star::uno::Reference< |
| ::com::sun::star::linguistic2::XSpellChecker1 > &xSpeller ); |
| ::com::sun::star::uno::Reference< |
| ::com::sun::star::linguistic2::XSpellChecker1 > |
| GetSpeller(); |
| ::com::sun::star::uno::Reference< |
| ::com::sun::star::linguistic2::XHyphenator > |
| GetHyphenator() const; |
| void SetHyphenator( ::com::sun::star::uno::Reference< |
| ::com::sun::star::linguistic2::XHyphenator >& xHyph ); |
| |
| void SetForbiddenCharsTable( vos::ORef<SvxForbiddenCharactersTable> xForbiddenChars ); |
| vos::ORef<SvxForbiddenCharactersTable> GetForbiddenCharsTable() const; |
| |
| // Depricated |
| void SetDefaultLanguage( LanguageType eLang ); |
| LanguageType GetDefaultLanguage() const; |
| |
| sal_Bool HasOnlineSpellErrors() const; |
| void CompleteOnlineSpelling(); |
| |
| EESpellState HasSpellErrors(); |
| sal_Bool HasText( const SvxSearchItem& rSearchItem ); |
| virtual sal_Bool SpellNextDocument(); |
| |
| // for text conversion |
| sal_Bool HasConvertibleTextPortion( LanguageType nLang ); |
| virtual sal_Bool ConvertNextDocument(); |
| |
| void SetEditTextObjectPool( SfxItemPool* pPool ); |
| SfxItemPool* GetEditTextObjectPool() const; |
| |
| void SetRefDevice( OutputDevice* pRefDev ); |
| OutputDevice* GetRefDevice() const; |
| |
| sal_uInt16 GetFirstLineOffset( sal_uLong nParagraph ); |
| |
| sal_uLong GetTextHeight() const; |
| sal_uLong GetTextHeight( sal_uLong nParagraph ) const; |
| Point GetDocPosTopLeft( sal_uLong nParagraph ); |
| Point GetDocPos( const Point& rPaperPos ) const; |
| sal_Bool IsTextPos( const Point& rPaperPos, sal_uInt16 nBorder = 0 ); |
| sal_Bool IsTextPos( const Point& rPaperPos, sal_uInt16 nBorder, sal_Bool* pbBuuletPos ); |
| |
| void SetGlobalCharStretching( sal_uInt16 nX = 100, sal_uInt16 nY = 100 ); |
| void GetGlobalCharStretching( sal_uInt16& rX, sal_uInt16& rY ); |
| void DoStretchChars( sal_uInt16 nX, sal_uInt16 nY ); |
| void EraseVirtualDevice(); |
| |
| void SetBigTextObjectStart( sal_uInt16 nStartAtPortionCount ); |
| sal_uInt16 GetBigTextObjectStart() const; |
| sal_Bool ShouldCreateBigTextObject() const; |
| |
| const EditEngine& GetEditEngine() const { return *((EditEngine*)pEditEngine); } |
| |
| // this is needed for StarOffice Api |
| void SetLevelDependendStyleSheet( sal_uInt16 nPara ); |
| |
| sal_uInt16 GetOutlinerMode() const { return nOutlinerMode & OUTLINERMODE_USERMASK; } |
| |
| void StartSpelling(EditView& rEditView, sal_Bool bMultipleDoc); |
| //spell and return a sentence |
| bool SpellSentence(EditView& rEditView, ::svx::SpellPortions& rToFill, bool bIsGrammarChecking ); |
| // put spell position to start of current sentence |
| void PutSpellingToSentenceStart( EditView& rEditView ); |
| //applies a changed sentence |
| void ApplyChangedSentence(EditView& rEditView, const ::svx::SpellPortions& rNewPortions, bool bRecheck ); |
| void EndSpelling(); |
| |
| /** sets a link that is called at the beginning of a drag operation at an edit view */ |
| void SetBeginDropHdl( const Link& rLink ); |
| Link GetBeginDropHdl() const; |
| |
| /** sets a link that is called at the end of a drag operation at an edit view */ |
| void SetEndDropHdl( const Link& rLink ); |
| Link GetEndDropHdl() const; |
| |
| /** sets a link that is called before a drop or paste operation. */ |
| void SetBeginPasteOrDropHdl( const Link& rLink ); |
| Link GetBeginPasteOrDropHdl() const { return maBeginPasteOrDropHdl; } |
| |
| /** sets a link that is called after a drop or paste operation. */ |
| void SetEndPasteOrDropHdl( const Link& rLink ); |
| Link GetEndPasteOrDropHdl() const { return maEndPasteOrDropHdl; } |
| |
| virtual sal_Int16 GetNumberingStartValue( sal_uInt16 nPara ); |
| virtual void SetNumberingStartValue( sal_uInt16 nPara, sal_Int16 nNumberingStartValue ); |
| |
| virtual sal_Bool IsParaIsNumberingRestart( sal_uInt16 nPara ); |
| virtual void SetParaIsNumberingRestart( sal_uInt16 nPara, sal_Bool bParaIsNumberingRestart ); |
| |
| /** determine the bullets/numbering status of the given paragraphs |
| |
| @param nParaStart |
| index of paragraph at which the check starts |
| |
| @param nParaEnd |
| index of paragraph at which the check ends |
| |
| @returns |
| 0 : all paragraphs have bullets |
| 1 : all paragraphs have numbering |
| 2 : otherwise |
| */ |
| sal_Int16 GetBulletsNumberingStatus( |
| const sal_uInt16 nParaStart, |
| const sal_uInt16 nParaEnd ) const; |
| |
| // convenient method to determine the bullets/numbering status for all paragraphs |
| sal_Int16 GetBulletsNumberingStatus() const; |
| }; |
| |
| #endif |
| |