diff options
Diffstat (limited to 'sw/inc/docary.hxx')
-rw-r--r-- | sw/inc/docary.hxx | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/sw/inc/docary.hxx b/sw/inc/docary.hxx new file mode 100644 index 000000000000..52c2fe08df5e --- /dev/null +++ b/sw/inc/docary.hxx @@ -0,0 +1,126 @@ +/* -*- 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 _DOCARY_HXX +#define _DOCARY_HXX + +#include <com/sun/star/i18n/ForbiddenCharacters.hpp> + +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 +}}}} + +#include <tools/table.hxx> +#include <swtypes.hxx> +#include <svl/svarray.hxx> + +typedef SwFieldType* SwFldTypePtr; +#define GROW_FLDTYPES 16 + +// PageDescriptor-interface +// typedef SwPageDesc * SwPageDescPtr; +// SV_DECL_PTRARR_DEL(SwPageDescs, SwPageDescPtr,1,1); + +typedef SwFrmFmt* SwFrmFmtPtr; +SV_DECL_PTRARR_DEL(SwFrmFmts,SwFrmFmtPtr,4,4) + +// Specific frame formats (frames, DrawObjects). +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 ) + +// Array of Undo-history. +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 ); + + // Search next or previous Redline with the same Seq. No. + // Search can be restricted via Lookahaed. + // Using 0 or USHRT_MAX makes search the whole 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 + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |