merge the formfield patch from ooo-build
[ooovba.git] / lotuswordpro / source / filter / lwptoc.hxx
blobfd184ca6cfa505059e4402be7a00ce2b6d04b8eb
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,
28 * MA 02111-1307 USA
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 /*************************************************************************
56 * Change History
57 April 2005 Created
58 April 2005 Modified - add LwpTocLevelData class
59 ************************************************************************/
61 #ifndef _LWPTOCSUPERTABLELAYOUT_HXX
62 #define _LWPTOCSUPERTABLELAYOUT_HXX
63 #include "lwptablelayout.hxx"
64 class XFIndex;
65 class LwpDocument;
66 class LwpFoundry;
67 class LwpTocLevelData;
68 class XFIndex;
69 class XFIndexTemplate;
70 /**
71 * @brief
72 * VO_TOCSUPERTABLELAYOUT object
74 class LwpTocSuperLayout : public LwpSuperTableLayout
76 public:
77 LwpTocSuperLayout(LwpObjectHeader &objHdr, LwpSvStream* pStrm);
78 virtual ~LwpTocSuperLayout();
79 void RegisterStyle();
80 virtual void XFConvert(XFContentContainer* pCont);
81 virtual LWP_LAYOUT_TYPE GetLayoutType () { return LWP_TOC_SUPERTABLE_LAYOUT;}
82 virtual void XFConvertFrame(XFContentContainer* pCont, sal_Int32 nStart = 0, sal_Int32 nEnd = 0, sal_Bool bAll = sal_False);
83 protected:
84 void Read();
85 sal_Bool GetRightAlignPageNumber(sal_uInt16 index);
86 sal_Bool GetUsePageNumber(sal_uInt16 index);
87 sal_uInt16 GetSeparatorType(sal_uInt16 index);
88 LwpTocLevelData * GetSearchLevelPtr(sal_uInt16 index);
89 LwpTocLevelData * GetNextSearchLevelPtr(sal_uInt16 index, LwpTocLevelData * pCurData);
90 void AddSourceStyle(XFIndex* pToc, LwpTocLevelData * pLevel, LwpFoundry * pFoundry);
91 private:
92 enum {MAX_LEVELS = 9};
93 enum
95 TS_NOLEADERS = 0x01,
96 TS_LEADERDOTS = 0x02,
97 TS_LEADERDASHES = 0x04,
98 TS_LEADERUNDERLINE = 0x08,
99 TS_SEPARATORCOMMA = 0x10,
100 TS_SEPARATORDOTS = 0x20,
101 TS_PAGENUMBER = 0x40,
102 TS_RIGHTALIGN = 0x80
105 enum
107 NONE = 0,
108 LEADERDOTS = 1,
109 LEADERDASHES = 2,
110 LEADERUNDERLINE = 3,
111 SEPARATORCOMMA = 4,
112 SEPARATORDOTS = 5
115 //m_nFrom
116 enum
118 SELECTEDTEXT = 1,
119 ENTIREDOCUMENT = 2,
120 CURRENTLEVELDIVISION = 3,
121 CURRENTDIVISION = 4,
122 CURRENTSECTION = 5
125 LwpAtomHolder m_TextMarker; /* for selected text */
126 LwpAtomHolder m_ParentName; /* for currentleveldivision */
127 LwpAtomHolder m_DivisionName; /* for currentdivision&currentsection */
128 LwpAtomHolder m_SectionName; /* for currentsection */
129 sal_uInt16 m_nFrom;
130 LwpDLVListHeadTail m_SearchItems;
131 LwpAtomHolder m_DestName[MAX_LEVELS];
132 LwpAtomHolder m_DestPGName[MAX_LEVELS];
133 sal_uInt32 m_nFlags[MAX_LEVELS];
135 std::vector<std::pair<OUString,OUString> > m_TOCList;
137 rtl::OUString m_TabStyleName;
139 XFContentContainer* m_pCont;
142 * @brief
143 * VO_TOCLEVELDATA object
145 class LwpTocLevelData : public LwpDLVList
147 public:
148 enum
150 USETEXT = 0x01,
151 USENUMBER = 0x02
153 LwpTocLevelData(LwpObjectHeader &objHdr, LwpSvStream* pStrm);
154 ~LwpTocLevelData();
155 void RegisterStyle();
156 virtual void XFConvert(XFContentContainer* pCont);
157 inline sal_uInt16 GetLevel(void){return m_nLevel;};
158 inline sal_Bool GetUseText(void){ return (m_nFlags & USETEXT) ? sal_True : sal_False;};
159 inline OUString GetSearchStyle(void){return m_SearchName.str();};
160 inline sal_Bool GetUseLeadingText(void){ return (m_nFlags & USENUMBER) ? sal_True : sal_False;}
161 private:
162 sal_uInt16 m_nFlags;
163 sal_uInt16 m_nLevel;
164 LwpAtomHolder m_SearchName;
166 protected:
167 void Read();
170 #endif