qskinny/src/nodes/QskScaleRenderer.h

82 lines
2.0 KiB
C
Raw Normal View History

/******************************************************************************
* QSkinny - Copyright (C) 2016 Uwe Rathmann
2023-04-06 09:23:37 +02:00
* SPDX-License-Identifier: BSD-3-Clause
*****************************************************************************/
#ifndef QSK_SCALE_RENDERER_H
#define QSK_SCALE_RENDERER_H
#include "QskGlobal.h"
#include <qnamespace.h>
#include <qfont.h>
#include <qcolor.h>
2022-03-24 11:14:46 +01:00
#include <memory>
class QskSkinnable;
2022-03-24 11:14:46 +01:00
class QskIntervalF;
class QskScaleTickmarks;
class QskTextColors;
class QskColorFilter;
class QSGNode;
class QVariant;
class QRectF;
class QSK_EXPORT QskScaleRenderer
{
public:
2022-03-24 11:14:46 +01:00
QskScaleRenderer();
2023-04-04 08:49:11 +02:00
virtual ~QskScaleRenderer();
2022-03-24 11:14:46 +01:00
void setOrientation( Qt::Orientation );
2023-04-24 11:55:36 +02:00
Qt::Orientation orientation() const;
2023-02-28 11:59:46 +01:00
void setAlignment( Qt::Alignment );
2023-04-24 11:55:36 +02:00
Qt::Alignment aligment() const;
2023-04-24 11:55:36 +02:00
void setBoundaries( qreal lowerBound, qreal upperBound );
void setBoundaries( const QskIntervalF& );
2023-04-24 11:55:36 +02:00
QskIntervalF boundaries() const;
void setTickmarks( const QskScaleTickmarks& );
2023-04-24 11:55:36 +02:00
const QskScaleTickmarks& tickmarks() const;
void setTickColor( const QColor& );
2023-04-24 11:55:36 +02:00
QColor tickColor() const;
void setTickWidth( qreal );
2023-04-24 11:55:36 +02:00
qreal tickWidth() const;
void setFont( const QFont& );
2023-04-24 11:55:36 +02:00
QFont font() const;
void setTextColors( const QskTextColors& );
2023-04-24 11:55:36 +02:00
QskTextColors textColors() const;
void setColorFilter( const QskColorFilter& );
2023-04-24 11:55:36 +02:00
const QskColorFilter& colorFilter() const;
QSGNode* updateScaleNode( const QskSkinnable*,
const QRectF& tickmarksRect, const QRectF& labelsRect, QSGNode* );
virtual QVariant labelAt( qreal pos ) const;
2021-08-04 09:31:16 +02:00
QSizeF boundingLabelSize() const;
virtual QSGNode* updateTicksNode(
const QskSkinnable*, const QRectF&, QSGNode* ) const;
virtual QSGNode* updateLabelsNode(
2021-02-23 12:03:41 +01:00
const QskSkinnable*, const QRectF& ticksRect,
const QRectF& labelsRect, QSGNode* node ) const;
private:
2022-03-24 08:08:40 +01:00
Q_DISABLE_COPY( QskScaleRenderer )
2022-03-24 11:14:46 +01:00
class PrivateData;
std::unique_ptr< PrivateData > m_data;
};
#endif