home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / qt3_emx.zip / include / qtoolbutton.h < prev    next >
C/C++ Source or Header  |  2001-10-11  |  5KB  |  172 lines

  1. /****************************************************************************
  2. ** $Id:  qt/qtoolbutton.h   3.0.0   edited Sep 21 17:17 $
  3. **
  4. ** Definition of QToolButton class
  5. **
  6. ** Created : 979899
  7. **
  8. ** Copyright (C) 1992-2000 Trolltech AS.  All rights reserved.
  9. **
  10. ** This file is part of the widgets module of the Qt GUI Toolkit.
  11. **
  12. ** This file may be distributed under the terms of the Q Public License
  13. ** as defined by Trolltech AS of Norway and appearing in the file
  14. ** LICENSE.QPL included in the packaging of this file.
  15. **
  16. ** This file may be distributed and/or modified under the terms of the
  17. ** GNU General Public License version 2 as published by the Free Software
  18. ** Foundation and appearing in the file LICENSE.GPL included in the
  19. ** packaging of this file.
  20. **
  21. ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
  22. ** licenses may use this file in accordance with the Qt Commercial License
  23. ** Agreement provided with the Software.
  24. **
  25. ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
  26. ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  27. **
  28. ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
  29. **   information about Qt Commercial License Agreements.
  30. ** See http://www.trolltech.com/qpl/ for QPL licensing information.
  31. ** See http://www.trolltech.com/gpl/ for GPL licensing information.
  32. **
  33. ** Contact info@trolltech.com if any conditions of this licensing are
  34. ** not clear to you.
  35. **
  36. **********************************************************************/
  37.  
  38. #ifndef QTOOLBUTTON_H
  39. #define QTOOLBUTTON_H
  40.  
  41. #ifndef QT_H
  42. #include "qbutton.h"
  43. #include "qstring.h"
  44. #include "qpixmap.h"
  45. #include "qiconset.h"
  46. #endif // QT_H
  47.  
  48. #ifndef QT_NO_TOOLBUTTON
  49.  
  50. class QToolButtonPrivate;
  51. class QToolBar;
  52. class QPopupMenu;
  53.  
  54. class Q_EXPORT QToolButton : public QButton
  55. {
  56.     Q_OBJECT
  57.  
  58.     Q_PROPERTY( QIconSet iconSet READ iconSet WRITE setIconSet )
  59.     Q_PROPERTY( QIconSet onIconSet READ onIconSet WRITE setOnIconSet DESIGNABLE false STORED false )
  60.     Q_PROPERTY( QIconSet offIconSet READ offIconSet WRITE setOffIconSet DESIGNABLE false STORED false )
  61.     Q_PROPERTY( bool usesBigPixmap READ usesBigPixmap WRITE setUsesBigPixmap )
  62.     Q_PROPERTY( bool usesTextLabel READ usesTextLabel WRITE setUsesTextLabel )
  63.     Q_PROPERTY( QString textLabel READ textLabel WRITE setTextLabel )
  64.     Q_PROPERTY( int popupDelay READ popupDelay WRITE setPopupDelay )
  65.     Q_PROPERTY( bool autoRaise READ autoRaise WRITE setAutoRaise )
  66.  
  67.     Q_OVERRIDE( bool toggleButton WRITE setToggleButton )
  68.     Q_OVERRIDE( bool on WRITE setOn )
  69.  
  70. public:
  71.     QToolButton( QWidget * parent, const char* name=0 );
  72. #ifndef QT_NO_TOOLBAR
  73.     QToolButton( const QIconSet& s, const QString &textLabel,
  74.          const QString& grouptext,
  75.          QObject * receiver, const char* slot,
  76.          QToolBar * parent, const char* name=0 );
  77. #endif
  78.     QToolButton( ArrowType type, QWidget *parent, const char* name=0 );
  79.     ~QToolButton();
  80.  
  81.     QSize sizeHint() const;
  82.     QSize minimumSizeHint() const;
  83.  
  84. #ifndef QT_NO_COMPAT
  85.     void setOnIconSet( const QIconSet& );
  86.     void setOffIconSet( const QIconSet& );
  87.     void setIconSet( const QIconSet &, bool on );
  88.     QIconSet onIconSet() const;
  89.     QIconSet offIconSet( ) const;
  90.     QIconSet iconSet( bool on ) const;
  91. #endif
  92.     virtual void setIconSet( const QIconSet & );
  93.     QIconSet iconSet() const;
  94.  
  95.     bool usesBigPixmap() const { return ubp; }
  96.     bool usesTextLabel() const { return utl; }
  97.     QString textLabel() const { return tl; }
  98.  
  99. #ifndef QT_NO_POPUPMENU
  100.     void setPopup( QPopupMenu* popup );
  101.     QPopupMenu* popup() const;
  102.  
  103.     void setPopupDelay( int delay );
  104.     int popupDelay() const;
  105.  
  106.     void openPopup();
  107. #endif
  108.  
  109.     void setAutoRaise( bool enable );
  110.     bool autoRaise() const;
  111.  
  112. public slots:
  113.     virtual void setUsesBigPixmap( bool enable );
  114.     virtual void setUsesTextLabel( bool enable );
  115.     virtual void setTextLabel( const QString &, bool );
  116.  
  117.     virtual void setToggleButton( bool enable );
  118.  
  119.     virtual void setOn( bool enable );
  120.     void toggle();
  121.     void setTextLabel( const QString & );
  122.  
  123. protected:
  124.     void mousePressEvent( QMouseEvent * );
  125.     void drawButton( QPainter * );
  126.     void drawButtonLabel(QPainter *);
  127.  
  128.     void enterEvent( QEvent * );
  129.     void leaveEvent( QEvent * );
  130.     void moveEvent( QMoveEvent * );
  131.  
  132.     bool uses3D() const;
  133.  
  134.     bool eventFilter( QObject *o, QEvent *e );
  135.  
  136. #ifndef QT_NO_PALETTE
  137.     void paletteChange( const QPalette & );
  138. #endif
  139.  
  140. private slots:
  141.     void popupTimerDone();
  142.     void popupPressed();
  143.  
  144. private:
  145.     void init();
  146.     bool isOnAndNoOnPixmap();
  147.  
  148.     QPixmap bp;
  149.     int bpID;
  150.     QPixmap sp;
  151.     int spID;
  152.  
  153.     QString tl;
  154.  
  155.     QToolButtonPrivate *d;
  156.     QIconSet *s;
  157.  
  158.     uint utl : 1;
  159.     uint ubp : 1;
  160.     uint hasArrow : 1;
  161.  
  162. private:    // Disabled copy constructor and operator=
  163. #if defined(Q_DISABLE_COPY)
  164.     QToolButton( const QToolButton & );
  165.     QToolButton& operator=( const QToolButton & );
  166. #endif
  167. };
  168.  
  169. #endif // QT_NO_TOOLBUTTON
  170.  
  171. #endif // QTOOLBUTTON_H
  172.