subsurface/qt-ui/profile/divecartesianaxis.h
Tomaz Canabrava 8773b4f9f0 Create a Time Axis that knows how to plot the minutes.
Created a Time Axis based on the CartesianAxis that knows
how to plot the minutes. This is needed because the CartesianAxis
donesn't knows about minutes at all, and would plot the
seconds instead.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-16 10:12:30 +07:00

55 lines
No EOL
1.3 KiB
C++

#ifndef DIVECARTESIANAXIS_H
#define DIVECARTESIANAXIS_H
#include <QObject>
#include <QGraphicsLineItem>
class DiveTextItem;
class DiveLineItem;
class DiveCartesianAxis : public QObject, public QGraphicsLineItem{
Q_OBJECT
Q_PROPERTY(QLineF line WRITE setLine READ line)
Q_PROPERTY(QPointF pos WRITE setPos READ pos)
Q_PROPERTY(qreal x WRITE setX READ x)
Q_PROPERTY(qreal y WRITE setY READ y)
public:
DiveCartesianAxis();
virtual ~DiveCartesianAxis();
void setMinimum(double minimum);
void setMaximum(double maximum);
void setTickInterval(double interval);
void setOrientation(Qt::Orientation orientation);
void setTickSize(qreal size);
void updateTicks();
double minimum() const;
double maximum() const;
qreal valueAt(const QPointF& p);
qreal percentAt(const QPointF& p);
qreal posAtValue(qreal value);
void setColor(const QColor& color);
void setTextColor(const QColor& color);
int unitSystem;
protected:
virtual QString textForValue(double value);
Qt::Orientation orientation;
QList<DiveLineItem*> ticks;
QList<DiveTextItem*> labels;
double min;
double max;
double interval;
double tickSize;
QColor textColor;
};
class DepthAxis : public DiveCartesianAxis {
protected:
QString textForValue(double value);
};
class TimeAxis : public DiveCartesianAxis {
protected:
QString textForValue(double value);
};
#endif