summaryrefslogtreecommitdiff
path: root/sw/source/core/inc/cntfrm.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/core/inc/cntfrm.hxx')
-rw-r--r--sw/source/core/inc/cntfrm.hxx147
1 files changed, 147 insertions, 0 deletions
diff --git a/sw/source/core/inc/cntfrm.hxx b/sw/source/core/inc/cntfrm.hxx
new file mode 100644
index 000000000000..6d915bc72a8b
--- /dev/null
+++ b/sw/source/core/inc/cntfrm.hxx
@@ -0,0 +1,147 @@
+/*************************************************************************
+ *
+ * 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 _CNTFRM_HXX
+#define _CNTFRM_HXX
+#include "frame.hxx"
+#include "flowfrm.hxx"
+#include "cshtyp.hxx"
+
+class SwLayoutFrm;
+class SwCntntNode;
+class SwBorderAttrs;
+class SwAttrSetChg;
+class SwTxtFrm;
+
+//Implementiert in cntfrm.cxx, wird von cntfrm.cxx und crsrsh.cxx angezogen
+extern BOOL GetFrmInPage( const SwCntntFrm*, SwWhichPage, SwPosPage, SwPaM* );
+
+class SwCntntFrm: public SwFrm, public SwFlowFrm
+{
+ friend void MakeNxt( SwFrm *pFrm, SwFrm *pNxt ); //ruft MakePrtArea
+
+ // --> OD 2007-11-26 #b6614158#
+ // parameter <bObjsInNewUpper>, indicating that objects are existing in
+ // remaining area of new upper
+ BOOL _WouldFit( SwTwips nSpace,
+ SwLayoutFrm *pNewUpper,
+ BOOL bTstMove,
+ const bool bObjsInNewUpper );
+ // <--
+ virtual void MakeAll();
+
+ void _UpdateAttr( SfxPoolItem*, SfxPoolItem*, BYTE &,
+ SwAttrSetChg *pa = 0, SwAttrSetChg *pb = 0 );
+
+ virtual BOOL ShouldBwdMoved( SwLayoutFrm *pNewUpper, BOOL, BOOL& );
+
+ const SwCntntFrm* ImplGetNextCntntFrm( bool bFwd ) const;
+
+protected:
+
+ BOOL MakePrtArea( const SwBorderAttrs & );
+
+ virtual void Modify( SfxPoolItem*, SfxPoolItem* );
+ virtual SwTwips ShrinkFrm( SwTwips, BOOL bTst = FALSE, BOOL bInfo = FALSE );
+ virtual SwTwips GrowFrm ( SwTwips, BOOL bTst = FALSE, BOOL bInfo = FALSE );
+
+ SwCntntFrm( SwCntntNode * const );
+
+public:
+ virtual ~SwCntntFrm();
+ TYPEINFO(); //bereits in Basisklassen drin
+
+ virtual void Cut();
+ virtual void Paste( SwFrm* pParent, SwFrm* pSibling = 0 );
+
+ inline SwCntntNode *GetNode();
+ inline const SwCntntNode *GetNode() const;
+ USHORT GetSectionLevel();
+
+ inline const SwCntntFrm *GetFollow() const;
+ inline SwCntntFrm *GetFollow();
+ SwTxtFrm* FindMaster() const;
+
+ //Layoutabhaengiges Cursortravelling
+ virtual BOOL LeftMargin( SwPaM * ) const;
+ virtual BOOL RightMargin( SwPaM *, BOOL bAPI = FALSE ) const;
+ virtual BOOL UnitUp( SwPaM *, const SwTwips nOffset = 0,
+ BOOL bSetInReadOnly = FALSE ) const;
+ virtual BOOL UnitDown( SwPaM *, const SwTwips nOffset = 0,
+ BOOL bSetInReadOnly = FALSE ) const;
+ inline BOOL StartNextPage( SwPaM * ) const;
+ inline BOOL StartPrevPage( SwPaM * ) const;
+ inline BOOL StartCurrPage( SwPaM * ) const;
+ inline BOOL EndCurrPage( SwPaM * ) const;
+ inline BOOL EndNextPage( SwPaM * ) const;
+ inline BOOL EndPrevPage( SwPaM * ) const;
+
+ // nMaxHeight is the required height
+ // bSplit indicates, that the paragraph has to be split
+ // bTst indicates, that we are currently doing a test formatting
+ virtual sal_Bool WouldFit( SwTwips &nMaxHeight, sal_Bool &bSplit, sal_Bool bTst );
+
+ BOOL MoveFtnCntFwd( BOOL, SwFtnBossFrm* );//von MoveFwd gerufen bei Ftn-Inhalt
+
+ inline SwCntntFrm* GetNextCntntFrm() const;
+ inline SwCntntFrm* GetPrevCntntFrm() const;
+};
+
+inline SwCntntFrm* SwCntntFrm::GetNextCntntFrm() const
+{
+ if ( GetNext() && GetNext()->IsCntntFrm() )
+ return (SwCntntFrm*)GetNext();
+ else
+ return (SwCntntFrm*)ImplGetNextCntntFrm( true );
+}
+
+inline SwCntntFrm* SwCntntFrm::GetPrevCntntFrm() const
+{
+ if ( GetPrev() && GetPrev()->IsCntntFrm() )
+ return (SwCntntFrm*)GetPrev();
+ else
+ return (SwCntntFrm*)ImplGetNextCntntFrm( false );
+}
+
+inline SwCntntNode *SwCntntFrm::GetNode()
+{
+ return (SwCntntNode*)GetDep();
+}
+inline const SwCntntNode *SwCntntFrm::GetNode() const
+{
+ return (SwCntntNode*)GetDep();
+}
+
+inline const SwCntntFrm *SwCntntFrm::GetFollow() const
+{
+ return (const SwCntntFrm*)SwFlowFrm::GetFollow();
+}
+inline SwCntntFrm *SwCntntFrm::GetFollow()
+{
+ return (SwCntntFrm*)SwFlowFrm::GetFollow();
+}
+
+#endif