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 : * @file
58 : * For LWP filter architecture prototype
59 : * The file declares structures and enums used by Lwp-Drawing-Module
60 : */
61 :
62 : #ifndef _LWPSDWRAWHEADER_HXX
63 : #define _LWPSDWRAWHEADER_HXX
64 :
65 : #include "lwpheader.hxx"
66 : #include "lwptools.hxx"
67 :
68 : const sal_uInt8 DRAW_FACESIZE = 32;
69 : const double THRESHOLD = 0.0001;
70 :
71 : enum DrawObjectType
72 : {
73 : OT_UNDEFINED = 0,
74 :
75 : OT_SELECT = 0,
76 : OT_HAND = 1,
77 : OT_LINE = 2,
78 : OT_PERPLINE = 3,
79 : OT_POLYLINE = 4,
80 : OT_POLYGON = 5,
81 : OT_RECT = 6,
82 : OT_SQUARE = 7,
83 : OT_RNDRECT = 8,
84 : OT_RNDSQUARE = 9,
85 : OT_OVAL = 10,
86 : OT_CIRCLE = 11,
87 : OT_ARC = 12,
88 : OT_TEXT = 13,
89 : OT_GROUP = 14,
90 : OT_CHART = 15,
91 : OT_METAFILE = 16,
92 : OT_METAFILEIMG = 17,
93 : OT_BITMAP = 18,
94 : OT_TEXTART = 19,
95 : OT_BIGBITMAP = 20
96 : };
97 :
98 : enum DrawFillType
99 : {
100 : FT_TRANSPARENT = 0,
101 : FT_VLTGRAY = 1,
102 : FT_LTGRAY = 2,
103 : FT_GRAY = 3,
104 : FT_DKGRAY = 4,
105 : FT_SOLID = 5,
106 : FT_HORZHATCH = 6,
107 : FT_VERTHATCH = 7,
108 : FT_FDIAGHATCH = 8,
109 : FT_BDIAGHATCH = 9,
110 : FT_CROSSHATCH = 10,
111 : FT_DIAGCROSSHATCH = 11,
112 : FT_PATTERN = 12
113 : };
114 :
115 : enum DrawLineStyle
116 : {
117 : LS_SOLID = 0,
118 : LS_DASH = 1,
119 : LS_DOT = 2,
120 : LS_DASHDOT = 3,
121 : LS_DASHDOTDOT = 4,
122 : LS_NULL = 5,
123 : LS_INSIDEFRAME = 6
124 : };
125 :
126 : // Text Attributes as stored in Draw files V1.2 and earlier
127 : enum DrawTextAttribute
128 : {
129 : TA_BOLD = 0x0001, /* bolded font */
130 : TA_ITALIC = 0x0002, /* italic font */
131 : TA_UNDERLINE = 0x0004, /* underlined font */
132 : TA_WORDUNDERLINE = 0x0008, /* broken underline */
133 : TA_ALLCAPS = 0x0010, /* capitalized font */
134 : TA_SMALLCAPS = 0x0020, /* all small capital letters */
135 : TA_DOUBLEUNDER = 0x0040, /* double underline */
136 : TA_STRIKETHRU = 0x0080, /* strikethru */
137 : TA_SUPERSCRIPT = 0x0100, /* superscript */
138 : TA_SUBSCRIPT = 0x0200 /* subscript */
139 : };
140 :
141 : enum DrawArrowHead
142 : {
143 : AH_ARROW_NONE = 0,
144 : AH_ARROW_FULLARROW = 1,
145 : AH_ARROW_HALFARROW = 2,
146 : AH_ARROW_LINEARROW = 3,
147 : AH_ARROW_INVFULLARROW = 4,
148 : AH_ARROW_INVHALFARROW = 5,
149 : AH_ARROW_INVLINEARROW = 6,
150 : AH_ARROW_TEE = 7,
151 : AH_ARROW_SQUARE = 8,
152 : AH_ARROW_CIRCLE = 9
153 : };
154 :
155 : struct SdwPoint
156 : {
157 : sal_Int16 x;
158 : sal_Int16 y;
159 : };
160 :
161 : struct SdwColor
162 : {
163 : sal_uInt8 nR;
164 : sal_uInt8 nG;
165 : sal_uInt8 nB;
166 : sal_uInt8 unused;
167 : };
168 :
169 : struct SdwClosedObjStyleRec
170 : {
171 : sal_uInt8 nLineWidth;
172 : sal_uInt8 nLineStyle;
173 : SdwColor aPenColor;
174 : SdwColor aForeColor;
175 : SdwColor aBackColor;
176 : sal_uInt16 nFillType;
177 : sal_uInt8 pFillPattern[8];
178 : };
179 :
180 : struct SdwDrawObjHeader
181 : {
182 : // sal_uInt8 nType
183 : // sal_uInt8 nFlags;
184 : sal_uInt16 nRecLen;
185 : sal_Int16 nLeft;
186 : sal_Int16 nTop;
187 : sal_Int16 nRight;
188 : sal_Int16 nBottom;
189 : // sal_uInt16 nextObj;
190 : // sal_uInt16 prevObj;
191 : };
192 :
193 : struct SdwLineRecord
194 : {
195 : sal_Int16 nStartX;
196 : sal_Int16 nStartY;
197 : sal_Int16 nEndX;
198 : sal_Int16 nEndY;
199 : sal_uInt8 nLineWidth;
200 : sal_uInt8 nLineEnd;
201 : sal_uInt8 nLineStyle;
202 : SdwColor aPenColor;
203 : };
204 :
205 : struct SdwPolyLineRecord
206 : {
207 : sal_uInt8 nLineWidth;
208 : sal_uInt8 nLineEnd;
209 : sal_uInt8 nLineStyle;
210 : SdwColor aPenColor;
211 : sal_uInt16 nNumPoints;
212 : };
213 :
214 : struct SdwArcRecord
215 : {
216 : sal_uInt8 nLineWidth;
217 : sal_uInt8 nLineEnd;
218 : sal_uInt8 nLineStyle;
219 : SdwColor aPenColor;
220 : };
221 :
222 : struct SdwTextBoxRecord
223 : {
224 : sal_Int16 nTextWidth;
225 : sal_Int16 nTextHeight;
226 : sal_Int16 nTextSize;
227 : SdwColor aTextColor;
228 : sal_uInt8 tmpTextFaceName[DRAW_FACESIZE];
229 : sal_uInt16 nTextAttrs;
230 : sal_uInt16 nTextCharacterSet;
231 : sal_Int16 nTextRotation;
232 : sal_Int16 nTextExtraSpacing;
233 : sal_uInt8* pTextString;
234 : };
235 :
236 : struct SdwFMPATH
237 : {
238 : sal_uInt16 n;
239 : SdwPoint* pPts;
240 : };
241 :
242 : struct SdwTextArt : public SdwTextBoxRecord
243 : {
244 : sal_uInt8 nIndex;
245 : sal_Int16 nRotation;
246 : sal_uInt16 nTextLen;
247 : SdwFMPATH aPath[2];
248 : };
249 :
250 : struct SdwBmpRecord
251 : {
252 : sal_uInt16 nTranslation;
253 : sal_uInt16 nRotation;
254 : sal_uInt32 nFileSize;
255 : };
256 :
257 : struct BmpInfoHeader
258 : {
259 : sal_uInt32 nHeaderLen;
260 : sal_uInt16 nWidth;
261 : sal_uInt16 nHeight;
262 : sal_uInt16 nPlanes;
263 : sal_uInt16 nBitCount;
264 : };
265 :
266 : struct BmpInfoHeader2
267 : {
268 : sal_uInt32 nHeaderLen;
269 : sal_uInt32 nWidth;
270 : sal_uInt32 nHeight;
271 : sal_uInt16 nPlanes;
272 : sal_uInt16 nBitCount;
273 : };
274 :
275 : struct DrawingOffsetAndScale
276 : {
277 : double fOffsetX;
278 : double fOffsetY;
279 : double fScaleX;
280 : double fScaleY;
281 : double fLeftMargin;
282 : double fTopMargin;
283 :
284 0 : DrawingOffsetAndScale()
285 : {
286 0 : fOffsetX = 0.00;
287 0 : fOffsetY = 0.00;
288 0 : fScaleX = 1.00;
289 0 : fScaleY = 1.00;
290 0 : fLeftMargin = 0.00;
291 0 : fTopMargin = 0.00;
292 0 : }
293 : };
294 :
295 : #endif
296 :
297 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|