Skip to content
Snippets Groups Projects
qwt_arrow_button.h 1.39 KiB
Newer Older
  • Learn to ignore specific revisions
  • pixhawk's avatar
    pixhawk committed
    /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
     * Qwt Widget Library
     * Copyright (C) 1997   Josef Wilgen
     * Copyright (C) 2002   Uwe Rathmann
    
    pixhawk's avatar
    pixhawk committed
     * 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
    #include <qpushbutton.h>
    
    pixhawk's avatar
    pixhawk committed
    
    /*!
      \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
        explicit QwtArrowButton ( int num, Qt::ArrowType, QWidget *parent = NULL );
    
    pixhawk's avatar
    pixhawk committed
        virtual ~QwtArrowButton();
    
        Qt::ArrowType arrowType() const;
        int num() const;
    
        virtual QSize sizeHint() const;
        virtual QSize minimumSizeHint() const;
    
    protected:
    
    Bryant's avatar
    Bryant committed
        virtual void paintEvent( QPaintEvent *event );
    
    pixhawk's avatar
    pixhawk committed
    
    
    Bryant's avatar
    Bryant committed
        virtual void drawButtonLabel( QPainter *p );
        virtual void drawArrow( QPainter *,
            const QRect &, Qt::ArrowType ) const;
    
    pixhawk's avatar
    pixhawk committed
        virtual QRect labelRect() const;
    
    Bryant's avatar
    Bryant committed
        virtual QSize arrowSize( Qt::ArrowType,
            const QSize &boundingSize ) const;
    
    pixhawk's avatar
    pixhawk committed
    
    
    Bryant's avatar
    Bryant committed
        virtual void keyPressEvent( QKeyEvent * );
    
    pixhawk's avatar
    pixhawk committed
    
    private:
        class PrivateData;
        PrivateData *d_data;
    };
    
    #endif