/************************************************************** * * 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 SC_DOCFUNC_HXX #define SC_DOCFUNC_HXX #include #include "global.hxx" #include "formula/grammar.hxx" #include "tabbgcolor.hxx" class ScEditEngineDefaulter; class SdrUndoAction; class ScAddress; class ScDocShell; class ScMarkData; class ScPatternAttr; class ScRange; class ScRangeName; class ScBaseCell; class ScTokenArray; struct ScTabOpParam; class ScTableProtection; // --------------------------------------------------------------------------- class ScDocFunc { private: ScDocShell& rDocShell; sal_Bool AdjustRowHeight( const ScRange& rRange, sal_Bool bPaint = sal_True ); void CreateOneName( ScRangeName& rList, SCCOL nPosX, SCROW nPosY, SCTAB nTab, SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2, sal_Bool& rCancel, sal_Bool bApi ); void NotifyInputHandler( const ScAddress& rPos ); public: ScDocFunc( ScDocShell& rDocSh ): rDocShell(rDocSh) {} ~ScDocFunc() {} DECL_LINK( NotifyDrawUndo, SdrUndoAction* ); sal_Bool DetectiveAddPred(const ScAddress& rPos); sal_Bool DetectiveDelPred(const ScAddress& rPos); sal_Bool DetectiveAddSucc(const ScAddress& rPos); sal_Bool DetectiveDelSucc(const ScAddress& rPos); sal_Bool DetectiveAddError(const ScAddress& rPos); sal_Bool DetectiveMarkInvalid(SCTAB nTab); sal_Bool DetectiveDelAll(SCTAB nTab); sal_Bool DetectiveRefresh(sal_Bool bAutomatic = sal_False); sal_Bool DeleteContents( const ScMarkData& rMark, sal_uInt16 nFlags, sal_Bool bRecord, sal_Bool bApi ); sal_Bool TransliterateText( const ScMarkData& rMark, sal_Int32 nType, sal_Bool bRecord, sal_Bool bApi ); sal_Bool SetNormalString( const ScAddress& rPos, const String& rText, sal_Bool bApi ); sal_Bool PutCell( const ScAddress& rPos, ScBaseCell* pNewCell, sal_Bool bApi ); sal_Bool PutData( const ScAddress& rPos, ScEditEngineDefaulter& rEngine, sal_Bool bInterpret, sal_Bool bApi ); sal_Bool SetCellText( const ScAddress& rPos, const String& rText, sal_Bool bInterpret, sal_Bool bEnglish, sal_Bool bApi, const String& rFormulaNmsp, const formula::FormulaGrammar::Grammar eGrammar ); // creates a new cell for use with PutCell ScBaseCell* InterpretEnglishString( const ScAddress& rPos, const String& rText, const String& rFormulaNmsp, const formula::FormulaGrammar::Grammar eGrammar, short* pRetFormatType = NULL ); bool ShowNote( const ScAddress& rPos, bool bShow = true ); inline bool HideNote( const ScAddress& rPos ) { return ShowNote( rPos, false ); } bool SetNoteText( const ScAddress& rPos, const String& rNoteText, sal_Bool bApi ); bool ReplaceNote( const ScAddress& rPos, const String& rNoteText, const String* pAuthor, const String* pDate, sal_Bool bApi ); sal_Bool ApplyAttributes( const ScMarkData& rMark, const ScPatternAttr& rPattern, sal_Bool bRecord, sal_Bool bApi ); sal_Bool ApplyStyle( const ScMarkData& rMark, const String& rStyleName, sal_Bool bRecord, sal_Bool bApi ); sal_Bool InsertCells( const ScRange& rRange,const ScMarkData* pTabMark, InsCellCmd eCmd, sal_Bool bRecord, sal_Bool bApi, sal_Bool bPartOfPaste = sal_False ); sal_Bool DeleteCells( const ScRange& rRange, const ScMarkData* pTabMark, DelCellCmd eCmd, sal_Bool bRecord, sal_Bool bApi ); sal_Bool MoveBlock( const ScRange& rSource, const ScAddress& rDestPos, sal_Bool bCut, sal_Bool bRecord, sal_Bool bPaint, sal_Bool bApi ); sal_Bool InsertTable( SCTAB nTab, const String& rName, sal_Bool bRecord, sal_Bool bApi ); sal_Bool RenameTable( SCTAB nTab, const String& rName, sal_Bool bRecord, sal_Bool bApi ); sal_Bool DeleteTable( SCTAB nTab, sal_Bool bRecord, sal_Bool bApi ); bool SetTabBgColor( SCTAB nTab, const Color& rColor, bool bRecord, bool bApi ); bool SetTabBgColor( ScUndoTabColorInfo::List& rUndoTabColorList, bool bRecord, bool bApi ); sal_Bool SetTableVisible( SCTAB nTab, sal_Bool bVisible, sal_Bool bApi ); sal_Bool SetLayoutRTL( SCTAB nTab, sal_Bool bRTL, sal_Bool bApi ); //UNUSED2009-05 sal_Bool SetGrammar( formula::FormulaGrammar::Grammar eGrammar ); SC_DLLPUBLIC sal_Bool SetWidthOrHeight( sal_Bool bWidth, SCCOLROW nRangeCnt, SCCOLROW* pRanges, SCTAB nTab, ScSizeMode eMode, sal_uInt16 nSizeTwips, sal_Bool bRecord, sal_Bool bApi ); sal_Bool InsertPageBreak( sal_Bool bColumn, const ScAddress& rPos, sal_Bool bRecord, sal_Bool bSetModified, sal_Bool bApi ); sal_Bool RemovePageBreak( sal_Bool bColumn, const ScAddress& rPos, sal_Bool bRecord, sal_Bool bSetModified, sal_Bool bApi ); void ProtectSheet( SCTAB nTab, const ScTableProtection& rProtect ); sal_Bool Protect( SCTAB nTab, const String& rPassword, sal_Bool bApi ); sal_Bool Unprotect( SCTAB nTab, const String& rPassword, sal_Bool bApi ); sal_Bool ClearItems( const ScMarkData& rMark, const sal_uInt16* pWhich, sal_Bool bApi ); sal_Bool ChangeIndent( const ScMarkData& rMark, sal_Bool bIncrement, sal_Bool bApi ); sal_Bool AutoFormat( const ScRange& rRange, const ScMarkData* pTabMark, sal_uInt16 nFormatNo, sal_Bool bRecord, sal_Bool bApi ); sal_Bool EnterMatrix( const ScRange& rRange, const ScMarkData* pTabMark, const ScTokenArray* pTokenArray, const String& rString, sal_Bool bApi, sal_Bool bEnglish, const String& rFormulaNmsp, const formula::FormulaGrammar::Grammar ); sal_Bool TabOp( const ScRange& rRange, const ScMarkData* pTabMark, const ScTabOpParam& rParam, sal_Bool bRecord, sal_Bool bApi ); sal_Bool FillSimple( const ScRange& rRange, const ScMarkData* pTabMark, FillDir eDir, sal_Bool bRecord, sal_Bool bApi ); sal_Bool FillSeries( const ScRange& rRange, const ScMarkData* pTabMark, FillDir eDir, FillCmd eCmd, FillDateCmd eDateCmd, double fStart, double fStep, double fMax, sal_Bool bRecord, sal_Bool bApi ); // FillAuto: rRange wird von Source-Range auf Dest-Range angepasst sal_Bool FillAuto( ScRange& rRange, const ScMarkData* pTabMark, FillDir eDir, sal_uLong nCount, sal_Bool bRecord, sal_Bool bApi ); sal_Bool ResizeMatrix( const ScRange& rOldRange, const ScAddress& rNewEnd, sal_Bool bApi ); sal_Bool MergeCells( const ScRange& rRange, sal_Bool bContents, sal_Bool bRecord, sal_Bool bApi ); sal_Bool UnmergeCells( const ScRange& rRange, sal_Bool bRecord, sal_Bool bApi ); sal_Bool SetNewRangeNames( ScRangeName* pNewRanges, sal_Bool bApi ); // takes ownership of pNewRanges sal_Bool ModifyRangeNames( const ScRangeName& rNewRanges, sal_Bool bApi ); sal_Bool CreateNames( const ScRange& rRange, sal_uInt16 nFlags, sal_Bool bApi ); sal_Bool InsertNameList( const ScAddress& rStartPos, sal_Bool bApi ); sal_Bool InsertAreaLink( const String& rFile, const String& rFilter, const String& rOptions, const String& rSource, const ScRange& rDestRange, sal_uLong nRefresh, sal_Bool bFitBlock, sal_Bool bApi ); }; #endif