Chris@57: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ cannam@45: cannam@45: /* Chris@57: EasyMercurial Chris@57: Chris@57: Based on HgExplorer by Jari Korhonen Chris@57: Copyright (c) 2010 Jari Korhonen Chris@57: Copyright (c) 2010 Chris Cannam Chris@57: Copyright (c) 2010 Queen Mary, University of London Chris@57: cannam@45: This program is free software; you can redistribute it and/or cannam@45: modify it under the terms of the GNU General Public License as cannam@45: published by the Free Software Foundation; either version 2 of the cannam@45: License, or (at your option) any later version. See the file cannam@45: COPYING included with this distribution for more information. cannam@45: */ cannam@45: Chris@57: #ifndef _PANNER_H_ Chris@57: #define _PANNER_H_ cannam@45: cannam@45: #include cannam@45: cannam@45: class Panned; cannam@45: cannam@45: class Panner : public QGraphicsView cannam@45: { cannam@45: Q_OBJECT cannam@45: cannam@45: public: cannam@45: Panner(); cannam@45: virtual ~Panner() { } cannam@45: cannam@45: virtual void setScene(QGraphicsScene *); cannam@45: cannam@45: void connectToPanned(Panned *p); cannam@45: cannam@45: signals: cannam@45: void pannedRectChanged(QRectF); cannam@45: void pannerChanged(QRectF); cannam@45: void zoomIn(); cannam@45: void zoomOut(); cannam@45: cannam@45: public slots: cannam@45: void slotSetPannedRect(QRectF); cannam@45: cannam@45: protected slots: cannam@45: void slotSceneRectChanged(const QRectF &); cannam@45: cannam@45: protected: cannam@45: QRectF m_pannedRect; cannam@45: cannam@45: void moveTo(QPoint); cannam@45: cannam@45: virtual void paintEvent(QPaintEvent *); cannam@45: virtual void mousePressEvent(QMouseEvent *e); cannam@45: virtual void mouseMoveEvent(QMouseEvent *e); cannam@45: virtual void mouseReleaseEvent(QMouseEvent *e); cannam@45: virtual void mouseDoubleClickEvent(QMouseEvent *e); cannam@45: virtual void wheelEvent(QWheelEvent *e); cannam@45: cannam@45: virtual void resizeEvent(QResizeEvent *); cannam@45: cannam@45: virtual void updateScene(const QList &); cannam@45: virtual void drawItems(QPainter *, int, QGraphicsItem *[], cannam@45: const QStyleOptionGraphicsItem []); cannam@45: cannam@45: bool m_clicked; cannam@45: QRectF m_clickedRect; cannam@45: QPoint m_clickedPoint; cannam@45: cannam@45: QPixmap m_cache; cannam@45: }; cannam@45: cannam@45: #endif cannam@45: