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 : #ifndef INCLUDED_LOTUSWORDPRO_SOURCE_FILTER_LWPDOCDATA_HXX
57 : #define INCLUDED_LOTUSWORDPRO_SOURCE_FILTER_LWPDOCDATA_HXX
58 : #include "lwpobj.hxx"
59 : #include "lwpatomholder.hxx"
60 : #include "localtime.hxx"
61 : #include "lwpcolor.hxx"
62 : #include "xfilter/xfcolor.hxx"
63 : #include <map>
64 :
65 8 : struct LwpDocOptions
66 : {
67 : sal_uInt16 nOptionFlag;
68 : LwpAtomHolder encrypt1password;
69 : LwpAtomHolder encrypt2password;
70 : LwpAtomHolder characterSet;
71 : LwpAtomHolder grammerSet;
72 : sal_uInt16 nMarginMarks;
73 : sal_uInt16 nMarginMarksLocation;
74 : sal_uInt16 nMarginMarksChar;
75 : };
76 8 : struct LwpDocInfo
77 : {
78 : LwpAtomHolder description;
79 : LwpAtomHolder keywords;
80 : LwpAtomHolder createdBy;
81 : sal_Int32 nCreationTime;
82 : sal_Int32 nLastRevisionTime;
83 : sal_Int32 nTotalEditTime;
84 : LwpObjectID cpVerDocInfo;
85 : sal_uInt16 nNumEditedBy;
86 : //skip editor list
87 : };
88 8 : struct LwpDocControl
89 : {
90 : LwpAtomHolder cGreeting;
91 : sal_uInt16 nFlags;
92 : sal_uInt16 nDocControlProtection;
93 : sal_uInt16 nLen1;
94 : //skip doc control password string
95 : sal_uInt16 nFileProtection;
96 : sal_uInt16 nLen2;
97 : //skip file password string
98 : sal_uInt16 nAutoVersioning;
99 : LwpAtomHolder cDocControlOnlyEditor;
100 : sal_uInt16 nEditorVerification;
101 : };
102 : struct lcolor
103 : {
104 : sal_uInt16 cred; // When extra is AGLRGB_INDEX, cred holds the
105 : sal_uInt16 cgreen; // hi 16 bits and cgreen holds the lo 16 bits of
106 : sal_uInt16 cblue; // the 32-bit LUT index.
107 : sal_uInt16 cextra;
108 : };
109 52 : struct LwpFontDescriptionOverrideBase
110 : {
111 : sal_uInt8 cOverrideBits;
112 : sal_uInt8 cApplyBits;
113 : sal_Int32 cPointSize;
114 : sal_uInt8 cOverstrike;
115 : sal_uInt16 cTightness;
116 : //lcolor cColor;
117 : //lcolor cBackgroundColor;
118 : LwpColor cColor;
119 : LwpColor cBackgroundColor;
120 : };
121 : struct LwpFontAttributeOverride
122 : {
123 : sal_uInt16 cAttrBits;
124 : sal_uInt16 cAttrOverrideBits;
125 : sal_uInt16 cAttrApplyBits;
126 : sal_uInt8 cAttrOverrideBits2;
127 : sal_uInt8 cAttrApplyBits2;
128 : sal_uInt8 cCase;
129 : sal_uInt8 cUnder;
130 : };
131 52 : struct LwpFontDescriptionOverride
132 : {
133 : LwpFontAttributeOverride cFontAttributeOverride;
134 : LwpFontDescriptionOverrideBase cFontDescriptionOverrideBase;
135 : LwpAtomHolder cFaceName;
136 : LwpAtomHolder cAltFaceName;
137 : };
138 : struct LwpOverrideOg
139 : {
140 : sal_uInt16 cValues;
141 : sal_uInt16 cOverride;
142 : sal_uInt16 cApply;
143 : };
144 : struct LwpTextAttributeOverrideOg
145 : {
146 : LwpOverrideOg cOverride;
147 : sal_uInt16 cHideLevels;
148 : sal_Int32 cBaselineOffset;
149 : };
150 26 : struct LwpEditorAttr
151 : {
152 : LwpAtomHolder cName;
153 : LwpAtomHolder cInitials;
154 : LwpColor cHiLiteColor;
155 : sal_uInt16 nID;
156 : LwpFontDescriptionOverride cInsFontOver;
157 : LwpFontDescriptionOverride cDelFontOver;
158 : sal_uInt16 nAbilities;
159 : sal_uInt16 nLocks;
160 : sal_uInt16 nSuggestions;
161 : LwpTextAttributeOverrideOg cDelTextAttr;
162 : };
163 : class LwpDocData : public LwpObject
164 : {
165 : public:
166 : LwpDocData(LwpObjectHeader &objHdr, LwpSvStream* pStrm);
167 : private:
168 : virtual ~LwpDocData();
169 :
170 : LwpDocOptions m_DocOptions;
171 : LwpDocInfo m_DocInfo;
172 : LwpDocControl m_DocControl;
173 : // static std::map<sal_uInt16,LwpEditorAttr*> m_EditorAttrMap;
174 : private:
175 : LtTm m_nCreationTime;
176 : LtTm m_nLastRevisionTime;
177 : LtTm m_nTotalEditTime;
178 : private:
179 : static OUString DateTimeToOUString(LtTm& dt);
180 : static OUString TimeToOUString(LtTm& dt);
181 :
182 : public:
183 : void Read() SAL_OVERRIDE;
184 : void Parse(IXFStream *pOutputStream) SAL_OVERRIDE;
185 : };
186 : #endif
187 :
188 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|