/****************************************************************************** * QSkinny - Copyright (C) 2016 Uwe Rathmann * This file may be used under the terms of the QSkinny License, Version 1.0 *****************************************************************************/ #ifndef QSK_SCALE_TICKMARKS_H #define QSK_SCALE_TICKMARKS_H #include #include class QSK_EXPORT QskScaleTickmarks { Q_GADGET Q_PROPERTY( QVector majorTicks READ majorTicks WRITE setMajorTicks ) Q_PROPERTY( QVector mediumTicks READ mediumTicks WRITE setMediumTicks ) Q_PROPERTY( QVector minorTicks READ minorTicks WRITE setMinorTicks ) public: enum TickType { MinorTick, MediumTick, MajorTick, }; Q_ENUM( TickType ) QskScaleTickmarks(); ~QskScaleTickmarks(); bool operator==( const QskScaleTickmarks& ) const noexcept; bool operator!=( const QskScaleTickmarks& ) const noexcept; int tickCount() const noexcept; int tickCount( TickType ) const noexcept; QVector ticks( TickType ) const noexcept; void setTicks( TickType, const QVector & ); void setMinorTicks( const QVector& ); QVector minorTicks() const noexcept; void setMediumTicks( const QVector& ); QVector mediumTicks() const noexcept; void setMajorTicks( const QVector& ); QVector majorTicks() const noexcept; void invert(); void reset(); uint hash( uint seed = 0 ) const; private: QVector< qreal > m_ticks[ 3 ]; }; inline void QskScaleTickmarks::setMinorTicks( const QVector& ticks ) { setTicks( MinorTick, ticks ); } inline QVector QskScaleTickmarks::minorTicks() const noexcept { return ticks( MinorTick ); } inline void QskScaleTickmarks::setMediumTicks( const QVector& ticks ) { setTicks( MediumTick, ticks ); } inline QVector QskScaleTickmarks::mediumTicks() const noexcept { return ticks( MediumTick ); } inline void QskScaleTickmarks::setMajorTicks( const QVector& ticks ) { setTicks( MajorTick, ticks ); } inline QVector QskScaleTickmarks::majorTicks() const noexcept { return ticks( MajorTick ); } inline bool QskScaleTickmarks::operator!=( const QskScaleTickmarks& other ) const noexcept { return !( *this == other ); } #endif