author | alwin <alwin> | 2004-04-14 19:00:02 (UTC) |
---|---|---|
committer | alwin <alwin> | 2004-04-14 19:00:02 (UTC) |
commit | 26e89198404dba70a3bea2b337f6677e6b177bb2 (patch) (side-by-side diff) | |
tree | c55849b61ff27c121fc3cc8e6954d1179323af38 /noncore/graphics/opie-eye/lib/oimagezoomer.cpp | |
parent | b3156cadba8f4a397ac7d65947cdb7a33b5c3b72 (diff) | |
download | opie-26e89198404dba70a3bea2b337f6677e6b177bb2.zip opie-26e89198404dba70a3bea2b337f6677e6b177bb2.tar.gz opie-26e89198404dba70a3bea2b337f6677e6b177bb2.tar.bz2 |
mostly all basics done
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,14 +1,16 @@ #include "oimagezoomer.h" +#include <opie2/odebug.h> + #include <qimage.h> #include <qpixmap.h> #include <qpainter.h> #include <qrect.h> #include <qpoint.h> #include <qsize.h> namespace Opie { namespace MM { /** * \brief The most simple c'tor @@ -77,24 +79,25 @@ OImageZoomer::OImageZoomer( const QSize& pSize, const QSize& vSize, QWidget* par : QFrame( par, name, fl ), m_imgSize( pSize ),m_visSize( vSize ) { init(); } /** * d'tor */ OImageZoomer::~OImageZoomer() { } void OImageZoomer::init() { + m_mevent = false; setFrameStyle( Panel | Sunken ); } /** * \brief set the page/image size * Tell us the QSize of the Data you show to the user. We need this * to do the calculations * * @param size The size of the stuff you want to zoom on */ void OImageZoomer::setImageSize( const QSize& size ) { @@ -186,34 +189,45 @@ void OImageZoomer::drawContents( QPainter* p ) { int x = (c.width()*m_visPt.x())/len + c.x(); int w = (c.width()*m_visSize.width() )/len + c.x(); if ( w > c.width() ) w = c.width(); len = m_imgSize.height(); int y = (c.height()*m_visPt.y() )/len + c.y(); int h = (c.height()*m_visSize.height() )/len + c.y(); if ( h > c.height() ) h = c.height(); 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 ) { int mx, my; mx = ev->x(); 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; } } } |