File indexing completed on 2024-12-08 12:55:54
0001 /* This file is part of the Calligra project 0002 Copyright (C) 2010, 2011 Matus Uzak <matus.uzak@ixonos.com> 0003 0004 This library is free software; you can redistribute it and/or 0005 modify it under the terms of the Library GNU General Public 0006 version 2 of the License, or (at your option) version 3 or, 0007 at the discretion of KDE e.V (which shall act as a proxy as in 0008 section 14 of the GPLv3), any later version.. 0009 0010 This library is distributed in the hope that it will be useful, 0011 but WITHOUT ANY WARRANTY; without even the implied warranty of 0012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 0013 Library General Public License for more details. 0014 0015 You should have received a copy of the GNU Library General Public License 0016 along with this library; see the file COPYING.LIB. If not, write to 0017 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 0018 Boston, MA 02110-1301, USA. 0019 */ 0020 0021 #ifndef MSODRAW_H 0022 #define MSODRAW_H 0023 0024 /** 0025 * The MSOSPT enumeration specifies the preset shapes and preset text shape 0026 * geometries that will be used for a shape. An enumeration of this type is 0027 * used so that a custom geometry does not need to be specified but can instead 0028 * be automatically constructed by the generating application. 0029 * [MS-ODRAW] — v20101219 0030 */ 0031 enum MSOSPT 0032 { 0033 msosptMin = 0x0, //libmso specific 0034 msosptNotPrimitive = 0x0, 0035 msosptRectangle = 0x1, 0036 msosptRoundRectangle = 0x2, 0037 msosptEllipse = 0x3, 0038 msosptDiamond = 0x4, 0039 msosptIsocelesTriangle = 0x5, 0040 msosptRightTriangle = 0x6, 0041 msosptParallelogram = 0x7, 0042 msosptTrapezoid = 0x8, 0043 msosptHexagon = 0x9, 0044 msosptOctagon = 0x0a, 0045 msosptPlus = 0x0b, 0046 msosptStar = 0x0c, 0047 msosptArrow = 0x0d, 0048 msosptThickArrow = 0x0e, 0049 msosptHomePlate = 0x0f, 0050 0051 msosptCube = 0x10, 0052 msosptBaloon = 0x11, 0053 msosptSeal = 0x12, 0054 msosptArc = 0x13, 0055 msosptLine = 0x14, 0056 msosptPlaque = 0x15, 0057 msosptCan = 0x16, 0058 msosptDonut = 0x17, 0059 msosptTextSimple = 0x18, 0060 msosptTextOctagon = 0x19, 0061 msosptTextHexagon = 0x1a, 0062 msosptTextCurve = 0x1b, 0063 msosptTextWave = 0x1c, 0064 msosptTextRing = 0x1d, 0065 msosptTextOnCurve = 0x1e, 0066 msosptTextOnRing = 0x1f, 0067 0068 msosptStraightConnector1 = 0x20, 0069 msosptBentConnector2 = 0x21, 0070 msosptBentConnector3 = 0x22, 0071 msosptBentConnector4 = 0x23, 0072 msosptBentConnector5 = 0x24, 0073 msosptCurvedConnector2 = 0x25, 0074 msosptCurvedConnector3 = 0x26, 0075 msosptCurvedConnector4 = 0x27, 0076 msosptCurvedConnector5 = 0x28, 0077 msosptCallout1 = 0x29, 0078 msosptCallout2 = 0x2a, 0079 msosptCallout3 = 0x2b, 0080 msosptAccentCallout1 = 0x2c, 0081 msosptAccentCallout2 = 0x2d, 0082 msosptAccentCallout3 = 0x2e, 0083 msosptBorderCallout1 = 0x2f, 0084 0085 msosptBorderCallout2 = 0x30, 0086 msosptBorderCallout3 = 0x31, 0087 msosptAccentBorderCallout1 = 0x32, 0088 msosptAccentBorderCallout2 = 0x33, 0089 msosptAccentBorderCallout3 = 0x34, 0090 msosptRibbon = 0x35, 0091 msosptRibbon2 = 0x36, 0092 msosptChevron = 0x37, 0093 msosptPentagon = 0x38, 0094 msosptNoSmoking = 0x39, 0095 msosptSeal8 = 0x3a, 0096 msosptSeal16 = 0x3b, 0097 msosptSeal32 = 0x3c, 0098 msosptWedgeRectCallout = 0x3d, 0099 msosptWedgeRRectCallout = 0x3e, 0100 msosptWedgeEllipseCallout = 0x3f, 0101 0102 msosptWave = 0x40, 0103 msosptFoldedCorner = 0x41, 0104 msosptLeftArrow = 0x42, 0105 msosptDownArrow = 0x43, 0106 msosptUpArrow = 0x44, 0107 msosptLeftRightArrow = 0x45, 0108 msosptUpDownArrow = 0x46, 0109 msosptIrregularSeal1 = 0x47, 0110 msosptIrregularSeal2 = 0x48, 0111 msosptLightningBolt = 0x49, 0112 msosptHeart = 0x4a, 0113 msosptPictureFrame = 0x4b, 0114 msosptQuadArrow = 0x4c, 0115 msosptLeftArrowCallout = 0x4d, 0116 msosptRightArrowCallout = 0x4e, 0117 msosptUpArrowCallout = 0x4f, 0118 0119 msosptDownArrowCallout = 0x50, 0120 msosptLeftRightArrowCallout = 0x51, 0121 msosptUpDownArrowCallout = 0x52, 0122 msosptQuadArrowCallout = 0x53, 0123 msosptBevel = 0x54, 0124 msosptLeftBracket = 0x55, 0125 msosptRightBracket = 0x56, 0126 msosptLeftBrace = 0x57, 0127 msosptRightBrace = 0x58, 0128 msosptLeftUpArrow = 0x59, 0129 msosptBentUpArrow = 0x5a, 0130 msosptBentArrow = 0x5b, 0131 msosptSeal24 = 0x5c, 0132 msosptStripedRightArrow = 0x5d, 0133 msosptNotchedRightArrow = 0x5e, 0134 msosptBlockArc = 0x5f, 0135 0136 msosptSmileyFace = 0x60, 0137 msosptVerticalScroll = 0x61, 0138 msosptHorizontalScroll = 0x62, 0139 msosptCircularArrow = 0x63, 0140 msosptNotchedCircularArrow = 0x64, 0141 msosptUturnArrow = 0x65, 0142 msosptCurvedRightArrow = 0x66, 0143 msosptCurvedLeftArrow = 0x67, 0144 msosptCurvedUpArrow = 0x68, 0145 msosptCurvedDownArrow = 0x69, 0146 msosptCloudCallout = 0x6a, 0147 msosptEllipseRibbon = 0x6b, 0148 msosptEllipseRibbon2 = 0x6c, 0149 msosptFlowChartProcess = 0x6d, 0150 msosptFlowChartDecision = 0x6e, 0151 msosptFlowChartInputOutput = 0x6f, 0152 0153 msosptFlowChartPredefinedProcess = 0x70, 0154 msosptFlowChartInternalStorage = 0x71, 0155 msosptFlowChartDocument = 0x72, 0156 msosptFlowChartMultidocument = 0x73, 0157 msosptFlowChartTerminator = 0x74, 0158 msosptFlowChartPreparation = 0x75, 0159 msosptFlowChartManualInput = 0x76, 0160 msosptFlowChartManualOperation = 0x77, 0161 msosptFlowChartConnector = 0x78, 0162 msosptFlowChartPunchedCard = 0x79, 0163 msosptFlowChartPunchedTape = 0x7a, 0164 msosptFlowChartSummingJunction = 0x7b, 0165 msosptFlowChartOr = 0x7c, 0166 msosptFlowChartCollate = 0x7d, 0167 msosptFlowChartSort = 0x7e, 0168 msosptFlowChartExtract = 0x7f, 0169 0170 msosptFlowChartMerge = 0x80, 0171 msosptFlowChartOfflineStorage = 0x81, 0172 msosptFlowChartOnlineStorage = 0x82, 0173 msosptFlowChartMagneticTape = 0x83, 0174 msosptFlowChartMagneticDisk = 0x84, 0175 msosptFlowChartMagneticDrum = 0x85, 0176 msosptFlowChartDisplay = 0x86, 0177 msosptFlowChartDelay = 0x87, 0178 msosptTextPlainText = 0x88, 0179 msosptTextStop = 0x89, 0180 msosptTextTriangle = 0x8a, 0181 msosptTextTriangleInverted = 0x8b, 0182 msosptTextChevron = 0x8c, 0183 msosptTextChevronInverted = 0x8d, 0184 msosptTextRingInside = 0x8e, 0185 msosptTextRingOutside = 0x8f, 0186 0187 msosptTextArchUpCurve = 0x90, 0188 msosptTextArchDownCurve = 0x91, 0189 msosptTextCircleCurve = 0x92, 0190 msosptTextButtonCurve = 0x93, 0191 msosptTextArchUpPour = 0x94, 0192 msosptTextArchDownPour = 0x95, 0193 msosptTextCirclePour = 0x96, 0194 msosptTextButtonPour = 0x97, 0195 msosptTextCurveUp = 0x98, 0196 msosptTextCurveDown = 0x99, 0197 msosptTextCascadeUp = 0x9a, 0198 msosptTextCascadeDown = 0x9b, 0199 msosptTextWave1 = 0x9c, 0200 msosptTextWave2 = 0x9d, 0201 msosptTextWave3 = 0x9e, 0202 msosptTextWave4 = 0x9f, 0203 0204 msosptTextInflate = 0xa0, 0205 msosptTextDeflate = 0xa1, 0206 msosptTextInflateBottom = 0xa2, 0207 msosptTextDeflateBottom = 0xa3, 0208 msosptTextInflateTop = 0xa4, 0209 msosptTextDeflateTop = 0xa5, 0210 msosptTextDeflateInflate = 0xa6, 0211 msosptTextDeflateInflateDeflate = 0xa7, 0212 msosptTextFadeRight = 0xa8, 0213 msosptTextFadeLeft = 0xa9, 0214 msosptTextFadeUp = 0xaa, 0215 msosptTextFadeDown = 0xab, 0216 msosptTextSlantUp = 0xac, 0217 msosptTextSlantDown = 0xad, 0218 msosptTextCanUp = 0xae, 0219 msosptTextCanDown = 0xaf, 0220 0221 msosptFlowChartAlternateProcess = 0xb0, 0222 msosptFlowChartOffpageConnector = 0xb1, 0223 msosptCallout90 = 0xb2, 0224 msosptAccentCallout90 = 0xb3, 0225 msosptBorderCallout90 = 0xb4, 0226 msosptAccentBorderCallout90 = 0xb5, 0227 msosptLeftRightUpArrow = 0xb6, 0228 msosptSun = 0xb7, 0229 msosptMoon = 0xb8, 0230 msosptBracketPair = 0xb9, 0231 msosptBracePair = 0xba, 0232 msosptSeal4 = 0xbb, 0233 msosptDoubleWave = 0xbc, 0234 msosptActionButtonBlank = 0xbd, 0235 msosptActionButtonHome = 0xbe, 0236 msosptActionButtonHelp = 0xbf, 0237 0238 msosptActionButtonInformation = 0xc0, 0239 msosptActionButtonForwardNext = 0xc1, 0240 msosptActionButtonBackPrevious = 0xc2, 0241 msosptActionButtonEnd = 0xc3, 0242 msosptActionButtonBeginning = 0xc4, 0243 msosptActionButtonReturn = 0xc5, 0244 msosptActionButtonDocument = 0xc6, 0245 msosptActionButtonSound = 0xc7, 0246 msosptActionButtonMovie = 0xc8, 0247 msosptHostControl = 0xc9, 0248 msosptTextBox = 0xca, 0249 msosptNil = 0x0FFF //libmso specific 0250 }; 0251 0252 /** 0253 * The MSOLINESTYLE enumeration specifies the type of line style that will be 0254 * used. [MS-ODRAW] — v20101219 0255 */ 0256 enum MSOLINESTYLE 0257 { 0258 msolineSimple, //0x00 A simple line. 0259 msolineDouble, //0x01 A double line. 0260 msolineThickThin, //0x02 A thick line and a thin line. 0261 msolineThinThick, //0x03 A thin line and a thick line. 0262 msolineTripl //0x04 A triple line. 0263 }; 0264 0265 /** 0266 * The MSOLINEEND enumeration specifies the line end decorations that 0267 * appear at the ends of lines. 0268 */ 0269 enum MSOLINEEND 0270 { 0271 msolineNoEnd, 0272 msolineArrowEnd, 0273 msolineArrowStealthEnd, 0274 msolineArrowDiamondEnd, 0275 msolineArrowOvalEnd, 0276 msolineArrowOpenEnd, 0277 msolineArrowChevronEnd, 0278 msolineArrowDoubleChevronEnd 0279 }; 0280 0281 /** 0282 * The MSOLINECAP enumeration specifies ways to cap the ends of lines 0283 * in the document. 0284 */ 0285 enum MSOLINECAP 0286 { 0287 msolineEndCapRound, 0288 msolineEndCapSquare, 0289 msolineEndCapFlat 0290 }; 0291 0292 /** 0293 * The MSOLINEJOIN enumeration specifies the types of join styles that 0294 * can be applied to lines in the document. 0295 */ 0296 enum MSOLINEJOIN 0297 { 0298 msolineJoinBevel, 0299 msolineJoinMiter, 0300 msolineJoinRound 0301 }; 0302 0303 /** 0304 * The MSOLINEDASHING enumeration, as shown in the following table, specifies 0305 * preset dashed-line values. Each style corresponds to a precise binary 0306 * representation of the repeating dash style. Each 1 corresponds to a line 0307 * segment, and each 0 corresponds to a space. [MS-ODRAW] — v20101219 0308 */ 0309 enum MSOLINEDASHING 0310 { 0311 msolineSolid, //0x00 1 0312 msolineDashSys, //0x01 1110 0313 msolineDotSys, //0x02 10 0314 msolineDashDotSys, //0x03 111010 0315 msolineDashDotDotSys, //0x04 11101010 0316 msolineDotGEL, //0x05 1000 0317 msolineDashGEL, //0x06 1111000 0318 msolineLongDashGEL, //0x07 11111111000 0319 msolineDashDotGEL, //0x08 11110001000 0320 msolineLongDashDotGEL, //0x09 111111110001000 0321 msolineLongDashDotDotGEL //0x0A 1111111100010001000 0322 }; 0323 0324 /** 0325 * The MSOFILLTYPE enumeration specifies the fill types. 0326 * [MS-ODRAW] — v20101219 0327 */ 0328 enum MSOFILLTYPE 0329 { 0330 msofillSolid = 0x0, 0331 msofillPattern = 0x1, 0332 msofillTexture = 0x2, 0333 msofillPicture = 0x3, 0334 msofillShade = 0x4, 0335 msofillShadeCenter = 0x5, 0336 msofillShadeShape = 0x6, 0337 msofillShadeScale = 0x7, 0338 msofillShadeTitle = 0x8, 0339 msofillBackground = 0x9 0340 }; 0341 0342 /** 0343 * The MSOPATHTYPE enumeration specifies how the individual pieces of a path 0344 * SHOULD be interpreted. [MS-ODRAW] — v20101219 0345 */ 0346 enum MSOPATHTYPE 0347 { 0348 msopathLineTo = 0, 0349 msopathCurveTo, 0350 msopathMoveTo, 0351 msopathClose, 0352 msopathEnd, 0353 msopathEscape, 0354 msopathClientEscape 0355 }; 0356 0357 /** 0358 * The MSOWRAPMODE enumeration specifies how text wraps 0359 * SHOULD be interpreted. [MS-ODRAW] — v20101219 0360 */ 0361 enum MSOWRAPMODE 0362 { 0363 msowrapSquare = 0, 0364 msowrapByPoints, 0365 msowrapNone 0366 }; 0367 0368 /** 0369 * The MSOANCHOR enumeration specifies the suggested placement rule for a body 0370 * of text. These enumeration values are relative to the orientation, text box 0371 * area, and margin sizes of the containing shape. The exact placement of the 0372 * text is application dependent and varies to accommodate other languages and 0373 * text properties. These enumeration values MAY be used. 0374 * [MS-ODRAW] — v20101219 0375 */ 0376 enum MSOANCHOR 0377 { 0378 msoanchorTop = 0x0, 0379 msoanchorMiddle = 0x1, 0380 msoanchorBottom = 0x2, 0381 msoanchorTopCentered = 0x3, 0382 msoanchorMiddleCentered = 0x4, 0383 msoanchorBottomCentered = 0x5, 0384 msoanchorTopBaseline = 0x6, 0385 msoanchorBottomBaseline = 0x7, 0386 msoanchorTopCenteredBaseline = 0x8, 0387 msoanchorBottomCenteredBaseline = 0x9 0388 }; 0389 0390 /** 0391 * The POSH enumeration specifies the type of horizontal positioning to use for 0392 * a shape. [MS-ODRAW] — v20101219 0393 */ 0394 enum POSH 0395 { 0396 msophAbs = 0x0, 0397 msophLeft = 0x1, 0398 msophCenter = 0x2, 0399 msophRight = 0x3, 0400 msophInside = 0x4, 0401 msophOutside = 0x5 0402 }; 0403 0404 /** 0405 * The POSRELH enumeration specifies a page element relative to which a shape 0406 * is horizontally positioned. [MS-ODRAW] — v20101219 0407 */ 0408 enum POSRELH 0409 { 0410 // NOTE: Based on our tests the enumeration should start from ZERO. 0411 msoprhMargin = 0x1, 0412 msoprhPage = 0x2, 0413 msoprhText = 0x3, 0414 msoprhChar = 0x4 0415 }; 0416 0417 /** 0418 * The POSV enumeration specifies the type of vertical positioning to use for a 0419 * shape. [MS-ODRAW] — v20101219 0420 */ 0421 enum POSV 0422 { 0423 msopvAbs = 0x0, 0424 msopvTop = 0x1, 0425 msopvCenter = 0x2, 0426 msopvBottom = 0x3, 0427 msopvInside = 0x4, 0428 msopvOutside = 0x5 0429 }; 0430 0431 /** 0432 * The POSRELV enumeration specifies a page element relative to which a shape 0433 * is vertically positioned. [MS-ODRAW] — v20101219 0434 */ 0435 0436 enum POSRELV 0437 { 0438 // NOTE: Based on our tests the enumeration should start from ZERO. 0439 msoprvMargin = 0x1, 0440 msoprvPage = 0x2, 0441 msoprvText = 0x3, 0442 msoprvLine = 0x4 0443 }; 0444 0445 #endif