/************************************************************** * * 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 _DOCARY_HXX #define _DOCARY_HXX #include class SwFieldType; class SwFrmFmt; class SwCharFmt; class SwTOXType; class SwUndo; class SwSectionFmt; class SwNumRule; class SwRedline; class SwUnoCrsr; class SwOLENode; namespace com { namespace sun { namespace star { namespace i18n { struct ForbiddenCharacters; // comes from the I18N UNO interface }}}} #ifndef _TABLE_HXX //autogen #include #endif #include #include typedef SwFieldType* SwFldTypePtr; #define GROW_FLDTYPES 16 //PageDescriptor-Schnittstelle //typedef SwPageDesc * SwPageDescPtr; //SV_DECL_PTRARR_DEL(SwPageDescs, SwPageDescPtr,1,1); typedef SwFrmFmt* SwFrmFmtPtr; SV_DECL_PTRARR_DEL(SwFrmFmts,SwFrmFmtPtr,4,4) //Spezifische Frameformate (Rahmen, DrawObjecte) SV_DECL_PTRARR_DEL(SwSpzFrmFmts,SwFrmFmtPtr,0,4) typedef SwCharFmt* SwCharFmtPtr; SV_DECL_PTRARR_DEL(SwCharFmts,SwCharFmtPtr,4,4) SV_DECL_PTRARR_DEL( SwFldTypes, SwFldTypePtr, INIT_FLDTYPES, GROW_FLDTYPES ) typedef SwTOXType* SwTOXTypePtr; SV_DECL_PTRARR_DEL( SwTOXTypes, SwTOXTypePtr, 0, 1 ) typedef SwSectionFmt* SwSectionFmtPtr; SV_DECL_PTRARR_DEL(SwSectionFmts,SwSectionFmtPtr,0,4) typedef SwNumRule* SwNumRulePtr; SV_DECL_PTRARR_DEL_VISIBILITY( SwNumRuleTbl, SwNumRulePtr, 0, 5, SW_DLLPUBLIC ) typedef SwRedline* SwRedlinePtr; SV_DECL_PTRARR_SORT_DEL( _SwRedlineTbl, SwRedlinePtr, 0, 16 ) class SwRedlineTbl : private _SwRedlineTbl { public: SwRedlineTbl( sal_uInt8 nSize = 0, sal_uInt8 nG = 16 ) : _SwRedlineTbl( nSize, nG ) {} ~SwRedlineTbl() {} sal_Bool SavePtrInArr( SwRedlinePtr p ) { return _SwRedlineTbl::Insert( p ); } sal_Bool Insert( SwRedlinePtr& p, sal_Bool bIns = sal_True ); sal_Bool Insert( SwRedlinePtr& p, sal_uInt16& rInsPos, sal_Bool bIns = sal_True ); sal_Bool InsertWithValidRanges( SwRedlinePtr& p, sal_uInt16* pInsPos = 0 ); void Remove( sal_uInt16 nP, sal_uInt16 nL = 1 ); void DeleteAndDestroy( sal_uInt16 nP, sal_uInt16 nL=1 ); // suche den naechsten oder vorherigen Redline mit dergleichen Seq.No // Mit dem Lookahead kann die Suche eingeschraenkt werden. 0 oder // USHRT_MAX suchen im gesamten Array. sal_uInt16 FindNextOfSeqNo( sal_uInt16 nSttPos, sal_uInt16 nLookahead = 20 ) const; sal_uInt16 FindPrevOfSeqNo( sal_uInt16 nSttPos, sal_uInt16 nLookahead = 20 ) const; sal_uInt16 FindNextSeqNo( sal_uInt16 nSeqNo, sal_uInt16 nSttPos, sal_uInt16 nLookahead = 20 ) const; sal_uInt16 FindPrevSeqNo( sal_uInt16 nSeqNo, sal_uInt16 nSttPos, sal_uInt16 nLookahead = 20 ) const; using _SwRedlineTbl::Count; using _SwRedlineTbl::operator[]; using _SwRedlineTbl::GetObject; using _SwRedlineTbl::Seek_Entry; using _SwRedlineTbl::GetPos; }; typedef SwUnoCrsr* SwUnoCrsrPtr; SV_DECL_PTRARR_DEL( SwUnoCrsrTbl, SwUnoCrsrPtr, 0, 4 ) typedef SwOLENode* SwOLENodePtr; SV_DECL_PTRARR(SwOLENodes,SwOLENodePtr,16,16) #endif //_DOCARY_HXX