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 /*************************************************************************
58 April 2005 Modified - add LwpTocLevelData class
59 ************************************************************************/
61 #ifndef _LWPTOCSUPERTABLELAYOUT_HXX
62 #define _LWPTOCSUPERTABLELAYOUT_HXX
63 #include "lwptablelayout.hxx"
67 class LwpTocLevelData
;
69 class XFIndexTemplate
;
72 * VO_TOCSUPERTABLELAYOUT object
74 class LwpTocSuperLayout
: public LwpSuperTableLayout
77 LwpTocSuperLayout(LwpObjectHeader
&objHdr
, LwpSvStream
* pStrm
);
78 virtual ~LwpTocSuperLayout();
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
);
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
);
92 enum {MAX_LEVELS
= 9};
97 TS_LEADERDASHES
= 0x04,
98 TS_LEADERUNDERLINE
= 0x08,
99 TS_SEPARATORCOMMA
= 0x10,
100 TS_SEPARATORDOTS
= 0x20,
101 TS_PAGENUMBER
= 0x40,
120 CURRENTLEVELDIVISION
= 3,
125 LwpAtomHolder m_TextMarker
; /* for selected text */
126 LwpAtomHolder m_ParentName
; /* for currentleveldivision */
127 LwpAtomHolder m_DivisionName
; /* for currentdivision¤tsection */
128 LwpAtomHolder m_SectionName
; /* for currentsection */
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
;
143 * VO_TOCLEVELDATA object
145 class LwpTocLevelData
: public LwpDLVList
153 LwpTocLevelData(LwpObjectHeader
&objHdr
, LwpSvStream
* pStrm
);
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
;}
164 LwpAtomHolder m_SearchName
;