00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _GLWTRACKER_H_
00022 #define _GLWTRACKER_H_
00023
00024 #include <GLW/GLWidget.h>
00025
00026 class GLWTrackerI
00027 {
00028 public:
00029 virtual void currentChanged(unsigned int id, float valueX, float valueY) = 0;
00030 };
00031
00032 class GLWTracker : public GLWidget
00033 {
00034 public:
00035 GLWTracker(float x = 0.0f, float y = 0.0f,
00036 float w = 0.0f, float range = 0.0f);
00037 virtual ~GLWTracker();
00038
00039 void setHandler(GLWTrackerI *handler) { handler_ = handler; }
00040
00041 float getCurrentX() { return currentX_; }
00042 float getCurrentY() { return currentY_; }
00043 void setCurrentX(float currentx) { currentX_ = currentx; }
00044 void setCurrentY(float currenty) { currentY_ = currenty; }
00045
00046 virtual void mouseDown(int button, float x, float y, bool &skipRest);
00047 virtual void mouseUp(int button, float x, float y, bool &skipRest);
00048 virtual void mouseDrag(int button, float mx, float my, float x, float y, bool &skipRest);
00049
00050 REGISTER_CLASS_HEADER(GLWTracker);
00051
00052 protected:
00053 GLWTrackerI *handler_;
00054 bool dragging_;
00055 float currentX_, currentY_;
00056 float range_;
00057
00058 };
00059
00060 class GLWTankTracker : public GLWTracker,
00061 public GLWTrackerI
00062 {
00063 public:
00064 GLWTankTracker();
00065 virtual ~GLWTankTracker();
00066
00067 virtual void draw();
00068 virtual void currentChanged(unsigned int id, float valueX, float valueY);
00069
00070 REGISTER_CLASS_HEADER(GLWTankTracker);
00071
00072 };
00073
00074 #endif