地面站终端 App
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

104 lines
2.9 KiB

15 years ago
/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
* Qwt Widget Library
* Copyright (C) 1997 Josef Wilgen
* Copyright (C) 2002 Uwe Rathmann
*
15 years ago
* 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>
15 years ago
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.
15 years ago
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.
15 years ago
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 );
15 years ago
virtual ~QwtPanner();
void setEnabled( bool );
15 years ago
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;
15 years ago
void setCursor( const QCursor & );
15 years ago
const QCursor cursor() const;
void setOrientations( Qt::Orientations );
15 years ago
Qt::Orientations orientations() const;
bool isOrientationEnabled( Qt::Orientation ) const;
15 years ago
virtual bool eventFilter( QObject *, QEvent * );
15 years ago
Q_SIGNALS:
15 years ago
/*!
Signal emitted, when panning is done
\param dx Offset in horizontal direction
\param dy Offset in vertical direction
*/
void panned( int dx, int dy );
15 years ago
/*!
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 );
15 years ago
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 * );
15 years ago
virtual QBitmap contentsMask() const;
virtual QPixmap grab() const;
15 years ago
private:
#ifndef QT_NO_CURSOR
void showCursor( bool );
15 years ago
#endif
class PrivateData;
PrivateData *d_data;
};
#endif