libkdepim
kpixmapregionselectorwidget.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __KPIXMAPREGIONSELECTORWIDGET_H__
00023 #define __KPIXMAPREGIONSELECTORWIDGET_H__
00024
00025 #include <qvbox.h>
00026 #include <qpixmap.h>
00027 #include <qrect.h>
00028 #include <qlabel.h>
00029 #include <kimageeffect.h>
00030
00031 class KPopupMenu;
00032
00033 namespace KPIM {
00034
00047 class KPixmapRegionSelectorWidget : public QWidget
00048 {
00049 Q_OBJECT
00050
00051 public:
00055 KPixmapRegionSelectorWidget( QWidget *parent = 0L, const char *name=0L);
00056
00060 ~KPixmapRegionSelectorWidget();
00061
00066 void setPixmap( const QPixmap &pixmap );
00067
00072 QPixmap pixmap() const { return m_unzoomedPixmap; };
00073
00077 void setSelectedRegion(const QRect &rect);
00078
00082 QRect selectedRegion() const;
00083
00087 QRect unzoomedSelectedRegion() const;
00088
00092 void resetSelection();
00093
00098 QImage selectedImage() const;
00099
00105 void setSelectionAspectRatio(int width, int height);
00106
00112 void setFreeSelectionAspectRatio();
00113
00119 void setMaximumWidgetSize( int width, int height );
00120
00127 void rotate(KImageEffect::RotateDirection direction);
00128
00129 public slots:
00133 void rotateClockwise();
00137 void rotateCounterclockwise();
00138
00139 protected:
00143 virtual KPopupMenu *createPopupMenu();
00144
00145
00146 private:
00147 bool eventFilter(QObject *obj, QEvent *ev);
00148
00153 void updatePixmap();
00154
00155 QRect calcSelectionRectangle( const QPoint &startPoint, const QPoint & endPoint );
00156
00157 enum CursorState { None=0, Resizing, Moving };
00158 CursorState m_state;
00159
00160 QPixmap m_unzoomedPixmap;
00161 QPixmap m_originalPixmap;
00162 QPixmap m_linedPixmap;
00163 QRect m_selectedRegion;
00164 QLabel *m_label;
00165
00166 QPoint m_tempFirstClick;
00167 double m_forcedAspectRatio;
00168
00169 int m_maxWidth, m_maxHeight;
00170 double m_zoomFactor;
00171 };
00172
00173 }
00174
00175 #endif
|