summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2019-05-17 19:39:45 +0100
committerCaolán McNamara <caolanm@redhat.com>2019-05-20 18:01:17 +0200
commit2140dea1413c9ef8e6e35409a15b0a3ea7149e67 (patch)
treef2f28dfda11cdd4dc982299669be56ec81fc0aab
parent259d01a34d27df2fbfd11c3bf6fe9dc508ff6ac2 (diff)
split width/height to allow intercept of how width is calculated
in order to possibly get width on demand Change-Id: I1e6fcb6849705f2b166821516ebe72b179e00ee7 Reviewed-on: https://gerrit.libreoffice.org/72513 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--dbaccess/source/ui/app/AppDetailView.cxx2
-rw-r--r--dbaccess/source/ui/control/listviewitems.cxx3
-rw-r--r--include/vcl/treelistbox.hxx6
-rw-r--r--include/vcl/viewdataentry.hxx3
-rw-r--r--sc/source/ui/navipi/content.cxx2
-rw-r--r--sd/source/ui/animations/CustomAnimationList.cxx12
-rw-r--r--sfx2/source/dialog/templdlg.cxx4
-rw-r--r--svtools/source/contnr/iconview.cxx11
-rw-r--r--svtools/source/uno/treecontrolpeer.cxx17
-rw-r--r--svx/source/form/filtnav.cxx11
-rw-r--r--sw/source/ui/misc/glossary.cxx2
-rw-r--r--sw/source/uibase/utlui/content.cxx2
-rw-r--r--sw/source/uibase/utlui/glbltree.cxx2
-rw-r--r--vcl/source/treelist/svimpbox.cxx6
-rw-r--r--vcl/source/treelist/svlbitm.cxx15
-rw-r--r--vcl/source/treelist/treelistbox.cxx43
16 files changed, 87 insertions, 54 deletions
diff --git a/dbaccess/source/ui/app/AppDetailView.cxx b/dbaccess/source/ui/app/AppDetailView.cxx
index 5ca68ed90dc7..da1823ba8b4c 100644
--- a/dbaccess/source/ui/app/AppDetailView.cxx
+++ b/dbaccess/source/ui/app/AppDetailView.cxx
@@ -158,7 +158,7 @@ tools::Rectangle OCreationList::GetFocusRect( SvTreeListEntry* _pEntry, long _nL
SvViewDataItem* pItemData = pBitmapItem ? GetViewDataItem( _pEntry, pBitmapItem ) : nullptr;
OSL_ENSURE( pTab && pItemData, "OCreationList::GetFocusRect: could not find the first bitmap item!" );
if ( pTab && pItemData )
- aRect.SetLeft( pTab->GetPos() - pItemData->maSize.Width() / 2 );
+ aRect.SetLeft( pTab->GetPos() - pItemData->mnWidth / 2 );
// inflate the rectangle a little bit - looks better, too
aRect.SetLeft( std::max< long >( 0, aRect.Left() - 2 ) );
diff --git a/dbaccess/source/ui/control/listviewitems.cxx b/dbaccess/source/ui/control/listviewitems.cxx
index d0a686992809..006f6f45a51a 100644
--- a/dbaccess/source/ui/control/listviewitems.cxx
+++ b/dbaccess/source/ui/control/listviewitems.cxx
@@ -35,7 +35,8 @@ namespace dbaui
vcl::Font aFont( pView->GetFont());
aFont.SetWeight(WEIGHT_BOLD);
pView->Control::SetFont( aFont );
- _pViewData->maSize = Size(pView->GetTextWidth(GetText()), pView->GetTextHeight());
+ _pViewData->mnWidth = pView->GetTextWidth(GetText());
+ _pViewData->mnHeight = pView->GetTextHeight();
pView->Pop();
}
diff --git a/include/vcl/treelistbox.hxx b/include/vcl/treelistbox.hxx
index 2f855e0a4b7b..d9c09d086b31 100644
--- a/include/vcl/treelistbox.hxx
+++ b/include/vcl/treelistbox.hxx
@@ -140,8 +140,10 @@ public:
SvLBoxItem();
virtual ~SvLBoxItem();
virtual SvLBoxItemType GetType() const = 0;
- const Size& GetSize(const SvTreeListBox* pView, const SvTreeListEntry* pEntry) const;
- static const Size& GetSize(const SvViewDataEntry* pData, sal_uInt16 nItemPos);
+ int GetWidth(const SvTreeListBox* pView, const SvTreeListEntry* pEntry) const;
+ int GetHeight(const SvTreeListBox* pView, const SvTreeListEntry* pEntry) const;
+ static int GetWidth(const SvViewDataEntry* pData, sal_uInt16 nItemPos);
+ static int GetHeight(const SvViewDataEntry* pData, sal_uInt16 nItemPos);
void Enable(bool bEnabled) { mbDisabled = !bEnabled; }
virtual void Paint(const Point& rPos, SvTreeListBox& rOutDev, vcl::RenderContext& rRenderContext, const SvViewDataEntry* pView, const SvTreeListEntry& rEntry) = 0;
diff --git a/include/vcl/viewdataentry.hxx b/include/vcl/viewdataentry.hxx
index 5cbed9d6e3ea..7967f131b6c6 100644
--- a/include/vcl/viewdataentry.hxx
+++ b/include/vcl/viewdataentry.hxx
@@ -28,7 +28,8 @@
struct SvViewDataItem
{
- Size maSize;
+ int mnWidth = 0;
+ int mnHeight = 0;
};
/**
diff --git a/sc/source/ui/navipi/content.cxx b/sc/source/ui/navipi/content.cxx
index 4ecbdf314376..536d398f482c 100644
--- a/sc/source/ui/navipi/content.cxx
+++ b/sc/source/ui/navipi/content.cxx
@@ -730,7 +730,7 @@ void ScContentTree::RequestHelp( const HelpEvent& rHEvt )
aPos = GetEntryPosition( pEntry );
aPos.setX( GetTabPos( pEntry, pTab ) );
aPos = OutputToScreenPixel(aPos);
- Size aSize( pItem->GetSize( this, pEntry ) );
+ Size aSize(pItem->GetWidth(this, pEntry), pItem->GetHeight(this, pEntry));
tools::Rectangle aItemRect( aPos, aSize );
Help::ShowQuickHelp( this, aItemRect, aHelpText );
diff --git a/sd/source/ui/animations/CustomAnimationList.cxx b/sd/source/ui/animations/CustomAnimationList.cxx
index e6cfb0c1d98f..c0b2086abac7 100644
--- a/sd/source/ui/animations/CustomAnimationList.cxx
+++ b/sd/source/ui/animations/CustomAnimationList.cxx
@@ -270,7 +270,8 @@ void CustomAnimationListEntryItem::InitViewData( SvTreeListBox* pView, SvTreeLis
Size aSize( width, pView->GetTextHeight() );
if( aSize.Height() < nItemMinHeight )
aSize.setHeight( nItemMinHeight );
- pViewData->maSize = aSize;
+ pViewData->mnWidth = aSize.Width();
+ pViewData->mnHeight = aSize.Height();
}
void CustomAnimationListEntryItem::Paint(const Point& rPos, SvTreeListBox& rDev, vcl::RenderContext& rRenderContext,
@@ -280,7 +281,7 @@ void CustomAnimationListEntryItem::Paint(const Point& rPos, SvTreeListBox& rDev,
const SvViewDataItem* pViewData = mpParent->GetViewDataItem(&rEntry, this);
Point aPos(rPos);
- Size aSize(pViewData->maSize);
+ int nItemHeight = pViewData->mnHeight;
sal_Int16 nNodeType = mpEffect->getNodeType();
if (nNodeType == EffectNodeType::ON_CLICK )
@@ -336,12 +337,12 @@ void CustomAnimationListEntryItem::Paint(const Point& rPos, SvTreeListBox& rDev,
{
Image aImage(StockImage::Yes, sImage);
Point aImagePos(aPos);
- aImagePos.AdjustY((aSize.Height()/2 - aImage.GetSizePixel().Height()) >> 1 );
+ aImagePos.AdjustY((nItemHeight/2 - aImage.GetSizePixel().Height()) >> 1 );
rRenderContext.DrawImage(aImagePos, aImage);
}
aPos.AdjustX(nIconWidth );
- aPos.AdjustY((aSize.Height()/2 - rDev.GetTextHeight()) >> 1 );
+ aPos.AdjustY((nItemHeight/2 - rDev.GetTextHeight()) >> 1 );
rRenderContext.DrawText(aPos, rRenderContext.GetEllipsisString(msEffectName, rDev.GetOutputSizePixel().Width() - aPos.X()));
}
@@ -400,7 +401,8 @@ void CustomAnimationTriggerEntryItem::InitViewData( SvTreeListBox* pView, SvTree
Size aSize(pView->GetTextWidth( msDescription ) + 2 * nIconWidth, pView->GetTextHeight() );
if( aSize.Height() < nIconWidth )
aSize.setHeight( nIconWidth );
- pViewData->maSize = aSize;
+ pViewData->mnWidth = aSize.Width();
+ pViewData->mnHeight = aSize.Height();
}
void CustomAnimationTriggerEntryItem::Paint(const Point& rPos, SvTreeListBox& rDev, vcl::RenderContext& rRenderContext,
diff --git a/sfx2/source/dialog/templdlg.cxx b/sfx2/source/dialog/templdlg.cxx
index 772df9530ce5..e47900441476 100644
--- a/sfx2/source/dialog/templdlg.cxx
+++ b/sfx2/source/dialog/templdlg.cxx
@@ -143,7 +143,9 @@ void StyleLBoxString::Paint(
{
if (pStylePreviewRenderer->recalculate())
{
- mpViewData->maSize = pStylePreviewRenderer->getRenderSize();
+ Size aSize(pStylePreviewRenderer->getRenderSize());
+ mpViewData->mnWidth = aSize.Width();
+ mpViewData->mnHeight = aSize.Height();
}
else
{
diff --git a/svtools/source/contnr/iconview.cxx b/svtools/source/contnr/iconview.cxx
index c50aaab9b904..7138efdbddeb 100644
--- a/svtools/source/contnr/iconview.cxx
+++ b/svtools/source/contnr/iconview.cxx
@@ -130,7 +130,7 @@ void IconView::PaintEntry(SvTreeListEntry& rEntry, long nX, long nY,
continue;
}
- Size aSize(SvLBoxItem::GetSize(pViewDataEntry, nCurItem));
+ auto nItemHeight = SvLBoxItem::GetHeight(pViewDataEntry, nCurItem);
aEntryPos.setX( nX );
aEntryPos.setY( nY );
@@ -189,7 +189,7 @@ void IconView::PaintEntry(SvTreeListEntry& rEntry, long nX, long nY,
}
// center vertically
- aEntryPos.AdjustY((nTempEntryHeight - aSize.Height()) / 2 );
+ aEntryPos.AdjustY((nTempEntryHeight - nItemHeight) / 2 );
// draw item
pViewDataEntry->SetPaintRectangle(aRect);
@@ -206,15 +206,16 @@ void IconView::PaintEntry(SvTreeListEntry& rEntry, long nX, long nY,
// draw icon
if(nIconItem != nItemCount && nIconItem < nItemCount)
{
- Size aSize(SvLBoxItem::GetSize(pViewDataEntry, nIconItem));
+ auto nItemWidth = SvLBoxItem::GetWidth(pViewDataEntry, nIconItem);
+ auto nItemHeight = SvLBoxItem::GetHeight(pViewDataEntry, nIconItem);
aEntryPos.setX( nX );
aEntryPos.setY( nY );
// center horizontally
- aEntryPos.AdjustX((nTempEntryWidth - aSize.Width()) / 2 );
+ aEntryPos.AdjustX((nTempEntryWidth - nItemWidth) / 2 );
// center vertically
- aEntryPos.AdjustY((nTempEntryHeight - aSize.Height()) / 2 );
+ aEntryPos.AdjustY((nTempEntryHeight - nItemHeight) / 2 );
aEntryPos.AdjustY( -10 );
diff --git a/svtools/source/uno/treecontrolpeer.cxx b/svtools/source/uno/treecontrolpeer.cxx
index 5620686ac60c..974ee8edabab 100644
--- a/svtools/source/uno/treecontrolpeer.cxx
+++ b/svtools/source/uno/treecontrolpeer.cxx
@@ -1497,7 +1497,7 @@ void UnoTreeListItem::Paint(
const Point& rPos, SvTreeListBox& rDev, vcl::RenderContext& rRenderContext, const SvViewDataEntry* /*pView*/, const SvTreeListEntry& rEntry)
{
Point aPos(rPos);
- Size aSize(GetSize(&rDev, &rEntry));
+ Size aSize(GetWidth(&rDev, &rEntry), GetHeight(&rDev, &rEntry));
if (!!maImage)
{
rRenderContext.DrawImage(aPos, maImage, rDev.IsEnabled() ? DrawImageFlags::NONE : DrawImageFlags::Disable);
@@ -1536,18 +1536,21 @@ void UnoTreeListItem::InitViewData( SvTreeListBox* pView,SvTreeListEntry* pEntry
if( !pViewData )
pViewData = pView->GetViewDataItem( pEntry, this );
- pViewData->maSize = maImage.GetSizePixel();
+ Size aSize(maImage.GetSizePixel());
+ pViewData->mnWidth = aSize.Width();
+ pViewData->mnHeight = aSize.Height();
const Size aTextSize(pView->GetTextWidth( maText ), pView->GetTextHeight());
- if( pViewData->maSize.Width() )
+ if( pViewData->mnWidth )
{
- pViewData->maSize.AdjustWidth(6 + aTextSize.Width() );
- if( pViewData->maSize.Height() < aTextSize.Height() )
- pViewData->maSize.setHeight( aTextSize.Height() );
+ pViewData->mnWidth += (6 + aTextSize.Width());
+ if( pViewData->mnHeight < aTextSize.Height() )
+ pViewData->mnHeight = aTextSize.Height();
}
else
{
- pViewData->maSize = aTextSize;
+ pViewData->mnWidth = aTextSize.Width();
+ pViewData->mnHeight = aTextSize.Height();
}
}
diff --git a/svx/source/form/filtnav.cxx b/svx/source/form/filtnav.cxx
index 08a975fca685..c7b755317d89 100644
--- a/svx/source/form/filtnav.cxx
+++ b/svx/source/form/filtnav.cxx
@@ -965,7 +965,8 @@ void FmFilterItemsString::Paint(const Point& rPos, SvTreeListBox& rDev, vcl::Ren
rRenderContext.Push(PushFlags::LINECOLOR);
rRenderContext.SetLineColor(rRenderContext.GetTextColor());
- tools::Rectangle aRect(rPos, GetSize(&rDev, &rEntry));
+ Size aSize(GetWidth(&rDev, &rEntry), GetHeight(&rDev, &rEntry));
+ tools::Rectangle aRect(rPos, aSize);
Point aFirst(rPos.X(), aRect.Bottom() - 6);
Point aSecond(aFirst .X() + 2, aFirst.Y() + 3);
@@ -991,7 +992,8 @@ void FmFilterItemsString::InitViewData( SvTreeListBox* pView,SvTreeListEntry* pE
Size aSize(pView->GetTextWidth(GetText()), pView->GetTextHeight());
aSize.AdjustWidth(nxDBmp );
- pViewData->maSize = aSize;
+ pViewData->mnWidth = aSize.Width();
+ pViewData->mnHeight = aSize.Height();
}
class FmFilterString : public SvLBoxString
@@ -1013,7 +1015,6 @@ public:
const int nxD = 4;
-
void FmFilterString::InitViewData( SvTreeListBox* pView,SvTreeListEntry* pEntry, SvViewDataItem* pViewData)
{
if( !pViewData )
@@ -1027,10 +1028,10 @@ void FmFilterString::InitViewData( SvTreeListBox* pView,SvTreeListEntry* pEntry,
Size aSize(pView->GetTextWidth(m_aName), pView->GetTextHeight());
pView->Control::SetFont( aOldFont );
aSize.AdjustWidth(pView->GetTextWidth(GetText()) + nxD );
- pViewData->maSize = aSize;
+ pViewData->mnWidth = aSize.Width();
+ pViewData->mnHeight = aSize.Height();
}
-
void FmFilterString::Paint(const Point& rPos, SvTreeListBox& rDev, vcl::RenderContext& rRenderContext,
const SvViewDataEntry* /*pView*/, const SvTreeListEntry& /*rEntry*/)
{
diff --git a/sw/source/ui/misc/glossary.cxx b/sw/source/ui/misc/glossary.cxx
index 935242ed977c..867ed65b89f7 100644
--- a/sw/source/ui/misc/glossary.cxx
+++ b/sw/source/ui/misc/glossary.cxx
@@ -873,7 +873,7 @@ void SwGlTreeListBox::RequestHelp( const HelpEvent& rHEvt )
if(pItem)
{
aPos = GetEntryPosition( pEntry );
- Size aSize(pItem->GetSize( this, pEntry ));
+ Size aSize(pItem->GetWidth(this, pEntry), pItem->GetHeight(this, pEntry));
aPos.setX( GetTabPos( pEntry, pTab ) );
if((aPos.X() + aSize.Width()) > GetSizePixel().Width())
diff --git a/sw/source/uibase/utlui/content.cxx b/sw/source/uibase/utlui/content.cxx
index 7ef2e0e48f93..2425ed1b079c 100644
--- a/sw/source/uibase/utlui/content.cxx
+++ b/sw/source/uibase/utlui/content.cxx
@@ -3031,7 +3031,7 @@ void SwContentTree::RequestHelp( const HelpEvent& rHEvt )
aPos = GetEntryPosition( pEntry );
aPos.setX( GetTabPos( pEntry, pTab ) );
- Size aSize( pItem->GetSize( this, pEntry ) );
+ Size aSize(pItem->GetWidth(this, pEntry), pItem->GetHeight(this, pEntry));
if((aPos.X() + aSize.Width()) > GetSizePixel().Width())
aSize.setWidth( GetSizePixel().Width() - aPos.X() );
diff --git a/sw/source/uibase/utlui/glbltree.cxx b/sw/source/uibase/utlui/glbltree.cxx
index 13ec358cd0f7..df5d5656ab41 100644
--- a/sw/source/uibase/utlui/glbltree.cxx
+++ b/sw/source/uibase/utlui/glbltree.cxx
@@ -505,7 +505,7 @@ void SwGlobalTree::RequestHelp( const HelpEvent& rHEvt )
Point aEntryPos = GetEntryPosition( pEntry );
aEntryPos.setX( GetTabPos( pEntry, pTab ) );
- Size aSize( pItem->GetSize( this, pEntry ) );
+ Size aSize(pItem->GetWidth(this, pEntry), pItem->GetHeight(this, pEntry));
if((aEntryPos.X() + aSize.Width()) > GetSizePixel().Width())
aSize.setWidth( GetSizePixel().Width() - aEntryPos.X() );
diff --git a/vcl/source/treelist/svimpbox.cxx b/vcl/source/treelist/svimpbox.cxx
index 0d906416f233..ede98aa18f7f 100644
--- a/vcl/source/treelist/svimpbox.cxx
+++ b/vcl/source/treelist/svimpbox.cxx
@@ -785,7 +785,7 @@ bool SvImpLBox::EntryReallyHit(SvTreeListEntry* pEntry, const Point& rPosPixel,
aRect.SetRight( GetOutputSize().Width() - pView->GetMapMode().GetOrigin().X() );
SvLBoxContextBmp* pBmp = static_cast<SvLBoxContextBmp*>(pEntry->GetFirstItem(SvLBoxItemType::ContextBmp));
- aRect.AdjustLeft( -(pBmp->GetSize(pView,pEntry).Width()) );
+ aRect.AdjustLeft( -pBmp->GetWidth(pView,pEntry) );
aRect.AdjustLeft( -4 ); // a little tolerance
Point aPos( rPosPixel );
@@ -3107,7 +3107,7 @@ bool SvImpLBox::RequestHelp( const HelpEvent& rHEvt )
aPos = GetEntryPosition( pEntry );
aPos.setX( pView->GetTabPos( pEntry, pTab ) ); //pTab->GetPos();
- Size aSize( pItem->GetSize( pView, pEntry ) );
+ Size aSize(pItem->GetWidth(pView, pEntry), pItem->GetHeight(pView, pEntry));
SvLBoxTab* pNextTab = NextTab( pTab );
bool bItemClipped = false;
// is the item cut off by its right neighbor?
@@ -3199,7 +3199,7 @@ bool SvImpLBox::SetMostRight( SvTreeListEntry* pEntry )
long nNextTab = nTabPos < nMaxRight ? nMaxRight : nMaxRight + 50;
long nTabWidth = nNextTab - nTabPos + 1;
- long nItemSize = rItem.GetSize(pView,pEntry).Width();
+ auto nItemSize = rItem.GetWidth(pView,pEntry);
long nOffset = pTab->CalcOffset( nItemSize, nTabWidth );
long nRight = nTabPos + nOffset + nItemSize;
diff --git a/vcl/source/treelist/svlbitm.cxx b/vcl/source/treelist/svlbitm.cxx
index e7732f687d5b..764c8d6878df 100644
--- a/vcl/source/treelist/svlbitm.cxx
+++ b/vcl/source/treelist/svlbitm.cxx
@@ -196,7 +196,7 @@ void SvLBoxString::Paint(
const Point& rPos, SvTreeListBox& rDev, vcl::RenderContext& rRenderContext,
const SvViewDataEntry* /*pView*/, const SvTreeListEntry& rEntry)
{
- Size aSize = GetSize(&rDev, &rEntry);
+ Size aSize;
DrawTextFlags nStyle = (rDev.IsEnabled() && !mbDisabled) ? DrawTextFlags::NONE : DrawTextFlags::Disable;
if (rDev.IsEntryMnemonicsEnabled())
nStyle |= DrawTextFlags::Mnemonic;
@@ -205,6 +205,9 @@ void SvLBoxString::Paint(
nStyle |= DrawTextFlags::PathEllipsis | DrawTextFlags::Center;
aSize.setWidth( rDev.GetEntryWidth() );
}
+ else
+ aSize.setWidth(GetWidth(&rDev, &rEntry));
+ aSize.setHeight(GetHeight(&rDev, &rEntry));
if (mbEmphasized)
{
@@ -241,7 +244,8 @@ void SvLBoxString::InitViewData(
pView->Control::SetFont( aFont );
}
- pViewData->maSize = Size(pView->GetTextWidth(maText), pView->GetTextHeight());
+ pViewData->mnWidth = pView->GetTextWidth(maText);
+ pViewData->mnHeight = pView->GetTextHeight();
if (mbEmphasized)
pView->Pop();
@@ -379,7 +383,8 @@ void SvLBoxButton::InitViewData(SvTreeListBox* pView,SvTreeListEntry* pEntry, Sv
ControlType eCtrlType = (pData->IsRadio())? ControlType::Radiobutton : ControlType::Checkbox;
if ( eKind != SvLBoxButtonKind::StaticImage && pView )
ImplAdjustBoxSize(aSize, eCtrlType, *pView);
- pViewData->maSize = aSize;
+ pViewData->mnWidth = aSize.Width();
+ pViewData->mnHeight = aSize.Height();
}
bool SvLBoxButton::CheckModification() const
@@ -444,7 +449,9 @@ void SvLBoxContextBmp::InitViewData( SvTreeListBox* pView,SvTreeListEntry* pEntr
{
if( !pViewData )
pViewData = pView->GetViewDataItem( pEntry, this );
- pViewData->maSize = m_pImpl->m_aImage1.GetSizePixel();
+ Size aSize = m_pImpl->m_aImage1.GetSizePixel();
+ pViewData->mnWidth = aSize.Width();
+ pViewData->mnHeight = aSize.Height();
}
void SvLBoxContextBmp::Paint(
diff --git a/vcl/source/treelist/treelistbox.cxx b/vcl/source/treelist/treelistbox.cxx
index 007036b1012b..de328f8dde39 100644
--- a/vcl/source/treelist/treelistbox.cxx
+++ b/vcl/source/treelist/treelistbox.cxx
@@ -303,16 +303,28 @@ SvLBoxItem::~SvLBoxItem()
{
}
-const Size& SvLBoxItem::GetSize(const SvTreeListBox* pView, const SvTreeListEntry* pEntry) const
+int SvLBoxItem::GetWidth(const SvTreeListBox* pView, const SvTreeListEntry* pEntry) const
{
const SvViewDataItem* pViewData = pView->GetViewDataItem( pEntry, this );
- return pViewData->maSize;
+ return pViewData->mnWidth;
}
-const Size& SvLBoxItem::GetSize(const SvViewDataEntry* pData, sal_uInt16 nItemPos)
+int SvLBoxItem::GetHeight(const SvTreeListBox* pView, const SvTreeListEntry* pEntry) const
+{
+ const SvViewDataItem* pViewData = pView->GetViewDataItem( pEntry, this );
+ return pViewData->mnHeight;
+}
+
+int SvLBoxItem::GetWidth(const SvViewDataEntry* pData, sal_uInt16 nItemPos)
+{
+ const SvViewDataItem& rIData = pData->GetItem(nItemPos);
+ return rIData.mnWidth;
+}
+
+int SvLBoxItem::GetHeight(const SvViewDataEntry* pData, sal_uInt16 nItemPos)
{
const SvViewDataItem& rIData = pData->GetItem(nItemPos);
- return rIData.maSize;
+ return rIData.mnHeight;
}
struct SvTreeListBoxImpl
@@ -1679,7 +1691,7 @@ void SvTreeListBox::CheckBoxInserted(SvTreeListEntry* pEntry)
SvLBoxButton* pItem = static_cast<SvLBoxButton*>(pEntry->GetFirstItem(SvLBoxItemType::Button));
if( pItem )
{
- long nWidth = pItem->GetSize(this, pEntry).Width();
+ auto nWidth = pItem->GetWidth(this, pEntry);
if( mnCheckboxItemWidth < nWidth )
{
mnCheckboxItemWidth = nWidth;
@@ -2028,7 +2040,7 @@ void SvTreeListBox::SetEntryHeight( SvTreeListEntry const * pEntry )
SvViewDataEntry* pViewData = GetViewDataEntry( pEntry );
while( nCur < nCount )
{
- short nHeight = static_cast<short>(SvLBoxItem::GetSize( pViewData, nCur ).Height());
+ auto nHeight = SvLBoxItem::GetHeight(pViewData, nCur);
if( nHeight > nHeightMax )
nHeightMax = nHeight;
nCur++;
@@ -2396,12 +2408,12 @@ void SvTreeListBox::EditItemText(SvTreeListEntry* pEntry, SvLBoxString* pItem, c
SvLBoxTab* pTab = GetTab( pEntry, pItem );
DBG_ASSERT(pTab,"EditItemText:Tab not found");
- Size aItemSize( pItem->GetSize(this, pEntry) );
+ auto nItemHeight( pItem->GetHeight(this, pEntry) );
Point aPos = GetEntryPosition( pEntry );
- aPos.AdjustY(( nEntryHeight - aItemSize.Height() ) / 2 );
+ aPos.AdjustY(( nEntryHeight - nItemHeight ) / 2 );
aPos.setX( GetTabPos( pEntry, pTab ) );
long nOutputWidth = pImpl->GetOutputSize().Width();
- Size aSize( nOutputWidth - aPos.X(), aItemSize.Height() );
+ Size aSize( nOutputWidth - aPos.X(), nItemHeight );
sal_uInt16 nPos = std::find_if( aTabs.begin(), aTabs.end(),
[pTab](const std::unique_ptr<SvLBoxTab>& p) { return p.get() == pTab; })
- aTabs.begin();
@@ -2633,7 +2645,8 @@ void SvTreeListBox::PaintEntry1(SvTreeListEntry& rEntry, long nLine, vcl::Render
SvLBoxItem& rItem = rEntry.GetItem(nCurItem);
SvLBoxTabFlags nFlags = pTab->nFlags;
- Size aSize(SvLBoxItem::GetSize(pViewDataEntry, nCurItem));
+ Size aSize(SvLBoxItem::GetWidth(pViewDataEntry, nCurItem),
+ SvLBoxItem::GetHeight(pViewDataEntry, nCurItem));
long nTabPos = GetTabPos(&rEntry, pTab);
long nNextTabPos;
@@ -2911,7 +2924,7 @@ tools::Rectangle SvTreeListBox::GetFocusRect( SvTreeListEntry* pEntry, long nLin
if( pTab && nCurTab < pEntry->ItemCount() )
{
SvLBoxItem& rItem = pEntry->GetItem( nCurTab );
- aSize.setWidth( rItem.GetSize( this, pEntry ).Width() );
+ aSize.setWidth(rItem.GetWidth(this, pEntry));
if( !aSize.Width() )
aSize.setWidth( 15 );
long nX = nTabPos; //GetTabPos( pEntry, pTab );
@@ -3013,9 +3026,9 @@ SvLBoxItem* SvTreeListBox::GetItem_Impl( SvTreeListEntry* pEntry, long nX,
nNextTabPos += 50;
}
- Size aItemSize( pItem->GetSize(this, pEntry));
- nStart += pTab->CalcOffset( aItemSize.Width(), nNextTabPos - nStart );
- long nLen = aItemSize.Width();
+ auto nItemWidth(pItem->GetWidth(this, pEntry));
+ nStart += pTab->CalcOffset(nItemWidth, nNextTabPos - nStart);
+ auto nLen = nItemWidth;
if( pNextTab )
{
long nTabWidth = GetTabPos( pEntry, pNextTab ) - nStart;
@@ -3055,7 +3068,7 @@ long SvTreeListBox::getPreferredDimensions(std::vector<long> &rWidths) const
while (nCurPos < nCount)
{
SvLBoxItem& rItem = pEntry->GetItem( nCurPos );
- long nWidth = rItem.GetSize(this, pEntry).Width();
+ auto nWidth = rItem.GetWidth(this, pEntry);
if (nWidth)
{
nWidth += SV_TAB_BORDER * 2;