Qwt User's Guide  5.2.3
qwt_arrow_button.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
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_ARROW_BUTTON_H
11 #define QWT_ARROW_BUTTON_H
12 
13 #include <qpushbutton.h>
14 #include "qwt_global.h"
15 
23 class QWT_EXPORT QwtArrowButton : public QPushButton
24 {
25 public:
26  explicit QwtArrowButton (int num, Qt::ArrowType, QWidget *parent = NULL);
27  virtual ~QwtArrowButton();
28 
29  Qt::ArrowType arrowType() const;
30  int num() const;
31 
32  virtual QSize sizeHint() const;
33  virtual QSize minimumSizeHint() const;
34 
35 protected:
36 #if QT_VERSION >= 0x040000
37  virtual void paintEvent(QPaintEvent *event);
38 #endif
39 
40  virtual void drawButtonLabel(QPainter *p);
41  virtual void drawArrow(QPainter *,
42  const QRect &, Qt::ArrowType) const;
43  virtual QRect labelRect() const;
44  virtual QSize arrowSize(Qt::ArrowType,
45  const QSize &boundingSize) const;
46 
47  virtual void keyPressEvent(QKeyEvent *);
48 
49 private:
50  class PrivateData;
51  PrivateData *d_data;
52 };
53 
54 #endif