00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00023
00024 #ifndef _vtkQtChartContentsSpace_h
00025 #define _vtkQtChartContentsSpace_h
00026
00027
00028 #include "vtkQtChartExport.h"
00029 #include <QObject>
00030
00031 class vtkQtChartContentsSpaceInternal;
00032 class QPoint;
00033 class QPointF;
00034 class QRectF;
00035
00036
00041 class VTKQTCHART_EXPORT vtkQtChartContentsSpace : public QObject
00042 {
00043 Q_OBJECT
00044
00045 public:
00049 vtkQtChartContentsSpace(QObject *parent=0);
00050 virtual ~vtkQtChartContentsSpace();
00051
00053
00054
00055
00056
00057
00058 float getXOffset() const {return this->OffsetX;}
00059
00064 float getYOffset() const {return this->OffsetY;}
00065
00070 float getMaximumXOffset() const {return this->MaximumX;}
00071
00076 float getMaximumYOffset() const {return this->MaximumY;}
00077
00082 float getContentsWidth() const;
00083
00088 float getContentsHeight() const;
00089
00097 void translateToLayerContents(QPointF &point) const;
00098
00107 void translateToLayerContents(QRectF &area) const;
00109
00111
00112
00113
00114
00115
00116 float getChartWidth() const {return this->Width;}
00117
00122 float getChartHeight() const {return this->Height;}
00123
00132 void setChartSize(float width, float height);
00133
00137 void getChartLayerBounds(QRectF &bounds) const;
00138
00142 void setChartLayerBounds(const QRectF &bounds);
00144
00146
00147
00148
00149
00150
00151 float getXZoomFactor() const {return this->ZoomFactorX;}
00152
00157 float getYZoomFactor() const {return this->ZoomFactorY;}
00158
00163 void zoomToFactor(float factor);
00164
00180 void zoomToFactor(float xFactor, float yFactor);
00181
00186 void zoomToFactorX(float factor);
00187
00192 void zoomToFactorY(float factor);
00194
00196
00197
00198
00199
00200
00201
00202
00203
00204
00205 void startInteraction();
00206
00213 bool isInInteraction() const;
00214
00218 void finishInteraction();
00220
00222
00223
00224
00225
00226
00227 bool isHistoryPreviousAvailable() const;
00228
00233 bool isHistoryNextAvailable() const;
00235
00236 public slots:
00240 void setXOffset(float offset);
00241
00245 void setYOffset(float offset);
00246
00250 void setMaximumXOffset(float maximum);
00251
00255 void setMaximumYOffset(float maximum);
00256
00258 void panUp();
00259
00261 void panDown();
00262
00264 void panLeft();
00265
00267 void panRight();
00268
00270 void resetZoom();
00271
00273 void historyNext();
00274
00276 void historyPrevious();
00277
00278 public:
00283 static float getZoomFactorStep();
00284
00288 static void setZoomFactorStep(float step);
00289
00298 static float getPanStep();
00299
00303 static void setPanStep(float step);
00304
00305 signals:
00309 void xOffsetChanged(float offset);
00310
00314 void yOffsetChanged(float offset);
00315
00324 void maximumChanged(float xMaximum, float yMaximum);
00325
00330 void historyPreviousAvailabilityChanged(bool available);
00331
00336 void historyNextAvailabilityChanged(bool available);
00337
00338 private:
00340 void addHistory();
00341
00342 private:
00344 vtkQtChartContentsSpaceInternal *Internal;
00345 float OffsetX;
00346 float OffsetY;
00347 float MaximumX;
00348 float MaximumY;
00349 float Width;
00350 float Height;
00351 float ZoomFactorX;
00352 float ZoomFactorY;
00353
00354 static float ZoomFactorStep;
00355 static float PanStep;
00356 };
00357
00358 #endif