00001 #ifndef GUAXES_H
00002 #define GUAXES_H
00003
00004 #include <PSQt/GURuler.h>
00005
00006 #include <string>
00007 #include <QWidget>
00008 #include <QGraphicsView>
00009 #include <QTransform>
00010 #include <QGraphicsScene>
00011
00012
00013
00014
00015
00016
00017 namespace PSQt {
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041 class GUAxes : public QGraphicsView
00042 {
00043 Q_OBJECT
00044
00045 public:
00046
00047 GUAxes( QWidget *parent=0
00048 , const float& xmin = 0
00049 , const float& xmax = 100
00050 , const float& ymin = 0
00051 , const float& ymax = 100
00052 , const unsigned& nxdiv1 = 4
00053 , const unsigned& nydiv1 = 4
00054 , const unsigned& nxdiv2 = 2
00055 , const unsigned& nydiv2 = 2
00056 , const unsigned pbits = 0);
00057
00058 virtual ~GUAxes ();
00059
00060 void setLimits( const float& xmin = 0
00061 , const float& xmax = 100
00062 , const float& ymin = 0
00063 , const float& ymax = 100
00064 , const unsigned& nxdiv1 = 4
00065 , const unsigned& nydiv1 = 4
00066 , const unsigned& nxdiv2 = 2
00067 , const unsigned& nydiv2 = 2);
00068
00069 void updateTransform();
00070 void setAxes();
00071 void setPen(const QPen& pen) { m_pen=pen; }
00072 void setFont(const QFont& font) { m_font=font; }
00073 void setColor(const QColor& color) { m_color=color; }
00074 void printMemberData();
00075 void printTransform();
00076
00077 QTransform transform() { return pview()->transform(); }
00078 QGraphicsScene * pscene(){ return pview()->scene(); }
00079 QGraphicsView * pview() { return this; }
00080 QGraphicsView & rview() { return *this; }
00081
00082
00083 signals :
00084 void pressOnAxes(QMouseEvent*, QPointF) ;
00085 void releaseOnAxes(QMouseEvent*, QPointF) ;
00086 void moveOnAxes(QMouseEvent*, QPointF) ;
00087
00088 public slots:
00089 void testSignalPressOnAxes(QMouseEvent*, QPointF) ;
00090 void testSignalReleaseOnAxes(QMouseEvent*, QPointF) ;
00091 void testSignalMoveOnAxes(QMouseEvent*, QPointF) ;
00092
00093 protected:
00094 void closeEvent(QCloseEvent *event = 0) ;
00095 void resizeEvent(QResizeEvent *event = 0) ;
00096 void mousePressEvent(QMouseEvent *event = 0) ;
00097 void mouseReleaseEvent(QMouseEvent *event = 0) ;
00098 void mouseMoveEvent(QMouseEvent *event = 0) ;
00099
00100 private:
00101
00102
00103 float m_xmin;
00104 float m_xmax;
00105 float m_ymin;
00106 float m_ymax;
00107 unsigned m_nxdiv1;
00108 unsigned m_nydiv1;
00109 unsigned m_nxdiv2;
00110 unsigned m_nydiv2;
00111 unsigned m_pbits;
00112 QColor m_color;
00113 QPen m_pen;
00114 QFont m_font;
00115
00116 QGraphicsScene* m_scene;
00117 QRectF m_scene_rect;
00118
00119 PSQt::GURuler* m_ruler_hd;
00120 PSQt::GURuler* m_ruler_hu;
00121 PSQt::GURuler* m_ruler_vl;
00122 PSQt::GURuler* m_ruler_vr;
00123
00124 inline const char* _name_(){return "GUAxes";}
00125 QPointF pointOnAxes(QMouseEvent *e);
00126 void connectForTest();
00127 void message(QMouseEvent *e, const QPointF& sp, const char* cmt="");
00128 };
00129
00130
00131 }
00132
00133 #endif // GUAXES_H