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