00001 #ifndef TRANSFERWIDGET_H
00002 #define TRANSFERWIDGET_H
00003
00004 #include <QtGui>
00005 #include "hoverpoints.h"
00006
00017
00018 class TransferWidget : public QWidget
00019 {
00020 Q_OBJECT
00021
00022 public:
00023 TransferWidget(QWidget *parent = NULL);
00024 ~TransferWidget();
00025
00026 void paintEvent(QPaintEvent *e);
00027
00028 private:
00029 QLinearGradient gradient;
00030 QLinearGradient gradientWithAlpha;
00031 QGradientStops stops;
00032 QImage shadeImage;
00033 QImage transferImage;
00034 HoverPoints *hoverPoints;
00035
00036 void Init();
00037
00048
00049 void calcShadeImage();
00050
00061
00062 void calcGradientStops();
00063
00076
00077 void saveToFile(QString filename);
00078
00094
00095 void loadFromFile(QString filename, QVector<QPointF> &points, QVector<QColor> &colors);
00096
00107
00108 void addTestPoints();
00109
00110 signals:
00111
00124
00125 void InvokeChangeSelectedColor(const QColor &color);
00126
00139
00140 void InvokeUpdateColorSelector(const QColor &color);
00141
00154
00155 void TransferImageUpdated(const QImage &image);
00156
00157 public slots:
00158 void ChangeSelectedColor(const QColor &color){emit InvokeChangeSelectedColor(color);}
00159
00170
00171 void PointsChanged();
00172
00185
00186 void SaveConfig(QString filename);
00187
00200
00201 void LoadConfig(QString filename);
00202 };
00203
00204 #endif // TRANSFERWIDGET_H