summaryrefslogtreecommitdiff
path: root/lotuswordpro/source/filter/lwpdocdata.hxx
blob: acf33a51d5bdc98c739705faf94f1e4b55960ca6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*************************************************************************
 *
 *  The Contents of this file are made available subject to the terms of
 *  either of the following licenses
 *
 *         - GNU Lesser General Public License Version 2.1
 *         - Sun Industry Standards Source License Version 1.1
 *
 *  Sun Microsystems Inc., October, 2000
 *
 *  GNU Lesser General Public License Version 2.1
 *  =============================================
 *  Copyright 2000 by Sun Microsystems, Inc.
 *  901 San Antonio Road, Palo Alto, CA 94303, USA
 *
 *  This library is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU Lesser General Public
 *  License version 2.1, as published by the Free Software Foundation.
 *
 *  This library is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *  Lesser General Public License for more details.
 *
 *  You should have received a copy of the GNU Lesser General Public
 *  License along with this library; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 *  MA  02111-1307  USA
 *
 *
 *  Sun Industry Standards Source License Version 1.1
 *  =================================================
 *  The contents of this file are subject to the Sun Industry Standards
 *  Source License Version 1.1 (the "License"); You may not use this file
 *  except in compliance with the License. You may obtain a copy of the
 *  License at http://www.openoffice.org/license.html.
 *
 *  Software provided under this License is provided on an "AS IS" basis,
 *  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
 *  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
 *  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
 *  See the License for the specific provisions governing your rights and
 *  obligations concerning the Software.
 *
 *  The Initial Developer of the Original Code is: IBM Corporation
 *
 *  Copyright: 2008 by IBM Corporation
 *
 *  All Rights Reserved.
 *
 *  Contributor(s): _______________________________________
 *
 *
 ************************************************************************/
#ifndef LWPDOCDATA_HXX_
#define LWPDOCDATA_HXX_
#include "lwpobj.hxx"
#include "lwpatomholder.hxx"
#include "localtime.hxx"
#include "lwpcolor.hxx"
#include "xfilter/xfcolor.hxx"
#include <map>

struct LwpDocOptions
{
    sal_uInt16 nOptionFlag;
    LwpAtomHolder encrypt1password;
    LwpAtomHolder encrypt2password;
    LwpAtomHolder characterSet;
    LwpAtomHolder grammerSet;
    sal_uInt16 nMarginMarks;
    sal_uInt16 nMarginMarksLocation;
    sal_uInt16 nMarginMarksChar;
};
struct LwpDocInfo
{
    LwpAtomHolder description;
    LwpAtomHolder keywords;
    LwpAtomHolder createdBy;
    sal_Int32 nCreationTime;
    sal_Int32 nLastRevisionTime;
    sal_Int32 nTotalEditTime;
    LwpObjectID cpVerDocInfo;
    sal_uInt16 nNumEditedBy;
    //skip editor list
};
struct LwpDocControl
{
    LwpAtomHolder cGreeting;
    sal_uInt16 nFlags;
    sal_uInt16 nDocControlProtection;
    sal_uInt16 nLen1;
    //skip doc control password string
    sal_uInt16 nFileProtection;
    sal_uInt16 nLen2;
    //skip file password string
    sal_uInt16 nAutoVersioning;
    LwpAtomHolder cDocControlOnlyEditor;
    sal_uInt16 nEditorVerification;
};
struct lcolor
{
        sal_uInt16 cred;        // When extra is AGLRGB_INDEX, cred holds the
        sal_uInt16 cgreen;      // hi 16 bits and cgreen holds the lo 16 bits of
        sal_uInt16 cblue;       // the 32-bit LUT index.
        sal_uInt16 cextra;
};
struct LwpFontDescriptionOverrideBase
{
    sal_uInt8 cOverrideBits;
    sal_uInt8 cApplyBits;
    sal_Int32 cPointSize;
    sal_uInt8 cOverstrike;
    sal_uInt16 cTightness;
    //lcolor cColor;
    //lcolor cBackgroundColor;
    LwpColor cColor;
    LwpColor cBackgroundColor;
};
struct LwpFontAttributeOverride
{
    sal_uInt16 cAttrBits;
    sal_uInt16 cAttrOverrideBits;
    sal_uInt16 cAttrApplyBits;
    sal_uInt8 cAttrOverrideBits2;
    sal_uInt8 cAttrApplyBits2;
    sal_uInt8 cCase;
    sal_uInt8 cUnder;
};
struct LwpFontDescriptionOverride
{
    LwpFontAttributeOverride cFontAttributeOverride;
    LwpFontDescriptionOverrideBase cFontDescriptionOverrideBase;
    LwpAtomHolder cFaceName;
    LwpAtomHolder cAltFaceName;
};
struct LwpOverrideOg
{
    sal_uInt16 cValues;
    sal_uInt16 cOverride;
    sal_uInt16 cApply;
};
struct LwpTextAttributeOverrideOg
{
    LwpOverrideOg cOverride;
    sal_uInt16 cHideLevels;
    sal_Int32 cBaselineOffset;
};
struct LwpEditorAttr
{
    LwpAtomHolder cName;
    LwpAtomHolder cInitials;
    LwpColor cHiLiteColor;
    sal_uInt16 nID;
    LwpFontDescriptionOverride cInsFontOver;
    LwpFontDescriptionOverride cDelFontOver;
    sal_uInt16 nAbilities;
    sal_uInt16 nLocks;
    sal_uInt16 nSuggestions;
    LwpTextAttributeOverrideOg cDelTextAttr;
};
class LwpDocData : public LwpObject
{
public:
    LwpDocData(LwpObjectHeader &objHdr, LwpSvStream* pStrm);
    ~LwpDocData();
private:
    LwpDocOptions m_DocOptions;
    LwpDocInfo m_DocInfo;
    LwpDocControl m_DocControl;
//  static std::map<sal_uInt16,LwpEditorAttr*> m_EditorAttrMap;
private:
    LtTm m_nCreationTime;
    LtTm m_nLastRevisionTime;
    LtTm m_nTotalEditTime;
private:
    OUString DateTimeToOUString(LtTm& dt);
    OUString TimeToOUString(LtTm& dt);

public:
    void Read();
    void Parse(IXFStream *pOutputStream);
};
#endif

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */