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.
86 lines
2.4 KiB
86 lines
2.4 KiB
/* -*- 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_MAGNIFIER_H |
|
#define QWT_MAGNIFIER_H 1 |
|
|
|
#include "qwt_global.h" |
|
#include <qobject.h> |
|
|
|
class QWidget; |
|
class QMouseEvent; |
|
class QWheelEvent; |
|
class QKeyEvent; |
|
|
|
/*! |
|
\brief QwtMagnifier provides zooming, by magnifying in steps. |
|
|
|
Using QwtMagnifier a plot can be zoomed in/out in steps using |
|
keys, the mouse wheel or moving a mouse button in vertical direction. |
|
*/ |
|
class QWT_EXPORT QwtMagnifier: public QObject |
|
{ |
|
Q_OBJECT |
|
|
|
public: |
|
explicit QwtMagnifier( QWidget * ); |
|
virtual ~QwtMagnifier(); |
|
|
|
QWidget *parentWidget(); |
|
const QWidget *parentWidget() const; |
|
|
|
void setEnabled( bool ); |
|
bool isEnabled() const; |
|
|
|
// mouse |
|
void setMouseFactor( double ); |
|
double mouseFactor() const; |
|
|
|
void setMouseButton( Qt::MouseButton, Qt::KeyboardModifiers = Qt::NoModifier ); |
|
void getMouseButton( Qt::MouseButton &, Qt::KeyboardModifiers & ) const; |
|
|
|
// mouse wheel |
|
void setWheelFactor( double ); |
|
double wheelFactor() const; |
|
|
|
void setWheelModifiers( Qt::KeyboardModifiers ); |
|
Qt::KeyboardModifiers wheelModifiers() const; |
|
|
|
// keyboard |
|
void setKeyFactor( double ); |
|
double keyFactor() const; |
|
|
|
void setZoomInKey( int key, Qt::KeyboardModifiers = Qt::NoModifier ); |
|
void getZoomInKey( int &key, Qt::KeyboardModifiers & ) const; |
|
|
|
void setZoomOutKey( int key, Qt::KeyboardModifiers = Qt::NoModifier ); |
|
void getZoomOutKey( int &key, Qt::KeyboardModifiers & ) const; |
|
|
|
virtual bool eventFilter( QObject *, QEvent * ); |
|
|
|
protected: |
|
/*! |
|
Rescale the parent widget |
|
\param factor Scale factor |
|
*/ |
|
virtual void rescale( double factor ) = 0; |
|
|
|
virtual void widgetMousePressEvent( QMouseEvent * ); |
|
virtual void widgetMouseReleaseEvent( QMouseEvent * ); |
|
virtual void widgetMouseMoveEvent( QMouseEvent * ); |
|
virtual void widgetWheelEvent( QWheelEvent * ); |
|
virtual void widgetKeyPressEvent( QKeyEvent * ); |
|
virtual void widgetKeyReleaseEvent( QKeyEvent * ); |
|
|
|
private: |
|
class PrivateData; |
|
PrivateData *d_data; |
|
}; |
|
|
|
#endif
|
|
|