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