qpen.h
上传用户:detong
上传日期:2022-06-22
资源大小:20675k
文件大小:4k
源码类别:

系统编程

开发平台:

Unix_Linux

  1. /****************************************************************************
  2. **
  3. ** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
  4. ** Contact: Qt Software Information (qt-info@nokia.com)
  5. **
  6. ** This file is part of the QtGui module of the Qt Toolkit.
  7. **
  8. ** Commercial Usage
  9. ** Licensees holding valid Qt Commercial licenses may use this file in
  10. ** accordance with the Qt Commercial License Agreement provided with the
  11. ** Software or, alternatively, in accordance with the terms contained in
  12. ** a written agreement between you and Nokia.
  13. **
  14. **
  15. ** GNU General Public License Usage
  16. ** Alternatively, this file may be used under the terms of the GNU
  17. ** General Public License versions 2.0 or 3.0 as published by the Free
  18. ** Software Foundation and appearing in the file LICENSE.GPL included in
  19. ** the packaging of this file.  Please review the following information
  20. ** to ensure GNU General Public Licensing requirements will be met:
  21. ** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
  22. ** http://www.gnu.org/copyleft/gpl.html.  In addition, as a special
  23. ** exception, Nokia gives you certain additional rights. These rights
  24. ** are described in the Nokia Qt GPL Exception version 1.3, included in
  25. ** the file GPL_EXCEPTION.txt in this package.
  26. **
  27. ** Qt for Windows(R) Licensees
  28. ** As a special exception, Nokia, as the sole copyright holder for Qt
  29. ** Designer, grants users of the Qt/Eclipse Integration plug-in the
  30. ** right for the Qt/Eclipse Integration to link to functionality
  31. ** provided by Qt Designer and its related libraries.
  32. **
  33. ** If you are unsure which license is appropriate for your use, please
  34. ** contact the sales department at qt-sales@nokia.com.
  35. **
  36. ****************************************************************************/
  37. #ifndef QPEN_H
  38. #define QPEN_H
  39. #include <QtGui/qcolor.h>
  40. QT_BEGIN_HEADER
  41. QT_BEGIN_NAMESPACE
  42. QT_MODULE(Gui)
  43. class QVariant;
  44. class QPenPrivate;
  45. class QBrush;
  46. class QPen;
  47. #ifndef QT_NO_DATASTREAM
  48. Q_GUI_EXPORT QDataStream &operator<<(QDataStream &, const QPen &);
  49. Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QPen &);
  50. #endif
  51. class Q_GUI_EXPORT QPen
  52. {
  53. public:
  54.     QPen();
  55.     QPen(Qt::PenStyle);
  56.     QPen(const QColor &color);
  57.     QPen(const QBrush &brush, qreal width, Qt::PenStyle s = Qt::SolidLine,
  58.          Qt::PenCapStyle c = Qt::SquareCap, Qt::PenJoinStyle j = Qt::BevelJoin);
  59.     QPen(const QPen &pen);
  60.     ~QPen();
  61.     QPen &operator=(const QPen &pen);
  62.     Qt::PenStyle style() const;
  63.     void setStyle(Qt::PenStyle);
  64.     QVector<qreal> dashPattern() const;
  65.     void setDashPattern(const QVector<qreal> &pattern);
  66.     qreal dashOffset() const;
  67.     void setDashOffset(qreal doffset);
  68.     qreal miterLimit() const;
  69.     void setMiterLimit(qreal limit);
  70.     qreal widthF() const;
  71.     void setWidthF(qreal width);
  72.     int width() const;
  73.     void setWidth(int width);
  74.     QColor color() const;
  75.     void setColor(const QColor &color);
  76.     QBrush brush() const;
  77.     void setBrush(const QBrush &brush);
  78.     bool isSolid() const;
  79.     Qt::PenCapStyle capStyle() const;
  80.     void setCapStyle(Qt::PenCapStyle pcs);
  81.     Qt::PenJoinStyle joinStyle() const;
  82.     void setJoinStyle(Qt::PenJoinStyle pcs);
  83.     bool isCosmetic() const;
  84.     void setCosmetic(bool cosmetic);
  85.     bool operator==(const QPen &p) const;
  86.     inline bool operator!=(const QPen &p) const { return !(operator==(p)); }
  87.     operator QVariant() const;
  88.     bool isDetached();
  89. private:
  90.     friend class QPainter;
  91.     friend Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QPen &);
  92.     friend Q_GUI_EXPORT QDataStream &operator<<(QDataStream &, const QPen &);
  93.     void detach();
  94.     class QPenPrivate *d;
  95. public:
  96.     typedef QPenPrivate * DataPtr;
  97.     inline DataPtr &data_ptr() { return d; }
  98. };
  99. Q_DECLARE_TYPEINFO(QPen, Q_MOVABLE_TYPE);
  100. Q_DECLARE_SHARED(QPen)
  101. #ifndef QT_NO_DEBUG_STREAM
  102. Q_GUI_EXPORT QDebug operator<<(QDebug, const QPen &);
  103. #endif
  104. QT_END_NAMESPACE
  105. QT_END_HEADER
  106. #endif // QPEN_H