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