summaryrefslogtreecommitdiff
path: root/noncore/graphics/opie-eye/lib
authoralwin <alwin>2004-04-14 19:00:02 (UTC)
committer alwin <alwin>2004-04-14 19:00:02 (UTC)
commit26e89198404dba70a3bea2b337f6677e6b177bb2 (patch) (side-by-side diff)
treec55849b61ff27c121fc3cc8e6954d1179323af38 /noncore/graphics/opie-eye/lib
parentb3156cadba8f4a397ac7d65947cdb7a33b5c3b72 (diff)
downloadopie-26e89198404dba70a3bea2b337f6677e6b177bb2.zip
opie-26e89198404dba70a3bea2b337f6677e6b177bb2.tar.gz
opie-26e89198404dba70a3bea2b337f6677e6b177bb2.tar.bz2
mostly all basics done
Diffstat (limited to 'noncore/graphics/opie-eye/lib') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/opie-eye/lib/oimagezoomer.cpp18
-rw-r--r--noncore/graphics/opie-eye/lib/oimagezoomer.h13
2 files changed, 26 insertions, 5 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,5 +1,7 @@
#include "oimagezoomer.h"
+#include <opie2/odebug.h>
+
#include <qimage.h>
#include <qpixmap.h>
#include <qpainter.h>
@@ -86,6 +88,7 @@ OImageZoomer::~OImageZoomer() {
}
void OImageZoomer::init() {
+ m_mevent = false;
setFrameStyle( Panel | Sunken );
}
@@ -195,8 +198,19 @@ void OImageZoomer::drawContents( QPainter* p ) {
p->drawRect( x, y, w, h );
}
-void OImageZoomer::mousePressEvent( QMouseEvent* ) {
+void OImageZoomer::mousePressEvent( QMouseEvent*ev) {
m_mouseX = m_mouseY = -1;
+ m_mevent = true;
+}
+
+void OImageZoomer::mouseReleaseEvent( QMouseEvent*ev) {
+ if (!m_mevent) return;
+ int mx, my;
+ mx = ev->x();
+ my = ev->y();
+ int diffx = (mx) * m_imgSize.width() / width();
+ int diffy = (my) * m_imgSize.height() / height();
+ emit zoomArea(diffx,diffy);
}
void OImageZoomer::mouseMoveEvent( QMouseEvent* ev ) {
@@ -205,10 +219,10 @@ void OImageZoomer::mouseMoveEvent( QMouseEvent* ev ) {
my = ev->y();
if ( m_mouseX != -1 && m_mouseY != -1 ) {
+ m_mevent = false;
int diffx = ( mx - m_mouseX ) * m_imgSize.width() / width();
int diffy = ( my - m_mouseY ) * m_imgSize.height() / height();
emit zoomAreaRel( diffx, diffy );
- emit zoomArea(m_visPt.x()+diffx, m_visPt.y()+diffy );
}
m_mouseX = mx;
m_mouseY = my;
diff --git a/noncore/graphics/opie-eye/lib/oimagezoomer.h b/noncore/graphics/opie-eye/lib/oimagezoomer.h
index 2516c61..0b356c9 100644
--- a/noncore/graphics/opie-eye/lib/oimagezoomer.h
+++ b/noncore/graphics/opie-eye/lib/oimagezoomer.h
@@ -71,7 +71,8 @@ signals:
/**
* Here you get absolute coordinates.
- * This slot will be emitted from within the mouseMoveEvent of this widget.
+ * This slot will be emitted from within the mouseReleaseEvent of this widget.
+ * if no mouse move where done.
* So you may not delete this widget
*
* @param x The absolute X Coordinate to scroll to.
@@ -98,12 +99,17 @@ protected:
* make sure to call these if you reimplememt
* @internal
*/
- void mousePressEvent( QMouseEvent* ev );
+ virtual void mousePressEvent( QMouseEvent* ev );
/**
* make sure to call these if you reimplement
* @internal
*/
- void mouseMoveEvent( QMouseEvent* ev );
+ virtual void mouseMoveEvent( QMouseEvent* ev );
+ /**
+ * make sure to call these if you reimplement
+ * @internal
+ */
+ virtual void mouseReleaseEvent( QMouseEvent* ev );
private:
/**
@@ -114,6 +120,7 @@ private:
QSize m_imgSize, m_visSize;
QPoint m_visPt;
int m_mouseX, m_mouseY;
+ bool m_mevent;
};
/**