00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef SeExprEdGrapher2d_h
00015 #define SeExprEdGrapher2d_h
00016
00017 #include <QtCore/QObject>
00018 #include <QtGui/QPalette>
00019 #include <QtOpenGL/QGLWidget>
00020 #include <QtGui/QMouseEvent>
00021
00022 #include "SeExprEdExpression.h"
00023
00024 class SeExprEdGrapherWidget;
00025 class QLineEdit;
00026
00027 class SeExprEdGrapherView : public QGLWidget
00028 {
00029 Q_OBJECT;
00030 SeExprEdGrapherWidget& widget;
00031 public:
00032 SeExprEdGrapherView(SeExprEdGrapherWidget& widget,QWidget* parent, int width, int height);
00033 virtual ~SeExprEdGrapherView();
00034
00035 void update();
00036 void setWindow(float xmin,float xmax,float ymin,float ymax,float z);
00037 void getWindow(float &xmin,float& xmax,float& ymin,float &ymax,float &z);
00038
00039 protected:
00040 void clear();
00041 void paintGL();
00042 void mousePressEvent(QMouseEvent* event);
00043 void mouseReleaseEvent(QMouseEvent* event);
00044 void mouseMoveEvent(QMouseEvent* event);
00045 int event_oldx,event_oldy;
00046
00047 signals:
00048 void scaleValueManipulated();
00049 void clicked();
00050
00051 private:
00052 float * _image;
00053 int _width;
00054 int _height;
00055
00056 float xmin,xmax,ymin,ymax,z;
00057 float dx,dy;
00058
00059
00060 bool scaling,translating;
00061
00062 };
00063
00064 class SeExprEdGrapherWidget : public QWidget
00065 {
00066 Q_OBJECT
00067 QLineEdit* scale;
00068
00069 public:
00070 SeExprEdGrapherView* view;
00071 SeExprEdExpression expr;
00072
00073 SeExprEdGrapherWidget(QWidget* parent, int width, int height);
00074
00075 void update();
00076 signals:
00077 void preview();
00078 private slots:
00079 void scaleValueEdited();
00080 void scaleValueManipulated();
00081 void forwardPreview();
00082
00083 };
00084
00085 #endif