Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

otabbar.cpp

Go to the documentation of this file.
00001 /*
00002                     This file is part of the Opie Project
00003 
00004                       Copyright (c)  2002 Dan Williams <williamsdr@acm.org>
00005               =.
00006             .=l.
00007      .>+-=
00008 _;:,   .>  :=|.         This program is free software; you can
00009 .> <`_,  > .  <=          redistribute it and/or  modify it under
00010 :`=1 )Y*s>-.--  :           the terms of the GNU Library General Public
00011 .="- .-=="i,   .._         License as published by the Free Software
00012 - .  .-<_>   .<>         Foundation; either version 2 of the License,
00013   ._= =}    :          or (at your option) any later version.
00014   .%`+i>    _;_.
00015   .i_,=:_.   -<s.       This program is distributed in the hope that
00016   + . -:.    =       it will be useful,  but WITHOUT ANY WARRANTY;
00017   : ..  .:,   . . .    without even the implied warranty of
00018   =_    +   =;=|`    MERCHANTABILITY or FITNESS FOR A
00019  _.=:.    :  :=>`:     PARTICULAR PURPOSE. See the GNU
00020 ..}^=.=    =    ;      Library General Public License for more
00021 ++=  -.   .`   .:       details.
00022 :   = ...= . :.=-
00023 -.  .:....=;==+<;          You should have received a copy of the GNU
00024  -_. . .  )=. =           Library General Public License along with
00025   --    :-=`           this library; see the file COPYING.LIB.
00026                              If not, write to the Free Software Foundation,
00027                              Inc., 59 Temple Place - Suite 330,
00028                              Boston, MA 02111-1307, USA.
00029 
00030 */
00031 
00032 #include <opie2/otabbar.h>
00033 
00034 #include <qpe/applnk.h>
00035 
00036 #include <stdio.h>
00037 
00038 using namespace Opie::Ui;
00039 
00040 OTabBar::OTabBar( QWidget *parent , const char *name  )
00041         :QTabBar( parent, name )
00042 {}
00043 
00044 void OTabBar::paintLabel( QPainter* p, const QRect& br, QTab* t, bool has_focus ) const
00045 {
00046 
00047     QRect r = br;
00048     if ( t->iconset)
00049     {
00050         QIconSet::Mode mode = (t->enabled && isEnabled()) ? QIconSet::Normal : QIconSet::Disabled;
00051         if ( mode == QIconSet::Normal && has_focus )
00052         {
00053             mode = QIconSet::Active;
00054         }
00055         QPixmap pixmap = t->iconset->pixmap();
00056         int pixw = pixmap.width();
00057         int pixh = pixmap.height();
00058         r.setLeft( r.left() + pixw + 2 );
00059         p->drawPixmap( br.left()+2, br.center().y()-pixh/2, pixmap );
00060     }
00061 
00062     QRect tr = r;
00063     if ( t->id == currentTab() )
00064     {
00065         tr.setBottom( tr.bottom() - style().defaultFrameWidth() );
00066     }
00067 
00068     if ( t->enabled && isEnabled()  )
00069     {
00070         p->setPen( colorGroup().foreground() );
00071         p->drawText( tr, AlignCenter | ShowPrefix, t->label );
00072     }
00073     else if ( style() == MotifStyle )
00074     {
00075         p->setPen( palette().disabled().foreground() );
00076         p->drawText( tr, AlignCenter | ShowPrefix, t->label );
00077     }
00078     else
00079     {
00080         p->setPen( colorGroup().light() );
00081         QRect wr = tr;
00082         wr.moveBy( 1, 1 );
00083         p->drawText( wr, AlignCenter | ShowPrefix, t->label );
00084         p->setPen( palette().disabled().foreground() );
00085         p->drawText( tr, AlignCenter | ShowPrefix, t->label );
00086     }
00087 }

Generated on Sat Nov 5 16:16:27 2005 for OPIE by  doxygen 1.4.2