00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00023
00024 #ifndef _vtkQtChartLineLayer_h
00025 #define _vtkQtChartLineLayer_h
00026
00027 #include "vtkQtChartExport.h"
00028 #include "vtkQtChartSeriesLayer.h"
00029
00030 class vtkQtLineChartInternal;
00031 class vtkQtLineChartOptions;
00032 class vtkQtLineChartSeriesOptions;
00033
00034
00038 class VTKQTCHART_EXPORT vtkQtLineChart : public vtkQtChartSeriesLayer
00039 {
00040 Q_OBJECT
00041
00042 public:
00043 enum {Type = vtkQtChart_LineChartType};
00044
00045 public:
00046 vtkQtLineChart();
00047 virtual ~vtkQtLineChart();
00048
00050
00051 virtual void setChartArea(vtkQtChartArea *area);
00052
00053 virtual void setModel(vtkQtChartSeriesModel *model);
00055
00057
00058
00059
00060
00061
00062 vtkQtLineChartOptions *getOptions() const {return this->Options;}
00063
00071 void setOptions(const vtkQtLineChartOptions &options);
00072
00078 vtkQtLineChartSeriesOptions *getLineSeriesOptions(int series) const;
00079
00080 virtual QPixmap getSeriesIcon(int series) const;
00082
00084
00085 virtual void getLayerDomain(vtkQtChartLayerDomain &domain) const;
00086
00087 virtual void layoutChart(const QRectF &area);
00088
00089 virtual bool getHelpText(const QPointF &point, QString &text);
00090
00096 virtual void finishInteractiveResize();
00098
00100
00101 virtual void getSeriesAt(const QPointF &point,
00102 vtkQtChartSeriesSelection &selection) const;
00103
00104 virtual void getPointsAt(const QPointF &point,
00105 vtkQtChartSeriesSelection &selection) const;
00106
00107 virtual void getSeriesIn(const QRectF &area,
00108 vtkQtChartSeriesSelection &selection) const;
00109
00110 virtual void getPointsIn(const QRectF &area,
00111 vtkQtChartSeriesSelection &selection) const;
00113
00115
00116 virtual QRectF boundingRect() const;
00117 virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
00118 QWidget *widget);
00120
00121 public slots:
00127 void reset();
00128
00129 protected:
00135 virtual vtkQtChartSeriesOptions *createOptions(QObject *parent);
00136
00140 virtual void setupOptions(vtkQtChartSeriesOptions *options);
00141
00142 private slots:
00147 void prepareSeriesInsert(int first, int last);
00148
00153 void insertSeries(int first, int last);
00154
00159 void startSeriesRemoval(int first, int last);
00160
00165 void finishSeriesRemoval(int first, int last);
00166
00173 void handleSeriesVisibilityChange(bool visible);
00174
00182 void handleSeriesAxesCornerChange(int corner, int previous);
00183
00187 void handleSeriesPointVisibilityChange(bool visible);
00188
00190 void handleSeriesPointMarkerChange();
00191
00195 void handleSeriesPenChange(const QPen &pen);
00196
00200 void handleSeriesBrushChange(const QBrush &brush);
00201
00206 void updateHighlights();
00207
00208 private:
00216 bool addSeriesDomain(int series, vtkQtChartLayer::AxesCorner corner,
00217 int *seriesGroup);
00218
00223 void calculateDomain(int seriesGroup, vtkQtChartLayer::AxesCorner corner);
00224
00226 void buildTree();
00227
00228 private:
00229 vtkQtLineChartInternal *Internal;
00230 vtkQtLineChartOptions *Options;
00231 bool InModelChange;
00232 bool BuildNeeded;
00233 };
00234
00235 #endif