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.cxx26
1 files changed, 18 insertions, 8 deletions
diff --git a/vcl/source/control/tabctrl.cxx b/vcl/source/control/tabctrl.cxx
index 491a2a06cfe1..6420817a044b 100644
--- a/vcl/source/control/tabctrl.cxx
+++ b/vcl/source/control/tabctrl.cxx
@@ -96,6 +96,7 @@ void TabControl::ImplInit( vcl::Window* pParent, WinBits nStyle )
mbSmallInvalidate = false;
mpTabCtrlData = new ImplTabCtrlData;
mpTabCtrlData->mpListBox = nullptr;
+ mbHideDisabledTabs = false;
ImplInitSettings( true, true, true );
@@ -1197,16 +1198,20 @@ void TabControl::ImplPaint(vcl::RenderContext& rRenderContext, const Rectangle&
while (idx < mpTabCtrlData->maItemList.size())
{
ImplTabItem* pItem = &mpTabCtrlData->maItemList[idx];
- if (pItem != pCurItem)
+
+ if(!mbHideDisabledTabs || (mbHideDisabledTabs && pItem->mbEnabled))
{
- vcl::Region aClipRgn(rRenderContext.GetActiveClipRegion());
- aClipRgn.Intersect(pItem->maRect);
- if (!rRect.IsEmpty())
- aClipRgn.Intersect(rRect);
- if (!aClipRgn.IsEmpty())
+ if (pItem != pCurItem)
{
- ImplDrawItem(rRenderContext, pItem, aCurRect, false/*bLayout*/,
- pItem == pFirstTab, pItem == pLastTab);
+ vcl::Region aClipRgn(rRenderContext.GetActiveClipRegion());
+ aClipRgn.Intersect(pItem->maRect);
+ if (!rRect.IsEmpty())
+ aClipRgn.Intersect(rRect);
+ if (!aClipRgn.IsEmpty())
+ {
+ ImplDrawItem(rRenderContext, pItem, aCurRect, false/*bLayout*/,
+ pItem == pFirstTab, pItem == pLastTab);
+ }
}
}
@@ -1757,6 +1762,11 @@ void TabControl::EnablePage( sal_uInt16 i_nPageId, bool i_bEnable )
}
}
+void TabControl::HideDisabledTabs(bool bHide)
+{
+ mbHideDisabledTabs = bHide;
+}
+
sal_uInt16 TabControl::GetPageCount() const
{
return (sal_uInt16)mpTabCtrlData->maItemList.size();