Warning, file /office/calligra/filters/karbon/xfig/XFigDocument.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* This file is part of the Calligra project, made within the KDE community. 0002 0003 SPDX-FileCopyrightText: 2012 Friedrich W. H. Kossebau <kossebau@kde.org> 0004 0005 SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 #ifndef XFIGDOCUMENT_H 0009 #define XFIGDOCUMENT_H 0010 0011 // Qt 0012 #include <QHash> 0013 #include <QVector> 0014 #include <QColor> 0015 #include <QString> 0016 #include <QFont> 0017 0018 typedef qint32 XFigCoord; 0019 0020 0021 enum XFigCapType { 0022 XFigCapButt, 0023 XFigCapRound, 0024 XFigCapProjecting 0025 }; 0026 0027 enum XFigJoinType { 0028 XFigJoinMiter, 0029 XFigJoinRound, 0030 XFigJoinBevel 0031 }; 0032 0033 struct XFigPoint 0034 { 0035 public: 0036 XFigPoint() : m_X(0), m_Y(0) {} 0037 XFigPoint( XFigCoord x, XFigCoord y ) : m_X(x), m_Y(y) {} 0038 0039 XFigCoord x() const { return m_X; } 0040 XFigCoord y() const { return m_Y; } 0041 private: 0042 XFigCoord m_X; 0043 XFigCoord m_Y; 0044 }; 0045 0046 enum XFigArrowHeadType 0047 { 0048 XFigArrowHeadStick = 0, ///> --> 0049 XFigArrowHeadHollowTriangle, ///> --|> 0050 XFigArrowHeadFilledTriangle, ///> --|> 0051 XFigArrowHeadHollowConcaveSpear, ///> --}> 0052 XFigArrowHeadFilledConcaveSpear, ///> --}> 0053 XFigArrowHeadHollowConvexSpear, ///> --{> 0054 XFigArrowHeadFilledConvexSpear, ///> --{> 0055 XFigArrowHeadHollowDiamond, ///> --<> 0056 XFigArrowHeadFilledDiamond, ///> --<> 0057 XFigArrowHeadHollowCircle, ///> --() 0058 XFigArrowHeadFilledCircle, ///> --() 0059 XFigArrowHeadHollowHalfCircle, ///> --(| 0060 XFigArrowHeadFilledHalfCircle, ///> --(| 0061 XFigArrowHeadHollowSquare, ///> --[] 0062 XFigArrowHeadFilledSquare, ///> --[] 0063 XFigArrowHeadHollowReverseTriangle, ///> --<| 0064 XFigArrowHeadFilledReverseTriangle, ///> --<| 0065 XFigArrowHeadTopHalfFilledConcaveSpear, 0066 XFigArrowHeadBottomHalfFilledConcaveSpear, 0067 XFigArrowHeadHollowTopHalfTriangle, 0068 XFigArrowHeadFilledTopHalfTriangle, 0069 XFigArrowHeadHollowTopHalfConcaveSpear, 0070 XFigArrowHeadFilledTopHalfConcaveSpear, 0071 XFigArrowHeadHollowTopHalfConvexSpear, 0072 XFigArrowHeadFilledTopHalfConvexSpear, 0073 XFigArrowHeadWye, ///> --< 0074 XFigArrowHeadBar, ///> --| 0075 XFigArrowHeadTwoProngFork, ///> --[ 0076 XFigArrowHeadReverseTwoProngFork, ///> --] 0077 XFigArrowHeadTypeCount 0078 }; 0079 0080 class XFigArrowHead 0081 { 0082 public: 0083 XFigArrowHead() 0084 : m_Type(XFigArrowHeadStick), m_Thickness(0.0), m_Width(0.0), m_Length(0.0) 0085 {} 0086 0087 void setType(XFigArrowHeadType type) { m_Type = type; } 0088 void setThickness(double thickness) { m_Thickness = thickness; } 0089 void setSize(double width, double length) { m_Width = width; m_Length = length; } 0090 0091 XFigArrowHeadType type() const { return m_Type; } 0092 double thickness() const { return m_Thickness; } 0093 double width() const { return m_Width; } 0094 double length() const { return m_Length; } 0095 private: 0096 XFigArrowHeadType m_Type; 0097 double m_Thickness; 0098 double m_Width; 0099 double m_Length; 0100 }; 0101 0102 class XFigAbstractObject 0103 { 0104 public: 0105 enum TypeId 0106 { 0107 EllipseId, 0108 PolylineId, 0109 PolygonId, 0110 BoxId, 0111 PictureBoxId, 0112 SplineId, 0113 ArcId, 0114 TextId, 0115 CompoundId 0116 }; 0117 0118 protected: 0119 explicit XFigAbstractObject(TypeId typeId) : m_TypeId( typeId ) {} 0120 private: 0121 XFigAbstractObject( const XFigAbstractObject& ); 0122 XFigAbstractObject& operator=( const XFigAbstractObject& ); 0123 public: 0124 virtual ~XFigAbstractObject() {} 0125 0126 void setComment(const QString& comment) { m_Comment = comment; } 0127 0128 TypeId typeId() const { return m_TypeId; } 0129 const QString& comment() const { return m_Comment; } 0130 private: 0131 TypeId m_TypeId; 0132 QString m_Comment; 0133 }; 0134 0135 enum XFigFillType { 0136 XFigFillNone, 0137 XFigFillSolid, 0138 XFigFillPattern 0139 }; 0140 0141 0142 enum XFigFillPatternType 0143 { 0144 XFigFillLeftDiagonal30Degree, 0145 XFigFillRightDiagonal30Degree, 0146 XFigFillCrossHatch30Degree, 0147 XFigFillLeftDiagonal45Degree, 0148 XFigFillRightDiagonal45Degree, 0149 XFigFillCrossHatch45Degree, 0150 XFigFillHorizontalBricks, 0151 XFigFillVerticalBricks, 0152 XFigFillHorizontalLines, 0153 XFigFillVerticalLines, 0154 XFigFillCrossHatch, 0155 XFigFillHorizontalShinglesSkewedRight, 0156 XFigFillHorizontalShinglesSkewedLeft, 0157 XFigFillVerticalShinglesSkewedDown, 0158 XFigFillVerticalShinglesSkewedUp, 0159 XFigFillFishScales, 0160 XFigFillSmallFishScales, 0161 XFigFillCircles, 0162 XFigFillHexagons, 0163 XFigFillOctagons, 0164 XFigFillHorizontalTireTreads, 0165 XFigFillVerticalTireTreads 0166 }; 0167 0168 class XFigFillable 0169 { 0170 protected: 0171 XFigFillable() : mFillType(XFigFillNone) {} 0172 public: 0173 void setFillColorId(qint32 colorId) { mFillColorId = colorId; } 0174 void setFillPatternType(XFigFillPatternType patternType) 0175 { mFillType = XFigFillPattern; mPatternType = patternType; } 0176 void setFillTinting(qint32 tinting) 0177 { mFillType = XFigFillSolid; mTinting = tinting; } 0178 void setFillNone() 0179 { mFillType = XFigFillNone; } 0180 0181 qint32 fillColorId() const { return mFillColorId; } 0182 XFigFillType fillType() const { return mFillType; } 0183 XFigFillPatternType fillPatternType() const { return mPatternType; } 0184 qint32 fillTinting() const { return mTinting; } 0185 private: 0186 qint32 mFillColorId; 0187 XFigFillType mFillType; 0188 union { 0189 XFigFillPatternType mPatternType; 0190 qint32 mTinting; 0191 }; 0192 }; 0193 0194 class XFigAbstractGraphObject : public XFigAbstractObject 0195 { 0196 protected: 0197 explicit XFigAbstractGraphObject(TypeId typeId) 0198 : XFigAbstractObject( typeId ) {} 0199 public: 0200 void setDepth( qint32 depth ) { m_Depth = depth; } 0201 0202 qint32 depth() const { return m_Depth; } 0203 private: 0204 qint32 m_Depth; 0205 }; 0206 0207 enum XFigLineType 0208 { 0209 XFigLineDefault = -1, 0210 XFigLineSolid = 0, 0211 XFigLineDashed = 1, 0212 XFigLineDotted = 2, 0213 XFigLineDashDotted = 3, 0214 XFigLineDashDoubleDotted = 4, 0215 XFigLineDashTrippleDotted = 5 0216 }; 0217 0218 class XFigLineable 0219 { 0220 protected: 0221 XFigLineable() {} 0222 public: 0223 void setLine( XFigLineType type, qint32 thickness, float styleValue, qint32 colorId ) 0224 { m_Type = type; m_Thickness = thickness; m_StyleValue = styleValue; m_ColorId = colorId; } 0225 0226 XFigLineType lineType() const { return m_Type; } 0227 qint32 lineThickness() const { return m_Thickness; } 0228 float lineStyleValue() const { return m_StyleValue; } 0229 qint32 lineColorId() const { return m_ColorId; } 0230 private: 0231 XFigLineType m_Type; 0232 qint32 m_Thickness; 0233 float m_StyleValue; 0234 qint32 m_ColorId; 0235 }; 0236 0237 class XFigLineEndable 0238 { 0239 protected: 0240 XFigLineEndable() : m_ForwardArrow(0), m_BackwardArrow(0), m_CapType(XFigCapButt) {} 0241 public: 0242 ~XFigLineEndable() { delete m_ForwardArrow; delete m_BackwardArrow; } 0243 0244 void setForwardArrow( XFigArrowHead* forwardArrow ) { delete m_ForwardArrow; m_ForwardArrow = forwardArrow; } 0245 void setBackwardArrow( XFigArrowHead* backwardArrow ) { delete m_BackwardArrow; m_BackwardArrow = backwardArrow; } 0246 void setCapType(XFigCapType capType) { m_CapType = capType; } 0247 0248 const XFigArrowHead* forwardArrow() const { return m_ForwardArrow; } 0249 const XFigArrowHead* backwardArrow() const { return m_BackwardArrow; } 0250 XFigCapType capType() const { return m_CapType; } 0251 private: 0252 XFigArrowHead* m_ForwardArrow; 0253 XFigArrowHead* m_BackwardArrow; 0254 XFigCapType m_CapType; 0255 }; 0256 0257 class XFigEllipseObject : public XFigAbstractGraphObject, public XFigFillable, public XFigLineable 0258 { 0259 public: 0260 enum Subtype { EllipseByRadii, EllipseByDiameter, CircleByRadius, CircleByDiameter }; 0261 0262 XFigEllipseObject() : XFigAbstractGraphObject(EllipseId), m_Subtype(EllipseByRadii) {} 0263 0264 void setSubtype( Subtype subtype ) { m_Subtype = subtype; } 0265 void setCenterPoint( XFigPoint centerPoint ) { m_CenterPoint = centerPoint; } 0266 void setStartEnd( XFigPoint startPoint, XFigPoint endPoint ) { m_StartPoint = startPoint; m_EndPoint = endPoint; } 0267 void setRadii( qint32 xRadius, qint32 yRadius ) { m_XRadius = xRadius; m_YRadius = yRadius; } 0268 void setXAxisAngle( double xAxisAngle ) { m_XAxisAngle = xAxisAngle; } 0269 0270 Subtype subtype() const { return m_Subtype; } 0271 XFigPoint centerPoint() const { return m_CenterPoint; } 0272 XFigPoint startPoint() const { return m_StartPoint; } 0273 XFigPoint endPoint() const { return m_EndPoint; } 0274 qint32 xRadius() const { return m_XRadius; } 0275 qint32 yRadius() const { return m_YRadius; } 0276 double xAxisAngle() const { return m_XAxisAngle; } 0277 private: 0278 Subtype m_Subtype; 0279 XFigPoint m_CenterPoint; 0280 XFigPoint m_StartPoint; 0281 XFigPoint m_EndPoint; 0282 qint32 m_XRadius; 0283 qint32 m_YRadius; 0284 double m_XAxisAngle; 0285 }; 0286 0287 class XFigAbstractPolylineObject : public XFigAbstractGraphObject, public XFigFillable, public XFigLineable 0288 { 0289 protected: 0290 explicit XFigAbstractPolylineObject(TypeId typeId) 0291 : XFigAbstractGraphObject( typeId ), m_JoinType(XFigJoinMiter) 0292 {} 0293 public: 0294 virtual void setPoints(const QVector<XFigPoint>& points) = 0; 0295 0296 void setJoinType(XFigJoinType joinType) { m_JoinType = joinType; } 0297 0298 XFigJoinType joinType() const { return m_JoinType; } 0299 private: 0300 XFigJoinType m_JoinType; 0301 }; 0302 0303 class XFigPolylineObject : public XFigAbstractPolylineObject, public XFigLineEndable 0304 { 0305 public: 0306 XFigPolylineObject() 0307 : XFigAbstractPolylineObject(PolylineId) 0308 {} 0309 0310 void setPoints(const QVector<XFigPoint>& points) override { m_Points = points; } 0311 0312 const QVector<XFigPoint>& points() const { return m_Points; } 0313 private: 0314 QVector<XFigPoint> m_Points; 0315 }; 0316 0317 class XFigPolygonObject : public XFigAbstractPolylineObject 0318 { 0319 public: 0320 XFigPolygonObject() : XFigAbstractPolylineObject(PolygonId) {} 0321 0322 void setPoints(const QVector<XFigPoint>& points) override { m_Points = points; } 0323 0324 const QVector<XFigPoint>& points() const { return m_Points; } 0325 private: 0326 QVector<XFigPoint> m_Points; 0327 }; 0328 0329 class XFigBoxObject : public XFigAbstractPolylineObject 0330 { 0331 protected: 0332 explicit XFigBoxObject(TypeId typeId) 0333 : XFigAbstractPolylineObject( typeId ), m_Width(0), m_Height(0), m_Radius(0) {} 0334 0335 public: 0336 XFigBoxObject() : XFigAbstractPolylineObject(BoxId), m_Width(0), m_Height(0), m_Radius(0) {} 0337 0338 void setPoints(const QVector<XFigPoint>& points) override; 0339 0340 void setRadius( qint32 radius ) { m_Radius = radius; } 0341 0342 XFigPoint upperLeft() const { return m_UpperLeftCorner; } 0343 qint32 width() const { return m_Width; } 0344 qint32 height() const { return m_Height; } 0345 qint32 radius() const { return m_Radius; } 0346 private: 0347 XFigPoint m_UpperLeftCorner; 0348 qint32 m_Width; 0349 qint32 m_Height; 0350 qint32 m_Radius; 0351 }; 0352 0353 class XFigPictureBoxObject : public XFigBoxObject 0354 { 0355 public: 0356 XFigPictureBoxObject() : XFigBoxObject(PictureBoxId) {} 0357 0358 void setIsFlipped( bool isFlipped ) { m_IsFlipped = isFlipped; } 0359 void setFileName( const QString& fileName ) { m_FileName = fileName; } 0360 0361 bool isFlipped() const { return m_IsFlipped; } 0362 const QString& fileName() const { return m_FileName; } 0363 private: 0364 bool m_IsFlipped; 0365 QString m_FileName; 0366 }; 0367 0368 class XFigSplineObject : public XFigAbstractGraphObject, public XFigFillable, public XFigLineable 0369 { 0370 public: 0371 enum Subtype { OpenApproximated, ClosedApproximated, OpenInterpolated, ClosedInterpolated, OpenX, ClosedX }; 0372 0373 XFigSplineObject() : XFigAbstractGraphObject(SplineId), m_Subtype(OpenApproximated) {} 0374 0375 void setSubtype( Subtype subtype ) { m_Subtype = subtype; } 0376 // void addPathPoint( const XFigPathPoint& pathPoint ) { mPathPoints.append(pathPoint); } 0377 0378 Subtype subtype() const { return m_Subtype; } 0379 // const QVector<XFigPathPoint>& pathPoints() const { return mPathPoints; } 0380 private: 0381 Subtype m_Subtype; 0382 // QVector<XFigPathPoint> mPathPoints; 0383 }; 0384 0385 class XFigArcObject : public XFigAbstractGraphObject, public XFigFillable, public XFigLineable, public XFigLineEndable 0386 { 0387 public: 0388 enum Subtype { OpenEnded, PieWedgeClosed }; 0389 enum Direction { Clockwise, CounterClockwise }; 0390 0391 XFigArcObject() : XFigAbstractGraphObject(ArcId), m_Subtype(OpenEnded), m_Direction(Clockwise) {} 0392 0393 void setSubtype( Subtype subtype ) { m_Subtype = subtype; } 0394 void setDirection( Direction direction ) { m_Direction = direction; } 0395 void setCenterPoint( XFigPoint centerPoint ) { m_CenterPoint = centerPoint; } 0396 void setPoints( XFigPoint point1, XFigPoint point2, XFigPoint point3 ) 0397 { m_Point1 = point1; m_Point2 = point2; m_Point3 = point3; } 0398 0399 Subtype subtype() const { return m_Subtype; } 0400 Direction direction() const { return m_Direction; } 0401 XFigPoint centerPoint() const { return m_CenterPoint; } 0402 XFigPoint point1() const { return m_Point1; } 0403 XFigPoint point2() const { return m_Point2; } 0404 XFigPoint point3() const { return m_Point3; } 0405 private: 0406 Subtype m_Subtype; 0407 Direction m_Direction; 0408 XFigPoint m_CenterPoint; 0409 XFigPoint m_Point1; 0410 XFigPoint m_Point2; 0411 XFigPoint m_Point3; 0412 }; 0413 0414 0415 enum XFigTextAlignment { 0416 XFigTextLeftAligned, 0417 XFigTextCenterAligned, 0418 XFigTextRightAligned 0419 }; 0420 0421 struct XFigFontData 0422 { 0423 QString mFamily; 0424 QFont::Weight mWeight; 0425 QFont::Style mStyle; 0426 float mSize; ///> in points 0427 }; 0428 0429 class XFigTextObject : public XFigAbstractGraphObject, public XFigFillable 0430 { 0431 public: 0432 XFigTextObject() 0433 : XFigAbstractGraphObject(TextId), m_TextAlignment(XFigTextLeftAligned), m_Length(0), m_Height(0) {} 0434 0435 void setText(const QString& text) { m_Text = text; } 0436 void setTextAlignment(XFigTextAlignment textAlignment) { m_TextAlignment = textAlignment; } 0437 void setBaselineStartPoint(XFigPoint baselineStartPoint) { m_BaselineStartPoint = baselineStartPoint; } 0438 void setSize(double length, double height) { m_Length = length; m_Height = height; } 0439 void setXAxisAngle(double xAxisAngle) { m_XAxisAngle = xAxisAngle; } 0440 void setColorId(qint32 colorId) { m_ColorId = colorId; } 0441 void setFontData(const XFigFontData& fontData) { m_FontData = fontData; } 0442 void setIsHidden(bool isHidden) { m_IsHidden = isHidden; } 0443 0444 const QString& text() const { return m_Text; } 0445 XFigTextAlignment textAlignment() const { return m_TextAlignment; } 0446 XFigPoint baselineStartPoint() const { return m_BaselineStartPoint; } 0447 double height() const { return m_Height; } 0448 double length() const { return m_Length; } 0449 double xAxisAngle() const { return m_XAxisAngle; } 0450 qint32 colorId() const { return m_ColorId; } 0451 const XFigFontData& fontData() const { return m_FontData; } 0452 bool isHidden() const { return m_IsHidden; } 0453 private: 0454 QString m_Text; 0455 XFigTextAlignment m_TextAlignment; 0456 XFigPoint m_BaselineStartPoint; 0457 double m_Length; 0458 double m_Height; 0459 double m_XAxisAngle; 0460 qint32 m_ColorId; 0461 XFigFontData m_FontData; 0462 bool m_IsHidden :1; 0463 }; 0464 0465 0466 class XFigBoundingBox 0467 { 0468 public: 0469 XFigBoundingBox() {} 0470 XFigBoundingBox( XFigPoint upperLeft, XFigPoint lowerRight) 0471 : m_UpperLeft(upperLeft), m_LowerRight(lowerRight) 0472 {} 0473 0474 void setUpperLeft( XFigPoint upperLeft ) { m_UpperLeft = upperLeft; } 0475 void setLowerRight( XFigPoint lowerRight ) { m_LowerRight = lowerRight; } 0476 0477 XFigPoint upperLeft() const { return m_UpperLeft; } 0478 XFigPoint lowerRight() const { return m_LowerRight; } 0479 private: 0480 XFigPoint m_UpperLeft; 0481 XFigPoint m_LowerRight; 0482 }; 0483 0484 class XFigCompoundObject : public XFigAbstractObject 0485 { 0486 public: 0487 XFigCompoundObject() : XFigAbstractObject(CompoundId) {} 0488 ~XFigCompoundObject() override { qDeleteAll( m_Objects );} 0489 0490 void addObject( XFigAbstractObject* object ) { m_Objects.append(object); } 0491 void setBoundingBox( XFigBoundingBox boundingBox ) { m_BoundingBox = boundingBox; } 0492 0493 const QVector<XFigAbstractObject*>& objects() const { return m_Objects; } 0494 XFigBoundingBox boundingBox() const { return m_BoundingBox; } 0495 private: 0496 QVector<XFigAbstractObject*> m_Objects; 0497 XFigBoundingBox m_BoundingBox; 0498 }; 0499 0500 class XFigPage 0501 { 0502 public: 0503 XFigPage() {} 0504 ~XFigPage() { qDeleteAll( m_Objects ); } 0505 0506 void addObject( XFigAbstractObject* object ) { m_Objects.append(object); } 0507 0508 const QVector<XFigAbstractObject*>& objects() const { return m_Objects; } 0509 private: 0510 QVector<XFigAbstractObject*> m_Objects; 0511 }; 0512 0513 enum XFigUnitType 0514 { 0515 XFigUnitTypeUnknown, 0516 XFigUnitMetric, 0517 XFigUnitInches 0518 }; 0519 0520 enum XFigCoordSystemOriginType 0521 { 0522 XFigCoordSystemOriginTypeUnknown, 0523 XFigCoordSystemOriginUpperLeft, 0524 XFigCoordSystemOriginLowerLeft 0525 }; 0526 0527 enum XFigPageOrientation 0528 { 0529 XFigPageOrientationUnknown, 0530 XFigPagePortrait, 0531 XFigPageLandscape 0532 }; 0533 0534 enum XFigPageSizeType 0535 { 0536 XFigPageSizeUnknown, 0537 XFigPageSizeLetter, 0538 XFigPageSizeLegal, 0539 XFigPageSizeTabloid, 0540 0541 XFigPageSizeA, 0542 XFigPageSizeB, 0543 XFigPageSizeC, 0544 XFigPageSizeD, 0545 XFigPageSizeE, 0546 0547 XFigPageSizeA9, 0548 XFigPageSizeA8, 0549 XFigPageSizeA7, 0550 XFigPageSizeA6, 0551 XFigPageSizeA5, 0552 XFigPageSizeA4, 0553 XFigPageSizeA3, 0554 XFigPageSizeA2, 0555 XFigPageSizeA1, 0556 XFigPageSizeA0, 0557 0558 XFigPageSizeB10, 0559 XFigPageSizeB9, 0560 XFigPageSizeB8, 0561 XFigPageSizeB7, 0562 XFigPageSizeB6, 0563 XFigPageSizeB5, 0564 XFigPageSizeB4, 0565 XFigPageSizeB3, 0566 XFigPageSizeB2, 0567 XFigPageSizeB1, 0568 XFigPageSizeB0 0569 }; 0570 0571 class XFigDocument 0572 { 0573 public: 0574 XFigDocument(); 0575 ~XFigDocument() { qDeleteAll( m_Pages); } 0576 0577 void setPageOrientation( XFigPageOrientation pageOrientation ) { m_PageOrientation = pageOrientation; } 0578 void setCoordSystemOriginType( XFigCoordSystemOriginType coordSystemOriginType ) 0579 { m_CoordSystemOriginType = coordSystemOriginType; } 0580 void setUnitType( XFigUnitType unitType ) { m_UnitType = unitType; } 0581 void setPageSizeType( XFigPageSizeType pageSizeType ) { m_PageSizeType = pageSizeType; } 0582 void setResolution( qint32 resolution ) { m_Resolution = resolution; } 0583 void setComment(const QString& comment) { m_Comment = comment; } 0584 void addPage( XFigPage* page ) { m_Pages.append(page); } 0585 void setUserColor( int id, const QColor& color ) 0586 { if ((32<=id) && (id<=543)) m_ColorTable.insert(id, color); } 0587 0588 XFigPageOrientation pageOrientation() const { return m_PageOrientation; } 0589 XFigCoordSystemOriginType coordSystemOriginType() const { return m_CoordSystemOriginType; } 0590 XFigUnitType unitType() const { return m_UnitType; } 0591 XFigPageSizeType pageSizeType() const { return m_PageSizeType; } 0592 qint32 resolution() const { return m_Resolution; } 0593 const QString& comment() const { return m_Comment; } 0594 const QVector<XFigPage*>& pages() const { return m_Pages; } 0595 const QColor* color( int id ) const; 0596 private: 0597 XFigPageOrientation m_PageOrientation; 0598 XFigCoordSystemOriginType m_CoordSystemOriginType; 0599 XFigUnitType m_UnitType; 0600 XFigPageSizeType m_PageSizeType; 0601 qint32 m_Resolution; 0602 QString m_Comment; 0603 0604 QHash<int, QColor> m_ColorTable; 0605 0606 QVector<XFigPage*> m_Pages; 0607 }; 0608 0609 #endif