Source Code (Use browser search to find items of interest.)
Class Index
kiconedit'KTabBar (./kdegraphics/kiconedit/ktabbar.h:37)
class KTabBar : public QWidget
{
Q_OBJECT
public:
KTabBar( QWidget * parent = 0, const char * name = 0 );
~KTabBar();
QTabBar *getQTab();
QSize sizeHint();
int addTab( QTab *tab );
void setTabEnabled( int tab, bool enable );
bool isTabEnabled( int tab );
int currentTab();
QTab *tab( int tab );
int keyboardFocusTab();
public slots:
void setCurrentTab( int tab );
void setCurrentTab( QTab *tab );
signals:
void selected( int );
void scrolled( ArrowType );
protected slots:
void leftClicked();
void rightClicked();
void emitSelected(int);
protected:
void init();
void setSizes();
void resizeEvent ( QResizeEvent * );
void paintEvent ( QPaintEvent * );
KTabBarProtected *ptab;
};
kiconedit'KTabBar::KTabBar() (./kdegraphics/kiconedit/ktabbar.cpp:37)
KTabBar::KTabBar(QWidget *parent, const char *name)
: QWidget(parent, name)
{
initMetaObject();
init();
}
kiconedit'KTabBar::~KTabBar() (./kdegraphics/kiconedit/ktabbar.cpp:44)
KTabBar::~KTabBar()
{
//debug("KTabBar - destructor");
//debug("KTabBar - destructor done");
}
kiconedit'KTabBar::init() (./kdegraphics/kiconedit/ktabbar.cpp:51)
void KTabBar::init()
{
ptab = new KTabBarProtected;
ptab->tpos = 0;
ptab->leftscroll = ptab->rightscroll = false;
ptab->tabw = new QWidget(this);
ptab->qtab = new QTabBar(ptab->tabw);
ptab->left = new KTabButton(LeftArrow, this);
connect( ptab->left, SIGNAL(clicked()), SLOT( leftClicked()) );
ptab->right = new KTabButton(RightArrow, this);
connect( ptab->right, SIGNAL(clicked()), SLOT( rightClicked()) );
connect( ptab->qtab, SIGNAL(selected(int)), SLOT( emitSelected(int)) );
//debug("init - done");
}
kiconedit'KTabBar::getQTab() (./kdegraphics/kiconedit/ktabbar.cpp:70)
QTabBar *KTabBar::getQTab()
{
return ptab->qtab;
}
kiconedit'KTabBar::sizeHint() (./kdegraphics/kiconedit/ktabbar.cpp:75)
QSize KTabBar::sizeHint()
{
return ptab->qtab->sizeHint();
}
kiconedit'KTabBar::addTab() (./kdegraphics/kiconedit/ktabbar.cpp:80)
int KTabBar::addTab( QTab *tab )
{
return ptab->qtab->addTab( tab );
}
kiconedit'KTabBar::setTabEnabled() (./kdegraphics/kiconedit/ktabbar.cpp:85)
void KTabBar::setTabEnabled( int tab, bool enable )
{
ptab->qtab->setTabEnabled( tab, enable );
}
kiconedit'KTabBar::isTabEnabled() (./kdegraphics/kiconedit/ktabbar.cpp:90)
bool KTabBar::isTabEnabled( int tab )
{
return ptab->qtab->isTabEnabled( tab );
}
kiconedit'KTabBar::currentTab() (./kdegraphics/kiconedit/ktabbar.cpp:95)
int KTabBar::currentTab()
{
return ptab->qtab->currentTab();
}
kiconedit'KTabBar::tab() (./kdegraphics/kiconedit/ktabbar.cpp:100)
QTab *KTabBar::tab( int tab )
{
return ptab->qtab->tab( tab );
}
kiconedit'KTabBar::keyboardFocusTab() (./kdegraphics/kiconedit/ktabbar.cpp:105)
int KTabBar::keyboardFocusTab()
{
return ptab->qtab->keyboardFocusTab();
}
kiconedit'KTabBar::setCurrentTab() (./kdegraphics/kiconedit/ktabbar.cpp:110)
void KTabBar::setCurrentTab(int tab)
{
ptab->qtab->setCurrentTab(tab);
}
kiconedit'KTabBar::setCurrentTab() (./kdegraphics/kiconedit/ktabbar.cpp:115)
void KTabBar::setCurrentTab(QTab *tab)
{
ptab->qtab->setCurrentTab(tab);
}
kiconedit'KTabBar::leftClicked() (./kdegraphics/kiconedit/ktabbar.cpp:120)
void KTabBar::leftClicked()
{
if(ptab->tpos == (0-(2*JUMP)))
ptab->tpos += (2 * JUMP);
else
ptab->tpos += JUMP;
QResizeEvent e(size(), size());
resizeEvent(&e);
emit scrolled( RightArrow );
}
kiconedit'KTabBar::rightClicked() (./kdegraphics/kiconedit/ktabbar.cpp:131)
void KTabBar::rightClicked()
{
if(ptab->tpos == 0)
ptab->tpos -= (2 * JUMP);
else
ptab->tpos -= JUMP;
QResizeEvent e(size(), size());
resizeEvent(&e);
emit scrolled( LeftArrow );
}
kiconedit'KTabBar::emitSelected() (./kdegraphics/kiconedit/ktabbar.cpp:142)
void KTabBar::emitSelected(int tab)
{
emit selected(tab);
}
kiconedit'KTabBar::setSizes() (./kdegraphics/kiconedit/ktabbar.cpp:147)
void KTabBar::setSizes()
{
ptab->leftscroll = ptab->rightscroll = false;
ptab->tw_width = width();
ptab->t_width = ptab->qtab->sizeHint().width();
if(ptab->tw_width > ptab->t_width)
ptab->tw_width = ptab->t_width;
ptab->tw_height = ptab->qtab->sizeHint().height();
ptab->tw_start = 0;
int r = 0;
//debug("width: %d - t_width: %d", width(), ptab->t_width);
//debug("tpos %d", ptab->tpos);
if(width() >= ptab->t_width)
ptab->tpos = 0;
else
{
if(ptab->tpos < 0)
{
//debug("leftscroll");
ptab->leftscroll = true;
ptab->tw_start = ptab->tw_height;
ptab->tw_width -= ptab->tw_start;
r = ptab->tw_height;
}
if(width() < (ptab->t_width + ptab->tpos + ptab->tw_start))
{
//debug("rightscroll");
ptab->rightscroll = true;
ptab->tw_width -= ptab->tw_height;
}
}
if(ptab->tw_width > (ptab->t_width+ptab->tpos))
ptab->tw_width = ptab->t_width + ptab->tpos;
//debug("tw_width %d", tw_width);
//debug("\n");
}
kiconedit'KTabBar::resizeEvent() (./kdegraphics/kiconedit/ktabbar.cpp:187)
void KTabBar::resizeEvent(QResizeEvent *)
{
//debug("KTabBar, resizing");
setSizes();
if(ptab->leftscroll)
{
ptab->left->setGeometry( 0, 0, ptab->tw_height, ptab->tw_height);
ptab->left->show();
}
else
ptab->left->hide();
if(ptab->rightscroll)
{
ptab->right->setGeometry( width()-ptab->tw_height, 0,
ptab->tw_height, ptab->tw_height);
ptab->right->show();
}
else
ptab->right->hide();
ptab->tabw->setGeometry( ptab->tw_start, 0,
ptab->tw_width, ptab->tw_height);
ptab->qtab->setGeometry( ptab->tpos, 0,
ptab->qtab->sizeHint().width(), ptab->tw_height);
//debug("KTabBar\ntabw: %dx%d\nqtab: %dx%d", tw_width, tw_height,
// qtab->sizeHint().width(), tw_height);
QPaintEvent pe(geometry());
paintEvent( &pe );
//debug("KTabBar, resize - done");
}
kiconedit'KTabBar::paintEvent() (./kdegraphics/kiconedit/ktabbar.cpp:223)
void KTabBar::paintEvent(QPaintEvent *)
{
//debug("KTabBar - painting");
int end = width()-1;
int start = ptab->tw_width + ptab->tpos;
//debug("width: %d - start: %d", width(), start);
if(ptab->leftscroll) // if we need a left button we start the tabs at tw_height
start = ptab->tw_height; // ( tw_height == left->width() )
//start = 0;
if(ptab->rightscroll)
end -= ptab->tw_height;
//debug("width: %d", width());
//debug("tw_width: %d", tw_width);
//debug("tw_start: %d", tw_start);
//debug("2*tw_height + tw_width: %d", (2*tw_height)+tw_width);
//debug("start: %d - end: %d", start, end);
QPainter p;
// start painting widget
p.begin(this);
QPen pen( white, 1 );
p.setPen( pen );
// draw bottom line
if(start < end)
p.drawLine( start, ptab->tw_height-1, end, ptab->tw_height-1);
p.end();
//qtab->repaint();
//debug("KTabBar - painting done");
}