1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/* -*- 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_ARROW_BUTTON_H
#define QWT_ARROW_BUTTON_H
#include <qpushbutton.h>
#include "qwt_global.h"
/*!
\brief Arrow Button
A push button with one or more filled triangles on its front.
An Arrow button can have 1 to 3 arrows in a row, pointing
up, down, left or right.
*/
class QWT_EXPORT QwtArrowButton : public QPushButton
{
public:
explicit QwtArrowButton (int num, Qt::ArrowType, QWidget *parent = NULL);
virtual ~QwtArrowButton();
Qt::ArrowType arrowType() const;
int num() const;
virtual QSize sizeHint() const;
virtual QSize minimumSizeHint() const;
protected:
#if QT_VERSION >= 0x040000
virtual void paintEvent(QPaintEvent *event);
#endif
virtual void drawButtonLabel(QPainter *p);
virtual void drawArrow(QPainter *,
const QRect &, Qt::ArrowType) const;
virtual QRect labelRect() const;
virtual QSize arrowSize(Qt::ArrowType,
const QSize &boundingSize) const;
virtual void keyPressEvent(QKeyEvent *);
private:
class PrivateData;
PrivateData *d_data;
};
#endif