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: */
|