VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkQtChartMouseZoom.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 _vtkQtChartMouseZoom_h 00025 #define _vtkQtChartMouseZoom_h 00026 00027 00028 #include "vtkQtChartExport.h" 00029 #include "vtkQtChartMouseFunction.h" 00030 00031 class vtkQtChartArea; 00032 class vtkQtChartMouseZoomInternal; 00033 class QCursor; 00034 class QMouseEvent; 00035 00036 00041 class VTKQTCHART_EXPORT vtkQtChartMouseZoom : public vtkQtChartMouseFunction 00042 { 00043 public: 00044 enum ZoomFlags 00045 { 00046 ZoomBoth, 00047 ZoomXOnly, 00048 ZoomYOnly 00049 }; 00050 00051 public: 00055 vtkQtChartMouseZoom(QObject *parent=0); 00056 virtual ~vtkQtChartMouseZoom(); 00057 00059 00060 virtual void setMouseOwner(bool owns); 00061 00062 virtual bool mousePressEvent(QMouseEvent *e, vtkQtChartArea *chart); 00063 virtual bool mouseMoveEvent(QMouseEvent *e, vtkQtChartArea *chart); 00064 virtual bool mouseReleaseEvent(QMouseEvent *e, vtkQtChartArea *chart); 00065 virtual bool mouseDoubleClickEvent(QMouseEvent *e, vtkQtChartArea *chart); 00066 virtual bool wheelEvent(QWheelEvent *e, vtkQtChartArea *chart); 00068 00073 ZoomFlags getFlags() const {return this->Flags;} 00074 00075 protected: 00079 void setFlags(ZoomFlags flags) {this->Flags = flags;} 00080 00081 private: 00082 vtkQtChartMouseZoomInternal *Internal; 00083 ZoomFlags Flags; 00084 00085 private: 00086 vtkQtChartMouseZoom(const vtkQtChartMouseZoom &); 00087 vtkQtChartMouseZoom &operator=(const vtkQtChartMouseZoom &); 00088 }; 00089 00090 00094 class VTKQTCHART_EXPORT vtkQtChartMouseZoomX : public vtkQtChartMouseZoom 00095 { 00096 public: 00100 vtkQtChartMouseZoomX(QObject *parent=0); 00101 virtual ~vtkQtChartMouseZoomX() {} 00102 00103 private: 00104 vtkQtChartMouseZoomX(const vtkQtChartMouseZoomX &); 00105 vtkQtChartMouseZoomX &operator=(const vtkQtChartMouseZoomX &); 00106 }; 00107 00108 00112 class VTKQTCHART_EXPORT vtkQtChartMouseZoomY : public vtkQtChartMouseZoom 00113 { 00114 public: 00118 vtkQtChartMouseZoomY(QObject *parent=0); 00119 virtual ~vtkQtChartMouseZoomY() {} 00120 00121 private: 00122 vtkQtChartMouseZoomY(const vtkQtChartMouseZoomY &); 00123 vtkQtChartMouseZoomY &operator=(const vtkQtChartMouseZoomY &); 00124 }; 00125 00126 00130 class VTKQTCHART_EXPORT vtkQtChartMouseZoomBox : public vtkQtChartMouseFunction 00131 { 00132 public: 00136 vtkQtChartMouseZoomBox(QObject *parent=0); 00137 virtual ~vtkQtChartMouseZoomBox(); 00138 00140 00141 virtual void setMouseOwner(bool owns); 00142 00143 virtual bool mousePressEvent(QMouseEvent *e, vtkQtChartArea *chart); 00144 virtual bool mouseMoveEvent(QMouseEvent *e, vtkQtChartArea *chart); 00145 virtual bool mouseReleaseEvent(QMouseEvent *e, vtkQtChartArea *chart); 00146 virtual bool mouseDoubleClickEvent(QMouseEvent *e, vtkQtChartArea *chart); 00148 00149 private: 00150 QCursor *ZoomCursor; 00151 00152 private: 00153 vtkQtChartMouseZoomBox(const vtkQtChartMouseZoomBox &); 00154 vtkQtChartMouseZoomBox &operator=(const vtkQtChartMouseZoomBox &); 00155 }; 00156 00157 #endif