summaryrefslogtreecommitdiff
path: root/binfilter/bf_sw/source/core/layout/sw_newfrm.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'binfilter/bf_sw/source/core/layout/sw_newfrm.cxx')
-rw-r--r--binfilter/bf_sw/source/core/layout/sw_newfrm.cxx608
1 files changed, 608 insertions, 0 deletions
diff --git a/binfilter/bf_sw/source/core/layout/sw_newfrm.cxx b/binfilter/bf_sw/source/core/layout/sw_newfrm.cxx
new file mode 100644
index 000000000000..b48de0156ecc
--- /dev/null
+++ b/binfilter/bf_sw/source/core/layout/sw_newfrm.cxx
@@ -0,0 +1,608 @@
+/* -*- 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.
+ *
+ ************************************************************************/
+
+
+#ifdef _MSC_VER
+#pragma hdrstop
+#endif
+
+#include <bf_svx/svdmodel.hxx>
+#include <bf_svx/svdpage.hxx>
+
+#include <fmtpdsc.hxx>
+#include <swtable.hxx>
+#include <rootfrm.hxx>
+#include <pagefrm.hxx>
+#include <viewsh.hxx>
+
+#include <horiornt.hxx>
+
+#include <doc.hxx>
+#include <dflyobj.hxx>
+#include <frmtool.hxx>
+#include <virtoutp.hxx>
+#include <blink.hxx>
+#include <ndindex.hxx>
+#include <sectfrm.hxx>
+#include <notxtfrm.hxx>
+#include <pagedesc.hxx>
+namespace binfilter {
+
+/*N*/ #ifndef VERTICAL_LAYOUT
+/*N*/ PtPtr pX = &Point::nA;
+/*N*/ PtPtr pY = &Point::nB;
+/*N*/ SzPtr pWidth = &Size::nA;
+/*N*/ SzPtr pHeight = &Size::nB;
+/*N*/ #endif
+
+/*N*/ SwLayVout *SwRootFrm::pVout = 0;
+/*N*/ BOOL SwRootFrm::bInPaint = FALSE;
+/*N*/ BOOL SwRootFrm::bNoVirDev = FALSE;
+
+/*N*/ SwCache *SwFrm::pCache = 0;
+
+/*N*/ Bitmap* SwNoTxtFrm::pErrorBmp = 0;
+/*N*/ Bitmap* SwNoTxtFrm::pReplaceBmp = 0;
+/*N*/
+/*N*/ #ifdef VERTICAL_LAYOUT
+
+/*N*/ long FirstMinusSecond( long nFirst, long nSecond )
+/*N*/ { return nFirst - nSecond; }
+/*N*/ long SecondMinusFirst( long nFirst, long nSecond )
+/*N*/ { return nSecond - nFirst; }
+/*N*/ long SwIncrement( long nA, long nAdd )
+/*N*/ { return nA + nAdd; }
+/*N*/ long SwDecrement( long nA, long nSub )
+/*N*/ { return nA - nSub; }
+
+/*N*/ static SwRectFnCollection aHorizontal = {
+/*N*/ /* fnRectGet */
+/*N*/ &SwRect::_Top,
+/*N*/ &SwRect::_Bottom,
+/*N*/ &SwRect::_Left,
+/*N*/ &SwRect::_Right,
+/*N*/ &SwRect::_Width,
+/*N*/ &SwRect::_Height,
+/*N*/ &SwRect::TopLeft,
+/*N*/ &SwRect::_Size,
+/*N*/ /* fnRectSet */
+/*N*/ &SwRect::_Top,
+/*N*/ &SwRect::_Bottom,
+/*N*/ &SwRect::_Left,
+/*N*/ &SwRect::_Right,
+/*N*/ &SwRect::_Width,
+/*N*/ &SwRect::_Height,
+/*N*/
+/*N*/ &SwRect::SubTop,
+/*N*/ &SwRect::AddBottom,
+/*N*/ &SwRect::SubLeft,
+/*N*/ &SwRect::AddRight,
+/*N*/ &SwRect::AddWidth,
+/*N*/ &SwRect::AddHeight,
+/*N*/
+/*N*/ &SwRect::SetPosX,
+/*N*/ &SwRect::SetPosY,
+/*N*/
+/*N*/ &SwFrm::GetTopMargin,
+/*N*/ &SwFrm::GetBottomMargin,
+/*N*/ &SwFrm::GetLeftMargin,
+/*N*/ &SwFrm::GetRightMargin,
+/*N*/ &SwFrm::SetLeftRightMargins,
+/*N*/ &SwFrm::SetTopBottomMargins,
+/*N*/ &SwFrm::GetPrtTop,
+/*N*/ &SwFrm::GetPrtBottom,
+/*N*/ &SwFrm::GetPrtLeft,
+/*N*/ &SwFrm::GetPrtRight,
+/*N*/ &SwRect::GetTopDistance,
+/*N*/ &SwRect::GetBottomDistance,
+/*N*/ &SwRect::GetLeftDistance,
+/*N*/ &SwRect::GetRightDistance,
+/*N*/ &SwFrm::SetMaxBottom,
+/*N*/ &SwRect::OverStepBottom,
+/*N*/
+/*N*/ &SwRect::SetUpperLeftCorner,
+/*N*/ &SwFrm::MakeBelowPos,
+/*N*/ &FirstMinusSecond,
+/*N*/ &FirstMinusSecond,
+/*N*/ &SwIncrement,
+/*N*/ &SwIncrement,
+/*N*/ &SwRect::SetLeftAndWidth,
+/*N*/ &SwRect::SetTopAndHeight
+/*N*/ };
+/*N*/
+/*N*/ static SwRectFnCollection aVertical = {
+/*N*/ /* fnRectGet */
+/*N*/ &SwRect::_Right,
+/*N*/ &SwRect::_Left,
+/*N*/ &SwRect::_Top,
+/*N*/ &SwRect::_Bottom,
+/*N*/ &SwRect::_Height,
+/*N*/ &SwRect::_Width,
+/*N*/ &SwRect::TopRight,
+/*N*/ &SwRect::SwappedSize,
+/*N*/ /* fnRectSet */
+/*N*/ &SwRect::_Right,
+/*N*/ &SwRect::_Left,
+/*N*/ &SwRect::_Top,
+/*N*/ &SwRect::_Bottom,
+/*N*/ &SwRect::_Height,
+/*N*/ &SwRect::_Width,
+/*N*/
+/*N*/ &SwRect::AddRight,
+/*N*/ &SwRect::SubLeft,
+/*N*/ &SwRect::SubTop,
+/*N*/ &SwRect::AddBottom,
+/*N*/ &SwRect::AddHeight,
+/*N*/ &SwRect::AddWidth,
+/*N*/
+/*N*/ &SwRect::SetPosY,
+/*N*/ &SwRect::SetPosX,
+/*N*/
+/*N*/ &SwFrm::GetRightMargin,
+/*N*/ &SwFrm::GetLeftMargin,
+/*N*/ &SwFrm::GetTopMargin,
+/*N*/ &SwFrm::GetBottomMargin,
+/*N*/ &SwFrm::SetTopBottomMargins,
+/*N*/ &SwFrm::SetRightLeftMargins,
+/*N*/ &SwFrm::GetPrtRight,
+/*N*/ &SwFrm::GetPrtLeft,
+/*N*/ &SwFrm::GetPrtTop,
+/*N*/ &SwFrm::GetPrtBottom,
+/*N*/ &SwRect::GetRightDistance,
+/*N*/ &SwRect::GetLeftDistance,
+/*N*/ &SwRect::GetTopDistance,
+/*N*/ &SwRect::GetBottomDistance,
+/*N*/ &SwFrm::SetMinLeft,
+/*N*/ &SwRect::OverStepLeft,
+/*N*/
+/*N*/ &SwRect::SetUpperRightCorner,
+/*N*/ &SwFrm::MakeLeftPos,
+/*N*/ &FirstMinusSecond,
+/*N*/ &SecondMinusFirst,
+/*N*/ &SwIncrement,
+/*N*/ &SwDecrement,
+/*N*/ &SwRect::SetTopAndHeight,
+/*N*/ &SwRect::SetRightAndWidth
+/*N*/ };
+/*N*/
+/*N*/ static SwRectFnCollection aBottomToTop = {
+/*N*/ /* fnRectGet */
+/*N*/ &SwRect::_Bottom,
+/*N*/ &SwRect::_Top,
+/*N*/ &SwRect::_Left,
+/*N*/ &SwRect::_Right,
+/*N*/ &SwRect::_Width,
+/*N*/ &SwRect::_Height,
+/*N*/ &SwRect::BottomLeft,
+/*N*/ &SwRect::_Size,
+/*N*/ /* fnRectSet */
+/*N*/ &SwRect::_Bottom,
+/*N*/ &SwRect::_Top,
+/*N*/ &SwRect::_Left,
+/*N*/ &SwRect::_Right,
+/*N*/ &SwRect::_Width,
+/*N*/ &SwRect::_Height,
+/*N*/
+/*N*/ &SwRect::AddBottom,
+/*N*/ &SwRect::SubTop,
+/*N*/ &SwRect::SubLeft,
+/*N*/ &SwRect::AddRight,
+/*N*/ &SwRect::AddWidth,
+/*N*/ &SwRect::AddHeight,
+/*N*/
+/*N*/ &SwRect::SetPosX,
+/*N*/ &SwRect::SetPosY,
+/*N*/
+/*N*/ &SwFrm::GetBottomMargin,
+/*N*/ &SwFrm::GetTopMargin,
+/*N*/ &SwFrm::GetLeftMargin,
+/*N*/ &SwFrm::GetRightMargin,
+/*N*/ &SwFrm::SetLeftRightMargins,
+/*N*/ &SwFrm::SetBottomTopMargins,
+/*N*/ &SwFrm::GetPrtBottom,
+/*N*/ &SwFrm::GetPrtTop,
+/*N*/ &SwFrm::GetPrtLeft,
+/*N*/ &SwFrm::GetPrtRight,
+/*N*/ &SwRect::GetBottomDistance,
+/*N*/ &SwRect::GetTopDistance,
+/*N*/ &SwRect::GetLeftDistance,
+/*N*/ &SwRect::GetRightDistance,
+/*N*/ &SwFrm::SetMinTop,
+/*N*/ &SwRect::OverStepTop,
+/*N*/
+/*N*/ &SwRect::SetLowerLeftCorner,
+/*N*/ &SwFrm::MakeUpperPos,
+/*N*/ &FirstMinusSecond,
+/*N*/ &SecondMinusFirst,
+/*N*/ &SwIncrement,
+/*N*/ &SwDecrement,
+/*N*/ &SwRect::SetLeftAndWidth,
+/*N*/ &SwRect::SetBottomAndHeight
+/*N*/ };
+/*N*/
+/*N*/ static SwRectFnCollection aVerticalRightToLeft = {
+/*N*/ /* fnRectGet */
+/*N*/ &SwRect::_Left,
+/*N*/ &SwRect::_Right,
+/*N*/ &SwRect::_Top,
+/*N*/ &SwRect::_Bottom,
+/*N*/ &SwRect::_Height,
+/*N*/ &SwRect::_Width,
+/*N*/ &SwRect::BottomRight,
+/*N*/ &SwRect::SwappedSize,
+/*N*/ /* fnRectSet */
+/*N*/ &SwRect::_Left,
+/*N*/ &SwRect::_Right,
+/*N*/ &SwRect::_Top,
+/*N*/ &SwRect::_Bottom,
+/*N*/ &SwRect::_Height,
+/*N*/ &SwRect::_Width,
+/*N*/
+/*N*/ &SwRect::SubLeft,
+/*N*/ &SwRect::AddRight,
+/*N*/ &SwRect::SubTop,
+/*N*/ &SwRect::AddBottom,
+/*N*/ &SwRect::AddHeight,
+/*N*/ &SwRect::AddWidth,
+/*N*/
+/*N*/ &SwRect::SetPosY,
+/*N*/ &SwRect::SetPosX,
+/*N*/
+/*N*/ &SwFrm::GetLeftMargin,
+/*N*/ &SwFrm::GetRightMargin,
+/*N*/ &SwFrm::GetTopMargin,
+/*N*/ &SwFrm::GetBottomMargin,
+/*N*/ &SwFrm::SetTopBottomMargins,
+/*N*/ &SwFrm::SetLeftRightMargins,
+/*N*/ &SwFrm::GetPrtLeft,
+/*N*/ &SwFrm::GetPrtRight,
+/*N*/ &SwFrm::GetPrtBottom,
+/*N*/ &SwFrm::GetPrtTop,
+/*N*/ &SwRect::GetLeftDistance,
+/*N*/ &SwRect::GetRightDistance,
+/*N*/ &SwRect::GetBottomDistance,
+/*N*/ &SwRect::GetTopDistance,
+/*N*/ &SwFrm::SetMaxRight,
+/*N*/ &SwRect::OverStepRight,
+/*N*/
+/*N*/ &SwRect::SetLowerLeftCorner,
+/*N*/ &SwFrm::MakeRightPos,
+/*N*/ &FirstMinusSecond,
+/*N*/ &FirstMinusSecond,
+/*N*/ &SwDecrement,
+/*N*/ &SwIncrement,
+/*N*/ &SwRect::SetBottomAndHeight,
+/*N*/ &SwRect::SetLeftAndWidth
+/*N*/ };
+/*N*/
+/*N*/ SwRectFn fnRectHori = &aHorizontal;
+/*N*/ SwRectFn fnRectVert = &aVertical;
+/*N*/ SwRectFn fnRectB2T = &aBottomToTop;
+/*N*/ SwRectFn fnRectVL2R = &aVerticalRightToLeft;
+
+/*N*/ #endif
+
+/*N*/ #ifdef DBG_UTIL
+/*N*/ USHORT SwFrm::nLastFrmId=0;
+/*N*/ #endif
+
+
+/*N*/ TYPEINIT1(SwFrm,SwClient); //rtti fuer SwFrm
+/*N*/ TYPEINIT1(SwCntntFrm,SwFrm); //rtti fuer SwCntntFrm
+
+
+/*N*/ void _FrmInit()
+/*N*/ {
+/*N*/ SwRootFrm::pVout = new SwLayVout();
+/*N*/ SwCache *pNew = new SwCache( 100, 100
+/*N*/ #ifdef DBG_UTIL
+/*N*/ , "static SwBorderAttrs::pCache"
+/*N*/ #endif
+/*N*/ );
+/*N*/ SwFrm::SetCache( pNew );
+/*N*/ }
+
+
+
+/*N*/ void _FrmFinit()
+/*N*/ {
+/*N*/ #ifdef DBG_UTIL
+/*N*/ // im Chache duerfen nur noch 0-Pointer stehen
+/*N*/ for( USHORT n = SwFrm::GetCachePtr()->Count(); n; )
+/*N*/ if( (*SwFrm::GetCachePtr())[ --n ] )
+/*N*/ {
+/*N*/ SwCacheObj* pObj = (*SwFrm::GetCachePtr())[ n ];
+/*N*/ ASSERT( !pObj, "Wer hat sich nicht ausgetragen?")
+/*N*/ }
+/*N*/ #endif
+/*N*/ delete SwRootFrm::pVout;
+/*N*/ delete SwFrm::GetCachePtr();
+/*N*/ }
+
+/*************************************************************************
+|*
+|* RootFrm::Alles was so zur CurrShell gehoert
+|*
+|* Ersterstellung MA 09. Sep. 98
+|* Letzte Aenderung MA 18. Feb. 99
+|*
+|*************************************************************************/
+
+/*N*/ typedef CurrShell* CurrShellPtr;
+/*N*/ SV_DECL_PTRARR_SORT(SwCurrShells,CurrShellPtr,4,4)
+/*N*/ SV_IMPL_PTRARR_SORT(SwCurrShells,CurrShellPtr)
+
+/*N*/ CurrShell::CurrShell( ViewShell *pNew )
+/*N*/ {
+/*N*/ ASSERT( pNew, "0-Shell einsetzen?" );
+/*N*/ pRoot = pNew->GetLayout();
+/*N*/ if ( pRoot )
+/*N*/ {
+/*N*/ pPrev = pRoot->pCurrShell;
+/*N*/ pRoot->pCurrShell = pNew;
+/*N*/ pRoot->pCurrShells->Insert( this );
+/*N*/ }
+/*N*/ else
+/*?*/ pPrev = 0;
+/*N*/ }
+
+/*N*/ CurrShell::~CurrShell()
+/*N*/ {
+/*N*/ if ( pRoot )
+/*N*/ {
+/*N*/ pRoot->pCurrShells->Remove( this );
+/*N*/ if ( pPrev )
+/*N*/ pRoot->pCurrShell = pPrev;
+/*N*/ if ( !pRoot->pCurrShells->Count() && pRoot->pWaitingCurrShell )
+/*N*/ {
+/*?*/ pRoot->pCurrShell = pRoot->pWaitingCurrShell;
+/*?*/ pRoot->pWaitingCurrShell = 0;
+/*N*/ }
+/*N*/ }
+/*N*/ }
+
+/*N*/ void SwRootFrm::DeRegisterShell( ViewShell *pSh )
+/*N*/ {
+/*N*/ //Wenn moeglich irgendeine Shell aktivieren
+/*N*/ if ( pCurrShell == pSh )
+/*N*/ pCurrShell = pSh->GetNext() != pSh ? (ViewShell*)pSh->GetNext() : 0;
+/*N*/
+/*N*/ //Das hat sich eruebrigt
+/*N*/ if ( pWaitingCurrShell == pSh )
+/*?*/ pWaitingCurrShell = 0;
+/*N*/
+/*N*/ //Referenzen entfernen.
+/*N*/ for ( USHORT i = 0; i < pCurrShells->Count(); ++i )
+/*N*/ {
+/*?*/ CurrShell *pC = (*pCurrShells)[i];
+/*?*/ if (pC->pPrev == pSh)
+/*?*/ pC->pPrev = 0;
+/*N*/ }
+/*N*/ }
+
+/*N*/ void InitCurrShells( SwRootFrm *pRoot )
+/*N*/ {
+/*N*/ pRoot->pCurrShells = new SwCurrShells;
+/*N*/ }
+
+
+/*************************************************************************
+|*
+|* SwRootFrm::SwRootFrm()
+|*
+|* Beschreibung:
+|* Der RootFrm laesst sich grundsaetzlich vom Dokument ein eigenes
+|* FrmFmt geben. Dieses loescht er dann selbst im DTor.
+|* Das eigene FrmFmt wird vom uebergebenen Format abgeleitet.
+|* Ersterstellung SS 05-Apr-1991
+|* Letzte Aenderung MA 12. Dec. 94
+|*
+|*************************************************************************/
+
+
+/*N*/ SwRootFrm::SwRootFrm( SwFrmFmt *pFmt, ViewShell * pSh ) :
+/*N*/ SwLayoutFrm( pFmt->GetDoc()->MakeFrmFmt(
+/*N*/ XubString( "Root", RTL_TEXTENCODING_MS_1252 ), pFmt ) ),
+/*N*/ pTurbo( 0 ),
+/*N*/ pLastPage( 0 ),
+/*N*/ pCurrShell( pSh ),
+/*N*/ pWaitingCurrShell( 0 ),
+/*N*/ pDestroy( 0 ),
+/*N*/ nPhyPageNums( 0 ),
+/*N*/ pDrawPage( 0 ),
+/*N*/ nBrowseWidth( MM50*4 ) //2cm Minimum
+/*N*/ #ifdef ACCESSIBLE_LAYOUT
+/*N*/ ,nAccessibleShells( 0 )
+/*N*/ #endif
+/*N*/ {
+/*N*/ nType = FRMC_ROOT;
+/*N*/ bIdleFormat = bTurboAllowed = bAssertFlyPages = bIsNewLayout = TRUE;
+/*N*/ bCheckSuperfluous = bBrowseWidthValid = FALSE;
+/*N*/
+/*N*/ InitCurrShells( this );
+/*N*/
+/*N*/ SwDoc *pDoc = pFmt->GetDoc();
+/*N*/ const BOOL bOldIdle = pDoc->IsIdleTimerActive();
+/*N*/ pDoc->StopIdleTimer();
+/*N*/ pDoc->SetRootFrm( this ); //Fuer das Erzeugen der Flys durch MakeFrms()
+/*N*/ bCallbackActionEnabled = FALSE; //vor Verlassen auf TRUE setzen!
+/*N*/
+/*N*/ #ifndef VERTICAL_LAYOUT
+/*N*/ #ifdef QUER
+/*N*/ //StarWriter /QUER ? bitteschoen:
+/*N*/ SetFixSize( pHeight );
+/*N*/ #else
+/*N*/ SetFixSize( pWidth );
+/*N*/ #endif
+/*N*/ #endif
+/*N*/
+/*N*/ SdrModel *pMd = pDoc->GetDrawModel();
+/*N*/ if ( pMd )
+/*N*/ {
+/*N*/ pDrawPage = pMd->GetPage( 0 );
+/*N*/ pDrawPage->SetSize( Frm().SSize() );
+/*N*/ }
+/*N*/
+/*N*/ //Initialisierung des Layouts: Seiten erzeugen. Inhalt mit cntnt verbinden
+/*N*/ //usw.
+/*N*/ //Zuerst einiges initialiseren und den ersten Node besorgen (der wird
+/*N*/ //fuer den PageDesc benoetigt).
+/*N*/
+/*N*/ SwNodeIndex aIndex( *pDoc->GetNodes().GetEndOfContent().StartOfSectionNode() );
+/*N*/ SwCntntNode *pNode = pDoc->GetNodes().GoNextSection( &aIndex, TRUE, FALSE );
+/*N*/ SwTableNode *pTblNd= pNode->FindTableNode();
+/*N*/
+/*N*/ //PageDesc besorgen (entweder vom FrmFmt des ersten Node oder den
+/*N*/ //initialen.)
+/*N*/ SwPageDesc *pDesc = 0;
+/*N*/ USHORT nPgNum = 1;
+/*N*/
+/*N*/ if ( pTblNd )
+/*N*/ {
+/*N*/ const SwFmtPageDesc &rDesc = pTblNd->GetTable().GetFrmFmt()->GetPageDesc();
+/*N*/ pDesc = (SwPageDesc*)rDesc.GetPageDesc();
+/*N*/ //#19104# Seitennummeroffset beruecksictigen!!
+/*N*/ bIsVirtPageNum = 0 != ( nPgNum = rDesc.GetNumOffset() );
+/*N*/ }
+/*N*/ else if ( pNode )
+/*N*/ {
+/*N*/ const SwFmtPageDesc &rDesc = pNode->GetSwAttrSet().GetPageDesc();
+/*N*/ pDesc = (SwPageDesc*)rDesc.GetPageDesc();
+/*N*/ //#19104# Seitennummeroffset beruecksictigen!!
+/*N*/ bIsVirtPageNum = 0 != ( nPgNum = rDesc.GetNumOffset() );
+/*N*/ }
+/*N*/ else
+/*?*/ bIsVirtPageNum = FALSE;
+/*N*/ if ( !pDesc )
+/*N*/ pDesc = (SwPageDesc*)&pDoc->GetPageDesc( 0 );
+/*N*/ const BOOL bOdd = !nPgNum || 0 != ( nPgNum % 2 );
+/*N*/
+/*N*/ //Eine Seite erzeugen und in das Layout stellen
+/*N*/ SwPageFrm *pPage = ::binfilter::InsertNewPage( *pDesc, this, bOdd, FALSE, FALSE, 0 );
+/*N*/
+/*N*/ //Erstes Blatt im Bodytext-Bereich suchen.
+/*N*/ SwLayoutFrm *pLay = pPage->FindBodyCont();
+/*N*/ while( pLay->Lower() )
+/*N*/ pLay = (SwLayoutFrm*)pLay->Lower();
+/*N*/
+/*N*/ SwNodeIndex aTmp( *pDoc->GetNodes().GetEndOfContent().StartOfSectionNode(), 1 );
+/*N*/ ::binfilter::_InsertCnt( pLay, pDoc, aTmp.GetIndex(), TRUE );
+/*N*/ //Noch nicht ersetzte Master aus der Liste entfernen.
+/*N*/ RemoveMasterObjs( pDrawPage );
+/*N*/ if( pDoc->IsGlobalDoc() )
+/*N*/ pDoc->UpdateRefFlds( NULL );
+/*N*/ if ( bOldIdle )
+/*N*/ pDoc->StartIdleTimer();
+/*N*/ bCallbackActionEnabled = TRUE;
+/*N*/ }
+
+/*************************************************************************
+|*
+|* SwRootFrm::~SwRootFrm()
+|*
+|* Ersterstellung SS 05-Apr-1991
+|* Letzte Aenderung MA 12. Dec. 94
+|*
+|*************************************************************************/
+
+
+
+/*N*/ SwRootFrm::~SwRootFrm()
+/*N*/ {
+/*N*/ bTurboAllowed = FALSE;
+/*N*/ pTurbo = 0;
+/*N*/ ((SwFrmFmt*)pRegisteredIn)->GetDoc()->DelFrmFmt( (SwFrmFmt*)pRegisteredIn );
+/*N*/ delete pDestroy;
+/*N*/
+/*N*/ //Referenzen entfernen.
+/*N*/ for ( USHORT i = 0; i < pCurrShells->Count(); ++i )
+/*?*/ (*pCurrShells)[i]->pRoot = 0;
+/*N*/
+/*N*/ delete pCurrShells;
+/*N*/
+/*N*/ #ifdef ACCESSIBLE_LAYOUT
+/*N*/ ASSERT( 0==nAccessibleShells, "Some accessible shells are left" );
+/*N*/ #endif
+/*N*/ }
+
+/*************************************************************************
+|*
+|* SwRootFrm::SetFixSize()
+|*
+|* Ersterstellung MA 23. Jul. 92
+|* Letzte Aenderung MA 11. Mar. 93
+|*
+|*************************************************************************/
+
+/*N*/ #ifndef VERTICAL_LAYOUT
+
+/*?*/ void SwRootFrm::SetFixSize( SzPtr pNew )
+/*?*/ {
+/*?*/ if ( pNew == pHeight )
+/*?*/ {
+/*?*/ GetFmt()->SetAttr( SwFmtFillOrder( ATT_LEFT_TO_RIGHT ) );
+/*?*/ bVarHeight = bFixWidth = FALSE;
+/*?*/ bFixHeight = TRUE;
+/*?*/ }
+/*?*/ else
+/*?*/ {
+/*?*/ GetFmt()->SetAttr( SwFmtFillOrder( ATT_TOP_DOWN ) );
+/*?*/ bVarHeight = bFixWidth = TRUE;
+/*?*/ bFixHeight = FALSE;
+/*?*/ }
+/*?*/ }
+
+/*N*/ #endif
+
+/*************************************************************************
+|*
+|* SwRootFrm::RemoveMasterObjs()
+|*
+|* Ersterstellung MA 19.10.95
+|* Letzte Aenderung MA 19.10.95
+|*
+|*************************************************************************/
+
+
+/*N*/ void SwRootFrm::RemoveMasterObjs( SdrPage *pPg )
+/*N*/ {
+/*N*/ //Alle Masterobjekte aus der Page entfernen. Nicht loeschen!!
+/*N*/ for( ULONG i = pPg ? pPg->GetObjCount() : 0; i; )
+/*N*/ {
+/*N*/ SdrObject* pObj = pPg->GetObj( --i );
+/*N*/ if( pObj->ISA(SwFlyDrawObj ) )
+/*N*/ pPg->RemoveObject( i );
+/*N*/ }
+/*N*/ }
+
+
+
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */