OSDN Git Service

draggable image.
authorikemo <ikemo@56b19765-1e22-0410-a548-a0f45d66c51a>
Tue, 21 Dec 2004 15:34:51 +0000 (15:34 +0000)
committerikemo <ikemo@56b19765-1e22-0410-a548-a0f45d66c51a>
Tue, 21 Dec 2004 15:34:51 +0000 (15:34 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/kita/kita/trunk@1597 56b19765-1e22-0410-a548-a0f45d66c51a

kita/src/part/kitaimgview.cpp
kita/src/part/kitaimgview.h

index 5c254c5..7a3d1aa 100644 (file)
@@ -227,10 +227,25 @@ void KitaImgView::contentsMousePressEvent( QMouseEvent * e )
         slotPopupMenu( dummy, e->globalPos() );
         return ;
     }
+    else if ( e->button() & Qt::LeftButton ) {
+        m_dragx = e->globalX();
+        m_dragy = e->globalY();        
+    }
 
     QScrollView::contentsMousePressEvent( e );
 }
 
+/* Note that e->button() is always NoButton. */ /* virtual protected */
+void KitaImgView::contentsMouseMoveEvent( QMouseEvent * e )
+{
+    /* drag & scroll */
+    int dx = m_dragx - e->globalX();
+    int dy = m_dragy - e->globalY();
+    scrollBy( dx, dy );
+    m_dragx = e->globalX();
+    m_dragy = e->globalY();        
+}
+
 
 /* private */
 bool KitaImgView::resizeImage()
index 4527d79..612a694 100644 (file)
@@ -42,6 +42,8 @@ class KitaImgView: public QScrollView
     int m_custom_ht;
     int m_imgwd;
     int m_imght;
+    int m_dragx;
+    int m_dragy;
 
 public:
     KitaImgView( const KURL& url, const KURL& datURL, KActionCollection* action, QWidget* parent, const char* name, WFlags fl );
@@ -64,6 +66,7 @@ protected:
     virtual void resizeEvent( QResizeEvent * e );
     virtual void drawContents( QPainter * p, int clipx, int clipy, int clipw, int cliph );
     virtual void contentsMousePressEvent( QMouseEvent * e );
+    virtual void contentsMouseMoveEvent( QMouseEvent * e );
 
 private:
     bool resizeImage();