barchartitem_p.h
92 lines
| 2.7 KiB
| text/x-c
|
CLexer
Jani Honkonen
|
r794 | /**************************************************************************** | ||
** | ||||
** Copyright (C) 2012 Digia Plc | ||||
** All rights reserved. | ||||
** For any questions to Digia, please use contact form at http://qt.digia.com | ||||
** | ||||
** This file is part of the Qt Commercial Charts Add-on. | ||||
** | ||||
** $QT_BEGIN_LICENSE$ | ||||
** Licensees holding valid Qt Commercial licenses may use this file in | ||||
** accordance with the Qt Commercial License Agreement provided with the | ||||
** Software or, alternatively, in accordance with the terms contained in | ||||
** a written agreement between you and Digia. | ||||
** | ||||
** If you have questions regarding the use of this file, please use | ||||
** contact form at http://qt.digia.com | ||||
** $QT_END_LICENSE$ | ||||
** | ||||
****************************************************************************/ | ||||
sauimone
|
r666 | #ifndef BARCHARTITEM_H | ||
#define BARCHARTITEM_H | ||||
sauimone
|
r126 | |||
#include "chartitem_p.h" | ||||
sauimone
|
r338 | #include "qbarseries.h" | ||
sauimone
|
r183 | #include <QPen> | ||
#include <QBrush> | ||||
sauimone
|
r126 | |||
QTCOMMERCIALCHART_BEGIN_NAMESPACE | ||||
sauimone
|
r256 | class Bar; | ||
sauimone
|
r263 | class BarValue; | ||
sauimone
|
r487 | class QChartAxisCategories; | ||
class QChart; | ||||
sauimone
|
r256 | |||
sauimone
|
r681 | //typedef QVector<QRectF> BarLayout; | ||
sauimone
|
r671 | |||
Michal Klocek
|
r679 | class BarChartItem : public ChartItem | ||
sauimone
|
r126 | { | ||
Michal Klocek
|
r139 | Q_OBJECT | ||
sauimone
|
r126 | public: | ||
Michal Klocek
|
r677 | BarChartItem(QBarSeries *series, ChartPresenter *presenter); | ||
sauimone
|
r666 | virtual ~BarChartItem(); | ||
sauimone
|
r126 | |||
Michal Klocek
|
r677 | // Common implemantation of different presenters. Not to be instantiated. | ||
// TODO: combine this with BarPresenter and derive other presenters from it? | ||||
sauimone
|
r175 | public: | ||
sauimone
|
r126 | // From QGraphicsItem | ||
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); | ||||
QRectF boundingRect() const; | ||||
sauimone
|
r167 | // TODO: Consider the domain for layoutChanged. May be use case, may not be. If it is, then the derived classes need to implement it | ||
sauimone
|
r126 | virtual void dataChanged(); // data of series has changed -> need to recalculate bar sizes | ||
sauimone
|
r694 | virtual QVector<QRectF> calculateLayout(); | ||
sauimone
|
r681 | void applyLayout(const QVector<QRectF> &layout); | ||
void setLayout(const QVector<QRectF> &layout); | ||||
void updateLayout(const QVector<QRectF> &layout); | ||||
sauimone
|
r671 | |||
Michal Klocek
|
r679 | QRectF geometry() const { return m_rect;} | ||
sauimone
|
r775 | public Q_SLOTS: | ||
Michal Klocek
|
r139 | void handleModelChanged(int index); | ||
Tero Ahola
|
r611 | void handleDomainChanged(qreal minX, qreal maxX, qreal minY, qreal maxY); | ||
Tero Ahola
|
r737 | void handleGeometryChanged(const QRectF &size); | ||
sauimone
|
r671 | void handleLayoutChanged(); | ||
Michal Klocek
|
r139 | |||
sauimone
|
r288 | // Internal slots | ||
void showToolTip(QPoint pos, QString tip); // shows tooltip (if enabled) | ||||
sauimone
|
r280 | |||
sauimone
|
r126 | protected: | ||
sauimone
|
r159 | // TODO: consider these. | ||
sauimone
|
r763 | qreal m_domainMinX; | ||
qreal m_domainMaxX; | ||||
qreal m_domainMinY; | ||||
qreal m_domainMaxY; | ||||
sauimone
|
r674 | |||
Michal Klocek
|
r679 | QRectF m_rect; | ||
sauimone
|
r763 | bool m_layoutSet; // True, if component has been laid out. | ||
QVector<QRectF> m_layout; | ||||
sauimone
|
r288 | |||
sauimone
|
r256 | // Not owned. | ||
sauimone
|
r763 | QBarSeries *m_series; | ||
QList<Bar *> m_bars; | ||||
sauimone
|
r813 | QList<BarValue *> m_values; | ||
sauimone
|
r126 | }; | ||
QTCOMMERCIALCHART_END_NAMESPACE | ||||
sauimone
|
r666 | #endif // BARCHARTITEM_H | ||