00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
#include "kmultitabbar.h"
00026
#include "kmultitabbar.moc"
00027
#include "kmultitabbar_p.h"
00028
#include "kmultitabbar_p.moc"
00029
#include <qbutton.h>
00030
#include <qpopupmenu.h>
00031
#include <qlayout.h>
00032
#include <qpainter.h>
00033
#include <qtooltip.h>
00034
#include <qfontmetrics.h>
00035
#include <qstyle.h>
00036
00037
#include <kiconloader.h>
00038
#include <kdebug.h>
00039
00040
00041
class KMultiTabBarTabPrivate {
00042
public:
00043
QPixmap pix;
00044 };
00045
00046
00047 KMultiTabBarInternal::KMultiTabBarInternal(
QWidget *parent, KMultiTabBar::KMultiTabBarMode bm):
QScrollView(parent)
00048 {
00049 m_expandedTabSize=-1;
00050 m_showActiveTabTexts=
false;
00051 m_tabs.setAutoDelete(
true);
00052 setHScrollBarMode(AlwaysOff);
00053 setVScrollBarMode(AlwaysOff);
00054
if (bm==KMultiTabBar::Vertical)
00055 {
00056 box=
new QVBox(viewport());
00057 box->setFixedWidth(24);
00058 setFixedWidth(24);
00059 }
00060
else
00061 {
00062 box=
new QHBox(viewport());
00063 box->setFixedHeight(24);
00064 setFixedHeight(24);
00065 }
00066 addChild(box);
00067 setFrameStyle(NoFrame);
00068 viewport()->setBackgroundMode(Qt::PaletteBackground);
00069 }
00070
00071
void KMultiTabBarInternal::setStyle(
enum KMultiTabBar::KMultiTabBarStyle style)
00072 {
00073 m_style=style;
00074
for (uint i=0;i<m_tabs.count();i++)
00075 m_tabs.at(i)->setStyle(m_style);
00076 viewport()->repaint();
00077 }
00078
00079
void KMultiTabBarInternal::drawContents (
QPainter * paint,
int clipx,
int clipy,
int clipw,
int cliph )
00080 {
00081 QScrollView::drawContents (paint , clipx, clipy, clipw, cliph );
00082
00083
if (m_position==KMultiTabBar::Right)
00084 {
00085
00086 paint->setPen(colorGroup().shadow());
00087 paint->drawLine(0,0,0,viewport()->height());
00088 paint->setPen(colorGroup().background().dark(120));
00089 paint->drawLine(1,0,1,viewport()->height());
00090
00091
00092 }
00093
else
00094
if (m_position==KMultiTabBar::Left)
00095 {
00096 paint->setPen(colorGroup().light());
00097 paint->drawLine(23,0,23,viewport()->height());
00098 paint->drawLine(22,0,22,viewport()->height());
00099
00100 paint->setPen(colorGroup().shadow());
00101 paint->drawLine(0,0,0,viewport()->height());
00102 }
00103
else
00104
if (m_position==KMultiTabBar::Bottom)
00105 {
00106 paint->setPen(colorGroup().shadow());
00107 paint->drawLine(0,0,viewport()->width(),0);
00108 paint->setPen(colorGroup().background().dark(120));
00109 paint->drawLine(0,1,viewport()->width(),1);
00110 }
00111
else
00112 {
00113 paint->setPen(colorGroup().light());
00114 paint->drawLine(0,23,viewport()->width(),23);
00115 paint->drawLine(0,22,viewport()->width(),22);
00116
00117
00118
00119
00120 }
00121
00122
00123 }
00124
00125
void KMultiTabBarInternal::contentsMousePressEvent(
QMouseEvent *ev)
00126 {
00127 ev->ignore();
00128 }
00129
00130
void KMultiTabBarInternal::mousePressEvent(
QMouseEvent *ev)
00131 {
00132 ev->ignore();
00133 }
00134
00135
void KMultiTabBarInternal::showActiveTabTexts(
bool show)
00136 {
00137 m_showActiveTabTexts=show;
00138 }
00139
00140
00141
KMultiTabBarTab* KMultiTabBarInternal::tab(
int id)
const
00142
{
00143
for (
QPtrListIterator<KMultiTabBarTab> it(m_tabs);it.current();++it){
00144
if (it.current()->id()==
id)
return it.current();
00145 }
00146
return 0;
00147 }
00148
00149
00150
int KMultiTabBarInternal::appendTab(
const QPixmap &pic ,
int id,
const QString& text)
00151 {
00152
KMultiTabBarTab *tab;
00153 m_tabs.append(tab=
new KMultiTabBarTab(pic,text,
id,box,m_position,m_style));
00154 tab->
showActiveTabText(m_showActiveTabTexts);
00155
00156
if (m_style==KMultiTabBar::KONQSBC)
00157 {
00158
if (m_expandedTabSize<tab->
neededSize()) {
00159 m_expandedTabSize=tab->
neededSize();
00160
for (uint i=0;i<m_tabs.count();i++)
00161 m_tabs.at(i)->setSize(m_expandedTabSize);
00162
00163 }
else tab->
setSize(m_expandedTabSize);
00164 }
else tab->
updateState();
00165 tab->show();
00166
return 0;
00167 }
00168
00169
void KMultiTabBarInternal::removeTab(
int id)
00170 {
00171
for (uint pos=0;pos<m_tabs.count();pos++)
00172 {
00173
if (m_tabs.at(pos)->id()==
id)
00174 {
00175 m_tabs.remove(pos);
00176 resizeEvent(0);
00177
break;
00178 }
00179 }
00180 }
00181
00182
void KMultiTabBarInternal::setPosition(
enum KMultiTabBar::KMultiTabBarPosition pos)
00183 {
00184 m_position=pos;
00185
for (uint i=0;i<m_tabs.count();i++)
00186 m_tabs.at(i)->setTabsPosition(m_position);
00187 viewport()->repaint();
00188 }
00189
00190
00191 KMultiTabBarButton::KMultiTabBarButton(
const QPixmap& pic,
const QString& text,
QPopupMenu *popup,
00192
int id,
QWidget *parent,KMultiTabBar::KMultiTabBarPosition pos,KMultiTabBar::KMultiTabBarStyle style)
00193 :
QPushButton(
QIconSet(),text,parent),m_style(style)
00194 {
00195 setIconSet(pic);
00196 setText(text);
00197 m_position=pos;
00198
if (popup) setPopup(popup);
00199 setFlat(
true);
00200 setFixedHeight(24);
00201 setFixedWidth(24);
00202 m_id=
id;
00203 QToolTip::add(
this,text);
00204 connect(
this,SIGNAL(clicked()),
this,SLOT(slotClicked()));
00205 }
00206
00207 KMultiTabBarButton::KMultiTabBarButton(
const QString& text,
QPopupMenu *popup,
00208
int id,
QWidget *parent,KMultiTabBar::KMultiTabBarPosition pos,KMultiTabBar::KMultiTabBarStyle style)
00209 :
QPushButton(
QIconSet(),text,parent),m_style(style)
00210 {
00211 setText(text);
00212 m_position=pos;
00213
if (popup) setPopup(popup);
00214 setFlat(
true);
00215 setFixedHeight(24);
00216 setFixedWidth(24);
00217 m_id=
id;
00218 QToolTip::add(
this,text);
00219 connect(
this,SIGNAL(clicked()),
this,SLOT(slotClicked()));
00220 }
00221
00222 KMultiTabBarButton::~KMultiTabBarButton() {
00223 }
00224
00225
int KMultiTabBarButton::id()
const{
00226
return m_id;
00227 }
00228
00229 void KMultiTabBarButton::setText(
const QString& text)
00230 {
00231 QPushButton::setText(text);
00232 m_text=text;
00233 QToolTip::add(
this,text);
00234 }
00235
00236
void KMultiTabBarButton::slotClicked()
00237 {
00238 emit clicked(m_id);
00239 }
00240
00241 void KMultiTabBarButton::setPosition(KMultiTabBar::KMultiTabBarPosition pos)
00242 {
00243 m_position=pos;
00244 repaint();
00245 }
00246
00247 void KMultiTabBarButton::setStyle(KMultiTabBar::KMultiTabBarStyle style)
00248 {
00249 m_style=style;
00250 repaint();
00251 }
00252
00253
QSize KMultiTabBarButton::sizeHint()
const
00254
{
00255 constPolish();
00256
00257
int w = 0, h = 0;
00258
00259
00260
#ifndef QT_NO_ICONSET
00261
if ( iconSet() && !iconSet()->isNull() ) {
00262
int iw = iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width() + 4;
00263
int ih = iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height();
00264 w += iw;
00265 h = QMAX( h, ih );
00266 }
00267
#endif
00268
if ( isMenuButton() )
00269 w += style().pixelMetric(QStyle::PM_MenuButtonIndicator,
this);
00270
00271
if ( pixmap() ) {
00272
QPixmap *pm = (
QPixmap *)pixmap();
00273 w += pm->width();
00274 h += pm->height();
00275 }
else {
00276
QString s( text() );
00277
bool empty = s.isEmpty();
00278
if ( empty )
00279 s = QString::fromLatin1(
"XXXX");
00280
QFontMetrics fm = fontMetrics();
00281
QSize sz = fm.size( ShowPrefix, s );
00282
if(!empty || !w)
00283 w += sz.width();
00284
if(!empty || !h)
00285 h = QMAX(h, sz.height());
00286 }
00287
00288
return (style().sizeFromContents(QStyle::CT_ToolButton,
this,
QSize(w, h)).
00289 expandedTo(QApplication::globalStrut()));
00290 }
00291
00292
00293 KMultiTabBarTab::KMultiTabBarTab(
const QPixmap& pic,
const QString& text,
00294
int id,
QWidget *parent,KMultiTabBar::KMultiTabBarPosition pos,
00295 KMultiTabBar::KMultiTabBarStyle style)
00296 :
KMultiTabBarButton(text,0,id,parent,pos,style),
00297 m_showActiveTabText(false)
00298 {
00299 d=
new KMultiTabBarTabPrivate();
00300 setIcon(pic);
00301 m_expandedSize=24;
00302 setToggleButton(
true);
00303 }
00304
00305 KMultiTabBarTab::~KMultiTabBarTab() {
00306
delete d;
00307 }
00308
00309
00310
void KMultiTabBarTab::setTabsPosition(KMultiTabBar::KMultiTabBarPosition pos)
00311 {
00312
if ((pos!=m_position) && ((pos==KMultiTabBar::Left) || (pos==KMultiTabBar::Right))) {
00313
if (!d->pix.isNull()) {
00314
QWMatrix temp;
00315 temp.rotate(180);
00316 d->pix=d->pix.xForm(temp);
00317 setIconSet(d->pix);
00318 }
00319 }
00320
00321
setPosition(pos);
00322
00323 }
00324
00325
void KMultiTabBarTab::setIcon(
const QString& icon)
00326 {
00327
QPixmap pic=SmallIcon(icon);
00328 setIcon(pic);
00329 }
00330
00331
void KMultiTabBarTab::setIcon(
const QPixmap& icon)
00332 {
00333
00334
if ((m_position==KMultiTabBar::Left) || (m_position==KMultiTabBar::Right)) {
00335
QWMatrix rotateMatrix;
00336
if (m_position==KMultiTabBar::Left)
00337 rotateMatrix.rotate(90);
00338
else
00339 rotateMatrix.rotate(-90);
00340
QPixmap pic=icon.xForm(rotateMatrix);
00341
#if 0
00342
if(m_position==KMultiTabBar::Left) {
00343
QWMatrix flipMatrix;
00344 flipMatrix.setMatrix(1.0F, 0.0F, 0.0F, -1.0F, 0.0F, 0.0F);
00345 pic=pic.xForm(flipMatrix);
00346 }
00347
#endif
00348
d->pix=pic;
00349 setIconSet(pic);
00350 }
else setIconSet(icon);
00351
00352 }
00353
00354
void KMultiTabBarTab::slotClicked()
00355 {
00356 updateState();
00357 KMultiTabBarButton::slotClicked();
00358 }
00359
00360 void KMultiTabBarTab::setState(
bool b)
00361 {
00362 setOn(b);
00363 updateState();
00364 }
00365
00366
void KMultiTabBarTab::updateState()
00367 {
00368
00369
if (m_style!=KMultiTabBar::KONQSBC) {
00370
if ((m_style==KMultiTabBar::KDEV3) || (isOn())) {
00371 QPushButton::setText(m_text);
00372 }
else {
00373
kdDebug()<<
"KMultiTabBarTab::updateState(): setting text to an empty QString***************"<<
endl;
00374 QPushButton::setText(QString::null);
00375 }
00376
00377
if ((m_position==KMultiTabBar::Right || m_position==KMultiTabBar::Left)) {
00378 setFixedWidth(24);
00379
if ((m_style==KMultiTabBar::KDEV3) || (isOn())) {
00380 setFixedHeight(KMultiTabBarButton::sizeHint().width());
00381 }
else setFixedHeight(36);
00382 }
else {
00383 setFixedHeight(24);
00384
if ((m_style==KMultiTabBar::KDEV3) || (isOn())) {
00385 setFixedWidth(KMultiTabBarButton::sizeHint().width());
00386 }
else setFixedWidth(36);
00387 }
00388 }
else {
00389
if ((!isOn()) || (!m_showActiveTabText))
00390 {
00391 setFixedWidth(24);
00392 setFixedHeight(24);
00393
return;
00394 }
00395
if ((m_position==KMultiTabBar::Right || m_position==KMultiTabBar::Left))
00396 setFixedHeight(m_expandedSize);
00397
else
00398 setFixedWidth(m_expandedSize);
00399 }
00400
00401 }
00402
00403
int KMultiTabBarTab::neededSize()
00404 {
00405
return (24+
QFontMetrics(
QFont()).width(m_text)+6);
00406 }
00407
00408
void KMultiTabBarTab::setSize(
int size)
00409 {
00410 m_expandedSize=size;
00411 updateState();
00412 }
00413
00414 void KMultiTabBarTab::showActiveTabText(
bool show)
00415 {
00416 m_showActiveTabText=show;
00417 }
00418
00419
void KMultiTabBarTab::drawButtonLabel(
QPainter *p) {
00420 drawButton(p);
00421 }
00422
void KMultiTabBarTab::drawButton(
QPainter *paint)
00423 {
00424
if (m_style!=KMultiTabBar::KONQSBC)
drawButtonStyled(paint);
00425
else drawButtonClassic(paint);
00426 }
00427
00428 void KMultiTabBarTab::drawButtonStyled(
QPainter *paint) {
00429
00430
QSize sh;
00431
const int width = 36;
00432
const int height = 24;
00433
if ((m_style==KMultiTabBar::KDEV3) || (isOn()))
00434 sh=KMultiTabBarButton::sizeHint();
00435
else
00436 sh=
QSize(width,height);
00437
00438
QPixmap pixmap( sh.width(),height);
00439 pixmap.fill(eraseColor());
00440
QPainter painter(&pixmap);
00441
00442
00443 QStyle::SFlags st=QStyle::Style_Default;
00444
00445 st|=QStyle::Style_Enabled;
00446
00447
if (isOn()) st|=QStyle::Style_On;
00448
00449 style().drawControl(QStyle::CE_PushButton,&painter,
this,
QRect(0,0,pixmap.width(),pixmap.height()), colorGroup(),st);
00450 style().drawControl(QStyle::CE_PushButtonLabel,&painter,
this,
QRect(0,0,pixmap.width(),pixmap.height()), colorGroup(),st);
00451
00452
switch (m_position) {
00453
case KMultiTabBar::Left:
00454 paint->
rotate(-90);
00455 paint->drawPixmap(1-pixmap.width(),0,pixmap);
00456
break;
00457
case KMultiTabBar::Right:
00458 paint->
rotate(90);
00459 paint->drawPixmap(0,1-pixmap.height(),pixmap);
00460
break;
00461
00462
default:
00463 paint->drawPixmap(0,0,pixmap);
00464
break;
00465 }
00466
00467
00468
00469
00470 }
00471
00472
void KMultiTabBarTab::drawButtonClassic(
QPainter *paint)
00473 {
00474
QPixmap pixmap;
00475
if ( iconSet())
00476 pixmap = iconSet()->pixmap( QIconSet::Small, QIconSet::Normal );
00477 paint->fillRect(0, 0, 24, 24, colorGroup().background());
00478
00479
if (!isOn())
00480 {
00481
00482
if (m_position==KMultiTabBar::Right)
00483 {
00484 paint->fillRect(0,0,21,21,
QBrush(colorGroup().background()));
00485
00486 paint->setPen(colorGroup().background().dark(150));
00487 paint->drawLine(0,22,23,22);
00488
00489 paint->drawPixmap(12-pixmap.width()/2,12-pixmap.height()/2,pixmap);
00490
00491 paint->setPen(colorGroup().shadow());
00492 paint->drawLine(0,0,0,23);
00493 paint->setPen(colorGroup().background().dark(120));
00494 paint->drawLine(1,0,1,23);
00495
00496 }
00497
else
00498
if ((m_position==KMultiTabBar::Bottom) || (m_position==KMultiTabBar::Top))
00499 {
00500 paint->fillRect(0,1,23,22,
QBrush(colorGroup().background()));
00501
00502 paint->drawPixmap(12-pixmap.width()/2,12-pixmap.height()/2,pixmap);
00503
00504 paint->setPen(colorGroup().background().dark(120));
00505 paint->drawLine(23,0,23,23);
00506
00507
00508 paint->setPen(colorGroup().light());
00509 paint->drawLine(0,22,23,22);
00510 paint->drawLine(0,23,23,23);
00511 paint->setPen(colorGroup().shadow());
00512 paint->drawLine(0,0,23,0);
00513 paint->setPen(colorGroup().background().dark(120));
00514 paint->drawLine(0,1,23,1);
00515
00516 }
00517
else
00518 {
00519 paint->setPen(colorGroup().background().dark(120));
00520 paint->drawLine(0,23,23,23);
00521 paint->fillRect(0,0,23,21,
QBrush(colorGroup().background()));
00522 paint->drawPixmap(12-pixmap.width()/2,12-pixmap.height()/2,pixmap);
00523
00524 paint->setPen(colorGroup().light());
00525 paint->drawLine(23,0,23,23);
00526 paint->drawLine(22,0,22,23);
00527
00528 paint->setPen(colorGroup().shadow());
00529 paint->drawLine(0,0,0,23);
00530
00531 }
00532
00533
00534 }
00535
else
00536 {
00537
if (m_position==KMultiTabBar::Right)
00538 {
00539 paint->setPen(colorGroup().shadow());
00540 paint->drawLine(0,height()-1,23,height()-1);
00541 paint->drawLine(0,height()-2,23,height()-2);
00542 paint->drawLine(23,0,23,height()-1);
00543 paint->drawLine(22,0,22,height()-1);
00544 paint->fillRect(0,0,21,height()-3,
QBrush(colorGroup().light()));
00545 paint->drawPixmap(10-pixmap.width()/2,10-pixmap.height()/2,pixmap);
00546
00547
if (m_showActiveTabText)
00548 {
00549
if (height()<25+4)
return;
00550
00551
QPixmap tpixmap(height()-25-3, width()-2);
00552
QPainter painter(&tpixmap);
00553
00554 painter.fillRect(0,0,tpixmap.width(),tpixmap.height(),
QBrush(colorGroup().light()));
00555
00556 painter.setPen(colorGroup().text());
00557 painter.drawText(0,+width()/2+
QFontMetrics(
QFont()).height()/2,m_text);
00558
00559 paint->
rotate(90);
00560
kdDebug()<<
"tpixmap.width:"<<tpixmap.width()<<
endl;
00561 paint->drawPixmap(25,-tpixmap.height()+1,tpixmap);
00562 }
00563
00564 }
00565
else
00566
if (m_position==KMultiTabBar::Top)
00567 {
00568 paint->fillRect(0,0,width()-1,23,
QBrush(colorGroup().light()));
00569 paint->drawPixmap(10-pixmap.width()/2,10-pixmap.height()/2,pixmap);
00570
if (m_showActiveTabText)
00571 {
00572 paint->setPen(colorGroup().text());
00573 paint->drawText(25,height()/2+
QFontMetrics(
QFont()).height()/2,m_text);
00574 }
00575 }
00576
else
00577
if (m_position==KMultiTabBar::Bottom)
00578 {
00579 paint->setPen(colorGroup().shadow());
00580 paint->drawLine(0,23,width()-1,23);
00581 paint->drawLine(0,22,width()-1,22);
00582 paint->fillRect(0,0,width()-1,21,
QBrush(colorGroup().light()));
00583 paint->drawPixmap(10-pixmap.width()/2,10-pixmap.height()/2,pixmap);
00584
if (m_showActiveTabText)
00585 {
00586 paint->setPen(colorGroup().text());
00587 paint->drawText(25,height()/2+
QFontMetrics(
QFont()).height()/2,m_text);
00588 }
00589
00590 }
00591
else
00592 {
00593
00594
00595 paint->setPen(colorGroup().shadow());
00596 paint->drawLine(0,height()-1,23,height()-1);
00597 paint->drawLine(0,height()-2,23,height()-2);
00598 paint->fillRect(0,0,23,height()-3,
QBrush(colorGroup().light()));
00599 paint->drawPixmap(10-pixmap.width()/2,10-pixmap.height()/2,pixmap);
00600
if (m_showActiveTabText)
00601 {
00602
00603
if (height()<25+4)
return;
00604
00605
QPixmap tpixmap(height()-25-3, width()-2);
00606
QPainter painter(&tpixmap);
00607
00608 painter.fillRect(0,0,tpixmap.width(),tpixmap.height(),
QBrush(colorGroup().light()));
00609
00610 painter.setPen(colorGroup().text());
00611 painter.drawText(tpixmap.width()-
QFontMetrics(
QFont()).width(m_text),+width()/2+
QFontMetrics(
QFont()).height()/2,m_text);
00612
00613 paint->
rotate(-90);
00614
kdDebug()<<
"tpixmap.width:"<<tpixmap.width()<<
endl;
00615
00616 paint->drawPixmap(-24-tpixmap.width(),2,tpixmap);
00617
00618 }
00619
00620 }
00621
00622 }
00623 }
00624
00625
00626
00627
00628
00629
00630
00631 KMultiTabBar::KMultiTabBar(KMultiTabBarMode bm,
QWidget *parent,
const char *name):
QWidget(parent,
name)
00632 {
00633 m_buttons.setAutoDelete(
false);
00634
if (bm==Vertical)
00635 {
00636 m_l=
new QVBoxLayout(
this);
00637 setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding,
true);
00638
00639 }
00640
else
00641 {
00642 m_l=
new QHBoxLayout(
this);
00643 setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed,
true);
00644
00645 }
00646 m_l->setMargin(0);
00647 m_l->setAutoAdd(
false);
00648
00649 m_internal=
new KMultiTabBarInternal(
this,bm);
00650
setPosition((bm==KMultiTabBar::Vertical)?KMultiTabBar::Right:KMultiTabBar::Bottom);
00651
setStyle(VSNET);
00652
00653
00654 m_l->insertWidget(0,m_internal);
00655 m_l->insertWidget(0,m_btnTabSep=
new QFrame(
this));
00656 m_btnTabSep->setFixedHeight(4);
00657 m_btnTabSep->setFrameStyle(QFrame::Panel | QFrame::Sunken);
00658 m_btnTabSep->setLineWidth(2);
00659 m_btnTabSep->hide();
00660
00661 updateGeometry();
00662 }
00663
00664 KMultiTabBar::~KMultiTabBar() {
00665 }
00666
00667
00668
00669
00670
00671
00672
00673 int KMultiTabBar::appendButton(
const QPixmap &pic ,
int id,
QPopupMenu *popup,
const QString&)
00674 {
00675
KMultiTabBarButton *btn;
00676 m_buttons.append(btn=
new KMultiTabBarButton(pic,QString::null,
00677 popup,
id,
this,m_position,m_internal->m_style));
00678 m_l->insertWidget(0,btn);
00679 btn->show();
00680 m_btnTabSep->show();
00681
return 0;
00682 }
00683
00684 int KMultiTabBar::appendTab(
const QPixmap &pic ,
int id ,
const QString& text)
00685 {
00686 m_internal->appendTab(pic,
id,text);
00687
return 0;
00688 }
00689
00690 KMultiTabBarButton*
KMultiTabBar::button(
int id)
const
00691
{
00692
for (
QPtrListIterator<KMultiTabBarButton> it(m_buttons);it.current();++it){
00693
if (it.current()->id()==
id)
return it.current();
00694 }
00695
return 0;
00696 }
00697
00698 KMultiTabBarTab*
KMultiTabBar::tab(
int id)
const
00699
{
00700
return m_internal->tab(
id);
00701 }
00702
00703
00704
00705 void KMultiTabBar::removeButton(
int id)
00706 {
00707
for (uint pos=0;pos<m_buttons.count();pos++)
00708 {
00709
if (m_buttons.at(pos)->id()==
id)
00710 {
00711 m_buttons.take(pos)->deleteLater();
00712
break;
00713 }
00714 }
00715
if (m_buttons.count()==0) m_btnTabSep->hide();
00716 }
00717
00718 void KMultiTabBar::removeTab(
int id)
00719 {
00720 m_internal->removeTab(
id);
00721 }
00722
00723 void KMultiTabBar::setTab(
int id,
bool state)
00724 {
00725
KMultiTabBarTab *ttab=tab(
id);
00726
if (ttab)
00727 {
00728 ttab->
setState(state);
00729 }
00730 }
00731
00732 bool KMultiTabBar::isTabRaised(
int id)
const
00733
{
00734
KMultiTabBarTab *ttab=tab(
id);
00735
if (ttab)
00736 {
00737
return ttab->isOn();
00738 }
00739
00740
return false;
00741 }
00742
00743
00744 void KMultiTabBar::showActiveTabTexts(
bool show)
00745 {
00746 m_internal->showActiveTabTexts(show);
00747 }
00748
00749 void KMultiTabBar::setStyle(KMultiTabBarStyle style)
00750 {
00751 m_internal->setStyle(style);
00752 }
00753
00754 void KMultiTabBar::setPosition(KMultiTabBarPosition pos)
00755 {
00756 m_position=pos;
00757 m_internal->setPosition(pos);
00758
for (uint i=0;i<m_buttons.count();i++)
00759 m_buttons.at(i)->setPosition(pos);
00760 }
00761
00762 QPtrList<KMultiTabBarTab>*
KMultiTabBar::tabs() {
return m_internal->tabs();}
00763 QPtrList<KMultiTabBarButton>*
KMultiTabBar::buttons() {
return &m_buttons;}
00764