123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
- * Qwt Widget Library
- * Copyright (C) 1997 Josef Wilgen
- * Copyright (C) 2002 Uwe Rathmann
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the Qwt License, Version 1.0
- *****************************************************************************/
- #ifndef QWT_PANNER_H
- #define QWT_PANNER_H 1
- #include "qwt_global.h"
- #include <qwidget.h>
- #include <qpixmap.h>
- class QCursor;
- /*!
- \brief QwtPanner provides panning of a widget
- QwtPanner grabs the contents of a widget, that can be dragged
- in all directions. The offset between the start and the end position
- is emitted by the panned signal.
- QwtPanner grabs the content of the widget into a pixmap and moves
- the pixmap around, without initiating any repaint events for the widget.
- Areas, that are not part of content are not painted while panning.
- This makes panning fast enough for widgets, where
- repaints are too slow for mouse movements.
- For widgets, where repaints are very fast it might be better to
- implement panning manually by mapping mouse events into paint events.
- */
- class QWT_EXPORT QwtPanner: public QWidget
- {
- Q_OBJECT
- public:
- QwtPanner( QWidget* parent );
- virtual ~QwtPanner();
- void setEnabled( bool );
- bool isEnabled() const;
- void setMouseButton( Qt::MouseButton,
- Qt::KeyboardModifiers = Qt::NoModifier );
- void getMouseButton( Qt::MouseButton &button,
- Qt::KeyboardModifiers & ) const;
- void setAbortKey( int key, Qt::KeyboardModifiers = Qt::NoModifier );
- void getAbortKey( int &key, Qt::KeyboardModifiers & ) const;
- void setCursor( const QCursor & );
- const QCursor cursor() const;
- void setOrientations( Qt::Orientations );
- Qt::Orientations orientations() const;
- bool isOrientationEnabled( Qt::Orientation ) const;
- virtual bool eventFilter( QObject *, QEvent * );
- Q_SIGNALS:
- /*!
- Signal emitted, when panning is done
- \param dx Offset in horizontal direction
- \param dy Offset in vertical direction
- */
- void panned( int dx, int dy );
- /*!
- Signal emitted, while the widget moved, but panning
- is not finished.
- \param dx Offset in horizontal direction
- \param dy Offset in vertical direction
- */
- void moved( int dx, int dy );
- protected:
- virtual void widgetMousePressEvent( QMouseEvent * );
- virtual void widgetMouseReleaseEvent( QMouseEvent * );
- virtual void widgetMouseMoveEvent( QMouseEvent * );
- virtual void widgetKeyPressEvent( QKeyEvent * );
- virtual void widgetKeyReleaseEvent( QKeyEvent * );
- virtual void paintEvent( QPaintEvent * );
- virtual QBitmap contentsMask() const;
- virtual QPixmap grab() const;
- private:
- #ifndef QT_NO_CURSOR
- void showCursor( bool );
- #endif
- class PrivateData;
- PrivateData *d_data;
- };
- #endif
|