Qwt User's Guide  6.2.0
qwt_magnifier.h
1 /******************************************************************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_MAGNIFIER_H
11 #define QWT_MAGNIFIER_H
12 
13 #include "qwt_global.h"
14 #include <qobject.h>
15 
16 class QWidget;
17 class QMouseEvent;
18 class QWheelEvent;
19 class QKeyEvent;
20 
27 class QWT_EXPORT QwtMagnifier : public QObject
28 {
29  Q_OBJECT
30 
31  public:
32  explicit QwtMagnifier( QWidget* );
33  virtual ~QwtMagnifier();
34 
35  QWidget* parentWidget();
36  const QWidget* parentWidget() const;
37 
38  void setEnabled( bool );
39  bool isEnabled() const;
40 
41  // mouse
42  void setMouseFactor( double );
43  double mouseFactor() const;
44 
45  void setMouseButton( Qt::MouseButton, Qt::KeyboardModifiers = Qt::NoModifier );
46  void getMouseButton( Qt::MouseButton&, Qt::KeyboardModifiers& ) const;
47 
48  // mouse wheel
49  void setWheelFactor( double );
50  double wheelFactor() const;
51 
52  void setWheelModifiers( Qt::KeyboardModifiers );
53  Qt::KeyboardModifiers wheelModifiers() const;
54 
55  // keyboard
56  void setKeyFactor( double );
57  double keyFactor() const;
58 
59  void setZoomInKey( int key, Qt::KeyboardModifiers = Qt::NoModifier );
60  void getZoomInKey( int& key, Qt::KeyboardModifiers& ) const;
61 
62  void setZoomOutKey( int key, Qt::KeyboardModifiers = Qt::NoModifier );
63  void getZoomOutKey( int& key, Qt::KeyboardModifiers& ) const;
64 
65  virtual bool eventFilter( QObject*, QEvent* ) QWT_OVERRIDE;
66 
67  protected:
72  virtual void rescale( double factor ) = 0;
73 
74  virtual void widgetMousePressEvent( QMouseEvent* );
75  virtual void widgetMouseReleaseEvent( QMouseEvent* );
76  virtual void widgetMouseMoveEvent( QMouseEvent* );
77  virtual void widgetWheelEvent( QWheelEvent* );
78  virtual void widgetKeyPressEvent( QKeyEvent* );
79  virtual void widgetKeyReleaseEvent( QKeyEvent* );
80 
81  private:
82  class PrivateData;
83  PrivateData* m_data;
84 };
85 
86 #endif
QwtMagnifier provides zooming, by magnifying in steps.
Definition: qwt_magnifier.h:28
virtual void rescale(double factor)=0