VTK
dox/GUISupport/Qt/Chart/vtkQtLineChart.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkQtLineChart.h
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 _vtkQtChartLineLayer_h
00025 #define _vtkQtChartLineLayer_h
00026 
00027 #include "vtkQtChartExport.h"
00028 #include "vtkQtChartSeriesLayer.h"
00029 
00030 class vtkQtLineChartInternal;
00031 class vtkQtLineChartOptions;
00032 
00033 
00037 class VTKQTCHART_EXPORT vtkQtLineChart : public vtkQtChartSeriesLayer
00038 {
00039   Q_OBJECT
00040 
00041 public:
00042   enum {Type = vtkQtChart_LineChartType};
00043 
00044 public:
00045   vtkQtLineChart();
00046   virtual ~vtkQtLineChart();
00047 
00049 
00050   virtual void setChartArea(vtkQtChartArea *area);
00051 
00052   virtual void setModel(vtkQtChartSeriesModel *model);
00054 
00056 
00057 
00058 
00059 
00060 
00061   vtkQtLineChartOptions *getOptions() const {return this->Options;}
00062 
00070   void setOptions(const vtkQtLineChartOptions &options);
00071 
00072   virtual QPixmap getSeriesIcon(int series) const;
00074 
00076 
00077   virtual void getLayerDomain(vtkQtChartLayerDomain &domain) const;
00078 
00079   virtual void layoutChart(const QRectF &area);
00080 
00081   virtual bool getHelpText(const QPointF &point, QString &text);
00082 
00088   virtual void finishInteractiveResize();
00090 
00092 
00093   virtual void getSeriesAt(const QPointF &point,
00094       vtkQtChartSeriesSelection &selection) const;
00095 
00096   virtual void getPointsAt(const QPointF &point,
00097       vtkQtChartSeriesSelection &selection) const;
00098 
00099   virtual void getSeriesIn(const QRectF &area,
00100       vtkQtChartSeriesSelection &selection) const;
00101 
00102   virtual void getPointsIn(const QRectF &area,
00103       vtkQtChartSeriesSelection &selection) const;
00105 
00107 
00108   virtual QRectF boundingRect() const;
00109   virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
00110       QWidget *widget);
00112 
00113 public slots:
00119   void reset();
00120 
00121 protected slots:
00129   virtual void handleOptionsChanged(vtkQtChartSeriesOptions*,
00130     int type, const QVariant& newvalue, const QVariant& oldvalue);
00131 
00133   void handleLayoutNeeded();
00134 
00135 private slots:
00140   void prepareSeriesInsert(int first, int last);
00141 
00146   void insertSeries(int first, int last);
00147 
00152   void startSeriesRemoval(int first, int last);
00153 
00158   void finishSeriesRemoval(int first, int last);
00159 
00166   void handleSeriesVisibilityChange(
00167     vtkQtChartSeriesOptions* options, bool visible);
00168 
00176   void handleSeriesAxesCornerChange(
00177     vtkQtChartSeriesOptions* options, int corner, int previous);
00178 
00180   void handleSeriesPointMarkerChange(vtkQtChartSeriesOptions*);
00181 
00186   void updateHighlights();
00187 
00188 private:
00196   bool addSeriesDomain(int series, vtkQtChartLayer::AxesCorner corner,
00197       int *seriesGroup);
00198 
00203   void calculateDomain(int seriesGroup, vtkQtChartLayer::AxesCorner corner);
00204 
00206   void buildTree();
00207 
00208 private:
00209   vtkQtLineChartInternal *Internal; 
00210   vtkQtLineChartOptions *Options;   
00211   bool InModelChange;               
00212   bool BuildNeeded;                 
00213 };
00214 
00215 #endif