diff options
Diffstat (limited to 'sw/inc/editsh.hxx')
-rw-r--r-- | sw/inc/editsh.hxx | 948 |
1 files changed, 0 insertions, 948 deletions
diff --git a/sw/inc/editsh.hxx b/sw/inc/editsh.hxx deleted file mode 100644 index cb62642e85..0000000000 --- a/sw/inc/editsh.hxx +++ /dev/null @@ -1,948 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef _EDITSH_HXX -#define _EDITSH_HXX - -#include <com/sun/star/text/HoriOrientation.hpp> -#include <com/sun/star/embed/XEmbeddedObject.hpp> -#include <tools/string.hxx> -#include <svl/svarray.hxx> -#include <vcl/font.hxx> -#include <editeng/swafopt.hxx> -#include "swdllapi.h" -#include <crsrsh.hxx> // For base class. -#include <itabenum.hxx> -#include <swdbdata.hxx> -#include <com/sun/star/linguistic2/XSpellAlternatives.hpp> -#include <com/sun/star/linguistic2/ProofreadingResult.hpp> -#include <fldupde.hxx> -#include <tblenum.hxx> -#include <IMark.hxx> - -#include <vector> -#include <set> -#include <swundo.hxx> -#include <svtools/embedhlp.hxx> - -class PolyPolygon; -class SwDoc; -class DateTime; -class CommandExtTextInputData; - -class SvNumberFormatter; -class SfxPoolItem; -class SfxItemSet; -class SvxAutoCorrect; - -class SwField; -class SwFieldType; -class SwDDEFieldType; -class SwNewDBMgr; - -struct SwDocStat; -class SvStringsDtor; -class SvStringsSort; -class SwAutoCompleteWord; - -class SwFmtRefMark; - -class SwNumRule; - -class SwTxtFmtColl; -class SwGrfNode; -class SwFlyFrmFmt; - -class SwFrmFmt; // For GetTxtNodeFmts(). -class SwCharFmt; -class SwExtTextInput; -class SwRootFrm; // For CTOR. -class Graphic; -class GraphicObject; -class SwFmtINetFmt; // InsertURL. -class SwTable; -class SwTextBlocks; // For GlossaryRW. -class SwFmtFtn; -class SwSection; -class SwSectionData; -class SwSectionFmt; -class SwTOXMarks; -class SwTOXBase; -class SwTOXType; -class SwTableAutoFmt; -class SwPageDesc; -class SwTxtINetFmt; -class SwSeqFldList; -class SwGlblDocContent; -class SwGlblDocContents; -class SwRedline; -class SwRedlineData; -class SwFtnInfo; -class SwEndNoteInfo; -class SwLineNumberInfo; -class SwAuthEntry; -class SwRewriter; -struct SwConversionArgs; - - -namespace com { namespace sun { namespace star { namespace uno { - template < class > class Sequence; -}}}} - -namespace svx{ -struct SpellPortion; -typedef std::vector<SpellPortion> SpellPortions; -} - -namespace sfx2{ -class LinkManager; -} - -namespace sw { - class UndoRedoContext; -} - -#define GETSELTXT_PARABRK_TO_BLANK 0 -#define GETSELTXT_PARABRK_KEEP 1 -#define GETSELTXT_PARABRK_TO_ONLYCR 2 - - -// For querying the INet-attributes for Navigator. -struct SwGetINetAttr -{ - String sText; - const SwTxtINetFmt& rINetAttr; - - SwGetINetAttr( const String& rTxt, const SwTxtINetFmt& rAttr ) - : sText( rTxt ), rINetAttr( rAttr ) - {} -}; -SV_DECL_PTRARR_DEL( SwGetINetAttrs, SwGetINetAttr*, 0, 5 ) - -// Types of forms of content. -#define CNT_TXT 0x0001 -#define CNT_GRF 0x0002 -#define CNT_OLE 0x0010 - -// Test USHORT for a defined form of content. -#define CNT_HasTxt(USH) ((USH)&CNT_TXT) -#define CNT_HasGrf(USH) ((USH)&CNT_GRF) -#define CNT_HasOLE(USH) ((USH)&CNT_OLE) - -class SW_DLLPUBLIC SwEditShell: public SwCrsrShell -{ - static SvxSwAutoFmtFlags* pAutoFmtFlags; - - // For the private methods DelRange and those of AutoCorrect. - friend class SwAutoFormat; - friend void _InitCore(); - friend void _FinitCore(); - // For the PamCorrAbs/-Rel methods. - friend class SwUndo; - - SW_DLLPRIVATE SfxPoolItem& _GetChrFmt( SfxPoolItem& ) const; - - // Returns pointer to a SwGrfNode - // that will be used by GetGraphic() and GetGraphicSize(). - SW_DLLPRIVATE SwGrfNode *_GetGrfNode() const ; - - SW_DLLPRIVATE void DeleteSel( SwPaM& rPam, sal_Bool* pUndo = 0 ); - - SW_DLLPRIVATE void _SetSectionAttr( SwSectionFmt& rSectFmt, const SfxItemSet& rSet ); - - using ViewShell::UpdateFlds; - using SwModify::GetInfo; - -public: - // Edit (all selected ranges). - void Insert( sal_Unicode, sal_Bool bOnlyCurrCrsr = sal_False ); - void Insert2( const String &, const bool bForceExpandHints = false ); - void Overwrite( const String & ); - - // Replace a selected range in a TextNode by given string. - // Meant for Search & Replace. - // bRegExpRplc - replace tabs (\\t) and insert found string (not \&). - // E.g.: Fnd: "zzz", Repl: "xx\t\\t..&..\&" - // --> "xx\t<Tab>..zzz..&" - sal_Bool Replace( const String& rNewStr, sal_Bool bRegExpRplc = sal_False ); - - // Delete content of all ranges. - // If whole nodes are selected, these nodes get deleted. - long Delete(); - - // Remove a complete paragraph. - sal_Bool DelFullPara(); - - // Change text to Upper/Lower/Hiragana/Katagana/... - void TransliterateText( sal_uInt32 nType ); - - // Count words in current selection. - void CountWords( SwDocStat& rStat ) const; - - // Delete non-visible content in the document. - // E.g. hidden ranges, hidden paragraphs. - sal_Bool RemoveInvisibleContent(); - - // Replace fields by text - mailmerge support. - sal_Bool ConvertFieldsToText(); - - // Set all numbering start points to a fixed value - mailmerge support. - void SetNumberingRestart(); - - // Embedds all local links (ranges/graphics). - sal_uInt16 GetLinkUpdMode(sal_Bool bDocSettings = sal_False) const; - void SetLinkUpdMode( sal_uInt16 nMode ); - - // Copy content of all ranges at current position of cursor to given Shell. - long Copy( SwEditShell* pDestShell = 0 ); - - // For copying via ClipBoard: - // If table is copied into table, move all cursors away from it. - // Copy and Paste must be in FEShell because of FlyFrames! - // Copy all selections and the document. - sal_Bool _CopySelToDoc( SwDoc* pInsDoc, SwNodeIndex* pNdInsPos = 0 ); - - long SplitNode( sal_Bool bAutoFormat = sal_False, sal_Bool bCheckTableStart = sal_True ); - sal_Bool AppendTxtNode(); - void AutoFmtBySplitNode(); - - // If cursor is in a INetAttribute it will be deleted completely - // including the descriptive text (needed at drag & drop). - sal_Bool DelINetAttrWithText(); - - // If Cursor is at the end of a character style in which the DontExpand-flag - // is not yet set, the latter will be set (==> return TRUE). - sal_Bool DontExpandFmt(); - - // Apply / remove attributes. - // Returns attributs in required AttributeSet. - // When not unambiguous the set has a DONT_CARE !! - // 2nd optional parameter <bMergeIndentValuesOfNumRule>. - // If <bMergeIndentValuesOfNumRule> == sal_True, the indent attributes of - // the corresponding list level of an applied list style is merged into - // the requested item set as a LR-SPACE item, if corresponding node has not - // its own indent attributes and the position-and-space mode of the list - // level is SvxNumberFormat::LABEL_ALIGNMENT. - sal_Bool GetCurAttr( SfxItemSet& , - const bool bMergeIndentValuesOfNumRule = false ) const; - void SetAttr( const SfxPoolItem&, sal_uInt16 nFlags = 0 ); - void SetAttr( const SfxItemSet&, sal_uInt16 nFlags = 0 ); - - // Set attribute as new default attribute in document. - void SetDefault( const SfxPoolItem& ); - - // Query default attribute of document. - const SfxPoolItem& GetDefault( sal_uInt16 nFmtHint ) const; - - void ResetAttr( const std::set<sal_uInt16> &attrs = std::set<sal_uInt16>() ); - void GCAttr(); - - // Returns the scripttpye of the selection. - sal_uInt16 GetScriptType() const; - - // Returns the language at current cursor position. - sal_uInt16 GetCurLang() const; - - // TABLE - sal_uInt16 GetTblFrmFmtCount( sal_Bool bUsed = sal_False ) const; - SwFrmFmt& GetTblFrmFmt(sal_uInt16 nFmt, sal_Bool bUsed = sal_False ) const; - String GetUniqueTblName() const; - - // CHAR - sal_uInt16 GetCharFmtCount() const; - SwCharFmt& GetCharFmt(sal_uInt16 nFmt) const; - SwCharFmt* GetCurCharFmt() const; - void FillByEx(SwCharFmt*, sal_Bool bReset = sal_False); - SwCharFmt* MakeCharFmt( const String& rName, SwCharFmt* pDerivedFrom = 0 ); - SwCharFmt* FindCharFmtByName( const String& rName ) const; - - - /* FormatCollections (new) - Explaining the general naming pattern: - * GetXXXCount() returns the count of xxx in the document. - * GetXXX(i) returns i-th xxx (ERR_RAISE if beyond range!). - * DelXXX(i) delets i-th xxx (ERR_RAISE if beyond range!). - * GetCurXXX() returns xxx that is valid at cursor or in ranges. - * returns 0, if not unanimuous. - * SetXXX() sets xxx at cursor or in ranges. - * MakeXXX() makes a xxx, derived from pDerivedFrom. - */ - - // TXT - SwTxtFmtColl& GetDfltTxtFmtColl() const; - sal_uInt16 GetTxtFmtCollCount() const; - SwTxtFmtColl& GetTxtFmtColl( sal_uInt16 nTxtFmtColl) const; - SwTxtFmtColl* GetCurTxtFmtColl() const; - - // #i62675# - // Add 2nd optional parameter <bResetListAttrs> - see also <SwDoc::SetTxtFmtColl(..)> - void SetTxtFmtColl( SwTxtFmtColl*, - bool bResetListAttrs = false ); - SwTxtFmtColl *MakeTxtFmtColl(const String &rFmtCollName, - SwTxtFmtColl *pDerivedFrom = 0); - void FillByEx(SwTxtFmtColl*, sal_Bool bReset = sal_False); - SwTxtFmtColl* FindTxtFmtCollByName( const String& rName ) const; - - // Return "Auto-Collection" with given Id. If it does not exist create it. - SwTxtFmtColl* GetTxtCollFromPool( sal_uInt16 nId ); - - // Return required automatic format base class. - SwFmt* GetFmtFromPool( sal_uInt16 nId ); - - // Return required automatic page style. - SwPageDesc* GetPageDescFromPool( sal_uInt16 nId ); - - // Query if the paragraph-/character-/frame-/page-style is used. - sal_Bool IsUsed( const SwModify& ) const; - - // Return required automatic format. - SwFrmFmt* GetFrmFmtFromPool( sal_uInt16 nId ) - { return (SwFrmFmt*)SwEditShell::GetFmtFromPool( nId ); } - SwCharFmt* GetCharFmtFromPool( sal_uInt16 nId ) - { return (SwCharFmt*)SwEditShell::GetFmtFromPool( nId ); } - - void Insert2(SwField&, const bool bForceExpandHints = false); - SwField* GetCurFld() const; - - void UpdateFlds( SwField & ); // One single field. - - sal_uInt16 GetFldTypeCount(sal_uInt16 nResId = USHRT_MAX, sal_Bool bUsed = sal_False) const; - SwFieldType* GetFldType(sal_uInt16 nId, sal_uInt16 nResId = USHRT_MAX, sal_Bool bUsed = sal_False) const; - SwFieldType* GetFldType(sal_uInt16 nResId, const String& rName) const; - - void RemoveFldType(sal_uInt16 nId, sal_uInt16 nResId = USHRT_MAX); - void RemoveFldType(sal_uInt16 nResId, const String& rName); - - void FieldToText( SwFieldType* pType ); - - void ChangeAuthorityData(const SwAuthEntry* pNewData); - - // Database information. - SwDBData GetDBData() const; - const SwDBData& GetDBDesc() const; - void ChgDBData(const SwDBData& SwDBData); - void ChangeDBFields( const SvStringsDtor& rOldNames, - const String& rNewName ); - void GetAllUsedDB( SvStringsDtor& rDBNameList, - SvStringsDtor* pAllDBNames = 0 ); - - sal_Bool IsAnyDatabaseFieldInDoc()const; - - // Check whether DB fields point to an available data source and returns it. - sal_Bool IsFieldDataSourceAvailable(String& rUsedDataSource) const; - void UpdateExpFlds(sal_Bool bCloseDB = sal_False);// nur alle ExpressionFelder updaten - void SetFixFields( sal_Bool bOnlyTimeDate = sal_False, - const DateTime* pNewDateTime = 0 ); - void LockExpFlds(); - void UnlockExpFlds(); - - SwFldUpdateFlags GetFldUpdateFlags(sal_Bool bDocSettings = sal_False) const; - void SetFldUpdateFlags( SwFldUpdateFlags eFlags ); - - // For evaluation of DB fields (new DB-manager). - SwNewDBMgr* GetNewDBMgr() const; - - SwFieldType* InsertFldType(const SwFieldType &); - - // Changes in document? - sal_Bool IsModified() const; - void SetModified(); - void ResetModified(); - void SetUndoNoResetModified(); - - // Document - Statistics - void UpdateDocStat( SwDocStat& rStat ); - - void Insert(const SwTOXMark& rMark); - - void DeleteTOXMark(SwTOXMark* pMark); - - // Get all marks at current SPoint. - sal_uInt16 GetCurTOXMarks(SwTOXMarks& rMarks) const ; - - // Insert content table. Renew if required. - void InsertTableOf(const SwTOXBase& rTOX, - const SfxItemSet* pSet = 0); - sal_Bool UpdateTableOf(const SwTOXBase& rTOX, - const SfxItemSet* pSet = 0); - const SwTOXBase* GetCurTOX() const; - const SwTOXBase* GetDefaultTOXBase( TOXTypes eTyp, sal_Bool bCreate = sal_False ); - void SetDefaultTOXBase(const SwTOXBase& rBase); - - sal_Bool IsTOXBaseReadonly(const SwTOXBase& rTOXBase) const; - void SetTOXBaseReadonly(const SwTOXBase& rTOXBase, sal_Bool bReadonly); - - sal_uInt16 GetTOXCount() const; - const SwTOXBase* GetTOX( sal_uInt16 nPos ) const; - sal_Bool DeleteTOX( const SwTOXBase& rTOXBase, sal_Bool bDelNodes = sal_False ); - - // After reading file update all content tables. - void SetUpdateTOX( sal_Bool bFlag = sal_True ); - sal_Bool IsUpdateTOX() const; - - // Manage types of content tables. - sal_uInt16 GetTOXTypeCount(TOXTypes eTyp) const; - const SwTOXType* GetTOXType(TOXTypes eTyp, sal_uInt16 nId) const; - void InsertTOXType(const SwTOXType& rTyp); - - // AutoMark file - const String& GetTOIAutoMarkURL() const; - void SetTOIAutoMarkURL(const String& rSet); - void ApplyAutoMark(); - - // Key for managing index. - sal_uInt16 GetTOIKeys( SwTOIKeyType eTyp, SvStringsSort& rArr ) const; - - void SetOutlineNumRule(const SwNumRule&); - const SwNumRule* GetOutlineNumRule() const; - - sal_Bool OutlineUpDown( short nOffset = 1 ); - - sal_Bool MoveOutlinePara( short nOffset = 1); - - sal_Bool IsProtectedOutlinePara() const; - - // Returns numbering rulse pf current enumeration list (else FALSE). - const SwNumRule* GetCurNumRule() const; - - // If there is not already a numbering, set one, else change. - // Works with old and new rules. Update only differences. - // Add optional parameter <bResetIndentAttrs> (default value sal_False). - // If <bResetIndentAttrs> equals true, the indent attributes "before text" - // and "first line indent" are additionally reset at the current selection, - // if the list style makes use of the new list level attributes. - // introduce parameters <bCreateNewList> and <sContinuedListId> - // <bCreateNewList> indicates, if a new list is created by applying the - // given list style. - // If <bCreateNewList> equals sal_False, <sContinuedListId> may contain the - // list Id of a list, which has to be continued by applying the given list style. - void SetCurNumRule( const SwNumRule&, - const bool bCreateNewList /*= false*/, - const String sContinuedListId = String(), - const bool bResetIndentAttrs = false ); - - // Paragraphs without enumeration but with indents. - sal_Bool NoNum(); - - // Delete, split enumeration list. - void DelNumRules(); - - sal_Bool NumUpDown( sal_Bool bDown = sal_True ); - - sal_Bool MoveParagraph( long nOffset = 1); - sal_Bool MoveNumParas( sal_Bool bUpperLower, sal_Bool bUpperLeft ); - - // Switch on/off of numbering via Delete/Backspace. - sal_Bool NumOrNoNum( sal_Bool bDelete = sal_False, sal_Bool bChkStart = sal_True); - - // #i23726# - // #i90078# - // Remove unused default parameter <nLevel> and <bRelative>. - // Adjust method name and parameter name - void ChangeIndentOfAllListLevels( short nDiff ); - // Adjust method name - void SetIndent(short nIndent, const SwPosition & rPos); - sal_Bool IsFirstOfNumRule() const; - sal_Bool IsFirstOfNumRule(const SwPaM & rPaM) const; - - sal_Bool IsNoNum( sal_Bool bChkStart = sal_True ) const; - - // Return Num-Level of the node in which point of cursor is. - // Return values can be: NO_NUMBERING, - // 0..MAXLEVEL-1, NO_NUMLEVEL .. NO_NUMLEVEL|MAXLEVEL-1 - sal_uInt8 GetNumLevel() const; - - // Detect highest and lowest level to check moving of outline levels. - void GetCurrentOutlineLevels( sal_uInt8& rUpper, sal_uInt8& rLower ); - - - // Get Outline level of current paragraph. - int GetCurrentParaOutlineLevel( ) const;// #outlinelevel add by zhaojianwei - - // i29560 - sal_Bool HasNumber() const; - sal_Bool HasBullet() const; - - String GetUniqueNumRuleName( const String* pChkStr = 0, sal_Bool bAutoNum = sal_True ) const; - void ChgNumRuleFmts( const SwNumRule& rRule ); - - // Set (and query if) a numbering with StartFlag starts at current PointPos. - void SetNumRuleStart( sal_Bool bFlag = sal_True ); - sal_Bool IsNumRuleStart() const; - void SetNodeNumStart( sal_uInt16 nStt ); - - sal_uInt16 GetNodeNumStart() const; - - sal_Bool ReplaceNumRule( const String& rOldRule, const String& rNewRule ); - - // Searches for a text node with a numbering rule. - // in case a list style is found, <sListId> holds the list id, to which the - // text node belongs, which applies the found list style. - const SwNumRule * SearchNumRule(const bool bForward, - const bool bNum, - const bool bOutline, - int nNonEmptyAllowed, - String& sListId ); - - // Undo. - // Maintain UndoHistory in Document. - // Reset UndoHistory at Save, SaveAs, Create ??? - void DoUndo( sal_Bool bOn = sal_True ); - sal_Bool DoesUndo() const; - void DoGroupUndo( sal_Bool bUn = sal_True ); - sal_Bool DoesGroupUndo() const; - void DelAllUndoObj(); - - // Undo: set up Undo parenthesis, return nUndoId of this parenthesis. - SwUndoId StartUndo( SwUndoId eUndoId = UNDO_EMPTY, const SwRewriter * pRewriter = 0 ); - - // Closes parenthesis of nUndoId, not used by UI. - SwUndoId EndUndo( SwUndoId eUndoId = UNDO_EMPTY, const SwRewriter * pRewriter = 0 ); - - bool GetLastUndoInfo(::rtl::OUString *const o_pStr, - SwUndoId *const o_pId) const; - bool GetFirstRedoInfo(::rtl::OUString *const o_pStr) const; - SwUndoId GetRepeatInfo(::rtl::OUString *const o_pStr) const; - - /// is it forbidden to modify cursors via API calls? - bool CursorsLocked() const; - /// set selections to those contained in the UndoRedoContext - /// should only be called by sw::UndoManager! - void HandleUndoRedoContext(::sw::UndoRedoContext & rContext); - - bool Undo(sal_uInt16 const nCount = 1); - bool Redo(sal_uInt16 const nCount = 1); - bool Repeat(sal_uInt16 const nCount); - - - // For all views of this document. - void StartAllAction(); - void EndAllAction(); - - // To enable set up of StartActions and EndActions. - void CalcLayout(); - - // Determine form of content. Return Type at CurCrsr->SPoint. - sal_uInt16 GetCntType() const; - - // Are there frames, footnotes, etc. - sal_Bool HasOtherCnt() const; - - // Apply ViewOptions with Start-/EndAction. - virtual void ApplyViewOptions( const SwViewOption &rOpt ); - - // Query text within selection. - // Returns FALSE, if selected range is too large to be copied - // into string buffer or if other errors occur. - sal_Bool GetSelectedText( String &rBuf, - int nHndlParaBreak = GETSELTXT_PARABRK_TO_BLANK ); - - // Returns graphic, if CurCrsr->Point() points to a SwGrfNode - // (and mark is not set or points to the same graphic). - - const Graphic* GetGraphic( sal_Bool bWait = sal_True ) const; - const GraphicObject* GetGraphicObj() const; - - sal_Bool IsGrfSwapOut( sal_Bool bOnlyLinked = sal_False ) const; - sal_uInt16 GetGraphicType() const; - - const PolyPolygon *GetGraphicPolygon() const; - void SetGraphicPolygon( const PolyPolygon *pPoly ); - - // If there's an automatic, not manipulated polygon at the selected - // notxtnode, it has to be deleted, e.g. cause the object has changed. - void ClearAutomaticContour(); - - // Returns the size of a graphic in Twips if cursor is in a graphic. - sal_Bool GetGrfSize(Size&) const; - - // Returns name and filter of a graphic if the cursor is in a graphic, - // else give a rap on the knuckles! - // If a string-ptr != 0 return the respective name. - void GetGrfNms( String* pGrfName, String* pFltName, - const SwFlyFrmFmt* = 0 ) const; - - // Re-read if graphic is not ok. Current graphic is replaced by the new one. - void ReRead( const String& rGrfName, const String& rFltName, - const Graphic* pGraphic = 0, - const GraphicObject* pGrafObj = 0 ); - - // Unique identification of object (for ImageMapDlg). - void *GetIMapInventor() const; - - // #i73788# - // Remove default parameter, because method always called this default value. - Graphic GetIMapGraphic() const; // Returns a graphic for all Flys! - const SwFlyFrmFmt* FindFlyByName( const String& rName, sal_uInt8 nNdTyp = 0 ) const; - - // Returns a ClientObject, if CurCrsr->Point() points to a SwOLENode - // (and mark is neither set not pointint to same ClientObject) - // else give rap on the knuckles. - svt::EmbeddedObjectRef& GetOLEObject() const; - - // Is there an OLEObject with this name (SwFmt)? - sal_Bool HasOLEObj( const String &rName ) const; - - // Returns pointer to the data of the chart in which Cursr is. - void SetChartName( const String &rName ); - - // Update content of all charts for table with given name. - void UpdateCharts( const String &rName ); - - String GetCurWord(); - - // Glossary from glossary document in current document. - // Styles only if not already existent. - void InsertGlossary( SwTextBlocks& rGlossary, const String& ); - - // Make current selection glossary and insert into glossary document - // including styles. - sal_uInt16 MakeGlossary( SwTextBlocks& rToFill, const String& rName, - const String& rShortName, sal_Bool bSaveRelFile = sal_False, - const String* pOnlyTxt=0 ); - - // Save complete content of doc as glossary. - sal_uInt16 SaveGlossaryDoc( SwTextBlocks& rGlossary, const String& rName, - const String& rShortName, - sal_Bool bSaveRelFile = sal_False, - sal_Bool bOnlyTxt = sal_False ); - - // Linguistics... - // Save selections. - void HyphStart( SwDocPositions eStart, SwDocPositions eEnde ); - - // restore selections. - void HyphEnd(); - com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface> - HyphContinue( sal_uInt16* pPageCnt, sal_uInt16* pPageSt ); - - void HyphIgnore(); - - // For Inserting SoftHyphen. Position is offset within the syllabificated word. - void InsertSoftHyph( const xub_StrLen nHyphPos ); - - const SwTable& InsertTable( const SwInsertTableOptions& rInsTblOpts, // ALL_TBL_INS_ATTR - sal_uInt16 nRows, sal_uInt16 nCols, - sal_Int16 eAdj = com::sun::star::text::HoriOrientation::FULL, - const SwTableAutoFmt* pTAFmt = 0 ); - - void InsertDDETable( const SwInsertTableOptions& rInsTblOpts, // HEADLINE_NO_BORDER - SwDDEFieldType* pDDEType, - sal_uInt16 nRows, sal_uInt16 nCols, - sal_Int16 eAdj = com::sun::star::text::HoriOrientation::FULL ); - - void UpdateTable(); - void SetTableName( SwFrmFmt& rTblFmt, const String &rNewName ); - - SwFrmFmt *GetTableFmt(); - sal_Bool TextToTable( const SwInsertTableOptions& rInsTblOpts, //ALL_TBL_INS_ATTR - sal_Unicode cCh, - sal_Int16 eAdj = com::sun::star::text::HoriOrientation::FULL, - const SwTableAutoFmt* pTAFmt = 0 ); - sal_Bool TableToText( sal_Unicode cCh ); - sal_Bool IsTextToTableAvailable() const; - - sal_Bool GetTblBoxFormulaAttrs( SfxItemSet& rSet ) const; - void SetTblBoxFormulaAttrs( const SfxItemSet& rSet ); - - sal_Bool IsTableBoxTextFormat() const; - String GetTableBoxText() const; - - TblChgMode GetTblChgMode() const; - void SetTblChgMode( TblChgMode eMode ); - - // Split table at cursor position. - sal_Bool SplitTable( sal_uInt16 eMode ); - - // Merge tables. - - // Can Merge checks if Prev or Next are possible. - // If pointer pChkNxtPrv is passed possible direction is given. - sal_Bool CanMergeTable( sal_Bool bWithPrev = sal_True, sal_Bool* pChkNxtPrv = 0 ) const; - sal_Bool MergeTable( sal_Bool bWithPrev = sal_True, sal_uInt16 nMode = 0 ); - - // Set up InsertDB as table Undo. - void AppendUndoForInsertFromDB( sal_Bool bIsTable ); - - // Functions used for spell checking and text conversion. - - // Save selections. - void SpellStart( SwDocPositions eStart, SwDocPositions eEnde, - SwDocPositions eCurr, SwConversionArgs *pConvArgs = 0 ); - - // Restore selections. - void SpellEnd( SwConversionArgs *pConvArgs = 0, bool bRestoreSelection = true ); - ::com::sun::star::uno::Any SpellContinue( - sal_uInt16* pPageCnt, sal_uInt16* pPageSt, - SwConversionArgs *pConvArgs = 0 ); - - // Spells on a sentence basis - the SpellPortions are needed - // returns false if no error could be found. - bool SpellSentence(::svx::SpellPortions& rToFill, bool bIsGrammarCheck ); - - // Make SpellIter start with the current sentence when called next time. - void PutSpellingToSentenceStart(); - - // Moves the continuation position to the end of the currently checked sentence. - void MoveContinuationPosToEndOfCheckedSentence(); - - // Applies a changed sentence. - void ApplyChangedSentence(const ::svx::SpellPortions& rNewPortions, bool bRecheck); - - // Check SwSpellIter data to see if the last sentence got grammar checked. - bool HasLastSentenceGotGrammarChecked() const; - - // Is text conversion active somewhere else? - sal_Bool HasConvIter() const; - - // Is hyphenation active somewhere else? - sal_Bool HasHyphIter() const; - - ::com::sun::star::uno::Reference< - ::com::sun::star::linguistic2::XSpellAlternatives > - GetCorrection( const Point* pPt, SwRect& rSelectRect ); - - - bool GetGrammarCorrection( ::com::sun::star::linguistic2::ProofreadingResult /*out*/ &rResult, - sal_Int32 /*out*/ &rErrorPosInText, - sal_Int32 /*out*/ &rErrorIndexInResult, - ::com::sun::star::uno::Sequence< rtl::OUString > /*out*/ &rSuggestions, - const Point* pPt, SwRect& rSelectRect ); - - void IgnoreGrammarErrorAt( SwPaM& rErrorPosition ); - void SetLinguRange( SwDocPositions eStart, SwDocPositions eEnde ); - - // Return reference set in document according to given name. - const SwFmtRefMark* GetRefMark( const String& rName ) const; - - // Return names of all references set in document. - // If ArrayPointer == 0 then return only whether a RefMark is set in document. - sal_uInt16 GetRefMarks( SvStringsDtor* = 0 ) const; - - // Call AutoCorrect - void AutoCorrect( SvxAutoCorrect& rACorr, sal_Bool bInsertMode = sal_True, - sal_Unicode cChar = ' ' ); - sal_Bool GetPrevAutoCorrWord( SvxAutoCorrect& rACorr, String& rWord ); - - // Set our styles according to the respective rules. - void AutoFormat( const SvxSwAutoFmtFlags* pAFlags = 0 ); - - static SvxSwAutoFmtFlags* GetAutoFmtFlags(); - static void SetAutoFmtFlags(SvxSwAutoFmtFlags *); - - // Calculates selection. - String Calculate(); - - sal_Bool InsertURL( const SwFmtINetFmt& rFmt, const String& rStr, - sal_Bool bKeepSelection = sal_False ); - sal_uInt16 GetINetAttrs( SwGetINetAttrs& rArr ); - - String GetDropTxt( const sal_uInt16 nChars ) const; - void ReplaceDropTxt( const String &rStr ); - - // May an outline be moved or copied? - // Check whether it's in text body, not in table, and not read-only (move). - sal_Bool IsOutlineMovable( sal_uInt16 nIdx ) const; - sal_Bool IsOutlineCopyable( sal_uInt16 nIdx ) const; - - sal_uInt16 GetLineCount( sal_Bool bActPos = sal_True ); - - // Query and set footnote-text/number. Set.. to current SSelection! - sal_Bool GetCurFtn( SwFmtFtn* pToFillFtn = 0 ); - bool SetCurFtn( const SwFmtFtn& rFillFtn ); - bool HasFtns( bool bEndNotes = false ) const; - - sal_uInt16 GetSeqFtnList( SwSeqFldList& rList, bool bEndNotes = false ); - // Return list of all footnotes and their first portions of text. - - SwSection const* InsertSection( - SwSectionData & rNewData, SfxItemSet const*const = 0 ); - sal_Bool IsInsRegionAvailable() const; - const SwSection* GetCurrSection() const; - - // Returns current range like Cet CurrSection(). But this function iterates - // also over frames and catches the range even if the cursor is positioned in - // a footnote the reference of which is in a columned range. - // If bOutOfTab is set, the range comprising the table is searched - // and not an inner one. - const SwSection* GetAnySection( sal_Bool bOutOfTab = sal_False, const Point* pPt = 0 ) const; - - sal_uInt16 GetSectionFmtCount() const; - sal_uInt16 GetSectionFmtPos( const SwSectionFmt& ) const; - const SwSectionFmt& GetSectionFmt(sal_uInt16 nFmt) const; - void DelSectionFmt( sal_uInt16 nFmt ); - void UpdateSection(sal_uInt16 const nSect, SwSectionData &, - SfxItemSet const*const = 0); - sal_Bool IsAnySectionInDoc( sal_Bool bChkReadOnly = sal_False, - sal_Bool bChkHidden = sal_False, - sal_Bool BChkTOX = sal_False ) const; - - String GetUniqueSectionName( const String* pChkStr = 0 ) const; - - // Set attributes. - void SetSectionAttr(const SfxItemSet& rSet, SwSectionFmt* pSectFmt = 0); - - // Search inside the cursor selection for full selected sections. - // if any part of section in the selection return 0. - // if more than one in the selection return the count. - sal_uInt16 GetFullSelectedSectionCount() const; - - // Special insert: Insert a new text node just before or after a section or - // table, if the cursor is positioned at the start/end of said - // section/table. The purpose of the method is to allow users to inert text - // at certain 'impossible' position, e.g. before a table at the document - // start or between to sections. - bool DoSpecialInsert(); - bool CanSpecialInsert() const; - - // Optimizing UI. - void SetNewDoc(sal_Bool bNew = sal_True); - - sfx2::LinkManager& GetLinkManager(); - inline const sfx2::LinkManager& GetLinkManager() const; - - // linken Rand ueber Objectleiste einstellen (aenhlich dem Stufen von - // Numerierungen), optional kann man "um" den Offset stufen oder "auf" - // die Position gestuft werden (bModulus = sal_True) - sal_Bool IsMoveLeftMargin( sal_Bool bRight = sal_True, sal_Bool bModulus = sal_True ) const; - void MoveLeftMargin( sal_Bool bRight = sal_True, sal_Bool bModulus = sal_True ); - - // Query NumberFormater from document. - SvNumberFormatter* GetNumberFormatter(); - const SvNumberFormatter* GetNumberFormatter() const - { return ((SwEditShell*)this)->GetNumberFormatter(); } - - // Interfaces for GlobalDocument. - sal_Bool IsGlobalDoc() const; - void SetGlblDocSaveLinks( sal_Bool bFlag = sal_True ); - sal_Bool IsGlblDocSaveLinks() const; - sal_uInt16 GetGlobalDocContent( SwGlblDocContents& rArr ) const; - sal_Bool InsertGlobalDocContent( const SwGlblDocContent& rPos, - SwSectionData & rNew ); - sal_Bool InsertGlobalDocContent( const SwGlblDocContent& rPos, - const SwTOXBase& rTOX ); - sal_Bool InsertGlobalDocContent( const SwGlblDocContent& rPos ); - sal_Bool DeleteGlobalDocContent( const SwGlblDocContents& rArr, - sal_uInt16 nPos ); - sal_Bool MoveGlobalDocContent( const SwGlblDocContents& rArr , - sal_uInt16 nFromPos, sal_uInt16 nToPos, - sal_uInt16 nNewPos ); - sal_Bool GotoGlobalDocContent( const SwGlblDocContent& rPos ); - - // For Redlining. - sal_uInt16 GetRedlineMode() const; - void SetRedlineMode( sal_uInt16 eMode ); - sal_Bool IsRedlineOn() const; - sal_uInt16 GetRedlineCount() const; - const SwRedline& GetRedline( sal_uInt16 nPos ) const; - sal_Bool AcceptRedline( sal_uInt16 nPos ); - sal_Bool RejectRedline( sal_uInt16 nPos ); - - - // Search Redline for this Data and return position in array. - // If not found, return USHRT_MAX. - sal_uInt16 FindRedlineOfData( const SwRedlineData& ) const; - - - // Set comment to Redline at position. - sal_Bool SetRedlineComment( const String& rS ); - const SwRedline* GetCurrRedline() const; - - // Redline attributes have been changed. Updated views. - void UpdateRedlineAttr(); - - // Compare two documents. - long CompareDoc( const SwDoc& rDoc ); - - // Merge two documents. - long MergeDoc( const SwDoc& rDoc ); - - // Footnote attributes global to document. - const SwFtnInfo& GetFtnInfo() const; - void SetFtnInfo(const SwFtnInfo& rInfo); - const SwEndNoteInfo& GetEndNoteInfo() const; - void SetEndNoteInfo(const SwEndNoteInfo& rInfo); - - const SwLineNumberInfo &GetLineNumberInfo() const; - void SetLineNumberInfo( const SwLineNumberInfo& rInfo); - - // Labels: Synchronize ranges. - void SetLabelDoc( sal_Bool bFlag = sal_True ); - sal_Bool IsLabelDoc() const; - - // Interface for TextInputData - (for input of Japanese/Chinese chars.) - SwExtTextInput* CreateExtTextInput(LanguageType eInputLanguage); - String DeleteExtTextInput( SwExtTextInput* pDel = 0, sal_Bool bInsText = sal_True); - void SetExtTextInputData( const CommandExtTextInputData& ); - - // Interface for access to AutoComplete-list. - static SwAutoCompleteWord& GetAutoCompleteWords(); - - // Returns a scaling factor of selected text. Used for the rotated - // character attribut dialog. - sal_uInt16 GetScalingOfSelectedText() const; - - // Ctor/Dtor. - SwEditShell( SwDoc&, Window*, const SwViewOption *pOpt = 0 ); - - // Copy-Constructor in disguise. - SwEditShell( SwEditShell&, Window* ); - virtual ~SwEditShell(); - -private: - // For METWARE: no copying and no assignment. - SwEditShell(const SwEditShell &); - const SwEditShell &operator=(const SwEditShell &); -}; - -inline const sfx2::LinkManager& SwEditShell::GetLinkManager() const -{ return ((SwEditShell*)this)->GetLinkManager(); } - -// Class for automated call of Start- and EndAction(). -class SwActKontext { - SwEditShell *pSh; -public: - SwActKontext(SwEditShell *pShell); - ~SwActKontext(); -}; - -#define ACT_KONTEXT(x) SwActKontext _aActKontext_(x) - -// Class for automated call of Start- and EndCrsrMove(). -class SwMvKontext { - SwEditShell *pSh; -public: - SwMvKontext(SwEditShell *pShell ); - ~SwMvKontext(); -}; - -#define MV_KONTEXT(x) SwMvKontext _aMvKontext_(x) - - - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |