Source Code (Use browser search to find items of interest.)
Class Index
qt'QRadioButton (./qt-2.1.0/src/widgets/qradiobutton.h:33)
class Q_EXPORT QRadioButton : public QButton
{
Q_OBJECT
Q_PROPERTY( bool checked READ isChecked WRITE setChecked )
public:
QRadioButton( QWidget *parent, const char *name=0 );
QRadioButton( const QString &text, QWidget *parent, const char* name=0 );
bool isChecked() const;
virtual void setChecked( bool check );
QSize sizeHint() const;
QSizePolicy sizePolicy() const;
protected:
bool hitButton( const QPoint & ) const;
void drawButton( QPainter * );
void drawButtonLabel( QPainter * );
void resizeEvent( QResizeEvent* );
void focusInEvent( QFocusEvent * );
void updateMask();
private:
void init();
private: // Disabled copy constructor and operator=
#if defined(Q_DISABLE_COPY)
QRadioButton( const QRadioButton & );
QRadioButton &operator=( const QRadioButton & );
#endif
};
inline bool QRadioButton::isChecked() const
{ return isOn(); }
qt'QRadioButton::isChecked() (./qt-2.1.0/include/qradiobutton.h:69)
inline bool QRadioButton::isChecked() const
{ return isOn(); }
qt'QRadioButton::QRadioButton() (./qt-2.1.0/src/widgets/qradiobutton.cpp:85)
QRadioButton::QRadioButton( QWidget *parent, const char *name )
: QButton( parent, name, WResizeNoErase | WMouseNoMask )
{
init();
}
/*!
Constructs a radio button with a text.
The \e parent and \e name arguments are sent to the QWidget constructor.
*/
qt'QRadioButton::QRadioButton() (./qt-2.1.0/src/widgets/qradiobutton.cpp:97)
QRadioButton::QRadioButton( const QString &text, QWidget *parent,
const char *name )
: QButton( parent, name, WResizeNoErase | WMouseNoMask )
{
init();
setText( text );
}
/*!
Initializes the radio button.
*/
qt'QRadioButton::init() (./qt-2.1.0/src/widgets/qradiobutton.cpp:110)
void QRadioButton::init()
{
setToggleButton( TRUE );
if ( parentWidget() && parentWidget()->inherits("QButtonGroup") ) {
QButtonGroup *bgrp = (QButtonGroup *)parentWidget();
bgrp->setRadioButtonExclusive( TRUE );
}
}
/*!
\fn bool QRadioButton::isChecked() const
Returns TRUE if the radio button is checked, or FALSE if it is not checked.
\sa setChecked()
*/
/*!
Checks the radio button if \e check is TRUE, or unchecks it if \e check
is FALSE.
Calling this function does not affect other radio buttons unless a radio
button group has been defined using the QButtonGroup widget.
\sa isChecked()
*/
qt'QRadioButton::setChecked() (./qt-2.1.0/src/widgets/qradiobutton.cpp:135)
void QRadioButton::setChecked( bool check )
{
setOn( check );
}
/*!\reimp
*/
qt'QRadioButton::sizeHint() (./qt-2.1.0/src/widgets/qradiobutton.cpp:145)
QSize QRadioButton::sizeHint() const
{
// Any more complex, and we will use style().itemRect()
// NB: QCheckBox::sizeHint() is similar
constPolish();
QSize sz;
if (pixmap())
sz = pixmap()->size();
else
sz = fontMetrics().size( ShowPrefix, text() );
QSize bmsz = style().exclusiveIndicatorSize();
if ( sz.height() < bmsz.height() )
sz.setHeight( bmsz.height() );
return sz + QSize( bmsz.width()
+ (text().isEmpty() ? 0 : gutter+margin),
4 );
}
/*!\reimp
*/
qt'QRadioButton::sizePolicy() (./qt-2.1.0/src/widgets/qradiobutton.cpp:168)
QSizePolicy QRadioButton::sizePolicy() const
{
return QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Fixed );
}
/*!\reimp
*/
qt'QRadioButton::hitButton() (./qt-2.1.0/src/widgets/qradiobutton.cpp:176)
bool QRadioButton::hitButton( const QPoint &pos ) const
{
return rect().contains( pos );
}
/*!\reimp
*/
qt'QRadioButton::drawButton() (./qt-2.1.0/src/widgets/qradiobutton.cpp:184)
void QRadioButton::drawButton( QPainter *paint )
{
QPainter *p = paint;
const QColorGroup & g = colorGroup();
int x, y;
QFontMetrics fm = fontMetrics();
QSize lsz = fm.size(ShowPrefix, text());
QSize sz = style().exclusiveIndicatorSize();
x = 0;
y = (height() - lsz.height() + fm.height() - sz.height())/2;
qt'QRadioButton::drawButtonLabel() (./qt-2.1.0/src/widgets/qradiobutton.cpp:256)
void QRadioButton::drawButtonLabel( QPainter *p )
{
int x, y, w, h;
GUIStyle gs = style();
QSize sz = style().exclusiveIndicatorSize();
if ( gs == WindowsStyle )
sz.setWidth(sz.width()+1);
y = 0;
x = sz.width() + gutter;
w = width() - x;
h = height();
style().drawItem( p, x, y, w, h,
AlignLeft|AlignVCenter|ShowPrefix,
colorGroup(), isEnabled(),
pixmap(), text() );
if ( hasFocus() ) {
QRect br = style().itemRect( p, x, y, w, h,
AlignLeft|AlignVCenter|ShowPrefix,
isEnabled(),
pixmap(), text() );
br.setLeft( br.left()-3 );
br.setRight( br.right()+2 );
br.setTop( br.top()-2 );
br.setBottom( br.bottom()+2);
br = br.intersect( QRect(0,0,width(),height()) );
style().drawFocusRect(p, br, colorGroup());
}
}
/*!
\reimp
*/
qt'QRadioButton::resizeEvent() (./qt-2.1.0/src/widgets/qradiobutton.cpp:292)
void QRadioButton::resizeEvent( QResizeEvent* e )
{
QButton::resizeEvent(e);
int x, w, h;
GUIStyle gs = style();
QSize sz = style().exclusiveIndicatorSize();
if ( gs == WindowsStyle )
sz.setWidth(sz.width()+1);
x = sz.width() + gutter;
w = width() - x;
h = height();
QPainter p(this);
QRect br = style().itemRect( &p, x, 0, w, h,
AlignLeft|AlignVCenter|ShowPrefix,
isEnabled(),
pixmap(), text() );
if ( autoMask() )
updateMask();
update( br.right(), w, 0, h );
}
/*!\reimp
*/
qt'QRadioButton::updateMask() (./qt-2.1.0/src/widgets/qradiobutton.cpp:317)
void QRadioButton::updateMask()
{
QBitmap bm(width(),height());
{
bm.fill(color0);
QPainter p( &bm, this );
int x, y, w, h;
GUIStyle gs = style();
QFontMetrics fm = fontMetrics();
QSize lsz = fm.size(ShowPrefix, text());
QSize sz = style().exclusiveIndicatorSize();
if ( gs == WindowsStyle )
sz.setWidth(sz.width()+1);
y = 0;
x = sz.width() + gutter;
w = width() - x;
h = height();
QColorGroup cg(color1,color1, color1,color1,color1,color1,color1,color1, color0);
style().drawItem( &p, x, y, w, h,
AlignLeft|AlignVCenter|ShowPrefix,
cg, TRUE,
pixmap(), text() );
x = 0;
y = (height() - lsz.height() + fm.height() - sz.height())/2;
style().drawExclusiveIndicatorMask(&p, x, y, sz.width(), sz.height(), isOn() );
if ( hasFocus() ) {
y = 0;
x = sz.width() + gutter;
w = width() - x;
h = height();
QRect br = style().itemRect( &p, x, y, w, h,
AlignLeft|AlignVCenter|ShowPrefix,
isEnabled(),
pixmap(), text() );
br.setLeft( br.left()-3 );
br.setRight( br.right()+2 );
br.setTop( br.top()-2 );
br.setBottom( br.bottom()+2);
br = br.intersect( QRect(0,0,width(),height()) );
style().drawFocusRect( &p, br, cg );
}
}
setMask(bm);
}
/*! \reimp */
qt'QRadioButton::focusInEvent() (./qt-2.1.0/src/widgets/qradiobutton.cpp:370)
void QRadioButton::focusInEvent( QFocusEvent *e )
{
QButton::focusInEvent( e ); // ### 3.0 remove
}
qt'QRadioButton::isChecked() (./qt-2.1.0/src/widgets/qradiobutton.h:69)
inline bool QRadioButton::isChecked() const
{ return isOn(); }