00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkQtChartSeriesLayer.h,v $ 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00015 /*------------------------------------------------------------------------- 00016 Copyright 2008 Sandia Corporation. 00017 Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, 00018 the U.S. Government retains certain rights in this software. 00019 -------------------------------------------------------------------------*/ 00020 00023 00024 #ifndef _vtkQtChartSeriesLayer_h 00025 #define _vtkQtChartSeriesLayer_h 00026 00027 #include "vtkQtChartExport.h" 00028 #include "vtkQtChartLayer.h" 00029 #include <QPixmap> // needed for return type 00030 00031 class vtkQtChartContentsArea; 00032 class vtkQtChartSeriesModel; 00033 class vtkQtChartSeriesOptions; 00034 class vtkQtChartSeriesSelection; 00035 class vtkQtChartSeriesSelectionModel; 00036 class QPointF; 00037 class QRectF; 00038 00039 00049 class VTKQTCHART_EXPORT vtkQtChartSeriesLayer : public vtkQtChartLayer 00050 { 00051 Q_OBJECT 00052 00053 public: 00054 enum {Type = vtkQtChart_SeriesLayerType}; 00055 00056 public: 00057 vtkQtChartSeriesLayer(bool useContents=true); 00058 virtual ~vtkQtChartSeriesLayer() {} 00059 00069 virtual void setChartArea(vtkQtChartArea *area); 00070 00075 vtkQtChartSeriesModel *getModel() const {return this->Model;} 00076 00080 virtual void setModel(vtkQtChartSeriesModel *model); 00081 00087 vtkQtChartSeriesOptions *getSeriesOptions(int series) const; 00088 00094 int getSeriesOptionsIndex(vtkQtChartSeriesOptions *options) const; 00095 00104 virtual QPixmap getSeriesIcon(int series) const; 00105 00110 vtkQtChartSeriesSelectionModel *getSelectionModel() const; 00111 00116 virtual void getSeriesAt(const QPointF &point, 00117 vtkQtChartSeriesSelection &selection) const; 00118 00123 virtual void getPointsAt(const QPointF &point, 00124 vtkQtChartSeriesSelection &selection) const; 00125 00130 virtual void getSeriesIn(const QRectF &area, 00131 vtkQtChartSeriesSelection &selection) const; 00132 00137 virtual void getPointsIn(const QRectF &area, 00138 vtkQtChartSeriesSelection &selection) const; 00139 00140 public slots: 00144 void setXOffset(float offset); 00145 00149 void setYOffset(float offset); 00150 00152 void resetSeriesOptions(); 00153 00154 signals: 00159 void modelChanged(vtkQtChartSeriesModel *previous, 00160 vtkQtChartSeriesModel *current); 00161 00166 void modelSeriesChanged(int first, int last); 00167 00172 void modelSeriesVisibilityChanged(int series, bool visible); 00173 00174 protected: 00185 virtual vtkQtChartSeriesOptions *createOptions(QObject *parent) = 0; 00186 00195 virtual void setupOptions(vtkQtChartSeriesOptions *options) = 0; 00196 00197 private slots: 00202 void insertSeriesOptions(int first, int last); 00203 00208 void removeSeriesOptions(int first, int last); 00209 00210 private: 00212 void clearOptions(); 00213 00214 protected: 00216 vtkQtChartSeriesSelectionModel *Selection; 00217 vtkQtChartSeriesModel *Model; 00218 vtkQtChartContentsArea *Contents; 00219 00220 private: 00222 QList<vtkQtChartSeriesOptions *> Options; 00223 00224 private: 00225 vtkQtChartSeriesLayer(const vtkQtChartSeriesLayer &); 00226 vtkQtChartSeriesLayer &operator=(const vtkQtChartSeriesLayer &); 00227 }; 00228 00229 #endif 00230