##// END OF EJS Templates
Refactored themes; now enabled for line, scatter and pies...
Refactored themes; now enabled for line, scatter and pies Draft themes implemented for most of the series types. The themes are still missing most of the features, only the line color and line width can be defined.

File last commit:

r103:399cbfcd557c
r103:399cbfcd557c
Show More
qchart.h
99 lines | 2.8 KiB | text/x-c | CLexer
#ifndef CHART_H
#define CHART_H
#include <qchartglobal.h>
#include <qchartseries.h>
#include <QGraphicsObject>
#include <QLinearGradient>
#include <QFont>
QTCOMMERCIALCHART_BEGIN_NAMESPACE
class AxisItem;
class QChartSeries;
class PlotDomain;
class BarGroup;
class QChartAxis;
class ChartTheme;
class ChartItemControl;
// TODO: We don't need to have QChart tied to QGraphicsItem:
//class QTCOMMERCIALCHART_EXPORT QChart
//class QTCOMMERCIALCHART_EXPORT QChartGraphicsItem : public QGraphicsItem {
// public: QChartGraphicsItem(QChart &chart);
/*!
* TODO: define the responsibilities
*/
class QTCOMMERCIALCHART_EXPORT QChart : public QGraphicsObject
{
Q_OBJECT
public:
enum GradientOrientation {
HorizonatlGradientOrientation,
VerticalGradientOrientation
};
enum ChartThemeId {
ChartThemeInvalid = -1,
/*! The default theme follows the GUI style of the Operating System */
ChartThemeDefault,
ChartThemeVanilla,
ChartThemeIcy,
ChartThemeGrayscale,
//ChartThemeScientific,
ChartThemeUnnamed1
};
public:
QChart(QGraphicsObject* parent = 0);
~QChart();
//from QGraphicsItem
QRectF boundingRect() const;
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget){};
void addSeries(QChartSeries* series);
//TODO: QChartSeries* createSeries(QSeriesData *data, QChartSeries::QChartSeriesType type);
// TODO: who owns the series now? maybe owned by chart and returned a reference instead...
QChartSeries* createSeries(QChartSeries::QChartSeriesType type);
void setSize(const QSize& size);
void setMargin(int margin);
int margin() const;
void setTheme(QChart::ChartThemeId theme);
void setTitle(const QString& title,const QFont& font = QFont());
void setBackground(const QColor& startColor, const QColor& endColor = Qt::white, GradientOrientation orientation = VerticalGradientOrientation);
void zoomInToRect(const QRect& rectangle);
void zoomIn();
void zoomOut();
void zoomReset();
void setAxisX(const QChartAxis& axis);
void setAxisY(const QChartAxis& axis);
void setAxisY(const QList<QChartAxis>& axis);
private:
void setAxis(AxisItem *item, const QChartAxis& axis);
private:
Q_DISABLE_COPY(QChart)
QGraphicsRectItem* m_backgroundItem;
QLinearGradient m_backgroundGradient;
GradientOrientation m_bacgroundOrinetation;
QGraphicsTextItem* m_titleItem;
AxisItem* m_axisXItem;
QList<AxisItem*> m_axisYItem;
QRect m_rect;
QList<QChartSeries *> m_chartSeries;
QList<ChartItemControl *> m_chartItemControls;
QVector<PlotDomain> m_plotDomainList;
int m_plotDataIndex;
int m_marginSize;
ChartTheme *m_chartTheme;
};
QTCOMMERCIALCHART_END_NAMESPACE
#endif