summaryrefslogtreecommitdiffstats
path: root/tqtinterface/qt4/src/widgets/tqcheckbox.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tqtinterface/qt4/src/widgets/tqcheckbox.cpp')
-rw-r--r--tqtinterface/qt4/src/widgets/tqcheckbox.cpp368
1 files changed, 0 insertions, 368 deletions
diff --git a/tqtinterface/qt4/src/widgets/tqcheckbox.cpp b/tqtinterface/qt4/src/widgets/tqcheckbox.cpp
deleted file mode 100644
index b295e4f..0000000
--- a/tqtinterface/qt4/src/widgets/tqcheckbox.cpp
+++ /dev/null
@@ -1,368 +0,0 @@
-/****************************************************************************
-**
-** Implementation of TQCheckBox class
-**
-** Created : 940222
-**
-** Copyright (C) 2010 Timothy Pearson and (C) 1992-2008 Trolltech ASA.
-**
-** This file is part of the widgets module of the TQt GUI Toolkit.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#include "tqcheckbox.h"
-#ifndef TQT_NO_CHECKBOX
-#include "tqpainter.h"
-#include "tqdrawutil.h"
-#include "tqpixmap.h"
-#include "tqpixmapcache.h"
-#include "tqbitmap.h"
-#include "tqtextstream.h"
-#include "tqapplication.h"
-#include "tqstyle.h"
-
-/*!
- \class TQCheckBox tqcheckbox.h
- \brief The TQCheckBox widget provides a checkbox with a text label.
-
- \ingroup basic
- \mainclass
-
- TQCheckBox and TQRadioButton are both option buttons. That is, they
- can be switched on (checked) or off (unchecked). The classes
- differ in how the choices for the user are restricted. Radio
- buttons define a "one of many" choice, whereas checkboxes provide
- "many of many" choices.
-
- A TQButtonGroup can be used to group check buttons visually.
-
- Whenever a checkbox is checked or cleared it emits the signal
- toggled(). Connect to this signal if you want to trigger an action
- each time the checkbox changes state. You can use isChecked() to
- query whether or not a checkbox is checked.
-
- \warning The toggled() signal can not be trusted for tristate
- checkboxes.
-
- In addition to the usual checked and unchecked states, TQCheckBox
- optionally provides a third state to indicate "no change". This
- is useful whenever you need to give the user the option of neither
- checking nor unchecking a checkbox. If you need this third state,
- enable it with setTristate() and use state() to query the current
- toggle state. When a tristate checkbox changes state, it emits the
- stateChanged() signal.
-
- Just like TQPushButton, a checkbox can display text or a pixmap.
- The text can be set in the constructor or with setText(); the
- pixmap is set with setPixmap().
-
- \important text(), setText(), text(), pixmap(), setPixmap(),
- accel(), setAccel(), isToggleButton(), setDown(), isDown(),
- isOn(), state(), autoRepeat(), isExclusiveToggle(), group(),
- setAutoRepeat(), toggle(), pressed(), released(), clicked(),
- toggled(), state() stateChanged()
-
- <img src=qchkbox-m.png> <img src=qchkbox-w.png>
-
- \sa TQButton TQRadioButton
- \link guibooks.html#fowler Fowler: Check Box \endlink
-*/
-
-/*!
- \property TQCheckBox::checked
- \brief whether the checkbox is checked
-
- The default is unchecked, i.e. FALSE.
-*/
-
-/*!
- \property TQCheckBox::autoMask
- \brief whether the checkbox is automatically masked
-
- \sa TQWidget::setAutoMask()
-*/
-
-/*!
- \property TQCheckBox::tristate
- \brief whether the checkbox is a tri-state checkbox
-
- The default is two-state, i.e. tri-state is FALSE.
-*/
-
-/*!
- Constructs a checkbox with no text.
-
- The \a parent and \a name arguments are sent to the TQWidget
- constructor.
-*/
-
-TQCheckBox::TQCheckBox( TQWidget *parent, const char *name )
- : TQButton( parent, name, TQt::WNoAutoErase | TQt::WMouseNoMask )
-{
- setToggleButton( TRUE );
- tqsetSizePolicy( TQSizePolicy( TQSizePolicy::Minimum, TQSizePolicy::Fixed ) );
-}
-
-/*!
- Constructs a checkbox with text \a text.
-
- The \a parent and \a name arguments are sent to the TQWidget
- constructor.
-*/
-
-TQCheckBox::TQCheckBox( const TQString &text, TQWidget *parent, const char *name )
- : TQButton( parent, name, TQt::WNoAutoErase | TQt::WMouseNoMask )
-{
- setText( text );
- setToggleButton( TRUE );
- tqsetSizePolicy( TQSizePolicy( TQSizePolicy::Minimum, TQSizePolicy::Fixed ) );
-}
-
-/*!
- Sets the checkbox to the "no change" state.
-
- \sa setTristate()
-*/
-void TQCheckBox::setNoChange()
-{
- setTristate(TRUE);
- setState( NoChange );
-}
-
-void TQCheckBox::setTristate(bool y)
-{
- setToggleType( y ? Tristate : Toggle );
-}
-
-bool TQCheckBox::isTristate() const
-{
- return toggleType() == Tristate;
-}
-
-
-/*!\reimp
-*/
-TQSize TQCheckBox::tqsizeHint() const
-{
- // NB: TQRadioButton::tqsizeHint() is similar
- constPolish();
-
- TQPainter p(this);
- TQSize sz = tqstyle().tqitemRect(&p, TQRect(0, 0, 1, 1), TQt::ShowPrefix, FALSE,
- pixmap(), text()).size();
-
- return (tqstyle().tqsizeFromContents(TQStyle::CT_CheckBox, this, sz).
- expandedTo(TQApplication::globalStrut()));
-}
-
-
-/*!\reimp
-*/
-
-void TQCheckBox::drawButton( TQPainter *paint )
-{
- TQPainter *p = paint;
- TQRect irect = TQStyle::tqvisualRect( tqstyle().subRect(TQStyle::SR_CheckBoxIndicator, this), this );
- const TQColorGroup &cg = tqcolorGroup();
-
-#if !defined( TQT_NO_TEXTSTREAM ) && !defined( TQ_WS_MACX )
-#ifdef USE_QT4
-printf("[WARNING] TQSharedDoubleBuffer double buffering has been disabled\n\r"); // Otherwise the widgets don't repaint properly in Qt4!
-#else // USE_QT4
-# define SAVE_CHECKBOX_PIXMAPS
-#endif // USE_QT4
-#endif
-#if defined(SAVE_CHECKBOX_PIXMAPS)
- TQString pmkey; // pixmap key
- int kf = 0;
- if ( isDown() )
- kf |= 1;
- if ( isEnabled() )
- kf |= 2;
- if ( hasFocus() )
- kf |= 4; // active vs. normal colorgroup
- if( isActiveWindow() )
- kf |= 8;
- if ( hasMouse() )
- kf |= 16;
-
- kf |= state() << 5;
- TQTextOStream os(&pmkey);
- os << "$qt_check_" << tqstyle().className() << "_"
- << palette().serialNumber() << "_" << irect.width() << "x" << irect.height() << "_" << kf;
- TQPixmap *pm = TQPixmapCache::find( pmkey );
- if ( pm ) { // pixmap exists
- p->drawPixmap( irect.topLeft(), *pm );
- drawButtonLabel( p );
- return;
- }
- bool use_pm = TRUE;
- TQPainter pmpaint;
- int wx = 0, wy = 0;
- if ( use_pm ) {
- pm = new TQPixmap( irect.size() ); // create new pixmap
- TQ_CHECK_PTR( pm );
- pm->fill( cg.background() );
- TQPainter::redirect(this, pm);
- pmpaint.begin(this);
- p = &pmpaint; // draw in pixmap
- wx = irect.x(); // save x,y coords
- wy = irect.y();
- irect.moveTopLeft(TQPoint(0, 0));
- p->setBackgroundColor( cg.background() );
- }
-#endif
-
- TQStyle::SFlags flags = TQStyle::Style_Default;
- if ( isEnabled() )
- flags |= TQStyle::Style_Enabled;
- if ( hasFocus() )
- flags |= TQStyle::Style_HasFocus;
- if ( isDown() )
- flags |= TQStyle::Style_Down;
- if ( hasMouse() )
- flags |= TQStyle::Style_MouseOver;
- if ( state() == TQButton::On )
- flags |= TQStyle::Style_On;
- else if ( state() == TQButton::Off )
- flags |= TQStyle::Style_Off;
- else if ( state() == TQButton::NoChange )
- flags |= TQStyle::Style_NoChange;
-
- tqstyle().tqdrawControl(TQStyle::CE_CheckBox, p, this, irect, cg, flags);
-
-#if defined(SAVE_CHECKBOX_PIXMAPS)
- if ( use_pm ) {
- pmpaint.end();
- TQPainter::redirect( this, 0 );
- if ( backgroundPixmap() || backgroundMode() == TQt::X11ParentRelative ) {
- TQBitmap bm( pm->size() );
- bm.fill( Qt::color0 );
- pmpaint.begin( &bm );
- tqstyle().tqdrawControlMask(TQStyle::CE_CheckBox, &pmpaint, this, irect);
- pmpaint.end();
- pm->setMask( bm );
- }
- p = paint; // draw in default tqdevice
- p->drawPixmap( wx, wy, *pm );
- if (!TQPixmapCache::insert(pmkey, pm) ) // save in cache
- delete pm;
- }
-#endif
-
- drawButtonLabel( paint );
-}
-
-
-/*!\reimp
-*/
-void TQCheckBox::drawButtonLabel( TQPainter *p )
-{
- TQRect r =
- TQStyle::tqvisualRect( tqstyle().subRect(TQStyle::SR_CheckBoxContents, this), this );
-
- TQStyle::SFlags flags = TQStyle::Style_Default;
- if (isEnabled())
- flags |= TQStyle::Style_Enabled;
- if (hasFocus())
- flags |= TQStyle::Style_HasFocus;
- if (isDown())
- flags |= TQStyle::Style_Down;
- if (state() == TQButton::On)
- flags |= TQStyle::Style_On;
- else if (state() == TQButton::Off)
- flags |= TQStyle::Style_Off;
- else if (state() == TQButton::NoChange)
- flags |= TQStyle::Style_NoChange;
-
- tqstyle().tqdrawControl(TQStyle::CE_CheckBoxLabel, p, this, r, tqcolorGroup(), flags);
-}
-
-/*!
- \reimp
-*/
-void TQCheckBox::resizeEvent( TQResizeEvent *e )
-{
- TQButton::resizeEvent(e);
- if ( isVisible() ) {
- TQPainter p(this);
- TQSize isz = tqstyle().tqitemRect(&p, TQRect(0, 0, 1, 1), TQt::ShowPrefix, FALSE,
- pixmap(), text()).size();
- TQSize wsz = (tqstyle().tqsizeFromContents(TQStyle::CT_CheckBox, this, isz).
- expandedTo(TQApplication::globalStrut()));
-
- update(wsz.width(), isz.width(), 0, wsz.height());
- }
- if (autoMask())
- updateMask();
-}
-
-/*!
- \reimp
-*/
-void TQCheckBox::updateMask()
-{
- TQRect irect =
- TQStyle::tqvisualRect( tqstyle().subRect(TQStyle::SR_CheckBoxIndicator, this), this );
-
- TQBitmap bm(width(), height());
- bm.fill(Qt::color0);
-
- TQPainter p( &bm, this );
- tqstyle().tqdrawControlMask(TQStyle::CE_CheckBox, &p, this, irect);
- if ( ! text().isNull() || ( pixmap() && ! pixmap()->isNull() ) ) {
- TQRect crect =
- TQStyle::tqvisualRect( tqstyle().subRect( TQStyle::SR_CheckBoxContents,
- this ), this );
- TQRect frect =
- TQStyle::tqvisualRect( tqstyle().subRect( TQStyle::SR_CheckBoxFocusRect,
- this ), this );
- TQRect label(crect.unite(frect));
- p.fillRect(label, Qt::color1);
- }
- p.end();
-
- setMask(bm);
-}
-
-/*!\reimp*/
-bool TQCheckBox::hitButton( const TQPoint &pos ) const
-{
- TQRect r = TQStyle::tqvisualRect( tqstyle().subRect( TQStyle::SR_CheckBoxFocusRect, this ), this );
- if ( tqApp->reverseLayout() ) {
- r.setRight( width() );
- } else {
- r.setLeft( 0 );
- }
- return r.contains( pos );
-}
-
-#endif