author | mickeyl <mickeyl> | 2004-01-15 15:04:23 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2004-01-15 15:04:23 (UTC) |
commit | ac1e2b945965ee8caabd658e90f9e234fc622619 (patch) (side-by-side diff) | |
tree | d787cb386c6b1b5f69cb00809636299e66c56833 /libopie2/opieui/otabbar.cpp | |
parent | dde789ef19fa3a3913805e452ac1e3400688e8a0 (diff) | |
download | opie-ac1e2b945965ee8caabd658e90f9e234fc622619.zip opie-ac1e2b945965ee8caabd658e90f9e234fc622619.tar.gz opie-ac1e2b945965ee8caabd658e90f9e234fc622619.tar.bz2 |
libopie1 --> libopie2 + namespace cleanups, code layout, etc.
-rw-r--r-- | libopie2/opieui/otabbar.cpp | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/libopie2/opieui/otabbar.cpp b/libopie2/opieui/otabbar.cpp new file mode 100644 index 0000000..cd3a34b --- a/dev/null +++ b/libopie2/opieui/otabbar.cpp @@ -0,0 +1,83 @@ +/* +� � � � � � � � This file is part of the Opie Project + +� � � � � � � Copyright (c) 2002 Dan Williams <williamsdr@acm.org> + =. + .=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_,=:_. � � �-<s. This program is distributed in the hope that +� � �+ �. �-:. � � � = it will be useful, but WITHOUT ANY WARRANTY; +� � : .. � �.:, � � . . . without even the implied warranty of +� � =_ � � � �+ � � =;=|` MERCHANTABILITY or FITNESS FOR A +� _.=:. � � � : � �:=>`: 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 <opie2/otabbar.h> + +using namespace Opie; + +OTabBar::OTabBar( QWidget *parent , const char *name ) + :QTabBar( parent, name ) +{} + +void OTabBar::paintLabel( QPainter* p, const QRect& br, QTab* t, bool has_focus ) const +{ + + QRect r = br; + if ( t->iconset) + { + QIconSet::Mode mode = (t->enabled && isEnabled()) ? QIconSet::Normal : QIconSet::Disabled; + if ( mode == QIconSet::Normal && has_focus ) + { + mode = QIconSet::Active; + } + QPixmap pixmap = t->iconset->pixmap( QIconSet::Small, mode ); + int pixw = pixmap.width(); + int pixh = pixmap.height(); + r.setLeft( r.left() + pixw + 2 ); + p->drawPixmap( br.left()+2, br.center().y()-pixh/2, pixmap ); + } + + QRect tr = r; + if ( t->id == currentTab() ) + { + tr.setBottom( tr.bottom() - style().defaultFrameWidth() ); + } + + if ( t->enabled && isEnabled() ) + { + p->setPen( colorGroup().foreground() ); + p->drawText( tr, AlignCenter | ShowPrefix, t->label ); + } + else if ( style() == MotifStyle ) + { + p->setPen( palette().disabled().foreground() ); + p->drawText( tr, AlignCenter | ShowPrefix, t->label ); + } + else + { + p->setPen( colorGroup().light() ); + QRect wr = tr; + wr.moveBy( 1, 1 ); + p->drawText( wr, AlignCenter | ShowPrefix, t->label ); + p->setPen( palette().disabled().foreground() ); + p->drawText( tr, AlignCenter | ShowPrefix, t->label ); + } +} |