tdf#124953: Use rangelist's combined range top-left address...
[LibreOffice.git] / include / svx / msdffdef.hxx
blob4a4bd1249ce43bd8d5988307a3ba872457624e82
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #ifndef INCLUDED_SVX_MSDFFDEF_HXX
21 #define INCLUDED_SVX_MSDFFDEF_HXX
23 #include <limits.h>
24 #include <sal/types.h>
25 #include <svx/svxdllapi.h>
27 #define DFF_COMMON_RECORD_HEADER_SIZE 8
29 const sal_uInt32 nMaxLegalDffRecordLength =
30 SAL_MAX_UINT32 - DFF_COMMON_RECORD_HEADER_SIZE;
32 #define DFF_PSFLAG_CONTAINER 0x0F // If the version field of a record
33 // header takes on this value, the
34 // record header marks the start of
35 // a container.
37 #define DFF_PST_TextHeaderAtom 3999
38 #define DFF_PST_TextCharsAtom 4000
39 #define DFF_PST_TextBytesAtom 4008
40 #define DFF_PST_ExOleObjStg 4113
42 // Record Name FBT-Value Instance Contents Wrd Exl Ppt Ver
44 #define DFF_msofbtDggContainer 0xF000 // per-document data X X X
45 #define DFF_msofbtDgg 0xF006 // an FDGG and several FIDCLs X X X 0
46 #define DFF_msofbtCLSID 0xF016 // the CLSID of the application that put the data on the clipboard C C C 0
47 #define DFF_msofbtOPT 0xF00B // count of properties the document-wide default shape properties X X X 3
48 #define DFF_msofbtColorMRU 0xF11A // count of colors the colors in the MRU swatch X X X 0
49 #define DFF_msofbtSplitMenuColors 0xF11E // count of colors the colors in the top-level split menus X X X 0
50 #define DFF_msofbtBstoreContainer 0xF001 // count of BLIPs all images in the document (JPEGs, metafiles, etc.) X X X
51 #define DFF_msofbtBSE 0xF007 // BLIP type an FBSE (one per BLIP) X X X 2
52 #define DFF_msofbtBlipFirst 0xF018 // range of fbts reserved for various kinds of BLIPs X X X
53 #define DFF_msofbtBlipLast 0xF117 // range of fbts reserved for various kinds of BLIPs X X X
55 #define DFF_msofbtDgContainer 0xF002 // per-sheet/page/slide data X X X
56 #define DFF_msofbtDg 0xF008 // drawing ID an FDG X X X 0
57 #define DFF_msofbtRegroupItems 0xF118 // count of regroup entries several FRITs X X X 0
58 #define DFF_msofbtColorScheme 0xF120 // count of colors the colors of the source host's color scheme C C 0
59 #define DFF_msofbtSpgrContainer 0xF003 // several SpContainers, the first of which is the group shape itself X X X
60 #define DFF_msofbtSpContainer 0xF004 // a shape X X X
61 #define DFF_msofbtSpgr 0xF009 // an FSPGR; only present if the shape is a group shape X X X 1
62 #define DFF_msofbtSp 0xF00A // shape type an FSP X X X 2
63 #define DFF_msofbtTextbox 0xF00C // RTF text C C C 0
64 #define DFF_msofbtClientTextbox 0xF00D // host-defined the text in the textbox, in host-defined format X X X
65 #define DFF_msofbtAnchor 0xF00E // a RECT, in 100000ths of an inch C C C 0
66 #define DFF_msofbtChildAnchor 0xF00F // a RECT, in units relative to the parent group X X X 0
67 #define DFF_msofbtClientAnchor 0xF010 // host-defined the location of the shape, in a host-defined format X X X
68 #define DFF_msofbtClientData 0xF011 // host-defined host-specific data X X X
69 #define DFF_msofbtOleObject 0xF11F // a serialized IStorage for an OLE object C C C 0
70 #define DFF_msofbtDeletedPspl 0xF11D // an FPSPL; only present in top-level deleted shapes X 0
71 #define DFF_msofbtUDefProp 0xF122 // range of fbts reserved for various kinds of BLIPs X X X
72 #define DFF_msofbtSolverContainer 0xF005 // count of rules the rules governing shapes X X X
73 #define DFF_msofbtConnectorRule 0xF012 // an FConnectorRule X X 1
74 #define DFF_msofbtAlignRule 0xF013 // an FAlignRule X X X 0
75 #define DFF_msofbtArcRule 0xF014 // an FARCRU X X X 0
76 #define DFF_msofbtClientRule 0xF015 // host-defined host-defined
77 #define DFF_msofbtCalloutRule 0xF017 // an FCORU X X X 0
80 // Values for the ULONG in DFF_PST_TextHeaderAtom
81 enum DFF_TextHeader {
82 DFFTH_TITLE,
83 DFFTH_BODY,
84 DFFTH_NOTES,
85 DFFTH_NOTUSED,
86 DFFTH_OTHER, // Text in a Shape
87 DFFTH_CENTERBODY, // Subtitle in Title-Slide
88 DFFTH_CENTERTITLE, // Title in Title-Slide
89 DFFTH_HALFBODY, // Body in two-column slide
90 DFFTH_QUARTERBODY // Body in four-body slide
94 // Shape Properties
95 // 1pt = 12700 EMU (English Metric Units)
96 // 1pt = 20 Twip = 20/1440" = 1/72"
97 // 1twip=635 EMU
98 // 1" = 12700*72 = 914400 EMU
99 // 1" = 25.4mm
100 // 1mm = 36000 EMU
103 // Record Name FBT-Value Instance Contents Wrd Exl Ppt Ver
104 // Transform
105 #define DFF_Prop_Rotation 4 // Fixed Point 16.16 degrees
106 // Protection
107 #define DFF_Prop_LockAgainstGrouping 127 // sal_Bool Do not group this shape
108 // Text
109 #define DFF_Prop_lTxid 128 // LONG id for the text, value determined by the host
110 #define DFF_Prop_dxTextLeft 129 // LONG margins relative to shape's inscribed text rectangle (in EMUs)
111 #define DFF_Prop_dyTextTop 130 // LONG
112 #define DFF_Prop_dxTextRight 131 // LONG
113 #define DFF_Prop_dyTextBottom 132 // LONG
114 #define DFF_Prop_WrapText 133 // MSO_WRAPMODE Wrap text at shape margins
115 #define DFF_Prop_anchorText 135 // MSO_ANCHOR How to anchor the text
116 #define DFF_Prop_txflTextFlow 136 // MSO_TXFL Text flow
117 #define DFF_Prop_cdirFont 137 // MSO_CDIR Font rotation
118 #define DFF_Prop_hspNext 138 // MSO_HSP ID of the next shape (used by Word for linked textboxes)
119 #define DFF_Prop_AutoTextMargin 188 // sal_Bool use host's margin calculations
120 #define DFF_Prop_RotateText 189 // sal_Bool Rotate text with shape
121 #define DFF_Prop_FitTextToShape 191 // sal_Bool Size text to fit shape size
122 // GeoText
123 #define DFF_Prop_gtextUNICODE 192 // WCHAR* UNICODE text string
124 #define DFF_Prop_gtextAlign 194 // MSO_GEOTEXTALIGN alignment on curve
125 #define DFF_Prop_gtextSize 195 // LONG default point size
126 #define DFF_Prop_gtextSpacing 196 // LONG fixed point 16.16
127 #define DFF_Prop_gtextFont 197 // WCHAR* font family name
128 #define DFF_Prop_gtextFStretch 245 // sal_Bool 400 Stretch to fit shape
129 #define DFF_Prop_gtextFBold 250 // sal_Bool 20 Bold font
130 #define DFF_Prop_gtextFItalic 251 // sal_Bool 10 Italic font
131 #define DFF_Prop_gtextFStrikethrough 255 // sal_Bool 1 Strike through font
132 // Blip
133 #define DFF_Prop_cropFromTop 256 // LONG 16.16 fraction times total image width or height, as appropriate.
134 #define DFF_Prop_cropFromBottom 257 // LONG
135 #define DFF_Prop_cropFromLeft 258 // LONG
136 #define DFF_Prop_cropFromRight 259 // LONG
137 #define DFF_Prop_pib 260 // IMsoBlip* Blip to display
138 #define DFF_Prop_pibName 261 // WCHAR* Blip file name
139 #define DFF_Prop_pibFlags 262 // MSO_BLIPFLAGS Blip flags
140 #define DFF_Prop_pictureTransparent 263 // LONG transparent color (none if ~0UL)
141 #define DFF_Prop_pictureContrast 264 // LONG contrast setting
142 #define DFF_Prop_pictureBrightness 265 // LONG brightness setting
143 #define DFF_Prop_pictureGamma 266 // LONG 16.16 gamma
144 #define DFF_Prop_pictureId 267 // LONG Host-defined ID for OLE objects (usually a pointer)
145 #define DFF_Prop_pictureActive 319 // sal_Bool Server is active (OLE objects only)
146 // Geometry
147 #define DFF_Prop_geoLeft 320 // LONG Defines the G (geometry) coordinate space.
148 #define DFF_Prop_geoTop 321 // LONG
149 #define DFF_Prop_geoRight 322 // LONG
150 #define DFF_Prop_geoBottom 323 // LONG
151 #define DFF_Prop_pVertices 325 // IMsoArray An array of points, in G units.
152 #define DFF_Prop_pSegmentInfo 326 // IMsoArray
153 #define DFF_Prop_adjustValue 327 // LONG Adjustment values corresponding to the positions of the
154 #define DFF_Prop_adjust2Value 328 // LONG adjust handles of the shape. The number of values used
155 #define DFF_Prop_adjust3Value 329 // LONG and their allowable ranges vary from shape type to shape type.
156 #define DFF_Prop_adjust4Value 330 // LONG
157 #define DFF_Prop_adjust5Value 331 // LONG
158 #define DFF_Prop_adjust6Value 332 // LONG
159 #define DFF_Prop_adjust7Value 333 // LONG
160 #define DFF_Prop_adjust8Value 334 // LONG
161 #define DFF_Prop_adjust9Value 335 // LONG
162 #define DFF_Prop_adjust10Value 336 // LONG
163 #define DFF_Prop_connectorPoints 337 // IMsoArray
164 #define DFF_Prop_stretchPointX 339 // LONG
165 #define DFF_Prop_stretchPointY 340 // LONG
166 #define DFF_Prop_Handles 341 // H*
167 #define DFF_Prop_pFormulas 342 // LONG
168 #define DFF_Prop_textRectangles 343 // LONG
169 #define DFF_Prop_connectorType 344 // LONG ->0=none, 1=segments, 2=custom, 3=rect
170 #define DFF_Prop_f3DOK 379 // sal_Bool 3D may be set
171 #define DFF_Prop_fGtextOK 381 // sal_Bool Text effect (FontWork) supported
172 #define DFF_Prop_fFillShadeShapeOK 382 // BOOL
173 #define DFF_Prop_fFillOK 383 // sal_Bool OK to fill the shape through the UI or VBA?
174 // FillStyle
175 #define DFF_Prop_fillType 384 // MSO_FILLTYPE Type of fill
176 #define DFF_Prop_fillColor 385 // MSO_CLR Foreground color
177 #define DFF_Prop_fillOpacity 386 // LONG Fixed 16.16
178 #define DFF_Prop_fillBackColor 387 // MSO_CLR Background color
179 #define DFF_Prop_fillBackOpacity 388 // LONG Shades only
180 #define DFF_Prop_fillBlip 390 // IMsoBlip* Pattern/texture
181 #define DFF_Prop_fillWidth 393 // LONG How big (A units) to make a metafile texture.
182 #define DFF_Prop_fillHeight 394 // LONG
183 #define DFF_Prop_fillAngle 395 // LONG Fade angle - degrees in 16.16
184 #define DFF_Prop_fillFocus 396 // LONG Linear shaded fill focus percent
185 #define DFF_Prop_fillToRight 399 // LONG Fraction 16.16
186 #define DFF_Prop_fillToBottom 400 // LONG Fraction 16.16
187 #define DFF_Prop_fillShadeColors 407 // IMsoArray a preset array of colors
188 #define DFF_Prop_fFilled 443 // sal_Bool Is shape filled?
189 #define DFF_Prop_fNoFillHitTest 447 // sal_Bool Hit test a shape as though filled
190 // LineStyle
191 #define DFF_Prop_lineColor 448 // MSO_CLR Color of line
192 #define DFF_Prop_lineOpacity 449 // LONG Not implemented
193 #define DFF_Prop_lineBackColor 450 // MSO_CLR Background color
194 #define DFF_Prop_lineWidth 459 // LONG A units; 1pt == 12700 EMUs
195 #define DFF_Prop_lineStyle 461 // MSO_LINESTYLE Draw parallel lines?
196 #define DFF_Prop_lineDashing 462 // MSO_LINEDASHING Can be overridden by:
197 #define DFF_Prop_lineDashStyle 463 // IMsoArray As Win32 ExtCreatePen
198 #define DFF_Prop_lineStartArrowhead 464 // MSO_LINEEND Arrow at start
199 #define DFF_Prop_lineEndArrowhead 465 // MSO_LINEEND Arrow at end
200 #define DFF_Prop_lineStartArrowWidth 466 // MSO_LINEENDWIDTH Arrow at start
201 #define DFF_Prop_lineStartArrowLength 467 // MSO_LINEENDLENGTH Arrow at end
202 #define DFF_Prop_lineEndArrowWidth 468 // MSO_LINEENDWIDTH Arrow at start
203 #define DFF_Prop_lineEndArrowLength 469 // MSO_LINEENDLENGTH Arrow at end
204 #define DFF_Prop_lineJoinStyle 470 // MSO_LINEJOIN How to join lines
205 #define DFF_Prop_lineEndCapStyle 471 // MSO_LINECAP How to end lines
206 #define DFF_Prop_fLine 508 // sal_Bool Any line?
207 #define DFF_Prop_fNoLineDrawDash 511 // sal_Bool Draw a dashed line if no line
208 // ShadowStyle
209 #define DFF_Prop_shadowType 512 // MSO_SHADOWTYPE Type of effect
210 #define DFF_Prop_shadowColor 513 // MSO_CLR Foreground color
211 #define DFF_Prop_shadowOpacity 516 // LONG Fixed 16.16
212 #define DFF_Prop_shadowOffsetX 517 // LONG Offset shadow
213 #define DFF_Prop_shadowOffsetY 518 // LONG Offset shadow
214 #define DFF_Prop_fshadowObscured 575 // sal_Bool Excel5-style shadow
215 // PerspectiveStyle
216 #define DFF_Prop_fPerspective 639 // sal_Bool On/off
217 // 3D Object
218 #define DFF_Prop_c3DSpecularAmt 640 // LONG Fixed-point 16.16
219 #define DFF_Prop_c3DDiffuseAmt 641 // LONG Fixed-point 16.16
220 #define DFF_Prop_c3DShininess 642 // LONG Default gives OK results
221 #define DFF_Prop_c3DExtrudeForward 644 // LONG Distance of extrusion in EMUs
222 #define DFF_Prop_c3DExtrudeBackward 645 // LONG
223 #define DFF_Prop_c3DExtrusionColor 647 // MSO_CLR Basic color of extruded part of shape; the lighting model used will determine the exact shades used when rendering.
224 #define DFF_Prop_fc3DLightFace 703 // BOOL
225 // 3D Style
226 #define DFF_Prop_c3DYRotationAngle 704 // LONG degrees (16.16) about y axis
227 #define DFF_Prop_c3DXRotationAngle 705 // LONG degrees (16.16) about x axis
228 #define DFF_Prop_c3DRotationCenterX 710 // LONG rotation center x (16.16 or g-units)
229 #define DFF_Prop_c3DRotationCenterY 711 // LONG rotation center y (16.16 or g-units)
230 #define DFF_Prop_c3DRotationCenterZ 712 // LONG rotation center z (absolute (emus))
231 #define DFF_Prop_c3DRenderMode 713 // MSO_3DRENDERMODE Full,wireframe, or bcube
232 #define DFF_Prop_c3DTolerance 714 // LONG pixels (16.16)
233 #define DFF_Prop_c3DXViewpoint 715 // LONG X view point (emus)
234 #define DFF_Prop_c3DYViewpoint 716 // LONG Y view point (emus)
235 #define DFF_Prop_c3DZViewpoint 717 // LONG Z view distance (emus)
236 #define DFF_Prop_c3DOriginX 718 // LONG
237 #define DFF_Prop_c3DOriginY 719 // LONG
238 #define DFF_Prop_c3DSkewAngle 720 // LONG degree (16.16) skew angle
239 #define DFF_Prop_c3DSkewAmount 721 // LONG Percentage skew amount
240 #define DFF_Prop_c3DAmbientIntensity 722 // LONG Fixed point intensity
241 #define DFF_Prop_c3DKeyX 723 // LONG Key light source direc-
242 #define DFF_Prop_c3DKeyY 724 // LONG tion; only their relative
243 #define DFF_Prop_c3DKeyZ 725 // LONG magnitudes matter
244 #define DFF_Prop_c3DKeyIntensity 726 // LONG Fixed point intensity
245 #define DFF_Prop_c3DFillX 727 // LONG Fill light source direc-
246 #define DFF_Prop_c3DFillY 728 // LONG tion; only their relative
247 #define DFF_Prop_c3DFillZ 729 // LONG magnitudes matter
248 #define DFF_Prop_c3DFillIntensity 730 // LONG Fixed point intensity
249 #define DFF_Prop_fc3DFillHarsh 767 // sal_Bool Is fill lighting harsh?
250 // Shape
251 #define DFF_Prop_hspMaster 769 // MSO_HSP master shape
252 #define DFF_Prop_cxstyle 771 // MSO_CXSTYLE Type of connector
253 #define DFF_Prop_fBackground 831 // sal_Bool If sal_True, this is the background shape.
255 // Callout
256 #define DFF_Prop_fCalloutLengthSpecified 895 // sal_Bool if true, we look at dxyCalloutLengthSpecified
258 // GroupShape
259 #define DFF_Prop_wzName 896 // WCHAR* Shape Name (present only if explicitly set)
260 #define DFF_Prop_wzDescription 897 // WCHAR* alternate text
261 #define DFF_Prop_pihlShape 898 // IHlink* The hyperlink in the shape.
262 #define DFF_Prop_pWrapPolygonVertices 899 // IMsoArray The polygon that text will be wrapped around (Word)
263 #define DFF_Prop_dxWrapDistLeft 900 // LONG Left wrapping distance from text (Word)
264 #define DFF_Prop_dyWrapDistTop 901 // LONG Top wrapping distance from text (Word)
265 #define DFF_Prop_dxWrapDistRight 902 // LONG Right wrapping distance from text (Word)
266 #define DFF_Prop_dyWrapDistBottom 903 // LONG Bottom wrapping distance from text (Word)
267 #define DFF_Prop_tableProperties 927 // LONG
268 #define DFF_Prop_tableRowProperties 928 // LONG*
269 #define DFF_Prop_fHidden 958 // sal_Bool Do not display
270 #define DFF_Prop_fPrint 959 // sal_Bool Print this shape
272 // properties of the second property set
273 #define DFF_Prop_metroBlob 937 // XML ZipPackage*
275 // linchpin: the shape type
276 enum MSO_SPT: sal_Int32 {
277 mso_sptMin = 0,
278 mso_sptNotPrimitive = mso_sptMin,
279 mso_sptRectangle = 1,
280 mso_sptRoundRectangle = 2,
281 mso_sptEllipse = 3,
282 mso_sptDiamond = 4,
283 mso_sptIsocelesTriangle = 5,
284 mso_sptRightTriangle = 6,
285 mso_sptParallelogram = 7,
286 mso_sptTrapezoid = 8,
287 mso_sptHexagon = 9,
288 mso_sptOctagon = 10,
289 mso_sptPlus = 11,
290 mso_sptStar = 12,
291 mso_sptArrow = 13,
292 mso_sptThickArrow = 14,
293 mso_sptHomePlate = 15,
294 mso_sptCube = 16,
295 mso_sptBalloon = 17,
296 mso_sptSeal = 18,
297 mso_sptArc = 19,
298 mso_sptLine = 20,
299 mso_sptPlaque = 21,
300 mso_sptCan = 22,
301 mso_sptDonut = 23,
302 mso_sptTextSimple = 24,
303 mso_sptTextOctagon = 25,
304 mso_sptTextHexagon = 26,
305 mso_sptTextCurve = 27,
306 mso_sptTextWave = 28,
307 mso_sptTextRing = 29,
308 mso_sptTextOnCurve = 30,
309 mso_sptTextOnRing = 31,
310 mso_sptStraightConnector1 = 32,
311 mso_sptBentConnector2 = 33,
312 mso_sptBentConnector3 = 34,
313 mso_sptBentConnector4 = 35,
314 mso_sptBentConnector5 = 36,
315 mso_sptCurvedConnector2 = 37,
316 mso_sptCurvedConnector3 = 38,
317 mso_sptCurvedConnector4 = 39,
318 mso_sptCurvedConnector5 = 40,
319 mso_sptCallout1 = 41,
320 mso_sptCallout2 = 42,
321 mso_sptCallout3 = 43,
322 mso_sptAccentCallout1 = 44,
323 mso_sptAccentCallout2 = 45,
324 mso_sptAccentCallout3 = 46,
325 mso_sptBorderCallout1 = 47,
326 mso_sptBorderCallout2 = 48,
327 mso_sptBorderCallout3 = 49,
328 mso_sptAccentBorderCallout1 = 50,
329 mso_sptAccentBorderCallout2 = 51,
330 mso_sptAccentBorderCallout3 = 52,
331 mso_sptRibbon = 53,
332 mso_sptRibbon2 = 54,
333 mso_sptChevron = 55,
334 mso_sptPentagon = 56,
335 mso_sptNoSmoking = 57,
336 mso_sptSeal8 = 58,
337 mso_sptSeal16 = 59,
338 mso_sptSeal32 = 60,
339 mso_sptWedgeRectCallout = 61,
340 mso_sptWedgeRRectCallout = 62,
341 mso_sptWedgeEllipseCallout = 63,
342 mso_sptWave = 64,
343 mso_sptFoldedCorner = 65,
344 mso_sptLeftArrow = 66,
345 mso_sptDownArrow = 67,
346 mso_sptUpArrow = 68,
347 mso_sptLeftRightArrow = 69,
348 mso_sptUpDownArrow = 70,
349 mso_sptIrregularSeal1 = 71,
350 mso_sptIrregularSeal2 = 72,
351 mso_sptLightningBolt = 73,
352 mso_sptHeart = 74,
353 mso_sptPictureFrame = 75,
354 mso_sptQuadArrow = 76,
355 mso_sptLeftArrowCallout = 77,
356 mso_sptRightArrowCallout = 78,
357 mso_sptUpArrowCallout = 79,
358 mso_sptDownArrowCallout = 80,
359 mso_sptLeftRightArrowCallout = 81,
360 mso_sptUpDownArrowCallout = 82,
361 mso_sptQuadArrowCallout = 83,
362 mso_sptBevel = 84,
363 mso_sptLeftBracket = 85,
364 mso_sptRightBracket = 86,
365 mso_sptLeftBrace = 87,
366 mso_sptRightBrace = 88,
367 mso_sptLeftUpArrow = 89,
368 mso_sptBentUpArrow = 90,
369 mso_sptBentArrow = 91,
370 mso_sptSeal24 = 92,
371 mso_sptStripedRightArrow = 93,
372 mso_sptNotchedRightArrow = 94,
373 mso_sptBlockArc = 95,
374 mso_sptSmileyFace = 96,
375 mso_sptVerticalScroll = 97,
376 mso_sptHorizontalScroll = 98,
377 mso_sptCircularArrow = 99,
378 mso_sptNotchedCircularArrow = 100,
379 mso_sptUturnArrow = 101,
380 mso_sptCurvedRightArrow = 102,
381 mso_sptCurvedLeftArrow = 103,
382 mso_sptCurvedUpArrow = 104,
383 mso_sptCurvedDownArrow = 105,
384 mso_sptCloudCallout = 106,
385 mso_sptEllipseRibbon = 107,
386 mso_sptEllipseRibbon2 = 108,
387 mso_sptFlowChartProcess = 109,
388 mso_sptFlowChartDecision = 110,
389 mso_sptFlowChartInputOutput = 111,
390 mso_sptFlowChartPredefinedProcess = 112,
391 mso_sptFlowChartInternalStorage = 113,
392 mso_sptFlowChartDocument = 114,
393 mso_sptFlowChartMultidocument = 115,
394 mso_sptFlowChartTerminator = 116,
395 mso_sptFlowChartPreparation = 117,
396 mso_sptFlowChartManualInput = 118,
397 mso_sptFlowChartManualOperation = 119,
398 mso_sptFlowChartConnector = 120,
399 mso_sptFlowChartPunchedCard = 121,
400 mso_sptFlowChartPunchedTape = 122,
401 mso_sptFlowChartSummingJunction = 123,
402 mso_sptFlowChartOr = 124,
403 mso_sptFlowChartCollate = 125,
404 mso_sptFlowChartSort = 126,
405 mso_sptFlowChartExtract = 127,
406 mso_sptFlowChartMerge = 128,
407 mso_sptFlowChartOfflineStorage = 129,
408 mso_sptFlowChartOnlineStorage = 130,
409 mso_sptFlowChartMagneticTape = 131,
410 mso_sptFlowChartMagneticDisk = 132,
411 mso_sptFlowChartMagneticDrum = 133,
412 mso_sptFlowChartDisplay = 134,
413 mso_sptFlowChartDelay = 135,
414 mso_sptTextPlainText = 136,
415 mso_sptTextStop = 137,
416 mso_sptTextTriangle = 138,
417 mso_sptTextTriangleInverted = 139,
418 mso_sptTextChevron = 140,
419 mso_sptTextChevronInverted = 141,
420 mso_sptTextRingInside = 142,
421 mso_sptTextRingOutside = 143,
422 mso_sptTextArchUpCurve = 144,
423 mso_sptTextArchDownCurve = 145,
424 mso_sptTextCircleCurve = 146,
425 mso_sptTextButtonCurve = 147,
426 mso_sptTextArchUpPour = 148,
427 mso_sptTextArchDownPour = 149,
428 mso_sptTextCirclePour = 150,
429 mso_sptTextButtonPour = 151,
430 mso_sptTextCurveUp = 152,
431 mso_sptTextCurveDown = 153,
432 mso_sptTextCascadeUp = 154,
433 mso_sptTextCascadeDown = 155,
434 mso_sptTextWave1 = 156,
435 mso_sptTextWave2 = 157,
436 mso_sptTextWave3 = 158,
437 mso_sptTextWave4 = 159,
438 mso_sptTextInflate = 160,
439 mso_sptTextDeflate = 161,
440 mso_sptTextInflateBottom = 162,
441 mso_sptTextDeflateBottom = 163,
442 mso_sptTextInflateTop = 164,
443 mso_sptTextDeflateTop = 165,
444 mso_sptTextDeflateInflate = 166,
445 mso_sptTextDeflateInflateDeflate = 167,
446 mso_sptTextFadeRight = 168,
447 mso_sptTextFadeLeft = 169,
448 mso_sptTextFadeUp = 170,
449 mso_sptTextFadeDown = 171,
450 mso_sptTextSlantUp = 172,
451 mso_sptTextSlantDown = 173,
452 mso_sptTextCanUp = 174,
453 mso_sptTextCanDown = 175,
454 mso_sptFlowChartAlternateProcess = 176,
455 mso_sptFlowChartOffpageConnector = 177,
456 mso_sptCallout90 = 178,
457 mso_sptAccentCallout90 = 179,
458 mso_sptBorderCallout90 = 180,
459 mso_sptAccentBorderCallout90 = 181,
460 mso_sptLeftRightUpArrow = 182,
461 mso_sptSun = 183,
462 mso_sptMoon = 184,
463 mso_sptBracketPair = 185,
464 mso_sptBracePair = 186,
465 mso_sptSeal4 = 187,
466 mso_sptDoubleWave = 188,
467 mso_sptActionButtonBlank = 189,
468 mso_sptActionButtonHome = 190,
469 mso_sptActionButtonHelp = 191,
470 mso_sptActionButtonInformation = 192,
471 mso_sptActionButtonForwardNext = 193,
472 mso_sptActionButtonBackPrevious = 194,
473 mso_sptActionButtonEnd = 195,
474 mso_sptActionButtonBeginning = 196,
475 mso_sptActionButtonReturn = 197,
476 mso_sptActionButtonDocument = 198,
477 mso_sptActionButtonSound = 199,
478 mso_sptActionButtonMovie = 200,
479 mso_sptHostControl = 201,
480 mso_sptTextBox = 202,
481 //for pptx shape which doesn't exist in ppt
482 mso_sptTearDrop = 203,
483 mso_sptMax = 0x0FFF,
484 mso_sptNil = mso_sptMax
487 // different enums from the OfficeDraw documentation, Appendix D - beginning
489 // note: in opposite to the MS documentation, they all
490 // start with "mso_" instead of "mso"
492 enum MSO_ShapePath {
493 mso_shapeLines, // A line of straight segments
494 mso_shapeLinesClosed, // A closed polygonal object
495 mso_shapeCurves, // A line of Bezier curve segments
496 mso_shapeCurvesClosed, // A closed shape with curved edges
497 mso_shapeComplex // pSegmentInfo must be non-empty
500 enum MSO_WrapMode {
501 mso_wrapSquare,
502 mso_wrapByPoints,
503 mso_wrapNone,
504 mso_wrapTopBottom,
505 mso_wrapThrough
508 enum MSO_BWMode {
509 mso_bwColor, // only used for predefined shades
510 mso_bwAutomatic, // depends on object type
511 mso_bwGrayScale, // shades of gray only
512 mso_bwLightGrayScale, // shades of light gray only
513 mso_bwInverseGray, // dark gray mapped to light gray, etc.
514 mso_bwGrayOutline, // pure gray and white
515 mso_bwBlackTextLine, // black text and lines, all else grayscale
516 mso_bwHighContrast, // pure black and white mode (no grays)
517 mso_bwBlack, // solid black
518 mso_bwWhite, // solid white
519 mso_bwDontShow, // object not drawn
520 mso_bwNumModes // number of Black and white modes
523 enum MSO_Anchor {
524 mso_anchorTop,
525 mso_anchorMiddle,
526 mso_anchorBottom,
527 mso_anchorTopCentered,
528 mso_anchorMiddleCentered,
529 mso_anchorBottomCentered,
530 mso_anchorTopBaseline,
531 mso_anchorBottomBaseline,
532 mso_anchorTopCenteredBaseline,
533 mso_anchorBottomCenteredBaseline
536 enum MSO_CDir {
537 mso_cdir0, // Right
538 mso_cdir90, // Down
539 mso_cdir180, // Left
540 mso_cdir270 // Up
543 // connector style
544 enum MSO_ConnectorStyle {
545 mso_cxstyleStraight = 0,
546 mso_cxstyleBent,
547 mso_cxstyleCurved,
548 mso_cxstyleNone
551 // MSO_TXFL -- text flow
552 enum MSO_TextFlow {
553 mso_txflHorzN, // Horizontal non-@
554 mso_txflTtoBA, // Top to Bottom @-font
555 mso_txflBtoT, // Bottom to Top non-@
556 mso_txflTtoBN, // Top to Bottom non-@
557 mso_txflHorzA, // Horizontal @-font
558 mso_txflVertN // Vertical, non-@
561 // MSO_TXDIR - text direction (needed for Bi-Di support)
562 enum MSO_TextDir {
563 mso_txdirLTR, // left-to-right text direction
564 mso_txdirRTL, // right-to-left text direction
565 mso_txdirContext // context text direction
568 // MSO_SPCOT -- Callout Type
569 enum MSO_SPCalloutType {
570 mso_spcotRightAngle = 1,
571 mso_spcotOneSegment = 2,
572 mso_spcotTwoSegment = 3,
573 mso_spcotThreeSegment = 4
576 // MSO_SPCOA -- Callout Angle
577 enum MSO_SPCalloutAngle {
578 mso_spcoaAny,
579 mso_spcoa30,
580 mso_spcoa45,
581 mso_spcoa60,
582 mso_spcoa90,
583 mso_spcoa0
586 // MSO_SPCOD -- Callout Drop
587 enum MSO_SPCalloutDrop {
588 mso_spcodTop,
589 mso_spcodCenter,
590 mso_spcodBottom,
591 mso_spcodSpecified
594 // MSO_GEOTEXTALIGN - FontWork alignment
595 enum MSO_GeoTextAlign {
596 mso_alignTextStretch, /* Stretch each line of text to fit width. */
597 mso_alignTextCenter, /* Center text on width. */
598 mso_alignTextLeft, /* Left justify. */
599 mso_alignTextRight, /* Right justify. */
600 mso_alignTextLetterJust, /* Spread letters out to fit width. */
601 mso_alignTextWordJust, /* Spread words out to fit width. */
602 mso_alignTextInvalid /* Invalid */
605 // MSO_BLIPFLAGS - flags for pictures
606 enum MSO_BlipFlags {
607 mso_blipflagDefault = 0,
608 mso_blipflagComment = 0, // Blip name is a comment
609 mso_blipflagFile, // Blip name is a file name
610 mso_blipflagURL, // Blip name is a full URL
611 mso_blipflagType = 3, // Mask to extract type
612 /* Or the following flags with any of the above. */
613 mso_blipflagDontSave = 4, // A "dont" is the depression in the metal
614 // body work of an automobile caused when a
615 // cyclist violently trusts his or her nose
616 // at it, thus a DontSave is another name for
617 // a cycle lane.
618 mso_blipflagDoNotSave = 4, // For those who prefer English
619 mso_blipflagLinkToFile = 8
622 enum MSO_3DRenderMode {
623 mso_FullRender, // Generate a full rendering
624 mso_Wireframe, // Generate a wireframe
625 mso_BoundingCube // Generate a bounding cube
628 enum MSO_XFormType {
629 mso_xformAbsolute, // Apply transform in absolute space centered on shape
630 mso_xformShape, // Apply transform to shape geometry
631 mso_xformDrawing // Apply transform in drawing space
634 enum MSO_ShadowType {
635 mso_shadowOffset, // N pixel offset shadow
636 mso_shadowDouble, // Use second offset too
637 mso_shadowRich, // Rich perspective shadow (cast relative to shape)
638 mso_shadowShape, // Rich perspective shadow (cast in shape space)
639 mso_shadowDrawing, // Perspective shadow cast in drawing space
640 mso_shadowEmbossOrEngrave
643 // MSO_DZTYPE - the type of a (length) measurement
644 enum MSO_DZType {
645 mso_dztypeMin = 0,
646 mso_dztypeDefault = 0, // Default size, ignore the values
647 mso_dztypeA = 1, // Values are in EMUs
648 mso_dztypeV = 2, // Values are in pixels
649 mso_dztypeShape = 3, // Values are 16.16 fractions of shape size
650 mso_dztypeFixedAspect = 4, // Aspect ratio is fixed
651 mso_dztypeAFixed = 5, // EMUs, fixed aspect ratio
652 mso_dztypeVFixed = 6, // Pixels, fixed aspect ratio
653 mso_dztypeShapeFixed = 7, // Proportion of shape, fixed aspect ratio
654 mso_dztypeFixedAspectEnlarge
655 = 8, // Aspect ratio is fixed, favor larger size
656 mso_dztypeAFixedBig = 9, // EMUs, fixed aspect ratio
657 mso_dztypeVFixedBig = 10, // Pixels, fixed aspect ratio
658 mso_dztypeShapeFixedBig= 11, // Proportion of shape, fixed aspect ratio
659 mso_dztypeMax = 11
662 enum MSO_FillType {
663 mso_fillSolid, // Fill with a solid color
664 mso_fillPattern, // Fill with a pattern (bitmap)
665 mso_fillTexture, // A texture (pattern with its own color map)
666 mso_fillPicture, // Center a picture in the shape
667 mso_fillShade, // Shade from start to end points
668 mso_fillShadeCenter, // Shade from bounding rectangle to end point
669 mso_fillShadeShape, // Shade from shape outline to end point
670 mso_fillShadeScale, // Similar to mso_fillShade, but the fillAngle
671 // is additionally scaled by the aspect ratio of
672 // the shape. If shape is square, it is the
673 // same as mso_fillShade.
674 mso_fillShadeTitle, // special type - shade to title --- for PP
675 mso_fillBackground // Use the background fill color/pattern
678 // MSOLINESTYLE - compound line style
679 enum MSO_LineStyle {
680 mso_lineSimple, // Single line (of width lineWidth)
681 mso_lineDouble, // Double lines of equal width
682 mso_lineThickThin, // Double lines, one thick, one thin
683 mso_lineThinThick, // Double lines, reverse order
684 mso_lineTriple, // Three lines, thin, thick, thin
685 MSO_LineStyle_NONE = USHRT_MAX
688 // MSO_LINETYPE - how to "fill" the line contour
689 enum MSO_LineType {
690 mso_lineSolidType, // Fill with a solid color
691 mso_linePattern, // Fill with a pattern (bitmap)
692 mso_lineTexture, // A texture (pattern with its own color map)
693 mso_linePicture // Center a picture in the shape
696 // MSO_LINEDASHING - dashed line style
697 enum MSO_LineDashing {
698 mso_lineSolid, // Solid (continuous) pen
699 mso_lineDashSys, // PS_DASH system dash style
700 mso_lineDotSys, // PS_DOT system dash style
701 mso_lineDashDotSys, // PS_DASHDOT system dash style
702 mso_lineDashDotDotSys, // PS_DASHDOTDOT system dash style
703 mso_lineDotGEL, // square dot style
704 mso_lineDashGEL, // dash style
705 mso_lineLongDashGEL, // long dash style
706 mso_lineDashDotGEL, // dash short dash
707 mso_lineLongDashDotGEL, // long dash short dash
708 mso_lineLongDashDotDotGEL // long dash short dash short dash
711 // MSO_LINEEND - line end effect
712 enum MSO_LineEnd {
713 mso_lineNoEnd,
714 mso_lineArrowEnd,
715 mso_lineArrowStealthEnd,
716 mso_lineArrowDiamondEnd,
717 mso_lineArrowOvalEnd,
718 mso_lineArrowOpenEnd
721 // MSO_LINEENDWIDTH - size of arrowhead
722 enum MSO_LineEndWidth {
723 mso_lineNarrowArrow,
724 mso_lineMediumWidthArrow,
725 mso_lineWideArrow
728 // MSO_LINEENDLENGTH - size of arrowhead
729 enum MSO_LineEndLength {
730 mso_lineShortArrow,
731 mso_lineMediumLenArrow,
732 mso_lineLongArrow
735 // MSO_LINEJOIN - line join style.
736 enum MSO_LineJoin {
737 mso_lineJoinBevel, // Join edges by a straight line
738 mso_lineJoinMiter, // Extend edges until they join
739 mso_lineJoinRound // Draw an arc between the two edges
742 // MSO_LINECAP - line cap style (applies to ends of dash segments too).
743 enum MSO_LineCap {
744 mso_lineEndCapRound, // Rounded ends - the default
745 mso_lineEndCapSquare, // Square protrudes by half line width
746 mso_lineEndCapFlat // Line ends at end point
748 // Various enums from the OfficeDraw documentation Appendix D - End
750 // BStore-Container
753 enum MSO_BLIPUSAGE {
754 mso_blipUsageDefault, // All non-texture fill blips get this.
755 mso_blipUsageTexture,
756 mso_blipUsageMax = 255 // Since this is stored in a byte
759 enum MSO_BLIPTYPE { // GEL provided types...
760 mso_blipERROR = 0, // An error occurred during loading
761 mso_blipUNKNOWN, // An unknown blip type
762 mso_blipEMF, // Windows Enhanced Metafile
763 mso_blipWMF, // Windows Metafile
764 mso_blipPICT, // Macintosh PICT
765 mso_blipJPEG, // JFIF
766 mso_blipPNG, // PNG
767 mso_blipDIB, // Windows DIB
768 mso_blipFirstClient = 32, // First client defined blip type
769 mso_blipLastClient = 255 // Last client defined blip type
772 enum MSO_BI {
773 mso_biUNKNOWN = 0,
774 mso_biWMF = 0x216, // Metafile header then compressed WMF
775 mso_biEMF = 0x3D4, // Metafile header then compressed EMF
776 mso_biPICT = 0x542, // Metafile header then compressed PICT
777 mso_biPNG = 0x6E0, // One byte tag then PNG data
778 mso_biJFIF = 0x46A, // One byte tag then JFIF data
779 mso_biJPEG = mso_biJFIF,
780 mso_biDIB = 0x7A8, // One byte tag then DIB data
781 mso_biClient=0x800 // Clients should set this bit
782 }; // Blip signature as encoded in the MSO_FBH.inst
784 enum MSO_BLIPCOMPRESSION {
785 mso_compressionDeflate = 0,
786 mso_compressionNone = 254, // Used only if compression fails
787 mso_compressionTest = 255 // For testing only
790 enum MSO_BLIPFILTER {
791 mso_filterAdaptive = 0, // PNG type - not used/supported for metafile
792 mso_filterNone = 254,
793 mso_filterTest = 255 // For testing only
796 enum MSO_SYSCOLORINDEX {
797 mso_syscolorButtonFace, // COLOR_BTNFACE
798 mso_syscolorWindowText, // COLOR_WINDOWTEXT
799 mso_syscolorMenu, // COLOR_MENU
800 mso_syscolorHighlight, // COLOR_HIGHLIGHT
801 mso_syscolorHighlightText, // COLOR_HIGHLIGHTTEXT
802 mso_syscolorCaptionText, // COLOR_CAPTIONTEXT
803 mso_syscolorActiveCaption, // COLOR_ACTIVECAPTION
804 mso_syscolorButtonHighlight, // COLOR_BTNHIGHLIGHT
805 mso_syscolorButtonShadow, // COLOR_BTNSHADOW
806 mso_syscolorButtonText, // COLOR_BTNTEXT
807 mso_syscolorGrayText, // COLOR_GRAYTEXT
808 mso_syscolorInactiveCaption, // COLOR_INACTIVECAPTION
809 mso_syscolorInactiveCaptionText, // COLOR_INACTIVECAPTIONTEXT
810 mso_syscolorInfoBackground, // COLOR_INFOBK
811 mso_syscolorInfoText, // COLOR_INFOTEXT
812 mso_syscolorMenuText, // COLOR_MENUTEXT
813 mso_syscolorScrollbar, // COLOR_SCROLLBAR
814 mso_syscolorWindow, // COLOR_WINDOW
815 mso_syscolorWindowFrame, // COLOR_WINDOWFRAME
816 mso_syscolor3DLight, // COLOR_3DLIGHT
817 mso_syscolorMax, // Count of system colors
819 mso_colorFillColor = 0xF0, // Use the fillColor property
820 mso_colorLineOrFillColor, // Use the line color only if there is a line
821 mso_colorLineColor, // Use the lineColor property
822 mso_colorShadowColor, // Use the shadow color
823 mso_colorThis, // Use this color (only valid as described below)
824 mso_colorFillBackColor, // Use the fillBackColor property
825 mso_colorLineBackColor, // Use the lineBackColor property
826 mso_colorFillThenLine, // Use the fillColor unless no fill and line
827 mso_colorIndexMask = 0xFF, // Extract the color index
829 mso_colorProcessMask =0xFFFF00,// All the processing bits
830 mso_colorModificationMask =0x0F00, // Just the function
831 mso_colorModFlagMask =0xF000, // Just the additional flags
832 mso_colorDarken =0x0100, // Darken color by parameter/255
833 mso_colorLighten =0x0200, // Lighten color by parameter/255
834 mso_colorAdd =0x0300, // Add grey level RGB(param,param,param)
835 mso_colorSubtract =0x0400, // Subtract grey level RGB(p,p,p)
836 mso_colorReverseSubtract =0x0500, // Subtract from grey level RGB(p,p,p)
837 /* In the following "black" means maximum component value, white minimum.
838 The operation is per component, to guarantee white combine with
839 mso_colorGray */
840 mso_colorBlackWhite =0x0600, // Black if < uParam, else white (>=)
841 mso_colorInvert =0x2000, // Invert color (at the *end*)
842 mso_colorInvert128 =0x4000, // Invert by toggling the top bit
843 mso_colorGray =0x8000, // Make the color gray (before the above!)
844 mso_colorBParamMask =0xFF0000,// Parameter used as above
845 mso_colorBParamShift = 16 // To extract the parameter value
848 enum MSO_TextGeometryProperties {
849 use_gtextFBestFit = 0x00000100,
850 use_gtextFShrinkFit = 0x00000200,
851 use_gtextFStretch = 0x00000400,
852 gtextFBestFit = 0x01000000,
853 gtextFShrinkFit = 0x02000000,
854 gtextFStretch = 0x04000000
857 //ALT_TXT_MSINTEROP
858 #define MSPROP_DESCRIPTION_MAX_LEN 4096
860 #endif
862 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */