summaryrefslogtreecommitdiff
path: root/libopie/otabwidget.cpp
authorzecke <zecke>2003-08-30 20:26:05 (UTC)
committer zecke <zecke>2003-08-30 20:26:05 (UTC)
commitd34e9bd43cab9fa296ee24dff173e86d5cf9954a (patch) (side-by-side diff)
tree9bc1d141018c27c1e2d5c9bcb3d2501e12d2aafd /libopie/otabwidget.cpp
parent4c3a1de5289631db05b86a07092f0a334608dcf6 (diff)
downloadopie-d34e9bd43cab9fa296ee24dff173e86d5cf9954a.zip
opie-d34e9bd43cab9fa296ee24dff173e86d5cf9954a.tar.gz
opie-d34e9bd43cab9fa296ee24dff173e86d5cf9954a.tar.bz2
Add comments about API changes when possible again
Add currentWidget() method and mark it as since 1.2
Diffstat (limited to 'libopie/otabwidget.cpp') (more/less context) (show whitespace changes)
-rw-r--r--libopie/otabwidget.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/libopie/otabwidget.cpp b/libopie/otabwidget.cpp
index fe2c60f..1b8c085 100644
--- a/libopie/otabwidget.cpp
+++ b/libopie/otabwidget.cpp
@@ -155,256 +155,265 @@ void OTabWidget::removePage( QWidget *childwidget )
}
setUpLayout();
}
}
}
void OTabWidget::changeTab( QWidget *widget, const QString &iconset, const QString &label)
{
OTabInfo *currtab = tabs.first();
while ( currtab && currtab->control() != widget )
{
currtab = tabs.next();
}
if ( currtab && currtab->control() == widget )
{
QTab *tab = tabBar->tab( currtab->id() );
QPixmap icon( loadSmooth( iconset ) );
tab->setText( label );
if ( tabBarStyle == IconTab )
tab->setIconSet( icon );
int i = 0;
while ( i < tabList->count() && tabList->text( i ) != currtab->label() )
{
i++;
}
if ( i < tabList->count() && tabList->text( i ) == currtab->label() )
{
if ( tabBarStyle == IconTab || tabBarStyle == IconList )
{
tabList->changeItem( icon, label, i );
}
else
{
tabList->changeItem( label, i );
}
}
currtab->setLabel( label );
currtab->setIcon( iconset );
}
setUpLayout();
}
void OTabWidget::setCurrentTab( QWidget *childwidget )
{
OTabInfo *currtab = tabs.first();
while ( currtab && currtab->control() != childwidget )
{
currtab = tabs.next();
}
if ( currtab && currtab->control() == childwidget )
{
selectTab( currtab );
}
}
void OTabWidget::setCurrentTab( const QString &tabname )
{
OTabInfo *newtab = tabs.first();
while ( newtab && newtab->label() != tabname )
{
newtab = tabs.next();
}
if ( newtab && newtab->label() == tabname )
{
selectTab( newtab );
}
}
void OTabWidget::setCurrentTab(int tabindex) {
OTabInfo *newtab = tabs.first();
while ( newtab && newtab->id() != tabindex )
{
newtab = tabs.next();
}
if ( newtab && newtab->id() == tabindex )
{
selectTab( newtab );
}
}
OTabWidget::TabStyle OTabWidget::tabStyle() const
{
return tabBarStyle;
}
void OTabWidget::setTabStyle( TabStyle s )
{
tabBarStyle = s;
if ( tabBarStyle == TextTab || tabBarStyle == IconTab )
{
QTab *currtab;
for ( OTabInfo *tabinfo = tabs.first(); tabinfo; tabinfo = tabs.next() )
{
currtab = tabBar->tab( tabinfo->id() );
if ( tabBarStyle == IconTab )
{
currtab->iconset = new QIconSet( loadSmooth( tabinfo->icon() ) );
if ( tabinfo == currTab )
currtab->setText( tabinfo->label() );
else
currtab->setText( QString::null );
}
else
{
currtab->iconset = 0x0;
currtab->setText( tabinfo->label() );
}
}
tabBarStack->raiseWidget( tabBar );
}
else if ( tabBarStyle == TextList || tabBarStyle == IconList )
{
tabList->clear();
for ( OTabInfo *tabinfo = tabs.first(); tabinfo; tabinfo = tabs.next() )
{
if ( tabBarStyle == IconList )
{
tabList->insertItem( loadSmooth( tabinfo->icon() ), tabinfo->label() );
}
else
{
tabList->insertItem( tabinfo->label() );
}
}
tabBarStack->raiseWidget( tabList );
}
setUpLayout();
}
OTabWidget::TabPosition OTabWidget::tabPosition() const
{
return tabBarPosition;
}
void OTabWidget::setTabPosition( TabPosition p )
{
tabBarPosition = p;
if ( tabBarPosition == Top )
{
tabBar->setShape( QTabBar::RoundedAbove );
}
else
{
tabBar->setShape( QTabBar::RoundedBelow );
}
setUpLayout();
}
void OTabWidget::slotTabBarSelected( int id )
{
OTabInfo *newtab = tabs.first();
while ( newtab && newtab->id() != id )
{
newtab = tabs.next();
}
if ( newtab && newtab->id() == id )
{
selectTab( newtab );
}
}
void OTabWidget::slotTabListSelected( int index )
{
OTabInfo *newtab = tabs.at( index );
if ( newtab )
{
selectTab( newtab );
}
}
QPixmap OTabWidget::loadSmooth( const QString &name )
{
QImage image = Resource::loadImage( name );
QPixmap pixmap;
pixmap.convertFromImage( image.smoothScale( 14, 14 ) );
return pixmap;
}
void OTabWidget::selectTab( OTabInfo *tab )
{
if ( tabBarStyle == IconTab )
{
if ( currTab )
{
tabBar->tab( currTab->id() )->setText( QString::null );
setUpLayout();
}
tabBar->tab( tab->id() )->setText( tab->label() );
tabBar->setCurrentTab( tab->id() );
setUpLayout();
tabBar->update();
}
else
{
tabBar->setCurrentTab( tab->id() );
}
widgetStack->raiseWidget( tab->control() );
emit currentChanged( tab->control() );
currTab = tab;
}
void OTabWidget::setUpLayout()
{
tabBar->layoutTabs();
QSize t( tabBarStack->sizeHint() );
if ( tabBarStyle == IconTab )
{
if ( t.width() > width() )
t.setWidth( width() );
}
else
{
t.setWidth( width() );
}
int lw = widgetStack->lineWidth();
if ( tabBarPosition == Bottom )
{
tabBarStack->setGeometry( QMAX(0, lw-2), height() - t.height() - lw, t.width(), t.height() );
widgetStack->setGeometry( 0, 0, width(), height()-t.height()+QMAX(0, lw-2) );
}
else
{
tabBarStack->setGeometry( QMAX(0, lw-2), 0, t.width(), t.height() );
widgetStack->setGeometry( 0, t.height()-lw, width(), height()-t.height()+QMAX( 0, lw-2 ) );
}
if ( autoMask() )
updateMask();
}
QSize OTabWidget::sizeHint() const
{
QSize s( widgetStack->sizeHint() );
QSize t( tabBarStack->sizeHint() );
return QSize( QMAX( s.width(), t.width() ), s.height() + t.height() );
}
void OTabWidget::resizeEvent( QResizeEvent * )
{
setUpLayout();
}
int OTabWidget::currentTab()
{
if ( currTab )
{
return currTab->id();
}
return -1;
}
+QWidget* OTabWidget::currentWidget()const
+{
+ if ( currTab )
+ {
+ return currTab->control();
+ }
+
+ return 0;
+}