2020-11-22 15:28:56 +01:00
|
|
|
/******************************************************************************
|
|
|
|
* QSkinny - Copyright (C) 2016 Uwe Rathmann
|
|
|
|
* This file may be used under the terms of the QSkinny License, Version 1.0
|
|
|
|
*****************************************************************************/
|
|
|
|
|
|
|
|
#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>
|
|
|
|
|
2020-11-22 15:28:56 +01:00
|
|
|
class QskSkinnable;
|
2022-03-24 11:14:46 +01:00
|
|
|
class QskIntervalF;
|
|
|
|
class QskScaleTickmarks;
|
|
|
|
class QskTextColors;
|
|
|
|
class QskColorFilter;
|
2020-11-22 15:28:56 +01:00
|
|
|
|
|
|
|
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
|
|
|
|
2020-11-22 15:28:56 +01:00
|
|
|
void setOrientation( Qt::Orientation );
|
2023-02-28 11:59:46 +01:00
|
|
|
void setAlignment( Qt::Alignment );
|
2020-11-22 15:28:56 +01:00
|
|
|
|
|
|
|
void setBoundaries( const QskIntervalF& );
|
|
|
|
void setTickmarks( const QskScaleTickmarks& );
|
|
|
|
|
|
|
|
void setTickColor( const QColor& );
|
|
|
|
void setTickWidth( qreal );
|
|
|
|
|
|
|
|
void setFont( const QFont& );
|
|
|
|
void setTextColors( const QskTextColors& );
|
|
|
|
|
|
|
|
void setColorFilter( const QskColorFilter& );
|
|
|
|
|
|
|
|
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;
|
2020-11-22 15:28:56 +01:00
|
|
|
|
|
|
|
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;
|
2020-11-22 15:28:56 +01:00
|
|
|
|
|
|
|
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;
|
2020-11-22 15:28:56 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|