# qwt_magnifier.h

    00001 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
    00002  * Qwt Widget Library
    00003  * Copyright (C) 1997   Josef Wilgen
    00004  * Copyright (C) 2002   Uwe Rathmann
    00005  *
    00006  * This library is free software; you can redistribute it and/or
    00007  * modify it under the terms of the Qwt License, Version 1.0
    00008  *****************************************************************************/
    00009
    00010 #ifndef QWT_MAGNIFIER_H
    00011 #define QWT_MAGNIFIER_H 1
    00012
    00013 #include "qwt_global.h"
    00014 #include <qobject.h>
    00015
    00016 class QWidget;
    00017 class QMouseEvent;
    00018 class QWheelEvent;
    00019 class QKeyEvent;
    00020
    00027 class QWT_EXPORT QwtMagnifier: public QObject
    00028 {
    00029     Q_OBJECT
    00030
    00031 public:
    00032     explicit QwtMagnifier( QWidget * );
    00033     virtual ~QwtMagnifier();
    00034
    00035     QWidget *parentWidget();
    00036     const QWidget *parentWidget() const;
    00037
    00038     void setEnabled( bool );
    00039     bool isEnabled() const;
    00040
    00041     // mouse
    00042     void setMouseFactor( double );
    00043     double mouseFactor() const;
    00044
    00045     void setMouseButton( int button, int buttonState = Qt::NoButton );
    00046     void getMouseButton( int &button, int &buttonState ) const;
    00047
    00048     // mouse wheel
    00049     void setWheelFactor( double );
    00050     double wheelFactor() const;
    00051
    00052     void setWheelButtonState( int buttonState );
    00053     int wheelButtonState() const;
    00054
    00055     // keyboard
    00056     void setKeyFactor( double );
    00057     double keyFactor() const;
    00058
    00059     void setZoomInKey( int key, int modifiers );
    00060     void getZoomInKey( int &key, int &modifiers ) const;
    00061
    00062     void setZoomOutKey( int key, int modifiers );
    00063     void getZoomOutKey( int &key, int &modifiers ) const;
    00064
    00065     virtual bool eventFilter( QObject *, QEvent * );
    00066
    00067 protected:
    00072     virtual void rescale( double factor ) = 0;
    00073
    00074     virtual void widgetMousePressEvent( QMouseEvent * );
    00075     virtual void widgetMouseReleaseEvent( QMouseEvent * );
    00076     virtual void widgetMouseMoveEvent( QMouseEvent * );
    00077     virtual void widgetWheelEvent( QWheelEvent * );
    00078     virtual void widgetKeyPressEvent( QKeyEvent * );
    00079     virtual void widgetKeyReleaseEvent( QKeyEvent * );
    00080
    00081 private:
    00082     class PrivateData;
    00083     PrivateData *d_data;
    00084 };
    00085
    00086 #endif