00001 #ifndef LABCOLORRING_H
00002 #define LABCOLORRING_H
00003
00004 #include <QWidget>
00005 #include <QLabel>
00006 #include <QPainter>
00007 #include <QPixmap>
00008 #include <QPoint>
00009
00010 #include <Qt>
00011 #include <QtGui>
00012 #include <QtCore>
00013
00014 namespace PSQt {
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 class LabColorRing : public QLabel
00040 {
00041 Q_OBJECT
00042
00043 public:
00044
00045 static const float RAD2DEG = 180/3.14159265;
00046 static const float DEG2RAD = 3.14159265/180;
00047
00048 LabColorRing(QWidget* parent, const unsigned& ssize, float &h1, float &h2 );
00049
00050 void setFrame() ;
00051 void setStyle() ;
00052 void setPens() ;
00053 void showTips() ;
00054
00055 void resizeEvent (QResizeEvent *event = 0) ;
00056 void closeEvent (QCloseEvent *event = 0) ;
00057 void moveEvent (QMoveEvent *event = 0) ;
00058
00059 void enterEvent (QEvent *event = 0) ;
00060 void leaveEvent (QEvent *event = 0) ;
00061
00062 void paintEvent (QPaintEvent *event = 0) ;
00063 void setHueAngle (QMouseEvent *event = 0) ;
00064
00065 void setColorRing(const int& ssize=512) ;
00066 void drawLines();
00067 void drawCircs();
00068 void setPoints();
00069
00070 protected :
00071
00072 void mousePressEvent (QMouseEvent *event = 0) ;
00073 void mouseMoveEvent (QMouseEvent *event = 0) ;
00074 void mouseReleaseEvent(QMouseEvent *event = 0) ;
00075
00076
00077 public slots:
00078
00079 void onButExit() ;
00080 void onSetShifter(const unsigned& selected) ;
00081
00082 signals :
00083
00084 void hueAngleIsMoving(const unsigned& selected) ;
00085 void hueAngleIsMoved() ;
00086
00087 private:
00088
00089 QWidget* m_parent;
00090 int m_ssize;
00091 float m_R;
00092 float m_frR1;
00093 float m_frR2;
00094 float m_R1;
00095 float m_R2;
00096
00097 float& m_h1;
00098 float& m_h2;
00099
00100 float m_ang;
00101 float m_n360;
00102 float m_ang_old;
00103
00104 QPointF m_poiC;
00105 QPointF m_poi1;
00106 QPointF m_poi2;
00107 QPointF m_poi1e;
00108 QPointF m_poi2e;
00109 QPainter m_painter;
00110 QPen* m_pen_w1;
00111 QPen* m_pen_w3;
00112 QPen* m_pen1;
00113 QPen* m_pen2;
00114
00115 float m_rpicker;
00116 unsigned m_selected;
00117
00118 QFrame* m_frame;
00119 QPixmap* m_pixmap_cring;
00120 QGraphicsScene* m_scene;
00121 };
00122
00123 }
00124
00125 #endif // LABCOLORRING_H