karrowbutton.h

00001 /* This file is part of the KDE libraries
00002    Copyright (C) 2001, 2002 Frerich Raabe <raabe@kde.org>
00003 
00004    This library is free software; you can redistribute it and/or
00005    modify it under the terms of the GNU Library General Public
00006    License version 2 as published by the Free Software Foundation.
00007 
00008    This library is distributed in the hope that it will be useful,
00009    but WITHOUT ANY WARRANTY; without even the implied warranty of
00010    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00011    Library General Public License for more details.
00012 
00013    You should have received a copy of the GNU Library General Public License
00014    along with this library; see the file COPYING.LIB.  If not, write to
00015    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00016    Boston, MA 02110-1301, USA.
00017 */
00018 
00019 #ifndef __karrowbutton_h__
00020 #define __karrowbutton_h__
00021 
00022 #include <qpushbutton.h>
00023 
00024 #include <kdelibs_export.h>
00025 
00026 class KArrowButtonPrivate;
00038 class KDEUI_EXPORT KArrowButton : public QPushButton
00039 {
00040     Q_OBJECT
00041     Q_PROPERTY( int arrowType READ arrowTp WRITE setArrowTp )
00042 
00043     public:
00051         KArrowButton(QWidget *parent = 0, Qt::ArrowType arrow = Qt::UpArrow,
00052             const char *name = 0);
00053 
00057         virtual ~KArrowButton();
00058 
00062         virtual QSize sizeHint() const;
00063 
00068         Qt::ArrowType arrowType() const;
00069 
00070         // hacks for moc braindamages with enums
00071         int arrowTp() const { return (int) arrowType(); }
00072         void setArrowTp( int tp ) { setArrowType( (Qt::ArrowType) tp ); }
00073     public slots:
00080         void setArrowType(Qt::ArrowType a);
00081 
00082     protected:
00086         virtual void drawButton(QPainter *);
00087 
00088     protected:
00089         virtual void virtual_hook( int id, void* data );
00090     private:
00091         KArrowButtonPrivate *d;
00092 };
00093 
00094 #endif // __karrowbutton_h__
KDE Home | KDE Accessibility Home | Description of Access Keys