Branch data Line data Source code
1 : : /*************************************************************************** 2 : : qgsticksscalebarrenderer.h 3 : : -------------------------- 4 : : begin : June 2008 5 : : copyright : (C) 2008 by Marco Hugentobler 6 : : email : marco.hugentobler@karto.baug.ethz.ch 7 : : ***************************************************************************/ 8 : : /*************************************************************************** 9 : : * * 10 : : * This program is free software; you can redistribute it and/or modify * 11 : : * it under the terms of the GNU General Public License as published by * 12 : : * the Free Software Foundation; either version 2 of the License, or * 13 : : * (at your option) any later version. * 14 : : * * 15 : : ***************************************************************************/ 16 : : 17 : : #ifndef QGSTICKSSCALEBARRENDERER_H 18 : : #define QGSTICKSSCALEBARRENDERER_H 19 : : 20 : : #include "qgis_core.h" 21 : : #include "qgsscalebarrenderer.h" 22 : : 23 : : /** 24 : : * \class QgsTicksScaleBarRenderer 25 : : * \ingroup core 26 : : * \brief A scale bar that draws segments using short ticks. 27 : : * \since QGIS 3.0 28 : : */ 29 : 30 : class CORE_EXPORT QgsTicksScaleBarRenderer: public QgsScaleBarRenderer 30 : : { 31 : : public: 32 : : 33 : : //! Tick positions 34 : : enum TickPosition 35 : : { 36 : : TicksUp, //!< Render ticks above line 37 : : TicksDown, //!< Render ticks below line 38 : : TicksMiddle, //!< Render ticks crossing line 39 : : }; 40 : : 41 : : /** 42 : : * Constructor for QgsTicksScaleBarRenderer. 43 : : */ 44 : : QgsTicksScaleBarRenderer( TickPosition position = TicksMiddle ); 45 : : 46 : : QString id() const override; 47 : : QString visibleName() const override; 48 : : int sortKey() const override; 49 : : Flags flags() const override; 50 : : QgsTicksScaleBarRenderer *clone() const override SIP_FACTORY; 51 : : 52 : : void draw( QgsRenderContext &context, 53 : : const QgsScaleBarSettings &settings, 54 : : const QgsScaleBarRenderer::ScaleBarContext &scaleContext ) const override; 55 : : 56 : : /** 57 : : * Sets the \a position for tick marks in the scalebar. 58 : : * \see tickPosition() 59 : : */ 60 : : void setTickPosition( TickPosition position ) { mTickPosition = position; } 61 : : 62 : : /** 63 : : * Returns the position for tick marks in the scalebar. 64 : : * \see setTickPosition() 65 : : */ 66 : : TickPosition tickPosition() const { return mTickPosition; } 67 : : 68 : : private: 69 : : 70 : : TickPosition mTickPosition = TicksMiddle; 71 : : }; 72 : : 73 : : #endif // QGSTICKSSCALEBARRENDERER_H