Diffstat (limited to 'noncore/graphics/opie-eye/lib/oimagezoomer.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/graphics/opie-eye/lib/oimagezoomer.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/noncore/graphics/opie-eye/lib/oimagezoomer.cpp b/noncore/graphics/opie-eye/lib/oimagezoomer.cpp index 00b93e2..d1eec67 100644 --- a/noncore/graphics/opie-eye/lib/oimagezoomer.cpp +++ b/noncore/graphics/opie-eye/lib/oimagezoomer.cpp | |||
@@ -1,10 +1,12 @@ | |||
1 | #include "oimagezoomer.h" | 1 | #include "oimagezoomer.h" |
2 | 2 | ||
3 | #include <opie2/odebug.h> | ||
4 | |||
3 | #include <qimage.h> | 5 | #include <qimage.h> |
4 | #include <qpixmap.h> | 6 | #include <qpixmap.h> |
5 | #include <qpainter.h> | 7 | #include <qpainter.h> |
6 | #include <qrect.h> | 8 | #include <qrect.h> |
7 | #include <qpoint.h> | 9 | #include <qpoint.h> |
8 | #include <qsize.h> | 10 | #include <qsize.h> |
9 | 11 | ||
10 | namespace Opie { | 12 | namespace Opie { |
@@ -81,16 +83,17 @@ OImageZoomer::OImageZoomer( const QSize& pSize, const QSize& vSize, QWidget* par | |||
81 | /** | 83 | /** |
82 | * d'tor | 84 | * d'tor |
83 | */ | 85 | */ |
84 | OImageZoomer::~OImageZoomer() { | 86 | OImageZoomer::~OImageZoomer() { |
85 | 87 | ||
86 | } | 88 | } |
87 | 89 | ||
88 | void OImageZoomer::init() { | 90 | void OImageZoomer::init() { |
91 | m_mevent = false; | ||
89 | setFrameStyle( Panel | Sunken ); | 92 | setFrameStyle( Panel | Sunken ); |
90 | } | 93 | } |
91 | 94 | ||
92 | 95 | ||
93 | /** | 96 | /** |
94 | * \brief set the page/image size | 97 | * \brief set the page/image size |
95 | * Tell us the QSize of the Data you show to the user. We need this | 98 | * Tell us the QSize of the Data you show to the user. We need this |
96 | * to do the calculations | 99 | * to do the calculations |
@@ -190,30 +193,41 @@ void OImageZoomer::drawContents( QPainter* p ) { | |||
190 | len = m_imgSize.height(); | 193 | len = m_imgSize.height(); |
191 | int y = (c.height()*m_visPt.y() )/len + c.y(); | 194 | int y = (c.height()*m_visPt.y() )/len + c.y(); |
192 | int h = (c.height()*m_visSize.height() )/len + c.y(); | 195 | int h = (c.height()*m_visSize.height() )/len + c.y(); |
193 | if ( h > c.height() ) h = c.height(); | 196 | if ( h > c.height() ) h = c.height(); |
194 | 197 | ||
195 | p->drawRect( x, y, w, h ); | 198 | p->drawRect( x, y, w, h ); |
196 | } | 199 | } |
197 | 200 | ||
198 | void OImageZoomer::mousePressEvent( QMouseEvent* ) { | 201 | void OImageZoomer::mousePressEvent( QMouseEvent*ev) { |
199 | m_mouseX = m_mouseY = -1; | 202 | m_mouseX = m_mouseY = -1; |
203 | m_mevent = true; | ||
204 | } | ||
205 | |||
206 | void OImageZoomer::mouseReleaseEvent( QMouseEvent*ev) { | ||
207 | if (!m_mevent) return; | ||
208 | int mx, my; | ||
209 | mx = ev->x(); | ||
210 | my = ev->y(); | ||
211 | int diffx = (mx) * m_imgSize.width() / width(); | ||
212 | int diffy = (my) * m_imgSize.height() / height(); | ||
213 | emit zoomArea(diffx,diffy); | ||
200 | } | 214 | } |
201 | 215 | ||
202 | void OImageZoomer::mouseMoveEvent( QMouseEvent* ev ) { | 216 | void OImageZoomer::mouseMoveEvent( QMouseEvent* ev ) { |
203 | int mx, my; | 217 | int mx, my; |
204 | mx = ev->x(); | 218 | mx = ev->x(); |
205 | my = ev->y(); | 219 | my = ev->y(); |
206 | 220 | ||
207 | if ( m_mouseX != -1 && m_mouseY != -1 ) { | 221 | if ( m_mouseX != -1 && m_mouseY != -1 ) { |
222 | m_mevent = false; | ||
208 | int diffx = ( mx - m_mouseX ) * m_imgSize.width() / width(); | 223 | int diffx = ( mx - m_mouseX ) * m_imgSize.width() / width(); |
209 | int diffy = ( my - m_mouseY ) * m_imgSize.height() / height(); | 224 | int diffy = ( my - m_mouseY ) * m_imgSize.height() / height(); |
210 | emit zoomAreaRel( diffx, diffy ); | 225 | emit zoomAreaRel( diffx, diffy ); |
211 | emit zoomArea(m_visPt.x()+diffx, m_visPt.y()+diffy ); | ||
212 | } | 226 | } |
213 | m_mouseX = mx; | 227 | m_mouseX = mx; |
214 | m_mouseY = my; | 228 | m_mouseY = my; |
215 | } | 229 | } |
216 | 230 | ||
217 | 231 | ||
218 | } | 232 | } |
219 | } | 233 | } |