qwt_arrow_button.h 1.39 KB
Newer Older
pixhawk's avatar
pixhawk committed
1 2 3 4
/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
 * Qwt Widget Library
 * Copyright (C) 1997   Josef Wilgen
 * Copyright (C) 2002   Uwe Rathmann
5
 *
pixhawk's avatar
pixhawk committed
6 7 8 9 10 11 12 13
 * 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 "qwt_global.h"
Bryant's avatar
Bryant committed
14
#include <qpushbutton.h>
pixhawk's avatar
pixhawk committed
15 16 17 18 19 20 21 22 23 24 25

/*!
  \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:
Bryant's avatar
Bryant committed
26
    explicit QwtArrowButton ( int num, Qt::ArrowType, QWidget *parent = NULL );
pixhawk's avatar
pixhawk committed
27 28 29 30 31 32 33 34 35
    virtual ~QwtArrowButton();

    Qt::ArrowType arrowType() const;
    int num() const;

    virtual QSize sizeHint() const;
    virtual QSize minimumSizeHint() const;

protected:
Bryant's avatar
Bryant committed
36
    virtual void paintEvent( QPaintEvent *event );
pixhawk's avatar
pixhawk committed
37

Bryant's avatar
Bryant committed
38 39 40
    virtual void drawButtonLabel( QPainter *p );
    virtual void drawArrow( QPainter *,
        const QRect &, Qt::ArrowType ) const;
pixhawk's avatar
pixhawk committed
41
    virtual QRect labelRect() const;
Bryant's avatar
Bryant committed
42 43
    virtual QSize arrowSize( Qt::ArrowType,
        const QSize &boundingSize ) const;
pixhawk's avatar
pixhawk committed
44

Bryant's avatar
Bryant committed
45
    virtual void keyPressEvent( QKeyEvent * );
pixhawk's avatar
pixhawk committed
46 47 48 49 50 51 52

private:
    class PrivateData;
    PrivateData *d_data;
};

#endif