QwtPanner Class Reference

QwtPanner provides panning of a widget. More...

`#include <qwt_panner.h>`

Inheritance diagram for QwtPanner:
[legend]

## Signals

void | panned (int dx, int dy)
void | moved (int dx, int dy)

## Public Member Functions

| QwtPanner (QWidget *parent)
virtual | ~QwtPanner ()
| Destructor.
void | setEnabled (bool)
| En/disable the panner. More...
bool | isEnabled () const
void | setMouseButton (Qt::MouseButton, Qt::KeyboardModifiers=Qt::NoModifier)
void | getMouseButton (Qt::MouseButton &button, Qt::KeyboardModifiers &) const
| Get mouse button and modifiers used for panning.
void | setAbortKey (int key, Qt::KeyboardModifiers=Qt::NoModifier)
void | getAbortKey (int &key, Qt::KeyboardModifiers &) const
| Get the abort key and modifiers.
void | setCursor (const QCursor &)
const QCursor | cursor () const
void | setOrientations (Qt::Orientations)
Qt::Orientations | orientations () const
| Return the orientation, where paning is enabled.
bool | isOrientationEnabled (Qt::Orientation) const
virtual bool | eventFilter (QObject *, QEvent *)
| Event filter. More...

## Protected Member Functions

virtual void | widgetMousePressEvent (QMouseEvent *)
virtual void | widgetMouseReleaseEvent (QMouseEvent *)
virtual void | widgetMouseMoveEvent (QMouseEvent *)
virtual void | widgetKeyPressEvent (QKeyEvent *)
virtual void | widgetKeyReleaseEvent (QKeyEvent *)
virtual void | paintEvent (QPaintEvent *)
| Paint event. More...
virtual QBitmap | contentsMask () const
| Calculate a mask for the contents of the panned widget. More...
virtual QPixmap | grab () const

## Detailed Description

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.

## Constructor & Destructor Documentation

## QwtPanner()

QwtPanner::QwtPanner | ( | QWidget * | parent | ) |

Creates an panner that is enabled for the left mouse button.

Parameters

  parent | Parent widget to be panned

## Member Function Documentation

## contentsMask()

QBitmap QwtPanner::contentsMask | ( |  | ) | const

protected virtual

Calculate a mask for the contents of the panned widget.

Sometimes only parts of the contents of a widget should be panned. F.e. for a widget with a styled background with rounded borders only the area inside of the border should be panned.

Returns
  An empty bitmap, indicating no mask

Reimplemented in QwtPlotPanner.

## cursor()

const QCursor QwtPanner::cursor | ( |  | ) | const

Returns
  Cursor that is active while panning

See also
  setCursor()

## eventFilter()

bool QwtPanner::eventFilter | ( | QObject * | object,
|  | QEvent * | event
| ) |  |

virtual

Event filter.

When isEnabled() is true mouse events of the observed widget are filtered.

Parameters

  object | Object to be filtered
  event | Event

Returns
  Always false, beside for paint events for the parent widget.

See also
  widgetMousePressEvent(), widgetMouseReleaseEvent(), widgetMouseMoveEvent()

## grab()

QPixmap QwtPanner::grab | ( |  | ) | const

protected virtual

Grab the widget into a pixmap.

Returns
  Grabbed pixmap

Reimplemented in QwtPlotPanner.

## isEnabled()

bool QwtPanner::isEnabled | ( |  | ) | const

Returns
  true when enabled, false otherwise

See also
  setEnabled, eventFilter()

## isOrientationEnabled()

bool QwtPanner::isOrientationEnabled | ( | Qt::Orientation | o | ) | const

Returns
  True if an orientation is enabled

See also
  orientations(), setOrientations()

## moved

void QwtPanner::moved | ( | int | dx,
|  | int | dy
| ) |  |

signal

Signal emitted, while the widget moved, but panning is not finished.

Parameters

  dx | Offset in horizontal direction
  dy | Offset in vertical direction

## paintEvent()

void QwtPanner::paintEvent | ( | QPaintEvent * | event | ) |

protected virtual

Paint event.

Repaint the grabbed pixmap on its current position and fill the empty spaces by the background of the parent widget.

Parameters

  event | Paint event

## panned

void QwtPanner::panned | ( | int | dx,
|  | int | dy
| ) |  |

signal

Signal emitted, when panning is done

Parameters

  dx | Offset in horizontal direction
  dy | Offset in vertical direction

## setAbortKey()

void QwtPanner::setAbortKey | ( | int | key,
|  | Qt::KeyboardModifiers | modifiers = `Qt::NoModifier`
| ) |  |

Change the abort key The defaults are Qt::Key_Escape and Qt::NoModifiers

Parameters

  key | Key ( See Qt::Keycode )
  modifiers | Keyboard modifiers

## setCursor()

void QwtPanner::setCursor | ( | const QCursor & | cursor | ) |

Change the cursor, that is active while panning The default is the cursor of the parent widget.

Parameters

  cursor | New cursor

See also
  setCursor()

## setEnabled()

void QwtPanner::setEnabled | ( | bool | on | ) |

En/disable the panner.

When enabled is true an event filter is installed for the observed widget, otherwise the event filter is removed.

Parameters

  on | true or false

See also
  isEnabled(), eventFilter()

## setMouseButton()

void QwtPanner::setMouseButton | ( | Qt::MouseButton | button,
|  | Qt::KeyboardModifiers | modifiers = `Qt::NoModifier`
| ) |  |

Change the mouse button and modifiers used for panning The defaults are Qt::LeftButton and Qt::NoModifier

## setOrientations()

void QwtPanner::setOrientations | ( | Qt::Orientations | o | ) |

Set the orientations, where panning is enabled The default value is in both directions: Qt::Horizontal | Qt::Vertical

/param o Orientation

## widgetKeyPressEvent()

void QwtPanner::widgetKeyPressEvent | ( | QKeyEvent * | keyEvent | ) |

protected virtual

Handle a key press event for the observed widget.

Parameters

  keyEvent | Key event

See also
  eventFilter(), widgetKeyReleaseEvent()

## widgetKeyReleaseEvent()

void QwtPanner::widgetKeyReleaseEvent | ( | QKeyEvent * | keyEvent | ) |

protected virtual

Handle a key release event for the observed widget.

Parameters

  keyEvent | Key event

See also
  eventFilter(), widgetKeyReleaseEvent()

## widgetMouseMoveEvent()

void QwtPanner::widgetMouseMoveEvent | ( | QMouseEvent * | mouseEvent | ) |

protected virtual

Handle a mouse move event for the observed widget.

Parameters

  mouseEvent | Mouse event

See also
  eventFilter(), widgetMousePressEvent(), widgetMouseReleaseEvent()

## widgetMousePressEvent()

void QwtPanner::widgetMousePressEvent | ( | QMouseEvent * | mouseEvent | ) |

protected virtual

Handle a mouse press event for the observed widget.

Parameters

  mouseEvent | Mouse event

See also
  eventFilter(), widgetMouseReleaseEvent(), widgetMouseMoveEvent(),

## widgetMouseReleaseEvent()

void QwtPanner::widgetMouseReleaseEvent | ( | QMouseEvent * | mouseEvent | ) |

protected virtual

Handle a mouse release event for the observed widget.

Parameters

  mouseEvent | Mouse event

See also
  eventFilter(), widgetMousePressEvent(), widgetMouseMoveEvent(),