summaryrefslogtreecommitdiff
path: root/vcl/source/control/tabctrl.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'vcl/source/control/tabctrl.cxx')
-rw-r--r--vcl/source/control/tabctrl.cxx33
1 files changed, 33 insertions, 0 deletions
diff --git a/vcl/source/control/tabctrl.cxx b/vcl/source/control/tabctrl.cxx
index ee31141867f6..740628bf5570 100644
--- a/vcl/source/control/tabctrl.cxx
+++ b/vcl/source/control/tabctrl.cxx
@@ -2288,6 +2288,39 @@ void NotebookbarTabControl::SetCurPageId( sal_uInt16 nPageId )
TabControl::SetCurPageId( nPageId );
}
+void NotebookbarTabControl::ImplActivateTabPage( bool bNext )
+{
+ sal_uInt16 nCurPos = GetPagePos( GetCurPageId() );
+
+ if ( bNext && nCurPos + 1 < GetPageCount() )
+ {
+ sal_uInt16 nOldPos = nCurPos;
+ nCurPos++;
+
+ ImplTabItem* pItem = &mpTabCtrlData->maItemList[nCurPos];
+ while ( !pItem->mbEnabled && nCurPos + 1 < GetPageCount())
+ {
+ nCurPos++;
+ pItem = &mpTabCtrlData->maItemList[nCurPos];
+ }
+
+ if ( !pItem->mbEnabled )
+ nCurPos = nOldPos;
+ }
+ else if ( !bNext && nCurPos )
+ {
+ nCurPos--;
+ ImplTabItem* pItem = &mpTabCtrlData->maItemList[nCurPos];
+ while ( nCurPos && !pItem->mbEnabled )
+ {
+ nCurPos--;
+ pItem = &mpTabCtrlData->maItemList[nCurPos];
+ }
+ }
+
+ SelectTabPage( TabControl::GetPageId( nCurPos ) );
+}
+
sal_uInt16 NotebookbarTabControl::GetHeaderHeight()
{
return m_nHeaderHeight;