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 INCLUDED_LOTUSWORDPRO_SOURCE_FILTER_LWPSTORY_HXX
68 : #define INCLUDED_LOTUSWORDPRO_SOURCE_FILTER_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<OUString, sal_uInt8> NamePosPair;
84 : std::vector <NamePosPair> m_vBulletStyleNameList;
85 :
86 : // , 02/16/2005
87 : 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 : bool m_bDropcap;
93 : LwpHyperlinkMgr* m_pHyperlinkMgr;
94 : OUString m_CurrSectionName;
95 :
96 : XFContentContainer* m_pXFContainer;
97 :
98 : protected:
99 : void Read() SAL_OVERRIDE;
100 : void XFConvertFrameInCell(XFContentContainer* pCont);
101 : void XFConvertFrameInFrame(XFContentContainer* pCont);
102 : void XFConvertFrameInHeaderFooter(XFContentContainer* pCont);
103 :
104 : public:
105 : void RegisterStyle() SAL_OVERRIDE;
106 : void Parse(IXFStream* pOutputStream) SAL_OVERRIDE;
107 : virtual void XFConvert(XFContentContainer* pCont) SAL_OVERRIDE;
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 1054 : bool GetDropcapFlag() { return m_bDropcap; }
116 8 : LwpPageLayout* GetCurrentLayout() { return m_pCurrentLayout; }
117 : inline LwpMiddleLayout* GetTabLayout();//for register tab style
118 0 : OUString GetSectionName() { return m_CurrSectionName; }
119 374 : LwpHyperlinkMgr* GetHyperlinkMgr() { return m_pHyperlinkMgr; }
120 :
121 516 : inline bool IsPMModified() { return m_bPMModified; }
122 : inline void SetPMModified(bool bPMModified);
123 : inline void SetDropcapFlag(bool bFlag);
124 : inline void SetTabLayout(LwpLayout* pLayout);
125 : inline void SetSectionName(const OUString& StyleName);
126 :
127 : void SetCurrentLayout(LwpPageLayout* pPageLayout);
128 : void AddPageLayout(LwpPageLayout* pObject);
129 : LwpPageLayout* GetNextPageLayout();
130 : bool IsNeedSection();
131 : void SortPageLayout();
132 :
133 : LwpPara* GetLastParaOfPreviousStory();
134 :
135 : OUString GetContentText(bool bAllText = false);//add by ,for CHB,05/5/25
136 : inline void AddBullStyleName2List(const OUString& rStyleName, const sal_uInt8& nPos);
137 : bool IsBullStyleUsedBefore(const OUString& rStyleName, const sal_uInt8& nPos);
138 :
139 : OUString RegisterFirstFribStyle();
140 : };
141 :
142 : LwpDLVListHeadTail& LwpStory::GetParaList()
143 : {
144 : return m_ParaList;
145 : }
146 220 : LwpObjectID& LwpStory::GetFirstPara()
147 : {
148 220 : return m_ParaList.GetHead();
149 : }
150 0 : LwpObjectID& LwpStory::GetLastPara()
151 : {
152 0 : return m_ParaList.GetTail();
153 : }
154 180 : LwpMiddleLayout* LwpStory::GetTabLayout()
155 : {
156 180 : if(m_pTabLayout)
157 160 : return m_pTabLayout;
158 20 : return static_cast<LwpMiddleLayout*>(GetLayout(NULL));
159 : }
160 8 : void LwpStory::SetPMModified(bool bPMModified)
161 : {
162 8 : m_bPMModified = bPMModified;
163 8 : }
164 0 : void LwpStory::SetDropcapFlag(bool bFlag)
165 : {
166 0 : m_bDropcap = bFlag;
167 0 : }
168 0 : void LwpStory::SetTabLayout(LwpLayout* pLayout)
169 : {
170 0 : m_pTabLayout = pLayout;
171 0 : }
172 0 : void LwpStory::SetSectionName(const OUString& StyleName)
173 : {
174 0 : m_CurrSectionName = StyleName;
175 0 : }
176 6 : inline void LwpStory::AddBullStyleName2List(const OUString& rStyleName, const sal_uInt8& nPos)
177 : {
178 6 : m_vBulletStyleNameList.push_back(std::make_pair(rStyleName, nPos));
179 6 : }
180 :
181 : #endif
182 :
183 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|