Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*************************************************************************
3 : *
4 : * The Contents of this file are made available subject to the terms of
5 : * either of the following licenses
6 : *
7 : * - GNU Lesser General Public License Version 2.1
8 : * - Sun Industry Standards Source License Version 1.1
9 : *
10 : * Sun Microsystems Inc., October, 2000
11 : *
12 : * GNU Lesser General Public License Version 2.1
13 : * =============================================
14 : * Copyright 2000 by Sun Microsystems, Inc.
15 : * 901 San Antonio Road, Palo Alto, CA 94303, USA
16 : *
17 : * This library is free software; you can redistribute it and/or
18 : * modify it under the terms of the GNU Lesser General Public
19 : * License version 2.1, as published by the Free Software Foundation.
20 : *
21 : * This library is distributed in the hope that it will be useful,
22 : * but WITHOUT ANY WARRANTY; without even the implied warranty of
23 : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
24 : * Lesser General Public License for more details.
25 : *
26 : * You should have received a copy of the GNU Lesser General Public
27 : * License along with this library; if not, write to the Free Software
28 : * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
29 : * MA 02111-1307 USA
30 : *
31 : *
32 : * Sun Industry Standards Source License Version 1.1
33 : * =================================================
34 : * The contents of this file are subject to the Sun Industry Standards
35 : * Source License Version 1.1 (the "License"); You may not use this file
36 : * except in compliance with the License. You may obtain a copy of the
37 : * License at http://www.openoffice.org/license.html.
38 : *
39 : * Software provided under this License is provided on an "AS IS" basis,
40 : * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
41 : * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
42 : * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
43 : * See the License for the specific provisions governing your rights and
44 : * obligations concerning the Software.
45 : *
46 : * The Initial Developer of the Original Code is: IBM Corporation
47 : *
48 : * Copyright: 2008 by IBM Corporation
49 : *
50 : * All Rights Reserved.
51 : *
52 : * Contributor(s): _______________________________________
53 : *
54 : *
55 : ************************************************************************/
56 : /*************************************************************************
57 : * @file
58 : * LwpStory:
59 : 1. Word Pro object for paragraph list;
60 : 2. the content of layout object
61 : ************************************************************************/
62 : /*************************************************************************
63 : * Change History
64 : Jan 2005 Created
65 : ************************************************************************/
66 :
67 : #ifndef _LWPSTORY_HXX
68 : #define _LWPSTORY_HXX
69 : #include "lwpcontent.hxx"
70 :
71 : class LwpPageLayout;
72 : class LwpStory: public LwpContent
73 : {
74 : public:
75 : LwpStory(LwpObjectHeader &objHdr, LwpSvStream* pStrm);
76 : virtual ~LwpStory();
77 : private:
78 : //File format members:
79 : LwpDLVListHeadTail m_ParaList;
80 : LwpObjectID m_FirstParaStyle;
81 :
82 : // for bullet , 05/23/2005
83 : typedef std::pair<rtl::OUString, sal_uInt8> NamePosPair;
84 : std::vector <NamePosPair> m_vBulletStyleNameList;
85 :
86 : // , 02/16/2005
87 : sal_Bool m_bPMModified;
88 : LwpPageLayout* m_pCurrentLayout; //for register page layout style
89 : std::vector<LwpPageLayout*> m_LayoutList;
90 : LwpLayout* m_pTabLayout; //for register tab style
91 :
92 : sal_Bool m_bDropcap;
93 : LwpHyperlinkMgr* m_pHyperlinkMgr;
94 : OUString m_CurrSectionName;
95 :
96 : XFContentContainer* m_pXFContainer;
97 :
98 : protected:
99 : void Read();
100 : void XFConvertFrameInCell(XFContentContainer* pCont);
101 : void XFConvertFrameInFrame(XFContentContainer* pCont);
102 : void XFConvertFrameInHeaderFooter(XFContentContainer* pCont);
103 :
104 : public:
105 : void RegisterStyle();
106 : void Parse(IXFStream* pOutputStream);
107 : virtual void XFConvert(XFContentContainer* pCont);
108 : void XFConvertFrameInPage(XFContentContainer* pCont);
109 : inline LwpDLVListHeadTail* GetParaList();
110 : inline LwpObjectID* GetFirstPara();
111 : inline LwpObjectID* GetLastPara();
112 : XFContentContainer* GetXFContent();
113 : void AddXFContent(XFContent* pContent);
114 :
115 : inline sal_Bool GetDropcapFlag();
116 : inline LwpPageLayout* GetCurrentLayout();
117 : inline LwpMiddleLayout* GetTabLayout();//for register tab style
118 : inline OUString GetSectionName();
119 : inline LwpHyperlinkMgr* GetHyperlinkMgr();
120 :
121 : inline sal_Bool IsPMModified();
122 : inline void SetPMModified(sal_Bool bPMModified);
123 : inline void SetDropcapFlag(sal_Bool bFlag);
124 : inline void SetTabLayout(LwpLayout* pLayout);
125 : inline void SetSectionName(OUString StyleName);
126 :
127 : void SetCurrentLayout(LwpPageLayout* pPageLayout);
128 : void AddPageLayout(LwpPageLayout* pObject);
129 : LwpPageLayout* GetNextPageLayout();
130 : sal_Bool IsNeedSection();
131 : void SortPageLayout();
132 :
133 : LwpPara* GetLastParaOfPreviousStory();
134 :
135 : OUString GetContentText(sal_Bool bAllText = sal_False);//add by ,for CHB,05/5/25
136 : inline void AddBullStyleName2List(const rtl::OUString& rStyleName, const sal_uInt8& nPos);
137 : sal_Bool IsBullStyleUsedBefore(const rtl::OUString& rStyleName, const sal_uInt8& nPos);
138 :
139 : OUString RegisterFirstFribStyle();
140 : };
141 :
142 : LwpDLVListHeadTail* LwpStory::GetParaList()
143 : {
144 : return &m_ParaList;
145 : }
146 119 : LwpObjectID* LwpStory::GetFirstPara()
147 : {
148 119 : return m_ParaList.GetHead();
149 : }
150 0 : LwpObjectID* LwpStory::GetLastPara()
151 : {
152 0 : return m_ParaList.GetTail();
153 : }
154 532 : sal_Bool LwpStory::GetDropcapFlag()
155 : {
156 532 : return m_bDropcap;
157 : }
158 90 : LwpMiddleLayout* LwpStory::GetTabLayout()
159 : {
160 90 : if(m_pTabLayout)
161 80 : return m_pTabLayout;
162 10 : return static_cast<LwpMiddleLayout*>(GetLayout(NULL));
163 : }
164 4 : void LwpStory::SetPMModified(sal_Bool bPMModified)
165 : {
166 4 : m_bPMModified = bPMModified;
167 4 : }
168 0 : void LwpStory::SetDropcapFlag(sal_Bool bFlag)
169 : {
170 0 : m_bDropcap = bFlag;
171 0 : }
172 0 : void LwpStory::SetTabLayout(LwpLayout* pLayout)
173 : {
174 0 : m_pTabLayout = pLayout;
175 0 : }
176 0 : void LwpStory::SetSectionName(OUString StyleName)
177 : {
178 0 : m_CurrSectionName = StyleName;
179 0 : }
180 0 : OUString LwpStory::GetSectionName()
181 : {
182 0 : return m_CurrSectionName;
183 : }
184 261 : sal_Bool LwpStory::IsPMModified()
185 : {
186 261 : return m_bPMModified;
187 : }
188 4 : LwpPageLayout* LwpStory::GetCurrentLayout()
189 : {
190 4 : return m_pCurrentLayout;
191 : }
192 189 : LwpHyperlinkMgr* LwpStory::GetHyperlinkMgr()
193 : {
194 189 : return m_pHyperlinkMgr;
195 : }
196 3 : inline void LwpStory::AddBullStyleName2List(const rtl::OUString& rStyleName, const sal_uInt8& nPos)
197 : {
198 3 : m_vBulletStyleNameList.push_back(std::make_pair(rStyleName, nPos));
199 3 : }
200 :
201 : #endif
202 :
203 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|