PSQt/include/LabColorRing.h

Go to the documentation of this file.
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  *  @ingroup PSQt
00020  * 
00021  *  @brief Widget displaying interactive color rinng/wheel, which is used in WdgColorTable
00022  * 
00023  *  @code
00024  *  @endcode
00025  *
00026  *  This software was developed for the LCLS project.  If you use all or 
00027  *  part of it, please give an appropriate acknowledgment.
00028  *
00029  *  @see WdgColorTable
00030  *
00031  *  @version $Id: LabColorRing.h 9841 2015-03-26 18:35:44Z dubrovin@SLAC.STANFORD.EDU $
00032  *
00033  *  @author Mikhail Dubrovin
00034  */
00035 
00036 //--------------------------
00037   //class WdgColorTable;
00038 
00039 class LabColorRing : public QLabel
00040 {
00041  Q_OBJECT // macro is needed for connection of signals and slots
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     //bool eventFilter     (QObject *obj, QEvent *event = 0) ;
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 } // namespace PSQt
00124 
00125 #endif // LABCOLORRING_H

Generated on 19 Dec 2016 for PSANAmodules by  doxygen 1.4.7