28 #include <com/sun/star/accessibility/AccessibleStateType.hpp>
38 #include <rtl/instance.hxx>
58 #define SVLBOX_ACC_RETURN 1
59 #define SVLBOX_ACC_ESCAPE 2
71 void CallCallBackHdl_Impl();
73 DECL_LINK( ReturnHdl_Impl, Accelerator&,
void );
74 DECL_LINK( EscapeHdl_Impl, Accelerator&,
void );
84 OUString GetText()
const;
85 OUString
const & GetSavedValue()
const;
86 void StopEditing(
bool bCancel );
94 class MyEdit_Impl :
public Edit
99 virtual ~MyEdit_Impl()
override { disposeOnce(); }
116 void MyEdit_Impl::KeyInput(
const KeyEvent& rKEvt )
118 if( !
pOwner->KeyInput( rKEvt ))
122 void MyEdit_Impl::LoseFocus()
132 const OUString& rData,
137 aCallBackHdl ( rNotifyEditEnd ),
139 bAlreadyInCallBack (
false )
148 aFont.SetFillColor(aColor );
149 pEdit->SetFont( aFont );
151 pEdit->SetPosPixel( rPos );
152 pEdit->SetSizePixel( rSize );
153 pEdit->SetText( rData );
154 pEdit->SetSelection( rSelection );
193 CallCallBackHdl_Impl();
199 CallCallBackHdl_Impl();
247 CallCallBackHdl_Impl();
301 nOffset = nTabWidth - nItemWidth;
310 nOffset = ( nTabWidth - nItemWidth ) / 2;
319 nOffset = -( nItemWidth / 2 );
342 int nWidth = pViewData->
mnWidth;
388 m_aQuickSelectionEngine(_rBox) {}
396 mbContextBmpExpanded(false),
397 mbAlternatingRowColors(false),
398 mbUpdateAlternatingRows(false),
399 mbQuickSearch(false),
400 mbActivateOnSingleClick(false),
401 mbHoverSelection(false),
406 mbCenterAndClipText(false)
415 SetType(WindowType::TREELISTBOX);
431 return CloneEntry(pEntry);
477 if ( pSource !=
this )
516 DBG_ASSERT(pEntry,
"NotifyMoving:SourceEntry?");
519 rpNewParent =
nullptr;
534 rpNewParent = pTarget;
550 return NotifyMoving(pTarget,pEntry,rpNewParent,rNewChildPos);
555 return pModel->FirstChild(pParent);
562 bool bSuccess =
true;
563 std::vector<SvTreeListEntry*> aList;
571 while ( pSourceEntry )
575 aList.push_back( pSourceEntry );
579 for (
auto const& elem : aList)
590 pSourceEntry =
pModel->Clone(pSourceEntry, nCloneCount);
591 pModel->InsertTree(pSourceEntry, pNewParent, nInsertionPos);
595 sal_uLong nListPos =
pModel->Copy(pSourceEntry, pNewParent, nInsertionPos);
596 pSourceEntry =
GetEntry( pNewParent, nListPos );
605 pModel->SetCloneLink( aCloneLink );
613 bool bSuccess =
true;
614 std::vector<SvTreeListEntry*> aList;
621 while ( pSourceEntry )
625 aList.push_back( pSourceEntry );
629 for (
auto const& elem : aList)
636 if ( !nOk && bAllowCopyFallback )
639 nCopyOk =
NotifyCopying(pTarget,pSourceEntry,pNewParent,nInsertionPos);
642 if ( nOk || nCopyOk )
647 pSourceEntry =
pModel->Clone(pSourceEntry, nCloneCount);
648 pModel->InsertTree(pSourceEntry, pNewParent, nInsertionPos);
653 pModel->Move(pSourceEntry, pNewParent, nInsertionPos);
655 pModel->Copy(pSourceEntry, pNewParent, nInsertionPos);
664 pModel->SetCloneLink( aCloneLink );
670 std::vector<const SvTreeListEntry*> aList;
676 aList.push_back( pEntry );
683 for (
auto const& elem : aList)
698 sal_uInt16 nCurPos = 0;
699 while ( nCurPos < nCount )
705 pEntry =
Next( pEntry );
713 if ( !bShow && !(
nImpFlags & SvTreeListBoxFlags::TARGEMPH_VIS) )
715 pImpl->PaintDDCursor( pEntry, bShow);
724 if ( !
mpImpl->m_bDoingQuickSelection )
725 mpImpl->m_aQuickSelectionEngine.Reset();
730 return pModel->GetEntry(pParent, nPos);
735 return pModel->GetEntry(nRootPos);
743 for (
auto const& elem : _rPath)
764 for ( i = 0; i < nCount; ++i )
768 if ( pEntry == pTemp )
770 _rPath.push_front( static_cast<sal_Int32>(i) );
777 pEntry = pParentEntry;
778 pParentEntry =
GetParent( pParentEntry );
787 return pModel->GetParent(pEntry);
792 return pModel->GetChildCount(pParent);
823 assert(pEntryData &&
"Entry not in View");
824 sal_uInt16 nItemPos = pEntry->
GetPos(pItem);
825 return &pEntryData->
GetItem(nItemPos);
835 sal_uInt16 nCurPos = 0;
836 while( nCurPos < nCount )
847 sal_uInt16 nRefDepth;
856 nRefDepth =
pModel->GetDepth( pSelEntry );
857 pTemp =
Next( pSelEntry );
858 while( pTemp &&
pModel->GetDepth( pTemp ) > nRefDepth )
861 pTemp =
Next( pTemp );
867 nRefDepth =
pModel->GetDepth( pSelEntry );
868 pTemp =
Next( pSelEntry );
869 while( pTemp &&
pModel->GetDepth( pTemp ) > nRefDepth )
872 pTemp =
Next( pTemp );
902 if ( !pEdCtrl->EditingCanceled() )
903 aStr = pEdCtrl->GetText();
905 aStr = pEdCtrl->GetSavedValue();
925 pEdCtrl->StopEditing( bCancel );
960 if ( !pNextSiblingEntry )
961 pEntry =
Next( pEntry );
963 pEntry = pNextSiblingEntry;
967 pEntry =
Next( pEntry );
982 DBG_ASSERT( pEntry,
"SvTreeListBox::SelectSearchEntry: invalid entry!" );
998 mpImpl->m_bDoingQuickSelection =
true;
999 const bool bHandled =
mpImpl->m_aQuickSelectionEngine.HandleKeyEvent( _rKEvt );
1000 mpImpl->m_bDoingQuickSelection =
false;
1020 SAL_WARN(
"svtools.contnr",
"SvTreeListBox::QueryDrop(): no target" );
1027 SAL_WARN(
"svtools.contnr",
"SvTreeListBox::QueryDrop(): no format" );
1031 DBG_ASSERT(g_pDDSource,
"SvTreeListBox::QueryDrop(): SourceBox == 0");
1064 if( aData.
HasFormat( SotClipboardFormatId::TREELISTBOX ))
1106 g_pDDTarget =
nullptr;
1111 Point aEventPos( rPosPixel );
1134 xContainer->CopyAnyData( SotClipboardFormatId::TREELISTBOX,
1186 g_pDDSource =
nullptr;
1187 g_pDDTarget =
nullptr;
1214 struct SortLBoxes :
public rtl::Static<std::set<sal_uLong>, SortLBoxes> {};
1220 SortLBoxes::get().insert( nVal );
1226 SortLBoxes::get().erase( nVal );
1232 std::set<sal_uLong> &rSortLBoxes = SortLBoxes::get();
1233 std::set<sal_uLong>::const_iterator it = rSortLBoxes.find(nVal);
1234 if( it != rSortLBoxes.end() )
1236 DragFinished( nAction );
1237 rSortLBoxes.erase( it );
1244 return LINK( const_cast<SvTreeListBox*>(
this),
SvTreeListBox, DragFinishHdl_Impl );
1254 #define SV_LBOX_DEFAULT_INDENT_PIXEL 20
1289 OUStringBuffer sRet;
1292 sal_uInt16 nCur = 0;
1293 while( nCur < nCount )
1297 !static_cast<SvLBoxString&>( rItem ).GetText().isEmpty() )
1299 sRet.append(static_cast<SvLBoxString&>( rItem ).
GetText()).append(
",");
1304 if (!sRet.isEmpty())
1305 sRet.remove(sRet.getLength() - 1, 1);
1306 return sRet.makeStringAndClear();
1334 if (
this == g_pDDSource)
1335 g_pDDSource =
nullptr;
1336 if (
this == g_pDDTarget)
1337 g_pDDTarget =
nullptr;
1348 pImpl->SetNoAutoCurEntry( b );
1353 pImpl->m_bSubLstOpLR =
true;
1365 pImpl->ShowCursor(
false );
1366 pImpl->ShowCursor(
true );
1383 #define NO_BUTTONS 0
1384 #define NODE_BUTTONS 1
1385 #define NODE_AND_CHECK_BUTTONS 2
1386 #define CHECK_BUTTONS 3
1388 #define TABFLAGS_TEXT (SvLBoxTabFlags::DYNAMIC | \
1389 SvLBoxTabFlags::ADJUST_LEFT | \
1390 SvLBoxTabFlags::EDITABLE | \
1391 SvLBoxTabFlags::SHOW_SELECTION)
1393 #define TABFLAGS_CONTEXTBMP (SvLBoxTabFlags::DYNAMIC | SvLBoxTabFlags::ADJUST_CENTER)
1395 #define TABFLAGS_CHECKBTN (SvLBoxTabFlags::DYNAMIC | \
1396 SvLBoxTabFlags::ADJUST_CENTER)
1398 #define TAB_STARTPOS 2
1422 tools::Long nContextWidthDIV2 = nContextWidth / 2;
1443 nStartPos += nContextWidthDIV2;
1445 nStartPos += nContextWidthDIV2;
1453 if( bHasButtonsAtRoot )
1454 nStartPos += (
nIndent + (nNodeWidthPixel/2) );
1456 nStartPos += nContextWidthDIV2;
1458 nStartPos += nContextWidthDIV2;
1466 if( bHasButtonsAtRoot )
1467 nStartPos += (
nIndent + nNodeWidthPixel );
1469 nStartPos += nCheckWidthDIV2;
1471 nStartPos += nCheckWidthDIV2;
1473 nStartPos += nContextWidthDIV2;
1475 nStartPos += nContextWidthDIV2;
1483 nStartPos += nCheckWidthDIV2;
1485 nStartPos += nCheckWidthDIV2;
1487 nStartPos += nContextWidthDIV2;
1489 nStartPos += nContextWidthDIV2;
1496 pImpl->NotifyTabsChanged();
1500 const OUString& aStr,
const Image& aCollEntryBmp,
const Image& aExpEntryBmp)
1509 pEntry->
AddItem(std::make_unique<SvLBoxString>(aStr));
1538 pHdlEntry =
pData->GetActEntry();
1543 const OUString& rText,
1551 const Image& rDefExpBmp =
pImpl->GetDefaultEntryExpBmp( );
1552 const Image& rDefColBmp =
pImpl->GetDefaultEntryColBmp( );
1559 InitEntry( pEntry, rText, rDefColBmp, rDefExpBmp );
1565 Insert( pEntry, pParent, nPos );
1576 const Image& aExpEntryBmp,
const Image& aCollEntryBmp,
1586 InitEntry( pEntry, rText, aCollEntryBmp, aExpEntryBmp );
1593 Insert( pEntry, pParent, nPos );
1622 short nWidth =
pImpl->UpdateContextBmpWidthVector( pEntry, static_cast<short>(aSize.
Width()) );
1640 short nWidth =
pImpl->UpdateContextBmpWidthVector( pEntry, static_cast<short>(aSize.
Width()) );
1653 auto nWidth = pItem->
GetWidth(
this, pEntry);
1753 Image aCollEntryBmp;
1758 aStr = pStringItem->
GetText();
1766 InitEntry( pClone, aStr, aCollEntryBmp, aExpEntryBmp );
1767 pClone->SvTreeListEntry::Clone( pSource );
1776 return pImpl->GetDefaultEntryExpBmp( );
1781 return pImpl->GetDefaultEntryColBmp( );
1791 pImpl->SetDefaultEntryExpBmp( aBmp );
1801 pImpl->SetDefaultEntryColBmp( aBmp );
1867 if( !
pImpl->KeyInput( rKEvt ) )
1894 pEntry =
pImpl->GetCurEntry();
1896 if (
pImpl->m_pCursor)
1898 if (pEntry !=
pImpl->m_pCursor)
1899 pEntry =
pImpl->m_pCursor;
1918 pImpl->m_pCursor =
nullptr;
1939 if (rPos.X() < 0 || rPos.Y() < 0)
1942 if (rPos.X() > aSize.
Width() || rPos.Y() > aSize.
Height())
1944 if (
pImpl->m_aVerSBar->IsVisible())
1947 if (aRect.IsInside(rPos))
1950 if (
pImpl->m_aHorSBar->IsVisible())
1953 if (aRect.IsInside(rPos))
1961 if( !nDeltaEntries || !
pImpl->m_aVerSBar->IsVisible() )
1967 if( nDeltaEntries < 0 )
1970 nDeltaEntries *= -1;
1973 if( nDeltaEntries > (nMax - nTemp) )
1974 nDeltaEntries =
static_cast<short>(nMax - nTemp);
1975 pImpl->PageDown( static_cast<sal_uInt16>(nDeltaEntries) );
1979 if( nDeltaEntries > nThumb )
1980 nDeltaEntries =
static_cast<short>(nThumb);
1981 pImpl->PageUp( static_cast<sal_uInt16>(nDeltaEntries) );
1983 pImpl->SyncVerThumb();
1988 pImpl->ScrollToAbsPos( nPos );
1994 pImpl->SetSelectionMode( eSelectMode );
2000 pImpl->SetDragDropMode( nDDMode );
2007 sal_uInt16 nCur = 0;
2009 while( nCur < nCount )
2012 if( nHeight > nHeightMax )
2013 nHeightMax = nHeight;
2021 pImpl->SetEntryHeight();
2035 pImpl->SetEntryHeight();
2050 pImpl->SetEntryHeight();
2060 pImpl->SetEntryHeight();
2067 bool bExpanded =
false;
2080 pImpl->EntryExpanded( pParent );
2110 bool bCollapsed =
false;
2115 pImpl->CollapsingEntry( pParent );
2117 pImpl->EntryCollapsed( pParent );
2139 pImpl->EntrySelected( pEntry, bSelect );
2154 pImpl->DestroyAnchor();
2158 sal_uInt16 nRefDepth =
pModel->GetDepth( pParent );
2162 Select( pChild, bSelect );
2163 pChild =
Next( pChild );
2164 }
while( pChild &&
pModel->GetDepth( pChild ) > nRefDepth );
2170 pImpl->SelAllDestrAnch(
2178 sal_uInt16 nRefDepth =
pModel->GetDepth( pEntry );
2183 pTmp =
Next( pTmp );
2184 }
while( pTmp && nRefDepth < pModel->GetDepth( pTmp ) );
2185 pImpl->TreeInserted( pEntry );
2191 pImpl->EntryInserted( pEntry );
2196 pImpl->MovingEntry( pSource );
2201 pImpl->EntryMoved( pSource );
2209 pImpl->RemovingEntry( pEntry );
2220 pImpl->EntryRemoved();
2226 pImpl->SetCollapsedNodeBmp( rBmp );
2232 pImpl->SetExpandedNodeBmp( rBmp );
2241 if (aTempFont == aOrigFont)
2249 if (aTempFont == aOrigFont)
2267 pImpl->Paint(rRenderContext, rRect);
2288 pImpl->MouseButtonDown( rMEvt );
2316 pImpl->MouseButtonUp( rMEvt );
2321 pImpl->MouseMove( rMEvt );
2326 pImpl->SetUpdateMode( bUpdate );
2336 nEntryHeightOffs = nOffsLogic;
2339 pImpl->SetEntryHeight();
2345 pImpl->SetCurEntry( pEntry );
2350 return pImpl->GetExpandedNodeBmp( );
2355 return pImpl->GetEntryPosition( pEntry );
2360 pImpl->MakeVisible(pEntry);
2365 pImpl->MakeVisible( pEntry, bMoveToTop );
2373 for( sal_uInt16 nIdx = 0; nIdx < nCount; nIdx++ )
2380 pImpl->InvalidateEntry( pEntry );
2388 pImpl->ShowCursor(
false );
2390 pImpl->InvalidateEntry(pEntry);
2392 pImpl->ShowCursor(
true );
2397 DBG_ASSERT(pTab,
"EditItemText:Tab not found");
2399 auto nItemHeight( pItem->
GetHeight(
this, pEntry) );
2404 Size aSize( nOutputWidth - aPos.X(), nItemHeight );
2406 [pTab](
const std::unique_ptr<SvLBoxTab>&
p) {
return p.get() == pTab; })
2408 if( nPos+1 < static_cast<sal_uInt16>(
aTabs.size()) )
2412 if( nRight <= nOutputWidth )
2413 aSize.setWidth( nRight - aPos.X() );
2417 aSize.AdjustWidth( -(aOrigin.X()) );
2438 bool bIsMouseTriggered = nClickX >= 0;
2443 for( sal_uInt16
i = 0 ;
i < nCount ;
i++ )
2451 if(
i < nCount - 1 )
2455 nNextTabPos = pNextTab->
GetPos();
2460 nTabPos = pTab->
GetPos();
2461 if( !bIsMouseTriggered || (nClickX > nTabPos && (nNextTabPos == -1 || nClickX < nNextTabPos ) ) )
2506 if( rPos.Y() > aSize.Height() - 12 )
2518 pTarget ==
First() && rPos.Y() < 6 )
2528 if( pEntry && bHit )
2531 if( !(
pImpl->EntryReallyHit( pEntry, rPos, nLine)) )
2539 return pImpl ?
pImpl->GetCurEntry() :
nullptr;
2557 pImpl->SetStyle(nWindowStyle);
2564 DBG_ASSERT(pEntry,
"InvalidateEntry:No Entry");
2575 bool bHorSBar =
pImpl->HasHorScrollBar();
2577 pImpl->UpdateContextBmpWidthMax(&rEntry);
2587 if (!bHorSBar &&
pImpl->HasHorScrollBar())
2591 aEntryPos.setX( aEntryPos.X() * -1 );
2592 tools::Long nMaxRight = nWidth + aEntryPos.X() - 1;
2598 bool bCurFontIsSel =
false;
2606 aHighlightFont.SetColor(aHighlightTextColor);
2608 Size aRectSize(0, nTempEntryHeight);
2612 const size_t nTabCount =
aTabs.size();
2613 const size_t nItemCount = rEntry.
ItemCount();
2615 size_t nCurItem = 0;
2617 while (nCurTab < nTabCount && nCurItem < nItemCount)
2620 const size_t nNextTab = nCurTab + 1;
2621 SvLBoxTab* pNextTab = nNextTab < nTabCount ?
aTabs[nNextTab].get() :
nullptr;
2625 Size aSize(rItem.
GetWidth(
this, pViewDataEntry, nCurItem),
2631 nNextTabPos =
GetTabPos(&rEntry, pNextTab);
2634 nNextTabPos = nMaxRight;
2635 if (nTabPos > nMaxRight)
2644 nX = nTabPos + pTab->
CalcOffset(aSize.Width(), nNextTabPos - nTabPos);
2646 aEntryPos.setX( nX );
2647 aEntryPos.setY( nLine );
2669 rRenderContext.
SetFont(aHighlightFont);
2670 bCurFontIsSel =
true;
2672 aWallpaper.
SetColor(aNewWallColor);
2678 bCurFontIsSel =
false;
2679 if (
const auto & xCustomTextColor = rEntry.
GetTextColor())
2683 rRenderContext.
SetFont(aBackupFont);
2695 aRectSize.
setWidth( aSize.Width() );
2709 aRect.
SetBottom( nLine + nTempEntryHeight - 1 );
2713 nRight =
GetTabPos(&rEntry, pNextTab) - 1;
2714 if (nRight > nMaxRight)
2739 aEntryPos.AdjustY((nTempEntryHeight - aSize.Height()) / 2 );
2741 rItem.
Paint(aEntryPos, *
this, rRenderContext, pViewDataEntry, rEntry);
2746 aRect.
Right() < nMaxRight)
2760 rRenderContext.
Push();
2764 rRenderContext.
Pop();
2770 rRenderContext.
SetFont(aBackupFont);
2773 sal_uInt16 nFirstDynTabPos(0);
2776 nDynTabPos +=
pImpl->m_nNodeBmpTabDistance;
2777 nDynTabPos +=
pImpl->m_nNodeBmpWidth / 2;
2787 sal_uInt16 nNextTab = nFirstDynTabPos;
2792 pNextTab = nNextTab < nTabCount ?
aTabs[nNextTab].get() :
nullptr;
2793 }
while (pNextTab && pNextTab->
IsDynamic());
2795 if (pNextTab && (
GetTabPos( &rEntry, pNextTab ) <= nDynTabPos))
2802 aPos.AdjustX(
pImpl->m_nNodeBmpTabDistance );
2804 const Image* pImg =
nullptr;
2807 pImg = &
pImpl->GetExpandedNodeBmp();
2812 pImpl->GetDontKnowNodeBmp().GetSizePixel().Width())
2814 pImg = &
pImpl->GetDontKnowNodeBmp( );
2818 pImg = &
pImpl->GetCollapsedNodeBmp( );
2828 bool bNativeOK =
false;
2844 pImpl->GetDontKnowNodeBmp().GetSizePixel().Width())
2859 rRenderContext.
DrawImage(aPos, *pImg ,nStyle);
2865 aCustomRenderHdl.
Call(std::tuple<vcl::RenderContext&, const tools::Rectangle&, const SvTreeListEntry&>(rRenderContext, rRect, rEntry));
2870 return aCustomMeasureHdl.
Call(std::pair<vcl::RenderContext&, const SvTreeListEntry&>(rRenderContext, rEntry));
2875 pImpl->UpdateContextBmpWidthMax( pEntry );
2891 if( pTab && nCurTab <
aTabs.size() - 1 )
2894 nNextTabPos =
GetTabPos( pEntry, pNextTab );
2898 nNextTabPos = nRealWidth;
2899 if( nTabPos > nRealWidth )
2904 if( !bUserSelection )
2906 if( pTab && nCurTab < pEntry->ItemCount() )
2910 if( !aSize.
Width() )
2918 if( aRect.
Left() > 0 )
2930 sal_uInt16 nLastTab;
2933 if( nLastTab <
aTabs.size() )
2934 pLastTab =
aTabs[ nLastTab ].
get();
2961 if( aRect.
Right() >= nRealWidth )
2975 sal_uInt16 nDepth =
pModel->GetDepth( pEntry );
2976 nDepth = nDepth *
static_cast<sal_uInt16
>(
nIndent);
2977 nPos +=
static_cast<sal_IntPtr
>(nDepth);
2986 sal_uInt16 nTabCount =
aTabs.size();
2987 sal_uInt16 nItemCount = pEntry->
ItemCount();
2990 sal_uInt16 nNextItem = 1;
2997 SvLBoxTab* pNextTab=nNextItem<nTabCount ?
aTabs[nNextItem].get() :
nullptr;
3002 nNextTabPos =
GetTabPos( pEntry, pNextTab );
3005 nNextTabPos = nRealWidth;
3006 if( nStart > nRealWidth )
3010 auto nItemWidth(pItem->
GetWidth(
this, pEntry));
3011 nStart += pTab->
CalcOffset(nItemWidth, nNextTabPos - nStart);
3012 auto nLen = nItemWidth;
3016 if( nTabWidth < nLen )
3020 if( nX >= nStart && nX < (nStart+nLen ) )
3022 pItemClicked = pItem;
3029 if( nNextItem >= nItemCount || nNextItem >= nTabCount)
3031 pTab =
aTabs[ nNextItem ].get();
3032 pItem = &pEntry->
GetItem( nNextItem );
3035 return pItemClicked;
3046 sal_uInt16 nCurPos = 0;
3047 if (nCount > rWidths.size())
3048 rWidths.resize(nCount);
3049 while (nCurPos < nCount)
3052 auto nWidth = rItem.
GetWidth(
this, pEntry);
3056 if (nWidth > rWidths[nCurPos])
3057 rWidths[nCurPos] = nWidth;
3061 pEntry =
Next( pEntry );
3069 std::vector<tools::Long> aWidths;
3098 for(
size_t i = 0; pEntry; ++
i)
3103 pNextEntry =
pModel->FirstChild( pEntry );
3108 pEntry =
pModel->Next( pEntry );
3110 pEntry = pNextEntry;
3118 pImpl->UpdateAll(
true);
3123 pImpl->SetForceMakeVisible(bEnable);
3141 aTabs.emplace_back( pTab );
3157 sal_uInt16 nCurTab = 0;
3158 sal_uInt16 nTabCount =
aTabs.size();
3159 while( nCurTab < nTabCount )
3181 return aTabs[ nPos ].get();
3208 pImpl->RecalcFocusRect();
3210 pImpl->Invalidate();
3218 pImpl->RecalcFocusRect();
3228 std::swap(nStart, nEnd);
3233 pImpl->RecalcFocusRect();
3239 pImpl->Command(rCEvt);
3247 sal_uInt16 nTabCount =
aTabs.size();
3251 if( pTab->
nFlags & nFlagMask )
3263 sal_uInt16
nPos =
static_cast<sal_uInt16
>(
aTabs.size());
3268 if( pTab->
nFlags & nFlagMask )
3282 if( !
pImpl->RequestHelp( rHEvt ) )
3288 OUString aLeft = pLeftText ? pLeftText->
GetText() : OUString();
3289 OUString aRight = pRightText ? pRightText->
GetText() : OUString();
3290 pImpl->UpdateStringSorter();
3291 return pImpl->m_pStringSorter->compare(aLeft, aRight);
3300 return DefaultCompare(pLeftText, pRightText);
3321 short nMaxWidth = short( std::max( rBitmap1.GetSizePixel().Width(), rBitmap2.GetSizePixel().Width() ) );
3322 nMaxWidth =
pImpl->UpdateContextBmpWidthVector( pEntry1, nMaxWidth );
3363 const Size& rSize =
pImpl->GetOutputSize();
3364 if( aPos.Y() < 0 || aPos.Y() >= rSize.
Height() )
3429 DBG_ASSERT( pParent,
"SvTreeListBox::CreateAccessible - accessible parent not found" );
3431 css::uno::Reference< XAccessible > xAccessible;
3434 css::uno::Reference< XAccessible > xAccParent = pParent->
GetAccessible();
3435 if ( xAccParent.is() )
3439 xAccessible =
pImpl->m_aFactoryAccess.getFactory().createAccessibleTreeListBox( *
this, xAccParent );
3447 assert(pEntry &&
"SvTreeListBox::FillAccessibleEntryStateSet: invalid entry");
3451 rStateSet.
AddState( AccessibleStateType::EXPANDABLE );
3453 rStateSet.
AddState( sal_Int16(AccessibleStateType::EXPANDED) );
3457 rStateSet.
AddState( AccessibleStateType::CHECKED );
3459 rStateSet.
AddState( AccessibleStateType::VISIBLE );
3461 rStateSet.
AddState( AccessibleStateType::SELECTED );
3464 rStateSet.
AddState( AccessibleStateType::ENABLED );
3465 rStateSet.
AddState( AccessibleStateType::FOCUSABLE );
3466 rStateSet.
AddState( AccessibleStateType::SELECTABLE );
3468 if (pViewDataNewCur && pViewDataNewCur->
HasFocus())
3469 rStateSet.
AddState( AccessibleStateType::FOCUSED );
3493 if (rKey ==
"min-width-chars")
3497 else if (rKey ==
"enable-tree-lines")
3505 else if (rKey ==
"show-expanders")
3513 else if (rKey ==
"enable-search")
3517 else if (rKey ==
"activate-on-single-click")
3521 else if (rKey ==
"hover-selection")
3525 else if (rKey ==
"reorderable")
static bool toBool(std::string_view rValue)
virtual void ModelHasInserted(SvTreeListEntry *pEntry) override
void AddItem(std::unique_ptr< SvLBoxItem > pItem)
#define LINK(Instance, Class, Member)
Size GetSizePixel() const
const Color & GetTextColor() const
bool CheckDragAndDropMode(SvTreeListBox const *pSource, sal_Int8)
The child windows are invalidated, too.
Link< svtree_measure_args, Size > aCustomMeasureHdl
virtual void ModelIsMoving(SvTreeListEntry *pSource) override
Image const & GetExpandedNodeBmp() const
SAL_DLLPRIVATE float approximate_char_width() const
void SetFillColor(const Color &)
SvTreeListEntry * NextVisible(SvTreeListEntry *pEntry) const
void EditedText(const OUString &)
VCL_DLLPRIVATE void ImpEntryInserted(SvTreeListEntry *pEntry)
virtual ~SvTreeListBox() override
const Wallpaper & GetBackground() const
SvTreeListEntry * NextSelected(SvTreeListEntry *pEntry) const
const css::datatransfer::dnd::DropTargetDropEvent maDropEvent
const Color & GetDeactiveColor() const
const Color & GetBackColor() const
tools::Rectangle GetBoundingRect(const SvTreeListEntry *pEntry)
Calculate and return the bounding rectangle of an entry.
void InvalidateEntry(SvTreeListEntry *)
void DrawImage(const Point &rPos, const Image &rImage, DrawImageFlags nStyle=DrawImageFlags::NONE)
This is an overloaded member function, provided for convenience. It differs from the above function o...
void SetUserData(void *pPtr)
sal_uLong SelectChildren(SvTreeListEntry *pParent, bool bSelect)
void SetNoAutoCurEntry(bool b)
void setWidth(tools::Long nWidth)
virtual void DragFinished(sal_Int8 nDropAction)
const Color & GetHighlightTextColor() const
std::unique_ptr< ContentProperties > pData
virtual void ModelHasInsertedTree(SvTreeListEntry *pEntry) override
bool KeyInput(const KeyEvent &rKEvt)
virtual void Command(const CommandEvent &rCEvt) override
void CallCallBackHdl_Impl()
bool IsEntryVisible(SvTreeListEntry *pEntry) const
void SetExpandedEntryBmp(SvTreeListEntry *_pEntry, const Image &_rImage)
Link< const HelpEvent &, bool > aTooltipHdl
bool IsHighlighted() const
SvTreeList * GetModel() const
bool IsEditingActive() const
SvTLEntryFlags GetFlags() const
#define DECL_LINK(Member, ArgType, RetType)
WinBits const WB_HASBUTTONSATROOT
vcl::Window * GetAccessibleParentWindow() const
void SetSortMode(SvSortMode eMode)
OUString const & GetSavedValue() const
VCL_DLLPRIVATE void AdjustEntryHeight()
#define SVLBOX_ACC_RETURN
void AdjustEntryHeightAndRecalc()
constexpr::Color COL_TRANSPARENT(ColorTransparency, 0xFF, 0xFF, 0xFF, 0xFF)
virtual void StateChanged(StateChangedType eType) override
const StyleSettings & GetStyleSettings() const
const Color & GetFaceColor() const
virtual tools::Rectangle GetFocusRect(const SvTreeListEntry *, tools::Long nLine)
VCL_DLLPRIVATE void ImplInitStyle()
virtual void StateChanged(StateChangedType nStateChange) override
SvTreeListEntry * GetFirstEntryInView() const
const Image & GetDefaultExpandedEntryBmp() const
void SetFlags(SvTLEntryFlags nFlags)
std::function< std::unique_ptr< UIObject >vcl::Window *)> FactoryFunction
virtual Size GetSizePixel() const
virtual void ModelNotification(SvListAction nActionId, SvTreeListEntry *pEntry1, SvTreeListEntry *pEntry2, sal_uLong nPos) override
void EditItemText(SvTreeListEntry *pEntry, SvLBoxString *pItem, const Selection &)
void SetColor(const Color &rColor)
SvLBoxTab * GetFirstDynamicTab() const
virtual DragDropMode NotifyStartDrag()
SvLBoxTab * GetFirstTab(SvLBoxTabFlags nFlagMask, sal_uInt16 &rTabPos)
tools::Long mnCheckboxItemWidth
SvTreeListBoxImpl(SvTreeListBox &_rBox)
virtual void dispose() override
This is intended to be used to clear any locally held references to other Window-subclass objects...
void FillAccessibleEntryStateSet(SvTreeListEntry *pEntry,::utl::AccessibleStateSetHelper &rStateSet) const
Fills the StateSet of one entry.
static const Image & GetDefaultCollapsedNodeImage()
SvInplaceEdit2(vcl::Window *pParent, const Point &rPos, const Size &rSize, const OUString &rData, const Link< SvInplaceEdit2 &, void > &rNotifyEditEnd, const Selection &)
const MapMode & GetMapMode() const
#define DND_ACTION_COPYMOVE
virtual void StartDrag(sal_Int8 nAction, const Point &rPosPixel) override
sal_uInt16 GetCode() const
VCL_DLLPRIVATE void InitTreeView()
void setTristateVal(ButtonValue nTristate)
DataChangedEventType GetType() const
void SetEntryText(SvTreeListEntry *, const OUString &)
void SetCurEntry(SvTreeListEntry *_pEntry)
Link< const CommandEvent &, bool > aPopupMenuHdl
short nContextBmpWidthMax
bool mbUpdateAlternatingRows
const OUString & GetText() const
virtual void InitViewData(SvTreeListBox *pView, SvTreeListEntry *pEntry, SvViewDataItem *pViewData=nullptr)=0
SelectionMode GetSelectionMode() const
virtual void RequestHelp(const HelpEvent &rHEvt) override
virtual int CalcWidth(const SvTreeListBox *pView) const
static const Image & GetExpandedEntryBmp(const SvTreeListEntry *_pEntry)
void SetBitmap2(const Image &rImage)
IMPL_LINK_NOARG(SvInplaceEdit2, ReturnHdl_Impl, Accelerator &, void)
void SetType(WindowType nType)
View-dependent data for a tree list entry created in the virtual function SvTreeListBox::CreateViewDa...
SvTreeListEntry * GetCurEntry() const
bool HasFormat(SotClipboardFormatId nFormat) const
SvTreeListBoxFlags nImpFlags
sal_Int32 DefaultCompare(const SvLBoxString *pLeftText, const SvLBoxString *pRightText)
static VclPtr< SvTreeListBox > g_pDDTarget
SvTreeListBox(vcl::Window *pParent, WinBits nWinStyle=0)
bool IsNativeControlSupported(ControlType nType, ControlPart nPart) const
Query the platform layer for control support.
const vcl::Font & GetFieldFont() const
static VCL_DLLPRIVATE void RemoveBoxFromDDList_Impl(const SvTreeListBox &rB)
const Color & GetFieldTextColor() const
static const Image & GetDefaultExpandedNodeImage()
const Color & GetHighlightColor() const
void SetBitmap1(const Image &rImage)
virtual bool set_property(const OString &rKey, const OUString &rValue) override
VCL_DLLPRIVATE bool HandleKeyInput(const KeyEvent &rKEvt)
Handles the given key event.
#define SV_ENTRYHEIGHTOFFS_PIXEL
const Image & GetBitmap2() const
bool mbAlternatingRowColors
SvTreeListEntry * GetEntryFromPath(const ::std::deque< sal_Int32 > &_rPath) const
void MakeVisible(SvTreeListEntry *pEntry)
virtual void DataChanged(const DataChangedEvent &rDCEvt) override
sal_uInt32 GetExtraIndent() const
void SetCompareHdl(const Link< const SvSortData &, sal_Int32 > &rLink)
int GetHeight(const SvTreeListBox *pView, const SvTreeListEntry *pEntry) const
void SetDragHelper(const rtl::Reference< TransferDataContainer > &rHelper, sal_uInt8 eDNDConstants)
#define NODE_AND_CHECK_BUTTONS
rtl::Reference< TransferDataContainer > m_xTransferHelper
virtual css::uno::Reference< css::awt::XWindowPeer > GetComponentInterface(bool bCreate=true)
SvViewDataItem * GetViewDataItem(SvTreeListEntry const *, SvLBoxItem const *)
virtual Size GetOptimalSize() const override
void ScrollOutputArea(short nDeltaEntries)
virtual void GetFocus() override
void SetForceMakeVisible(bool bEnable)
virtual void ModelIsRemoving(SvTreeListEntry *pEntry) override
SvLBoxButtonData * pCheckButtonData
bool mbContextBmpExpanded
const BorderLinePrimitive2D *pCandidateB assert(pCandidateA)
css::uno::Reference< css::accessibility::XAccessible > GetAccessible(bool bCreate=true)
virtual bool EditingEntry(SvTreeListEntry *pEntry)
virtual void InitViewData(SvViewDataEntry *, SvTreeListEntry *pEntry) override
SvTreeListEntry * FirstSelected() const
const vcl::Font & GetFont() const
sal_Int32 nMinWidthInChars
void SetDragDropMode(DragDropMode)
SvTreeListEntries m_Children
VCL_DLLPRIVATE Size MeasureCustomEntry(vcl::RenderContext &rRenderContext, const SvTreeListEntry &rEntry)
virtual void KeyInput(const KeyEvent &rKEvt) override
void GetLastTab(SvLBoxTabFlags nFlagMask, sal_uInt16 &rTabPos)
#define TABFLAGS_CONTEXTBMP
virtual void MouseButtonUp(const MouseEvent &rMEvt) override
AllSettingsFlags GetFlags() const
SvTreeListEntry * NextSibling() const
virtual void Start() override
Activates the timer task.
virtual FactoryFunction GetUITestFactory() const override
Link< SvTreeListBox *, bool > aDoubleClickHdl
void SetCollapsedEntryBmp(SvTreeListEntry *_pEntry, const Image &_rImage)
void SetBackColor(const Color &rColor)
virtual void queue_resize(StateChangedType eReason=StateChangedType::Layout)
void EndEditing(bool bCancel=false)
void EnableSelectionAsDropTarget(bool bEnable=true)
static const Image & GetDefaultExpandedNodeImage()
Returns the default image which clients should use for expanded nodes, to have a consistent user inte...
virtual void SelectEntry(vcl::StringEntryIdentifier _entry) override
selects a given entry
virtual OUString GetText() const
const void * StringEntryIdentifier
void SetCheckButtonData(SvLBoxButtonData *)
WinBits const WB_HASLINESATROOT
void SetExpandedNodeBmp(const Image &)
void CallImplEventListeners(VclEventId nEvent, void *pData)
void SetAlternatingRowColors(const bool bEnable)
vcl::QuickSelectionEngine m_aQuickSelectionEngine
short GetEntryHeight() const
Link< SvTreeListBox *, void > aDeselectHdl
VCL_DLLPRIVATE bool PosOverBody(const Point &rPos) const
void EnableInplaceEditing(bool bEnable)
void DrawRect(const tools::Rectangle &rRect)
DragDropMode nOldDragMode
void SetHoverSelection(bool bEnable)
sal_IntPtr GetTabPos(const SvTreeListEntry *, const SvLBoxTab *)
constexpr OUStringLiteral aData
void SetDebugName(const char *pDebugName)
SvTreeListEntry * pHdlEntry
virtual void Paint(const Point &rPos, SvTreeListBox &rOutDev, vcl::RenderContext &rRenderContext, const SvViewDataEntry *pView, const SvTreeListEntry &rEntry)=0
#define SAL_N_ELEMENTS(arr)
virtual void RequestingChildren(SvTreeListEntry *pParent)
bool IsDragTarget() const
bool CopySelection(SvTreeListBox *pSource, SvTreeListEntry *pTarget)
sal_uInt16 nCurEntrySelPos
void SetHighlightRange(sal_uInt16 nFirstTab=0, sal_uInt16 nLastTab=0xffff)
SvTreeListEntry * pTargetEntry
std::optional< Color > const & GetTextColor() const
Image aPrevInsertedExpBmp
void StopEditing(bool bCancel)
virtual void MouseButtonDown(const MouseEvent &rMEvt) override
void OnCurrentEntryChanged()
tools::Long getPreferredDimensions(std::vector< tools::Long > &rWidths) const
bool IsChild(const vcl::Window *pWindow) const
sal_uLong GetLevelChildCount(SvTreeListEntry *pParent) const
SvTreeListEntry * CloneEntry(SvTreeListEntry *pSource)
static VCL_DLLPRIVATE void AddBoxToDDList_Impl(const SvTreeListBox &rB)
sal_Int8 ExecuteDrop(const ExecuteDropEvent &rEvt, SvTreeListBox *pSourceView)
#define DBG_ASSERT(sCon, aError)
void SetEntryWidth(short nWidth)
DragDropMode nDragDropMode
static OUString SearchEntryTextWithHeadTitle(SvTreeListEntry *pEntry)
void SetSublistOpenWithLeftRight()
static bool InsertAccel(Accelerator *pAccel)
Insert accelerator.
Link< SvInplaceEdit2 &, void > aCallBackHdl
#define SVLBOX_ACC_ESCAPE
void ImplEditEntry(SvTreeListEntry *pEntry)
void SetCheckButtonState(SvTreeListEntry *, SvButtonState)
virtual void SetText(const OUString &rStr) override
virtual void Resize() override
virtual vcl::StringEntryIdentifier NextEntry(vcl::StringEntryIdentifier _currentEntry, OUString &_out_entryText) const override
returns the next entry in the list.
const Color & GetColor() const
virtual void Invalidate(InvalidateFlags nFlags=InvalidateFlags::NONE)
css::uno::Reference< css::datatransfer::dnd::XDropTarget > GetDropTarget()
void SetUpdateMode(bool bUpdate)
SvTreeListEntry * GetNextEntryInView(SvTreeListEntry *) const
Link< SvTreeListBox *, void > aExpandedHdl
virtual OUString GetText() const override
void CallEventListeners(VclEventId nEvent, void *pData=nullptr)
bool IsSelected(const SvTreeListEntry *pEntry) const
std::unique_ptr< SvTreeList > pModel
bool IsUpdateMode() const
SvTreeListEntry * FirstChild(SvTreeListEntry *pParent) const
tools::Long Width() const
void * GetUserData() const
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
const Color & GetFieldColor() const
CommandEventId GetCommand() const
std::unique_ptr< SvImpLBox > pImpl
static const Image & GetDefaultCollapsedNodeImage()
Returns the default image which clients should use for expanded nodes, to have a consistent user inte...
void SetTextColor(const Color &rColor)
SvViewDataEntry * GetViewDataEntry(SvTreeListEntry const *pEntry) const
bool Collapse(SvTreeListEntry *pParent)
SvLBoxItem * GetItem(SvTreeListEntry *, tools::Long nX, SvLBoxTab **ppTab)
Link< SvTreeListBox *, void > aSelectHdl
Link< sal_Int8, void > GetDragFinishedHdl() const
bool MoveSelectionCopyFallbackPossible(SvTreeListBox *pSource, SvTreeListEntry *pTarget, bool bAllowCopyFallback)
SvTLEntryFlags nEntryFlags
All repaint events should go in here.
virtual void ModelHasMoved(SvTreeListEntry *pSource) override
bool IsMouseCaptured() const
#define TABFLAGS_CHECKBTN
const Image & GetBitmap1() const
bool DrawNativeControl(ControlType nType, ControlPart nPart, const tools::Rectangle &rControlRegion, ControlState nState, const ImplControlValue &aValue, const OUString &aCaption, const Color &rBackgroundColor=COL_AUTO)
Request rendering of a particular control and/or part.
virtual SvTreeListEntry * InsertEntry(const OUString &rText, SvTreeListEntry *pParent=nullptr, bool bChildrenOnDemand=false, sal_uLong nPos=TREELIST_APPEND, void *pUserData=nullptr)
virtual void dispose() override
This is intended to be used to clear any locally held references to other Window-subclass objects...
size_t GetPos(const SvLBoxItem *pItem) const
static sal_uLong GetRelPos(const SvTreeListEntry *pChild)
const AllSettings & GetSettings() const
Image aPrevInsertedColBmp
IMPL_LINK(SvTreeListBox, CloneHdl_Impl, SvTreeListEntry *, pEntry, SvTreeListEntry *)
virtual void InitEntry(SvTreeListEntry *, const OUString &, const Image &, const Image &)
virtual bool set_property(const OString &rKey, const OUString &rValue)
virtual OUString GetEntryText(SvTreeListEntry *pEntry) const
void ModelHasEntryInvalidated(SvTreeListEntry *pEntry) override
DragDropMode GetDragDropMode() const
const SvLBoxItem & GetItem(size_t nPos) const
const Color & GetFillColor() const
bool Expand(SvTreeListEntry *pParent)
void SelectAll(bool bSelect)
static VclPtr< SvTreeListBox > g_pDDSource
Point GetEntryPosition(const SvTreeListEntry *) const
virtual void KeyInput(const KeyEvent &rKEvt) override
virtual void ShowFocus(const tools::Rectangle &rRect)
vcl::Window * GetParent() const
void SetStyle(WinBits nStyle)
sal_Int8 mnClicksToToggle
bool HasChildrenOnDemand() const
static const Image & GetCollapsedEntryBmp(const SvTreeListEntry *_pEntry)
constexpr sal_uInt16 KEY_RETURN
void SetColor(const Color &)
virtual SvLBoxItemType GetType() const =0
void EnableCheckButton(SvLBoxButtonData *)
void SetPointFont(vcl::RenderContext &rRenderContext, const vcl::Font &rFont)
bool SelectListEntry(SvTreeListEntry *pEntry, bool bSelect)
std::vector< std::unique_ptr< SvLBoxTab > > aTabs
SvTreeListEntry * Next(SvTreeListEntry *pEntry) const
void SetSpaceBetweenEntries(short nSpace)
std::unique_ptr< SvTreeListBoxImpl > mpImpl
WinBits const WB_HASLINES
virtual void KeyInput(const KeyEvent &rKEvt)
virtual bool EditedEntry(SvTreeListEntry *pEntry, const OUString &rNewText)
SvTreeListEntry * LastVisible() const
bool IsExpanded(SvTreeListEntry *pEntry) const
const SvViewDataEntry * GetViewData(const SvTreeListEntry *pEntry) const
int GetWidth(const SvTreeListBox *pView, const SvTreeListEntry *pEntry) const
SvTreeListEntry * First() const
virtual void LoseFocus() override
virtual void Invalidate(InvalidateFlags nFlags=InvalidateFlags::NONE) override
WinBits const WB_HIDESELECTION
sal_uInt16 GetChildCount() const
const vcl::KeyCode & GetKeyCode() const
static vcl::Window * GetFocusWindow()
Get the currently focused window.
Link< SvTreeListBox *, bool > aExpandingHdl
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessible() override
Creates and returns the accessible object of the Box.
void SetSelectionMode(SelectionMode)
const Color & GetColor() const
virtual sal_Int8 AcceptDrop(const AcceptDropEvent &rEvt) override
virtual void ModelHasCleared() override
virtual void Resize() override
Size GetOutputSizePixel() const
void SetActivateOnSingleClick(bool bEnable)
TriState NotifyMoving(SvTreeListEntry *pTarget, const SvTreeListEntry *pEntry, SvTreeListEntry *&rpNewParent, sal_uLong &rNewChildPos)
static std::unique_ptr< UIObject > create(vcl::Window *pWindow)
SvTreeListEntry * pEdEntry
SvLBoxTab * GetTab(SvTreeListEntry const *, SvLBoxItem const *) const
#define SV_LBOX_DEFAULT_INDENT_PIXEL
void set_min_width_in_chars(sal_Int32 nChars)
void ExpandListEntry(SvTreeListEntry *pParent)
void CollapseListEntry(SvTreeListEntry *pParent)
constexpr sal_uInt16 KEY_ESCAPE
void SetFont(const vcl::Font &rNewFont)
void SetFont(const vcl::Font &rFont)
void SetTransparent(bool bTransparent)
tools::Long GetTextHeight() const
Height where any character of the current font fits; in logic coordinates.
sal_Int32 get_width_request() const
const OUString & GetSavedValue() const
VCL_DLLPRIVATE void SetEntryHeight(SvTreeListEntry const *pEntry)
bool IsTransparent() const
SvTreeListEntry * GetEntry(SvTreeListEntry *pParent, sal_uLong nPos) const
tools::Long AdjustWidth(tools::Long n)
VCL_DLLPRIVATE void CheckBoxInserted(SvTreeListEntry *pEntry)
static VclPtr< reference_type > Create(Arg &&...arg)
A construction helper for VclPtr.
bool m_bDoingQuickSelection
void InvalidateEntry(SvTreeListEntry *)
SvButtonState GetCheckButtonState(SvTreeListEntry *) const
tools::Long GetTextWidth(const OUString &rStr, sal_Int32 nIndex=0, sal_Int32 nLen=-1, vcl::TextLayoutCache const *=nullptr, SalLayoutGlyphs const *const pLayoutCache=nullptr) const
Width of the text.
tools::Long Height() const
const SvViewDataItem & GetItem(size_t nPos) const
const SvLBoxItem * GetFirstItem(SvLBoxItemType eType) const
void SetNodeBitmaps(const Image &rCollapsedNodeBmp, const Image &rExpandedNodeBmp)
void RemoveEntry(SvTreeListEntry const *pEntry)
Removes the entry along with all of its descendants.
virtual void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect)
void SetInvokeHandler(const Link< Timer *, void > &rLink)
VCL_DLLPRIVATE SvLBoxItem * GetItem_Impl(SvTreeListEntry *, tools::Long nX, SvLBoxTab **ppTab)
const Point & GetPosPixel() const
const Point & GetOrigin() const
void FillEntryPath(SvTreeListEntry *pEntry,::std::deque< sal_Int32 > &_rPath) const
void EditEntry(SvTreeListEntry *pEntry)
tools::Long AdjustHeight(tools::Long n)
bool IsDropFormatSupported(SotClipboardFormatId nFormat) const
VCL_DLLPRIVATE void DrawCustomEntry(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect, const SvTreeListEntry &rEntry)
virtual void dispose() override
This is intended to be used to clear any locally held references to other Window-subclass objects...
void setHeight(tools::Long nHeight)
bool EditingCanceled() const
WinBits const WB_HASBUTTONS
#define SAL_WARN(area, stream)
virtual void ModelHasRemoved(SvTreeListEntry *pEntry) override
Link< svtree_render_args, void > aCustomRenderHdl
const Image & GetDefaultCollapsedEntryBmp() const
tools::Long GetPos() const
void SetPriority(TaskPriority ePriority)
void ImplShowTargetEmphasis(SvTreeListEntry *pEntry, bool bShow)
bool Select(SvTreeListEntry *pEntry, bool bSelect=true)
virtual void ApplySettings(vcl::RenderContext &rRenderContext) override
VCL_DLLPRIVATE void PaintEntry1(SvTreeListEntry &, tools::Long nLine, vcl::RenderContext &rRenderContext)
virtual void ModelHasCleared()
void EditText(const OUString &, const tools::Rectangle &, const Selection &)
virtual vcl::StringEntryIdentifier CurrentEntry(OUString &_out_entryText) const override
returns the current entry in the list of searchable strings.
virtual void Command(const CommandEvent &rCEvt)
vcl::Font GetPointFont(vcl::RenderContext const &rRenderContext) const
virtual void MouseMove(const MouseEvent &rMEvt) override
tools::Long CalcOffset(tools::Long nItemLength, tools::Long nTabWidth)
sal_uLong GetSelectionCount() const
void Push(PushFlags nFlags=PushFlags::ALL)
virtual void ModelNotification(SvListAction nActionId, SvTreeListEntry *pEntry1, SvTreeListEntry *pEntry2, sal_uLong nPos)
virtual void InitViewData(SvTreeListBox *pView, SvTreeListEntry *pEntry, SvViewDataItem *pViewData=nullptr) override
virtual sal_uLong Insert(SvTreeListEntry *pEnt, SvTreeListEntry *pPar, sal_uLong nPos=TREELIST_APPEND)
void AddState(sal_Int16 aState)
virtual void RequestHelp(const HelpEvent &rHEvt)
void ScrollToAbsPos(tools::Long nPos)
static tools::Long GetBorderSize()
void SetupDragOrigin()
This sets the global variables used to determine the in-process drag source.
WinBits const WB_CLIPCHILDREN
void SetCollapsedNodeBmp(const Image &)
static void RemoveAccel(Accelerator const *pAccel)
Remove accelerator.
void SetDefaultExpandedEntryBmp(const Image &rBmp)
void SetQuickSearch(bool bEnable)
Link< SvTreeListBox *, void > aScrolledHdl
SvTreeListEntry * pParent
virtual void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect) override
std::unique_ptr< SvInplaceEdit2 > pEdCtrl
An idle is a timer to be scheduled immediately.
TriState NotifyCopying(SvTreeListEntry *pTarget, const SvTreeListEntry *pEntry, SvTreeListEntry *&rpNewParent, sal_uLong &rNewChildPos)
const Color & GetFillColor() const
virtual void DataChanged(const DataChangedEvent &rDCEvt)
void SetText(const OUString &rText)
void EnableChildrenOnDemand(bool bEnable=true)
void SetDefaultCollapsedEntryBmp(const Image &rBmp)
void AddTab(tools::Long nPos, SvLBoxTabFlags nFlags)