libtdepim

kpixmapregionselectorwidget.h
1 /*
2  This file is part of libtdepim.
3 
4  Copyright (C) 2004 Antonio Larrosa <larrosa@kde.org
5 
6  This library is free software; you can redistribute it and/or
7  modify it under the terms of the GNU Library General Public
8  License as published by the Free Software Foundation; either
9  version 2 of the License, or (at your option) any later version.
10 
11  This library is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  Library General Public License for more details.
15 
16  You should have received a copy of the GNU Library General Public License
17  along with this library; see the file COPYING.LIB. If not, write to
18  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19  Boston, MA 02110-1301, USA.
20 */
21 
22 #ifndef __KPIXMAPREGIONSELECTORWIDGET_H__
23 #define __KPIXMAPREGIONSELECTORWIDGET_H__
24 
25 #include <tqvbox.h>
26 #include <tqpixmap.h>
27 #include <tqrect.h>
28 #include <tqlabel.h>
29 #include <kimageeffect.h>
30 
31 class TDEPopupMenu;
32 
33 namespace KPIM {
34 
47 class KPixmapRegionSelectorWidget : public TQWidget
48 {
49  Q_OBJECT
50 
51 
52 public:
56  KPixmapRegionSelectorWidget( TQWidget *parent = 0L, const char *name=0L);
57 
62 
67  void setPixmap( const TQPixmap &pixmap );
68 
73  TQPixmap pixmap() const { return m_unzoomedPixmap; }
74 
78  void setSelectedRegion(const TQRect &rect);
79 
83  TQRect selectedRegion() const;
84 
88  TQRect unzoomedSelectedRegion() const;
89 
93  void resetSelection();
94 
99  TQImage selectedImage() const;
100 
106  void setSelectionAspectRatio(int width, int height);
107 
114 
120  void setMaximumWidgetSize( int width, int height );
121 
128  void rotate(KImageEffect::RotateDirection direction);
129 
130 public slots:
134  void rotateClockwise();
138  void rotateCounterclockwise();
139 
140 protected:
144  virtual TDEPopupMenu *createPopupMenu();
145 
146 
147 private:
148  bool eventFilter(TQObject *obj, TQEvent *ev);
149 
154  void updatePixmap();
155 
156  TQRect calcSelectionRectangle( const TQPoint &startPoint, const TQPoint & endPoint );
157 
158  enum CursorState { None=0, Resizing, Moving };
159  CursorState m_state;
160 
161  TQPixmap m_unzoomedPixmap;
162  TQPixmap m_originalPixmap;
163  TQPixmap m_linedPixmap;
164  TQRect m_selectedRegion;
165  TQLabel *m_label;
166 
167  TQPoint m_tempFirstClick;
168  double m_forcedAspectRatio;
169 
170  int m_maxWidth, m_maxHeight;
171  double m_zoomFactor;
172 };
173 
174 } // for namespace
175 
176 #endif
void resetSelection()
Resets the selection to use the whole image.
TQRect unzoomedSelectedRegion() const
Returns the selected region ( in unzoomed, original pixmap coordinates )
void setMaximumWidgetSize(int width, int height)
Sets the maximum size for the widget.
TQRect selectedRegion() const
Returns the selected region ( in zoomed pixmap coordinates )
void setSelectedRegion(const TQRect &rect)
Sets the selected region to be rect (in zoomed pixmap coordinates)
void rotate(KImageEffect::RotateDirection direction)
Rotates the image as specified by the direction parameter, also tries to rotate the selected region s...
void setSelectionAspectRatio(int width, int height)
Sets the aspect ration that the selected subimage should have.
virtual TDEPopupMenu * createPopupMenu()
Creates a TDEPopupMenu with the menu that appears when clicking with the right button on the label...
void setFreeSelectionAspectRatio()
Allows the user to do a selection which has any aspect ratio.
KPixmapRegionSelectorWidget(TQWidget *parent=0L, const char *name=0L)
Constructor for a KPixmapRegionSelectorWidget.
void rotateClockwise()
Rotates the current image 90º clockwise.
~KPixmapRegionSelectorWidget()
Destructor for a KPixmapRegionSelectorWidget.
TDEPIM classes for drag and drop of mails.
void setPixmap(const TQPixmap &pixmap)
Sets the pixmap which will be shown for the user to select a region from.
void rotateCounterclockwise()
Rotates the current image 90º counterclockwise.
KPixmapRegionSelectorWidget is a widget that shows a picture and provides the user with a friendly wa...