From dde789ef19fa3a3913805e452ac1e3400688e8a0 Mon Sep 17 00:00:00 2001 From: mickeyl Date: Thu, 15 Jan 2004 13:59:58 +0000 Subject: more libopie1 --> libopie2 with namespace cleanups and code layout cleanups --- (limited to 'libopie2/opieui/ocheckitem.cpp') diff --git a/libopie2/opieui/ocheckitem.cpp b/libopie2/opieui/ocheckitem.cpp new file mode 100644 index 0000000..45f27ee --- a/dev/null +++ b/libopie2/opieui/ocheckitem.cpp @@ -0,0 +1,127 @@ +/* + This file is part of the Opie Project + Copyright (C) Stefan Eilers + =. Copyright (C) The Opie Team + .=l. +           .>+-= + _;:,     .>    :=|. This program is free software; you can +.> <`_,   >  .   <= redistribute it and/or modify it under +:`=1 )Y*s>-.--   : the terms of the GNU Library General Public +.="- .-=="i,     .._ License as published by the Free Software + - .   .-<_>     .<> Foundation; either version 2 of the License, +     ._= =}       : or (at your option) any later version. +    .%`+i>       _;_. +    .i_,=:_.      -`: PARTICULAR PURPOSE. See the GNU +..}^=.=       =       ; Library General Public License for more +++=   -.     .`     .: details. + :     =  ...= . :.=- + -.   .:....=;==+<; You should have received a copy of the GNU +  -_. . .   )=.  = Library General Public License along with +    --        :-=` this library; see the file COPYING.LIB. + If not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. +*/ + +#include + +/* QT */ +#include + +using namespace Opie; + +/** + * Constructs an CheckItem with a QTable as parent + * and a sort key for. + * The sort key will be used by QTable to sort the table later + * @param t The parent QTable where the check item belongs + * @param key A sort key + */ +OCheckItem::OCheckItem( QTable *t, const QString &key ) + :QTableItem( t, Never, "" ), m_checked( FALSE ), m_sortKey( key ) +{} + +/** + * reimplemted for internal reasons + * @return Returns the sort key of the Item + * @see QTableItem + */ +QString OCheckItem::key() const +{ + return m_sortKey; +} + +/** + * This method can check or uncheck the item. It will + * call QTable to update the cell. + * + * @param b Whether to check or uncheck the item + */ +void OCheckItem::setChecked( bool b ) +{ + m_checked = b; + table()->updateCell( row(), col() ); +} + +/** + * This will toggle the item. If it is checked it'll get + * unchecked by this method or vice versa. + */ +void OCheckItem::toggle() +{ + m_checked = !m_checked; +} + +/** + * This will return the state of the item. + * + * @return Returns true if the item is checked + */ +bool OCheckItem::isChecked() const +{ + return m_checked; +} + +/** + * @internal + * This paints the item + */ +void OCheckItem::paint( QPainter *p, const QColorGroup &cg, const QRect &cr, bool ) +{ + p->fillRect( 0, 0, cr.width(), cr.height(), cg.brush( QColorGroup::Base ) ); + + int marg = ( cr.width() - BoxSize ) / 2; + int x = 0; + int y = ( cr.height() - BoxSize ) / 2; + p->setPen( QPen( cg.text() ) ); + p->drawRect( x + marg, y, BoxSize, BoxSize ); + p->drawRect( x + marg+1, y+1, BoxSize-2, BoxSize-2 ); + p->setPen( darkGreen ); + x += 1; + y += 1; + if ( m_checked ) + { + QPointArray a( 7*2 ); + int i, xx, yy; + xx = x+1+marg; + yy = y+2; + for ( i=0; i<3; i++ ) + { + a.setPoint( 2*i, xx, yy ); + a.setPoint( 2*i+1, xx, yy+2 ); + xx++; yy++; + } + yy -= 2; + for ( i=3; i<7; i++ ) + { + a.setPoint( 2*i, xx, yy ); + a.setPoint( 2*i+1, xx, yy+2 ); + xx++; yy--; + } + p->drawLineSegments( a ); + } +} -- cgit v0.9.0.2