1 /**************************************************************************** 2 ** $Id: qt/qbuttongroup.h 3.3.8 edited Jan 11 14:38 $ 3 ** 4 ** Definition of QButtonGroup class 5 ** 6 ** Created : 950130 7 ** 8 ** Copyright (C) 1992-2007 Trolltech ASA. 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 ASA 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 QBUTTONGROUP_H 39 #define QBUTTONGROUP_H 40 41 #ifndef QT_H 42 #include "qgroupbox.h" 43 #endif // QT_H 44 45 #ifndef QT_NO_BUTTONGROUP 46 47 48 class QButton; 49 class QButtonList; 50 51 52 class Q_EXPORT QButtonGroup : public QGroupBox 53 { 54 Q_OBJECT 55 Q_PROPERTY( bool exclusive READ isExclusive WRITE setExclusive ) 56 Q_PROPERTY( bool radioButtonExclusive READ isRadioButtonExclusive WRITE setRadioButtonExclusive ) 57 Q_PROPERTY( int selectedId READ selectedId WRITE setButton ) 58 59 public: 60 QButtonGroup( QWidget* parent=0, const char* name=0 ); 61 QButtonGroup( const QString &title, 62 QWidget* parent=0, const char* name=0 ); 63 QButtonGroup( int columns, Orientation o, 64 QWidget* parent=0, const char* name=0 ); 65 QButtonGroup( int columns, Orientation o, const QString &title, 66 QWidget* parent=0, const char* name=0 ); 67 ~QButtonGroup(); 68 69 bool isExclusive() const; isRadioButtonExclusive()70 bool isRadioButtonExclusive() const { return radio_excl; } 71 virtual void setExclusive( bool ); 72 virtual void setRadioButtonExclusive( bool ); 73 74 public: 75 int insert( QButton *, int id=-1 ); 76 void remove( QButton * ); 77 QButton *find( int id ) const; 78 int id( QButton * ) const; 79 int count() const; 80 81 virtual void setButton( int id ); 82 83 virtual void moveFocus( int ); 84 85 QButton *selected() const; 86 int selectedId() const; 87 88 signals: 89 void pressed( int id ); 90 void released( int id ); 91 void clicked( int id ); 92 93 protected slots: 94 void buttonPressed(); 95 void buttonReleased(); 96 void buttonClicked(); 97 void buttonToggled( bool on ); 98 99 protected: 100 bool event( QEvent * e ); 101 102 private: 103 void init(); 104 bool excl_grp; 105 bool radio_excl; 106 QButtonList *buttons; 107 108 private: // Disabled copy constructor and operator= 109 #if defined(Q_DISABLE_COPY) 110 QButtonGroup( const QButtonGroup & ); 111 QButtonGroup &operator=( const QButtonGroup & ); 112 #endif 113 }; 114 115 116 #endif // QT_NO_BUTTONGROUP 117 118 #endif // QBUTTONGROUP_H 119