00001 #ifndef __WIDGETIMAGE_HPP__
00002 #define __WIDGETIMAGE_HPP__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include <QScrollArea>
00027 #include <QImage>
00028 #include <QPixmap>
00029 #include <QLabel>
00030 #include <QPoint>
00031 #include <QVector>
00032 #include <QColor>
00033
00034 #include "global.hpp"
00035
00036 class PixmapWidget;
00037 class QPaintEvent;
00038
00042 class WidgetImage : public QScrollArea
00043 {
00044 Q_OBJECT
00045
00046 private:
00047
00048 QImage saveImg;
00049 QImage img;
00050
00051
00052 Params params;
00053 ParamsCurve paramsCurve;
00055 PixmapWidget* pw;
00056
00057
00058 double gamma;
00059 double saveGamma;
00062 public slots:
00063
00067 void gammaChanged(double value);
00068
00072 void pushSignalZoom(QPoint start, QPoint end);
00073
00077 void pushSignalUnZoom();
00078
00082 void pushSignalZoomCurve(QPoint start, QPoint end);
00083
00087 void pushSignalUnZoomCurve();
00088
00092 void setColourTable(QVector<QRgb> newTable);
00093
00094 signals:
00098 void zoom(QPoint start, QPoint end, Params params, QVector<QRgb> table);
00099
00103 void zoom(QPoint start, QPoint end, ParamsCurve params, QVector<QRgb> table);
00104
00108 void unzoom(Params params, QVector<QRgb> table);
00109
00113 void unzoom(ParamsCurve params, QVector<QRgb> table);
00114
00115 public:
00116
00124 WidgetImage(const unsigned char* const img, const QVector<QRgb>& table, const Params params, QWidget* parent = 0);
00125
00133 WidgetImage(const unsigned char* const img, const QVector<QRgb>& table, const ParamsCurve params, QWidget* parent = 0);
00134
00138 ~WidgetImage(void);
00139
00144 const QImage& getImage(void)const { return img; }
00145
00149 void needRestore(void);
00150
00154 void needSave(void);
00155
00160 QVector<QRgb> getColourTable(void)const { return img.colorTable(); };
00161 };
00162
00163 #endif