1 /*************************************************************************
3 * The Contents of this file are made available subject to the terms of
4 * either of the following licenses
6 * - GNU Lesser General Public License Version 2.1
7 * - Sun Industry Standards Source License Version 1.1
9 * Sun Microsystems Inc., October, 2000
11 * GNU Lesser General Public License Version 2.1
12 * =============================================
13 * Copyright 2000 by Sun Microsystems, Inc.
14 * 901 San Antonio Road, Palo Alto, CA 94303, USA
16 * This library is free software; you can redistribute it and/or
17 * modify it under the terms of the GNU Lesser General Public
18 * License version 2.1, as published by the Free Software Foundation.
20 * This library is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
23 * Lesser General Public License for more details.
25 * You should have received a copy of the GNU Lesser General Public
26 * License along with this library; if not, write to the Free Software
27 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
31 * Sun Industry Standards Source License Version 1.1
32 * =================================================
33 * The contents of this file are subject to the Sun Industry Standards
34 * Source License Version 1.1 (the "License"); You may not use this file
35 * except in compliance with the License. You may obtain a copy of the
36 * License at http://www.openoffice.org/license.html.
38 * Software provided under this License is provided on an "AS IS" basis,
39 * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
40 * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
41 * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
42 * See the License for the specific provisions governing your rights and
43 * obligations concerning the Software.
45 * The Initial Developer of the Original Code is: IBM Corporation
47 * Copyright: 2008 by IBM Corporation
49 * All Rights Reserved.
51 * Contributor(s): _______________________________________
54 ************************************************************************/
55 /*************************************************************************
57 * For LWP filter architecture prototype
58 ************************************************************************/
59 /*************************************************************************
62 ************************************************************************/
63 #include "lwpfribbreaks.hxx"
64 #include "lwpstory.hxx"
65 #include "xfilter/xfstylemanager.hxx"
66 #include "xfilter/xfsectionstyle.hxx"
67 #include "lwpsection.hxx"
68 #include "xfilter/xfsection.hxx"
69 #include "lwpglobalmgr.hxx"
71 void LwpFribColumnBreak::RegisterBreakStyle(LwpPara
* pPara
)
73 // XFParaStyle* pBaseStyle = static_cast<XFParaStyle*>(pFoundry->GetStyleManager()->GetStyle(styleID));
74 XFParaStyle
* pBaseStyle
= pPara
->GetXFParaStyle();
75 if (pBaseStyle
== NULL
) return;
76 // m_StyleName = pBaseStyle->GetStyleName();
78 XFParaStyle
* pOverStyle
= new XFParaStyle
;
79 *pOverStyle
= *pBaseStyle
;
80 pOverStyle
->SetStyleName(A2OUSTR(""));
83 //if (static_cast<LwpStory*>(pPara->GetStoryID()->obj())
84 // ->GetCurrentLayout()->GetNumCols() == 1)
86 LwpStory
* pStory
= static_cast<LwpStory
*>(pPara
->GetStoryID()->obj());
87 LwpPageLayout
* pCurLayout
= pStory
? pStory
->GetCurrentLayout() : NULL
;
88 if( pCurLayout
&& (pCurLayout
->GetNumCols() == 1) )
91 // if (!GetNext() || GetNext()->GetType()==FRIB_TAG_EOP)
92 pOverStyle
->SetBreaks(enumXFBreakBefPage
);
94 // pOverStyle->SetBreaks(enumXFBreakBefPage);
98 if (!GetNext() || GetNext()->GetType()==FRIB_TAG_EOP
)
99 pOverStyle
->SetBreaks(enumXFBreakAftColumn
);
101 pOverStyle
->SetBreaks(enumXFBreakBefColumn
);
103 XFStyleManager
* pXFStyleManager
= LwpGlobalMgr::GetInstance()->GetXFStyleManager();
104 m_StyleName
= pXFStyleManager
->AddStyle(pOverStyle
)->GetStyleName();
107 LwpFribPageBreak::LwpFribPageBreak( LwpPara
* pPara
)
108 : LwpFrib(pPara
), m_pMasterPage(NULL
),m_bLastFrib(sal_False
)
112 LwpFribPageBreak::~LwpFribPageBreak()
116 delete m_pMasterPage
;
117 m_pMasterPage
= NULL
;
121 void LwpFribPageBreak::Read(LwpObjectStream
* pObjStrm
, sal_uInt16 len
)
123 m_Layout
.ReadIndexed(pObjStrm
);
127 void LwpFribPageBreak::RegisterBreakStyle(LwpPara
* pPara
)
129 XFParaStyle
* pBaseStyle
= pPara
->GetXFParaStyle();
130 if (pBaseStyle
== NULL
) return;
132 LwpPageLayout
* pLayout
= static_cast<LwpPageLayout
*>(m_Layout
.obj());
135 m_pMasterPage
= new LwpMasterPage(pPara
, pLayout
);
136 m_pMasterPage
->RegisterMasterPage(this);
140 XFParaStyle
* pOverStyle
= new XFParaStyle
;
141 *pOverStyle
= *pBaseStyle
;
142 pOverStyle
->SetStyleName(A2OUSTR(""));
143 pOverStyle
->SetMasterPage(pBaseStyle
->GetMasterPage());
145 if (!GetNext() || GetNext()->GetType()==FRIB_TAG_EOP
)
146 m_bLastFrib
= sal_True
;
148 m_bLastFrib
= sal_False
;
150 if (m_bLastFrib
== sal_True
)
151 pOverStyle
->SetBreaks(enumXFBreakAftPage
);
153 pOverStyle
->SetBreaks(enumXFBreakBefPage
);
155 XFStyleManager
* pXFStyleManager
= LwpGlobalMgr::GetInstance()->GetXFStyleManager();
156 m_StyleName
= pXFStyleManager
->AddStyle(pOverStyle
)->GetStyleName();
159 void LwpFribPageBreak::ParseLayout()
163 m_pMasterPage
->ParseSection(this);