00001 #ifndef __PIXMAPWIDGET_HPP__ 00002 #define __PIXMAPWIDGET_HPP__ 00003 00004 /* 00005 # Copyright (c) 2010 Alexandre LAURENT 00006 # 00007 # Permission is hereby granted, free of charge, to any person obtaining a copy 00008 # of this software and associated documentation files (the "Software"), to deal 00009 # in the Software without restriction, including without limitation the rights 00010 # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 00011 # copies of the Software, and to permit persons to whom the Software is 00012 # furnished to do so, subject to the following conditions: 00013 # 00014 # The above copyright notice and this permission notice shall be included in 00015 # all copies or substantial portions of the Software. 00016 # 00017 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 00018 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 00019 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 00020 # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 00021 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 00022 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 00023 # THE SOFTWARE. 00024 */ 00029 #include <QWidget> 00030 #include <QImage> 00031 00032 class QPaintEvent; 00033 class QMouseEvent; 00034 class QKeyEvent; 00035 00040 class PixmapWidget : public QWidget 00041 { 00042 Q_OBJECT 00043 00044 private: 00045 00046 QImage* img; 00048 bool clicked; 00049 QPoint startMousePosition; 00050 QPoint actualMousePosition; 00052 // Gestion de la souris pour le zoom 00057 void mousePressEvent(QMouseEvent* event); 00058 00063 void mouseMoveEvent(QMouseEvent* event); 00064 00069 void mouseReleaseEvent(QMouseEvent* event); 00070 00071 // Pour l'annulation de la selection 00076 void keyReleaseEvent(QKeyEvent* event); 00077 00078 protected: 00079 00084 void paintEvent(QPaintEvent* event); 00085 00086 00087 signals: 00088 00092 void zoom(QPoint start, QPoint end); 00093 00097 void unzoom(); 00098 00099 public: 00100 00106 PixmapWidget(QImage* image, QWidget* parent=0); 00107 00111 ~PixmapWidget(void); 00112 00113 //void setPixmap(QPixmap* newPixmap) { pix = newPixmap; }; 00114 }; 00115 00116 #endif