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 break;
00177 }
00178 }
00179 }
00180
00181 void KMultiTabBarInternal::setPosition(enum KMultiTabBar::KMultiTabBarPosition pos)
00182 {
00183 m_position=pos;
00184 for (uint i=0;i<m_tabs.count();i++)
00185 m_tabs.at(i)->setTabsPosition(m_position);
00186 viewport()->repaint();
00187 }
00188
00189
00190 KMultiTabBarButton::KMultiTabBarButton(const QPixmap& pic,const QString& text, QPopupMenu *popup,
00191 int id,QWidget *parent,KMultiTabBar::KMultiTabBarPosition pos,KMultiTabBar::KMultiTabBarStyle style)
00192 :QPushButton(QIconSet(),text,parent),m_style(style)
00193 {
00194 setIconSet(pic);
00195 setText(text);
00196 m_position=pos;
00197 if (popup) setPopup(popup);
00198 setFlat(true);
00199 setFixedHeight(24);
00200 setFixedWidth(24);
00201 m_id=id;
00202 QToolTip::add(this,text);
00203 connect(this,SIGNAL(clicked()),this,SLOT(slotClicked()));
00204 }
00205
00206 KMultiTabBarButton::KMultiTabBarButton(const QString& text, QPopupMenu *popup,
00207 int id,QWidget *parent,KMultiTabBar::KMultiTabBarPosition pos,KMultiTabBar::KMultiTabBarStyle style)
00208 :QPushButton(QIconSet(),text,parent),m_style(style)
00209 {
00210 setText(text);
00211 m_position=pos;
00212 if (popup) setPopup(popup);
00213 setFlat(true);
00214 setFixedHeight(24);
00215 setFixedWidth(24);
00216 m_id=id;
00217 QToolTip::add(this,text);
00218 connect(this,SIGNAL(clicked()),this,SLOT(slotClicked()));
00219 }
00220
00221 KMultiTabBarButton::~KMultiTabBarButton() {
00222 }
00223
00224 int KMultiTabBarButton::id() const{
00225 return m_id;
00226 }
00227
00228 void KMultiTabBarButton::setText(const QString& text)
00229 {
00230 QPushButton::setText(text);
00231 m_text=text;
00232 QToolTip::add(this,text);
00233 }
00234
00235 void KMultiTabBarButton::slotClicked()
00236 {
00237 emit clicked(m_id);
00238 }
00239
00240 void KMultiTabBarButton::setPosition(KMultiTabBar::KMultiTabBarPosition pos)
00241 {
00242 m_position=pos;
00243 repaint();
00244 }
00245
00246 void KMultiTabBarButton::setStyle(KMultiTabBar::KMultiTabBarStyle style)
00247 {
00248 m_style=style;
00249 repaint();
00250 }
00251
00252 QSize KMultiTabBarButton::sizeHint() const
00253 {
00254 constPolish();
00255
00256 int w = 0, h = 0;
00257
00258
00259 #ifndef QT_NO_ICONSET
00260 if ( iconSet() && !iconSet()->isNull() ) {
00261 int iw = iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width() + 4;
00262 int ih = iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height();
00263 w += iw;
00264 h = QMAX( h, ih );
00265 }
00266 #endif
00267 if ( isMenuButton() )
00268 w += style().pixelMetric(QStyle::PM_MenuButtonIndicator, this);
00269
00270 if ( pixmap() ) {
00271 QPixmap *pm = (QPixmap *)pixmap();
00272 w += pm->width();
00273 h += pm->height();
00274 } else {
00275 QString s( text() );
00276 bool empty = s.isEmpty();
00277 if ( empty )
00278 s = QString::fromLatin1("XXXX");
00279 QFontMetrics fm = fontMetrics();
00280 QSize sz = fm.size( ShowPrefix, s );
00281 if(!empty || !w)
00282 w += sz.width();
00283 if(!empty || !h)
00284 h = QMAX(h, sz.height());
00285 }
00286
00287 return (style().sizeFromContents(QStyle::CT_ToolButton, this, QSize(w, h)).
00288 expandedTo(QApplication::globalStrut()));
00289 }
00290
00291
00292 KMultiTabBarTab::KMultiTabBarTab(const QPixmap& pic, const QString& text,
00293 int id,QWidget *parent,KMultiTabBar::KMultiTabBarPosition pos,
00294 KMultiTabBar::KMultiTabBarStyle style)
00295 :KMultiTabBarButton(text,0,id,parent,pos,style),
00296 m_showActiveTabText(false)
00297 {
00298 d=new KMultiTabBarTabPrivate();
00299 setIcon(pic);
00300 m_expandedSize=24;
00301 setToggleButton(true);
00302 }
00303
00304 KMultiTabBarTab::~KMultiTabBarTab() {
00305 delete d;
00306 }
00307
00308
00309 void KMultiTabBarTab::setTabsPosition(KMultiTabBar::KMultiTabBarPosition pos)
00310 {
00311 if ((pos!=m_position) && ((pos==KMultiTabBar::Left) || (pos==KMultiTabBar::Right))) {
00312 if (!d->pix.isNull()) {
00313 QWMatrix temp;
00314 temp.rotate(180);
00315 d->pix=d->pix.xForm(temp);
00316 setIconSet(d->pix);
00317 }
00318 }
00319
00320 setPosition(pos);
00321
00322 }
00323
00324 void KMultiTabBarTab::setIcon(const QString& icon)
00325 {
00326 QPixmap pic=SmallIcon(icon);
00327 setIcon(pic);
00328 }
00329
00330 void KMultiTabBarTab::setIcon(const QPixmap& icon)
00331 {
00332
00333 if ((m_position==KMultiTabBar::Left) || (m_position==KMultiTabBar::Right)) {
00334 QWMatrix rotateMatrix;
00335 if (m_position==KMultiTabBar::Left)
00336 rotateMatrix.rotate(90);
00337 else
00338 rotateMatrix.rotate(-90);
00339 QPixmap pic=icon.xForm(rotateMatrix);
00340 #if 0
00341 if(m_position==KMultiTabBar::Left) {
00342 QWMatrix flipMatrix;
00343 flipMatrix.setMatrix(1.0F, 0.0F, 0.0F, -1.0F, 0.0F, 0.0F);
00344 pic=pic.xForm(flipMatrix);
00345 }
00346 #endif
00347 d->pix=pic;
00348 setIconSet(pic);
00349 } else setIconSet(icon);
00350
00351 }
00352
00353 void KMultiTabBarTab::slotClicked()
00354 {
00355 updateState();
00356 KMultiTabBarButton::slotClicked();
00357 }
00358
00359 void KMultiTabBarTab::setState(bool b)
00360 {
00361 setOn(b);
00362 updateState();
00363 }
00364
00365 void KMultiTabBarTab::updateState()
00366 {
00367
00368 if (m_style!=KMultiTabBar::KONQSBC) {
00369 if ((m_style==KMultiTabBar::KDEV3) || (isOn())) {
00370 QPushButton::setText(m_text);
00371 } else {
00372 kdDebug()<<"KMultiTabBarTab::updateState(): setting text to an empty QString***************"<<endl;
00373 QPushButton::setText(QString::null);
00374 }
00375
00376 if ((m_position==KMultiTabBar::Right || m_position==KMultiTabBar::Left)) {
00377 setFixedWidth(24);
00378 if ((m_style==KMultiTabBar::KDEV3) || (isOn())) {
00379 setFixedHeight(KMultiTabBarButton::sizeHint().width());
00380 } else setFixedHeight(36);
00381 } else {
00382 setFixedHeight(24);
00383 if ((m_style==KMultiTabBar::KDEV3) || (isOn())) {
00384 setFixedWidth(KMultiTabBarButton::sizeHint().width());
00385 } else setFixedWidth(36);
00386 }
00387 } else {
00388 if ((!isOn()) || (!m_showActiveTabText))
00389 {
00390 setFixedWidth(24);
00391 setFixedHeight(24);
00392 return;
00393 }
00394 if ((m_position==KMultiTabBar::Right || m_position==KMultiTabBar::Left))
00395 setFixedHeight(m_expandedSize);
00396 else
00397 setFixedWidth(m_expandedSize);
00398 }
00399
00400 }
00401
00402 int KMultiTabBarTab::neededSize()
00403 {
00404 return (24+QFontMetrics(QFont()).width(m_text)+6);
00405 }
00406
00407 void KMultiTabBarTab::setSize(int size)
00408 {
00409 m_expandedSize=size;
00410 updateState();
00411 }
00412
00413 void KMultiTabBarTab::showActiveTabText(bool show)
00414 {
00415 m_showActiveTabText=show;
00416 }
00417
00418 void KMultiTabBarTab::drawButtonLabel(QPainter *p) {
00419 drawButton(p);
00420 }
00421 void KMultiTabBarTab::drawButton(QPainter *paint)
00422 {
00423 if (m_style!=KMultiTabBar::KONQSBC) drawButtonStyled(paint);
00424 else drawButtonClassic(paint);
00425 }
00426
00427 void KMultiTabBarTab::drawButtonStyled(QPainter *paint) {
00428
00429 QSize sh;
00430 const int width = 36;
00431 const int height = 24;
00432 if ((m_style==KMultiTabBar::KDEV3) || (isOn()))
00433 sh=KMultiTabBarButton::sizeHint();
00434 else
00435 sh=QSize(width,height);
00436
00437 QPixmap pixmap( sh.width(),height);
00438 pixmap.fill(eraseColor());
00439 QPainter painter(&pixmap);
00440
00441
00442 QStyle::SFlags st=QStyle::Style_Default;
00443
00444 st|=QStyle::Style_Enabled;
00445
00446 if (isOn()) st|=QStyle::Style_On;
00447
00448 style().drawControl(QStyle::CE_PushButton,&painter,this, QRect(0,0,pixmap.width(),pixmap.height()), colorGroup(),st);
00449 style().drawControl(QStyle::CE_PushButtonLabel,&painter,this, QRect(0,0,pixmap.width(),pixmap.height()), colorGroup(),st);
00450
00451 switch (m_position) {
00452 case KMultiTabBar::Left:
00453 paint->rotate(-90);
00454 paint->drawPixmap(1-pixmap.width(),0,pixmap);
00455 break;
00456 case KMultiTabBar::Right:
00457 paint->rotate(90);
00458 paint->drawPixmap(0,1-pixmap.height(),pixmap);
00459 break;
00460
00461 default:
00462 paint->drawPixmap(0,0,pixmap);
00463 break;
00464 }
00465
00466
00467
00468
00469 }
00470
00471 void KMultiTabBarTab::drawButtonClassic(QPainter *paint)
00472 {
00473 QPixmap pixmap;
00474 if ( iconSet())
00475 pixmap = iconSet()->pixmap( QIconSet::Small, QIconSet::Normal );
00476 paint->fillRect(0, 0, 24, 24, colorGroup().background());
00477
00478 if (!isOn())
00479 {
00480
00481 if (m_position==KMultiTabBar::Right)
00482 {
00483 paint->fillRect(0,0,21,21,QBrush(colorGroup().background()));
00484
00485 paint->setPen(colorGroup().background().dark(150));
00486 paint->drawLine(0,22,23,22);
00487
00488 paint->drawPixmap(12-pixmap.width()/2,12-pixmap.height()/2,pixmap);
00489
00490 paint->setPen(colorGroup().shadow());
00491 paint->drawLine(0,0,0,23);
00492 paint->setPen(colorGroup().background().dark(120));
00493 paint->drawLine(1,0,1,23);
00494
00495 }
00496 else
00497 if ((m_position==KMultiTabBar::Bottom) || (m_position==KMultiTabBar::Top))
00498 {
00499 paint->fillRect(0,1,23,22,QBrush(colorGroup().background()));
00500
00501 paint->drawPixmap(12-pixmap.width()/2,12-pixmap.height()/2,pixmap);
00502
00503 paint->setPen(colorGroup().background().dark(120));
00504 paint->drawLine(23,0,23,23);
00505
00506
00507 paint->setPen(colorGroup().light());
00508 paint->drawLine(0,22,23,22);
00509 paint->drawLine(0,23,23,23);
00510 paint->setPen(colorGroup().shadow());
00511 paint->drawLine(0,0,23,0);
00512 paint->setPen(colorGroup().background().dark(120));
00513 paint->drawLine(0,1,23,1);
00514
00515 }
00516 else
00517 {
00518 paint->setPen(colorGroup().background().dark(120));
00519 paint->drawLine(0,23,23,23);
00520 paint->fillRect(0,0,23,21,QBrush(colorGroup().background()));
00521 paint->drawPixmap(12-pixmap.width()/2,12-pixmap.height()/2,pixmap);
00522
00523 paint->setPen(colorGroup().light());
00524 paint->drawLine(23,0,23,23);
00525 paint->drawLine(22,0,22,23);
00526
00527 paint->setPen(colorGroup().shadow());
00528 paint->drawLine(0,0,0,23);
00529
00530 }
00531
00532
00533 }
00534 else
00535 {
00536 if (m_position==KMultiTabBar::Right)
00537 {
00538 paint->setPen(colorGroup().shadow());
00539 paint->drawLine(0,height()-1,23,height()-1);
00540 paint->drawLine(0,height()-2,23,height()-2);
00541 paint->drawLine(23,0,23,height()-1);
00542 paint->drawLine(22,0,22,height()-1);
00543 paint->fillRect(0,0,21,height()-3,QBrush(colorGroup().light()));
00544 paint->drawPixmap(10-pixmap.width()/2,10-pixmap.height()/2,pixmap);
00545
00546 if (m_showActiveTabText)
00547 {
00548 if (height()<25+4) return;
00549
00550 QPixmap tpixmap(height()-25-3, width()-2);
00551 QPainter painter(&tpixmap);
00552
00553 painter.fillRect(0,0,tpixmap.width(),tpixmap.height(),QBrush(colorGroup().light()));
00554
00555 painter.setPen(colorGroup().text());
00556 painter.drawText(0,+width()/2+QFontMetrics(QFont()).height()/2,m_text);
00557
00558 paint->rotate(90);
00559 kdDebug()<<"tpixmap.width:"<<tpixmap.width()<<endl;
00560 paint->drawPixmap(25,-tpixmap.height()+1,tpixmap);
00561 }
00562
00563 }
00564 else
00565 if (m_position==KMultiTabBar::Top)
00566 {
00567 paint->fillRect(0,0,width()-1,23,QBrush(colorGroup().light()));
00568 paint->drawPixmap(10-pixmap.width()/2,10-pixmap.height()/2,pixmap);
00569 if (m_showActiveTabText)
00570 {
00571 paint->setPen(colorGroup().text());
00572 paint->drawText(25,height()/2+QFontMetrics(QFont()).height()/2,m_text);
00573 }
00574 }
00575 else
00576 if (m_position==KMultiTabBar::Bottom)
00577 {
00578 paint->setPen(colorGroup().shadow());
00579 paint->drawLine(0,23,width()-1,23);
00580 paint->drawLine(0,22,width()-1,22);
00581 paint->fillRect(0,0,width()-1,21,QBrush(colorGroup().light()));
00582 paint->drawPixmap(10-pixmap.width()/2,10-pixmap.height()/2,pixmap);
00583 if (m_showActiveTabText)
00584 {
00585 paint->setPen(colorGroup().text());
00586 paint->drawText(25,height()/2+QFontMetrics(QFont()).height()/2,m_text);
00587 }
00588
00589 }
00590 else
00591 {
00592
00593
00594 paint->setPen(colorGroup().shadow());
00595 paint->drawLine(0,height()-1,23,height()-1);
00596 paint->drawLine(0,height()-2,23,height()-2);
00597 paint->fillRect(0,0,23,height()-3,QBrush(colorGroup().light()));
00598 paint->drawPixmap(10-pixmap.width()/2,10-pixmap.height()/2,pixmap);
00599 if (m_showActiveTabText)
00600 {
00601
00602 if (height()<25+4) return;
00603
00604 QPixmap tpixmap(height()-25-3, width()-2);
00605 QPainter painter(&tpixmap);
00606
00607 painter.fillRect(0,0,tpixmap.width(),tpixmap.height(),QBrush(colorGroup().light()));
00608
00609 painter.setPen(colorGroup().text());
00610 painter.drawText(tpixmap.width()-QFontMetrics(QFont()).width(m_text),+width()/2+QFontMetrics(QFont()).height()/2,m_text);
00611
00612 paint->rotate(-90);
00613 kdDebug()<<"tpixmap.width:"<<tpixmap.width()<<endl;
00614
00615 paint->drawPixmap(-24-tpixmap.width(),2,tpixmap);
00616
00617 }
00618
00619 }
00620
00621 }
00622 }
00623
00624
00625
00626
00627
00628
00629
00630 KMultiTabBar::KMultiTabBar(KMultiTabBarMode bm, QWidget *parent,const char *name):QWidget(parent,name)
00631 {
00632 m_buttons.setAutoDelete(false);
00633 if (bm==Vertical)
00634 {
00635 m_l=new QVBoxLayout(this);
00636 setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding, true);
00637
00638 }
00639 else
00640 {
00641 m_l=new QHBoxLayout(this);
00642 setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed, true);
00643
00644 }
00645 m_l->setMargin(0);
00646 m_l->setAutoAdd(false);
00647
00648 m_internal=new KMultiTabBarInternal(this,bm);
00649 setPosition((bm==KMultiTabBar::Vertical)?KMultiTabBar::Right:KMultiTabBar::Bottom);
00650 setStyle(VSNET);
00651
00652
00653 m_l->insertWidget(0,m_internal);
00654 m_l->insertWidget(0,m_btnTabSep=new QFrame(this));
00655 m_btnTabSep->setFixedHeight(4);
00656 m_btnTabSep->setFrameStyle(QFrame::Panel | QFrame::Sunken);
00657 m_btnTabSep->setLineWidth(2);
00658 m_btnTabSep->hide();
00659
00660 updateGeometry();
00661 }
00662
00663 KMultiTabBar::~KMultiTabBar() {
00664 }
00665
00666
00667
00668
00669
00670
00671
00672 int KMultiTabBar::appendButton(const QPixmap &pic ,int id,QPopupMenu *popup,const QString&)
00673 {
00674 KMultiTabBarButton *btn;
00675 m_buttons.append(btn= new KMultiTabBarButton(pic,QString::null,
00676 popup,id,this,m_position,m_internal->m_style));
00677 m_l->insertWidget(0,btn);
00678 btn->show();
00679 m_btnTabSep->show();
00680 return 0;
00681 }
00682
00683 int KMultiTabBar::appendTab(const QPixmap &pic ,int id ,const QString& text)
00684 {
00685 m_internal->appendTab(pic,id,text);
00686 return 0;
00687 }
00688
00689 KMultiTabBarButton* KMultiTabBar::button(int id) const
00690 {
00691 for (QPtrListIterator<KMultiTabBarButton> it(m_buttons);it.current();++it){
00692 if (it.current()->id()==id) return it.current();
00693 }
00694 return 0;
00695 }
00696
00697 KMultiTabBarTab* KMultiTabBar::tab(int id) const
00698 {
00699 return m_internal->tab(id);
00700 }
00701
00702
00703
00704 void KMultiTabBar::removeButton(int id)
00705 {
00706 for (uint pos=0;pos<m_buttons.count();pos++)
00707 {
00708 if (m_buttons.at(pos)->id()==id)
00709 {
00710 m_buttons.take(pos)->deleteLater();
00711 break;
00712 }
00713 }
00714 if (m_buttons.count()==0) m_btnTabSep->hide();
00715 }
00716
00717 void KMultiTabBar::removeTab(int id)
00718 {
00719 m_internal->removeTab(id);
00720 }
00721
00722 void KMultiTabBar::setTab(int id,bool state)
00723 {
00724 KMultiTabBarTab *ttab=tab(id);
00725 if (ttab)
00726 {
00727 ttab->setState(state);
00728 }
00729 }
00730
00731 bool KMultiTabBar::isTabRaised(int id) const
00732 {
00733 KMultiTabBarTab *ttab=tab(id);
00734 if (ttab)
00735 {
00736 return ttab->isOn();
00737 }
00738
00739 return false;
00740 }
00741
00742
00743 void KMultiTabBar::showActiveTabTexts(bool show)
00744 {
00745 m_internal->showActiveTabTexts(show);
00746 }
00747
00748 void KMultiTabBar::setStyle(KMultiTabBarStyle style)
00749 {
00750 m_internal->setStyle(style);
00751 }
00752
00753 void KMultiTabBar::setPosition(KMultiTabBarPosition pos)
00754 {
00755 m_position=pos;
00756 m_internal->setPosition(pos);
00757 for (uint i=0;i<m_buttons.count();i++)
00758 m_buttons.at(i)->setPosition(pos);
00759 }
00760
00761 QPtrList<KMultiTabBarTab>* KMultiTabBar::tabs() {return m_internal->tabs();}
00762 QPtrList<KMultiTabBarButton>* KMultiTabBar::buttons() {return &m_buttons;}
00763