28#include <com/sun/star/accessibility/AccessibleStateType.hpp>
52using namespace css::accessibility;
58#define SVLBOX_ACC_RETURN 1
59#define SVLBOX_ACC_ESCAPE 2
95class MyEdit_Impl :
public Edit
117void MyEdit_Impl::KeyInput(
const KeyEvent& rKEvt )
119 if( !
pOwner->KeyInput( rKEvt ))
123void MyEdit_Impl::LoseFocus()
133 const OUString& rData,
138 aCallBackHdl ( rNotifyEditEnd ),
140 bAlreadyInCallBack ( false )
194 CallCallBackHdl_Impl();
200 CallCallBackHdl_Impl();
247 CallCallBackHdl_Impl();
296 nOffset = nTabWidth - nItemWidth;
305 nOffset = ( nTabWidth - nItemWidth ) / 2;
314 nOffset = -( nItemWidth / 2 );
337 int nWidth = pViewData->
mnWidth;
388 DropTargetHelper(this),
389 DragSourceHelper(this),
391 mbContextBmpExpanded(false),
392 mbAlternatingRowColors(false),
393 mbUpdateAlternatingRows(false),
394 mbQuickSearch(false),
395 mbActivateOnSingleClick(false),
396 mbHoverSelection(false),
397 mbSelectingByHover(false),
402 mbCenterAndClipText(false)
427 return CloneEntry(pEntry);
432 sal_uInt32 nInsPos =
pModel->Insert( pEntry, pParent,
nPos );
440 sal_uInt32 nInsPos =
pModel->Insert( pEntry, nRootPos );
473 if ( pSource !=
this )
510 sal_uInt32& rNewChildPos)
512 DBG_ASSERT(pEntry,
"NotifyMoving:SourceEntry?");
515 rpNewParent =
nullptr;
530 rpNewParent = pTarget;
544 sal_uInt32& rNewChildPos)
546 return NotifyMoving(pTarget,pEntry,rpNewParent,rNewChildPos);
551 return pModel->FirstChild(pParent);
558 bool bSuccess =
true;
559 std::vector<SvTreeListEntry*> aList;
567 while ( pSourceEntry )
571 aList.push_back( pSourceEntry );
575 for (
auto const& elem : aList)
585 sal_uInt32 nCloneCount = 0;
586 pSourceEntry =
pModel->Clone(pSourceEntry, nCloneCount);
587 pModel->InsertTree(pSourceEntry, pNewParent, nInsertionPos);
591 sal_uInt32 nListPos =
pModel->Copy(pSourceEntry, pNewParent, nInsertionPos);
592 pSourceEntry =
GetEntry( pNewParent, nListPos );
598 if (nOk == TRISTATE_INDET)
601 pModel->SetCloneLink( aCloneLink );
609 bool bSuccess =
true;
610 std::vector<SvTreeListEntry*> aList;
617 while ( pSourceEntry )
621 aList.push_back( pSourceEntry );
625 for (
auto const& elem : aList)
632 if ( !nOk && bAllowCopyFallback )
635 nCopyOk =
NotifyCopying(pTarget,pSourceEntry,pNewParent,nInsertionPos);
638 if ( nOk || nCopyOk )
642 sal_uInt32 nCloneCount = 0;
643 pSourceEntry =
pModel->Clone(pSourceEntry, nCloneCount);
644 pModel->InsertTree(pSourceEntry, pNewParent, nInsertionPos);
649 pModel->Move(pSourceEntry, pNewParent, nInsertionPos);
651 pModel->Copy(pSourceEntry, pNewParent, nInsertionPos);
660 pModel->SetCloneLink( aCloneLink );
666 std::vector<const SvTreeListEntry*> aList;
672 aList.push_back( pEntry );
679 for (
auto const& elem : aList)
694 sal_uInt16 nCurPos = 0;
695 while ( nCurPos <
nCount )
701 pEntry =
Next( pEntry );
711 pImpl->PaintDDCursor( pEntry, bShow);
720 if ( !
mpImpl->m_bDoingQuickSelection )
721 mpImpl->m_aQuickSelectionEngine.Reset();
731 return pModel->GetEntry(nRootPos);
739 for (
auto const& elem : _rPath)
764 if ( pEntry == pTemp )
766 _rPath.push_front(
static_cast<sal_Int32
>(
i) );
773 pEntry = pParentEntry;
774 pParentEntry =
GetParent( pParentEntry );
783 return pModel->GetParent(pEntry);
788 return pModel->GetChildCount(pParent);
819 assert(pEntryData &&
"Entry not in View");
820 sal_uInt16 nItemPos = pEntry->
GetPos(pItem);
821 return &pEntryData->
GetItem(nItemPos);
831 sal_uInt16 nCurPos = 0;
843 sal_uInt16 nRefDepth;
852 nRefDepth =
pModel->GetDepth( pSelEntry );
853 pTemp =
Next( pSelEntry );
854 while( pTemp &&
pModel->GetDepth( pTemp ) > nRefDepth )
857 pTemp =
Next( pTemp );
863 nRefDepth =
pModel->GetDepth( pSelEntry );
864 pTemp =
Next( pSelEntry );
865 while( pTemp &&
pModel->GetDepth( pTemp ) > nRefDepth )
868 pTemp =
Next( pTemp );
903 if ( !pEdCtrl->EditingCanceled() )
904 aStr = pEdCtrl->GetText();
906 aStr = pEdCtrl->GetSavedValue();
926 pEdCtrl->StopEditing( bCancel );
961 if ( !pNextSiblingEntry )
962 pEntry =
Next( pEntry );
964 pEntry = pNextSiblingEntry;
968 pEntry =
Next( pEntry );
983 DBG_ASSERT( pEntry,
"SvTreeListBox::SelectSearchEntry: invalid entry!" );
999 mpImpl->m_bDoingQuickSelection =
true;
1000 const bool bHandled =
mpImpl->m_aQuickSelectionEngine.HandleKeyEvent( _rKEvt );
1001 mpImpl->m_bDoingQuickSelection =
false;
1021 SAL_WARN(
"svtools.contnr",
"SvTreeListBox::QueryDrop(): no target" );
1026 if( !IsDropFormatSupported( SotClipboardFormatId::TREELISTBOX ) )
1028 SAL_WARN(
"svtools.contnr",
"SvTreeListBox::QueryDrop(): no format" );
1056 assert(pSourceView);
1065 if(
aData.HasFormat( SotClipboardFormatId::TREELISTBOX ))
1116 if(
pImpl->IsCaptureOnButtonActive())
1139 xContainer->CopyAnyData( SotClipboardFormatId::TREELISTBOX,
1220 std::set<const void*> gSortLBoxes;
1225 gSortLBoxes.insert( &rB );
1230 gSortLBoxes.erase( &rB );
1235 auto &rSortLBoxes = gSortLBoxes;
1236 auto it = rSortLBoxes.find(
this);
1237 if( it != rSortLBoxes.end() )
1239 DragFinished( nAction );
1240 rSortLBoxes.erase( it );
1257#define SV_LBOX_DEFAULT_INDENT_PIXEL 20
1292 OUStringBuffer sRet;
1295 sal_uInt16 nCur = 0;
1307 if (!sRet.isEmpty())
1308 sRet.remove(sRet.getLength() - 1, 1);
1309 return sRet.makeStringAndClear();
1344 DropTargetHelper::dispose();
1345 DragSourceHelper::dispose();
1351 pImpl->SetNoAutoCurEntry( b );
1356 pImpl->m_bSubLstOpLR =
true;
1368 pImpl->ShowCursor(
false );
1369 pImpl->ShowCursor(
true );
1387#define NODE_BUTTONS 1
1388#define NODE_AND_CHECK_BUTTONS 2
1389#define CHECK_BUTTONS 3
1391#define TABFLAGS_TEXT (SvLBoxTabFlags::DYNAMIC | \
1392 SvLBoxTabFlags::ADJUST_LEFT | \
1393 SvLBoxTabFlags::EDITABLE | \
1394 SvLBoxTabFlags::SHOW_SELECTION)
1396#define TABFLAGS_CONTEXTBMP (SvLBoxTabFlags::DYNAMIC | SvLBoxTabFlags::ADJUST_CENTER)
1398#define TABFLAGS_CHECKBTN (SvLBoxTabFlags::DYNAMIC | \
1399 SvLBoxTabFlags::ADJUST_CENTER)
1401#define TAB_STARTPOS 2
1425 tools::Long nContextWidthDIV2 = nContextWidth / 2;
1446 nStartPos += nContextWidthDIV2;
1448 nStartPos += nContextWidthDIV2;
1456 if( bHasButtonsAtRoot )
1457 nStartPos += (
nIndent + (nNodeWidthPixel/2) );
1459 nStartPos += nContextWidthDIV2;
1461 nStartPos += nContextWidthDIV2;
1469 if( bHasButtonsAtRoot )
1470 nStartPos += (
nIndent + nNodeWidthPixel );
1472 nStartPos += nCheckWidthDIV2;
1474 nStartPos += nCheckWidthDIV2;
1476 nStartPos += nContextWidthDIV2;
1478 nStartPos += nContextWidthDIV2;
1486 nStartPos += nCheckWidthDIV2;
1488 nStartPos += nCheckWidthDIV2;
1490 nStartPos += nContextWidthDIV2;
1492 nStartPos += nContextWidthDIV2;
1499 pImpl->NotifyTabsChanged();
1503 const OUString& aStr,
const Image& aCollEntryBmp,
const Image& aExpEntryBmp)
1512 pEntry->
AddItem(std::make_unique<SvLBoxString>(
aStr));
1542 pHdlEntry =
pData->GetActEntry();
1547 const OUString& rText,
1549 bool bChildrenOnDemand, sal_uInt32 nPos,
1555 const Image& rDefExpBmp =
pImpl->GetDefaultEntryExpBmp( );
1556 const Image& rDefColBmp =
pImpl->GetDefaultEntryColBmp( );
1563 InitEntry( pEntry, rText, rDefColBmp, rDefExpBmp );
1598 short nWidth =
pImpl->UpdateContextBmpWidthVector( pEntry,
static_cast<short>(aSize.
Width()) );
1616 short nWidth =
pImpl->UpdateContextBmpWidthVector( pEntry,
static_cast<short>(aSize.
Width()) );
1629 auto nWidth = pItem->
GetWidth(
this, pEntry);
1729 Image aCollEntryBmp;
1743 pClone->SvTreeListEntry::Clone( pSource );
1752 return pImpl->GetDefaultEntryExpBmp( );
1757 return pImpl->GetDefaultEntryColBmp( );
1767 pImpl->SetDefaultEntryExpBmp( aBmp );
1777 pImpl->SetDefaultEntryColBmp( aBmp );
1843 if( !
pImpl->KeyInput( rKEvt ) )
1870 pEntry =
pImpl->GetCurEntry();
1872 if (
pImpl->m_pCursor)
1874 if (pEntry !=
pImpl->m_pCursor)
1875 pEntry =
pImpl->m_pCursor;
1894 pImpl->m_pCursor =
nullptr;
1915 if (rPos.X() < 0 || rPos.Y() < 0)
1918 if (rPos.X() > aSize.
Width() || rPos.Y() > aSize.
Height())
1920 if (
pImpl->m_aVerSBar->IsVisible())
1926 if (
pImpl->m_aHorSBar->IsVisible())
1937 if( !nDeltaEntries || !
pImpl->m_aVerSBar->IsVisible() )
1943 if( nDeltaEntries < 0 )
1946 nDeltaEntries *= -1;
1949 if( nDeltaEntries > (nMax - nTemp) )
1950 nDeltaEntries =
static_cast<short>(nMax - nTemp);
1951 pImpl->PageDown(
static_cast<sal_uInt16
>(nDeltaEntries) );
1955 if( nDeltaEntries > nThumb )
1956 nDeltaEntries =
static_cast<short>(nThumb);
1957 pImpl->PageUp(
static_cast<sal_uInt16
>(nDeltaEntries) );
1959 pImpl->SyncVerThumb();
1970 pImpl->SetSelectionMode( eSelectMode );
1976 pImpl->SetDragDropMode( nDDMode );
1983 sal_uInt16 nCur = 0;
1988 if( nHeight > nHeightMax )
1989 nHeightMax = nHeight;
1997 pImpl->SetEntryHeight();
2011 pImpl->SetEntryHeight();
2026 pImpl->SetEntryHeight();
2036 pImpl->SetEntryHeight();
2043 bool bExpanded =
false;
2056 pImpl->EntryExpanded( pParent );
2086 bool bCollapsed =
false;
2091 pImpl->CollapsingEntry( pParent );
2093 pImpl->EntryCollapsed( pParent );
2115 pImpl->EntrySelected( pEntry, bSelect );
2130 pImpl->DestroyAnchor();
2131 sal_uInt32 nRet = 0;
2134 sal_uInt16 nRefDepth =
pModel->GetDepth( pParent );
2138 Select( pChild, bSelect );
2139 pChild =
Next( pChild );
2140 }
while( pChild &&
pModel->GetDepth( pChild ) > nRefDepth );
2146 pImpl->SelAllDestrAnch(
2154 sal_uInt16 nRefDepth =
pModel->GetDepth( pEntry );
2159 pTmp =
Next( pTmp );
2160 }
while( pTmp && nRefDepth < pModel->GetDepth( pTmp ) );
2161 pImpl->TreeInserted( pEntry );
2167 pImpl->EntryInserted( pEntry );
2172 pImpl->MovingEntry( pSource );
2177 pImpl->EntryMoved( pSource );
2185 pImpl->RemovingEntry( pEntry );
2196 pImpl->EntryRemoved();
2202 pImpl->SetCollapsedNodeBmp( rBmp );
2208 pImpl->SetExpandedNodeBmp( rBmp );
2217 if (aTempFont == aOrigFont)
2225 if (aTempFont == aOrigFont)
2243 pImpl->Paint(rRenderContext, rRect);
2268 pImpl->MouseButtonDown( rMEvt );
2275 if (
nullptr !=
pImpl->m_pCursorOld)
2300 pImpl->MouseButtonUp( rMEvt );
2305 pImpl->MouseMove( rMEvt );
2310 pImpl->SetUpdateMode( bUpdate );
2323 pImpl->SetEntryHeight();
2329 pImpl->SetCurEntry( pEntry );
2334 return pImpl->GetExpandedNodeBmp( );
2339 return pImpl->GetEntryPosition( pEntry );
2344 pImpl->MakeVisible(pEntry);
2349 pImpl->MakeVisible( pEntry, bMoveToTop );
2357 for( sal_uInt16 nIdx = 0; nIdx <
nCount; nIdx++ )
2364 pImpl->InvalidateEntry( pEntry );
2369 assert(pEntry && pItem);
2372 pImpl->ShowCursor(
false );
2374 pImpl->InvalidateEntry(pEntry);
2376 pImpl->ShowCursor(
true );
2381 DBG_ASSERT(pTab,
"EditItemText:Tab not found");
2383 auto nItemHeight( pItem->
GetHeight(
this, pEntry) );
2388 Size aSize( nOutputWidth - aPos.X(), nItemHeight );
2390 [pTab](
const std::unique_ptr<SvLBoxTab>&
p) { return p.get() == pTab; })
2392 if(
nPos+1 <
static_cast<sal_uInt16
>(
aTabs.size()) )
2396 if( nRight <= nOutputWidth )
2397 aSize.
setWidth( nRight - aPos.X() );
2422 bool bIsMouseTriggered = nClickX >= 0;
2427 for( sal_uInt16
i = 0 ;
i <
nCount ;
i++ )
2439 nNextTabPos = pNextTab->
GetPos();
2444 nTabPos = pTab->
GetPos();
2445 if( !bIsMouseTriggered || (nClickX > nTabPos && (nNextTabPos == -1 || nClickX < nNextTabPos ) ) )
2490 if( rPos.Y() > aSize.
Height() - 12 )
2502 pTarget ==
First() && rPos.Y() < 6 )
2512 if( pEntry && bHit )
2515 if( !(
pImpl->EntryReallyHit( pEntry, rPos, nLine)) )
2523 return pImpl ?
pImpl->GetCurEntry() :
nullptr;
2541 pImpl->SetStyle(nWindowStyle);
2548 DBG_ASSERT(pEntry,
"InvalidateEntry:No Entry");
2559 bool bHorSBar =
pImpl->HasHorScrollBar();
2561 pImpl->UpdateContextBmpWidthMax(&rEntry);
2571 if (!bHorSBar &&
pImpl->HasHorScrollBar())
2575 aEntryPos.setX( aEntryPos.X() * -1 );
2576 tools::Long nMaxRight = nWidth + aEntryPos.X() - 1;
2582 bool bCurFontIsSel =
false;
2590 aHighlightFont.
SetColor(aHighlightTextColor);
2592 Size aRectSize(0, nTempEntryHeight);
2597 const size_t nTabCount =
aTabs.size();
2598 const size_t nItemCount = rEntry.
ItemCount();
2600 size_t nCurItem = 0;
2602 while (nCurTab < nTabCount && nCurItem < nItemCount)
2605 const size_t nNextTab = nCurTab + 1;
2606 SvLBoxTab* pNextTab = nNextTab < nTabCount ?
aTabs[nNextTab].get() :
nullptr;
2610 Size aSize(rItem.
GetWidth(
this, pViewDataEntry, nCurItem),
2616 nNextTabPos =
GetTabPos(&rEntry, pNextTab);
2619 nNextTabPos = nMaxRight;
2620 if (nTabPos > nMaxRight)
2629 nX = nTabPos + pTab->
CalcOffset(aSize.
Width(), nNextTabPos - nTabPos);
2631 aEntryPos.setX( nX );
2632 aEntryPos.setY( nLine );
2654 rRenderContext.
SetFont(aHighlightFont);
2655 bCurFontIsSel =
true;
2657 aWallpaper.
SetColor(aNewWallColor);
2663 bCurFontIsSel =
false;
2664 if (
const auto & xCustomTextColor = rEntry.
GetTextColor())
2668 rRenderContext.
SetFont(aBackupFont);
2694 aRect.
SetBottom( nLine + nTempEntryHeight - 1 );
2698 nRight =
GetTabPos(&rEntry, pNextTab) - 1;
2699 if (nRight > nMaxRight)
2724 aEntryPos.AdjustY((nTempEntryHeight - aSize.
Height()) / 2 );
2726 rItem.
Paint(aEntryPos, *
this, rRenderContext, pViewDataEntry, rEntry);
2731 aRect.
Right() < nMaxRight)
2745 rRenderContext.
Push();
2760 rRenderContext.
Pop();
2766 rRenderContext.
SetFont(aBackupFont);
2769 sal_uInt16 nFirstDynTabPos(0);
2772 nDynTabPos +=
pImpl->m_nNodeBmpTabDistance;
2773 nDynTabPos +=
pImpl->m_nNodeBmpWidth / 2;
2783 sal_uInt16 nNextTab = nFirstDynTabPos;
2788 pNextTab = nNextTab < nTabCount ?
aTabs[nNextTab].get() :
nullptr;
2789 }
while (pNextTab && pNextTab->
IsDynamic());
2791 if (pNextTab && (
GetTabPos( &rEntry, pNextTab ) <= nDynTabPos))
2798 aPos.AdjustX(
pImpl->m_nNodeBmpTabDistance );
2800 const Image* pImg =
nullptr;
2804 pImg = &
pImpl->GetExpandedNodeBmp();
2806 pImg = &
pImpl->GetCollapsedNodeBmp();
2817 rRenderContext.
DrawImage(aPos, *pImg, nStyle);
2821 bool bNativeOK =
false;
2856 Color aCol = aBackupTextColor;
2858 aCol = aHighlightTextColor;
2868 aCustomRenderHdl.
Call(std::tuple<vcl::RenderContext&, const tools::Rectangle&, const SvTreeListEntry&>(rRenderContext, rRect, rEntry));
2873 return aCustomMeasureHdl.
Call(std::pair<vcl::RenderContext&, const SvTreeListEntry&>(rRenderContext, rEntry));
2878 pImpl->UpdateContextBmpWidthMax( pEntry );
2894 if( pTab && nCurTab <
aTabs.size() - 1 )
2897 nNextTabPos =
GetTabPos( pEntry, pNextTab );
2901 nNextTabPos = nRealWidth;
2902 if( nTabPos > nRealWidth )
2907 if( !bUserSelection )
2909 if( pTab && nCurTab < pEntry->ItemCount() )
2913 if( !aSize.
Width() )
2921 if( aRect.
Left() > 0 )
2933 sal_uInt16 nLastTab;
2936 if( nLastTab <
aTabs.size() )
2937 pLastTab =
aTabs[ nLastTab ].get();
2964 if( aRect.
Right() >= nRealWidth )
2978 sal_uInt16 nDepth =
pModel->GetDepth( pEntry );
2979 nDepth = nDepth *
static_cast<sal_uInt16
>(
nIndent);
2980 nPos +=
static_cast<sal_IntPtr
>(nDepth);
2989 sal_uInt16 nTabCount =
aTabs.size();
2990 sal_uInt16 nItemCount = pEntry->
ItemCount();
2993 sal_uInt16 nNextItem = 1;
3000 SvLBoxTab* pNextTab=nNextItem<nTabCount ?
aTabs[nNextItem].get() :
nullptr;
3005 nNextTabPos =
GetTabPos( pEntry, pNextTab );
3008 nNextTabPos = nRealWidth;
3009 if( nStart > nRealWidth )
3013 auto nItemWidth(pItem->
GetWidth(
this, pEntry));
3014 nStart += pTab->
CalcOffset(nItemWidth, nNextTabPos - nStart);
3015 auto nLen = nItemWidth;
3019 if( nTabWidth < nLen )
3023 if( nX >= nStart && nX < (nStart+nLen ) )
3025 pItemClicked = pItem;
3032 if( nNextItem >= nItemCount || nNextItem >= nTabCount)
3034 pTab =
aTabs[ nNextItem ].get();
3035 pItem = &pEntry->
GetItem( nNextItem );
3038 return pItemClicked;
3043 sal_uInt16 nTabCount =
aTabs.size();
3044 sal_uInt16 nItemCount = pEntry->
ItemCount();
3045 if (nTabIdx >= nItemCount || nTabIdx >= nTabCount)
3046 return std::make_pair(-1, -1);
3050 sal_uInt16 nNextItem = nTabIdx + 1;
3055 SvLBoxTab* pNextTab = nNextItem < nTabCount ?
aTabs[nNextItem].get() :
nullptr;
3060 nNextTabPos =
GetTabPos(pEntry, pNextTab);
3063 nNextTabPos = nRealWidth;
3064 if (nStart > nRealWidth)
3068 auto nItemWidth(pItem->
GetWidth(
this, pEntry));
3069 nStart += pTab->
CalcOffset(nItemWidth, nNextTabPos - nStart);
3070 auto nLen = nItemWidth;
3074 if (nTabWidth < nLen)
3077 return std::make_pair(nStart, nLen);
3088 sal_uInt16 nCurPos = 0;
3089 if (
nCount > rWidths.size())
3094 auto nWidth = rItem.
GetWidth(
this, pEntry);
3098 if (nWidth > rWidths[nCurPos])
3099 rWidths[nCurPos] = nWidth;
3103 pEntry =
Next( pEntry );
3111 std::vector<tools::Long> aWidths;
3116 sal_Int32 nLeftBorder(0), nTopBorder(0), nRightBorder(0), nBottomBorder(0);
3117 GetBorder(nLeftBorder, nTopBorder, nRightBorder, nBottomBorder);
3141 for(
size_t i = 0; pEntry; ++
i)
3146 pNextEntry =
pModel->FirstChild( pEntry );
3151 pEntry =
pModel->Next( pEntry );
3153 pEntry = pNextEntry;
3161 pImpl->UpdateAll(
true);
3166 pImpl->SetForceMakeVisible(bEnable);
3184 aTabs.emplace_back( pTab );
3200 sal_uInt16 nCurTab = 0;
3201 sal_uInt16 nTabCount =
aTabs.size();
3202 while( nCurTab < nTabCount )
3251 pImpl->RecalcFocusRect();
3253 pImpl->Invalidate();
3261 pImpl->RecalcFocusRect();
3271 std::swap(nStart, nEnd);
3276 pImpl->RecalcFocusRect();
3282 pImpl->Command(rCEvt);
3290 sal_uInt16 nTabCount =
aTabs.size();
3294 if( pTab->
nFlags & nFlagMask )
3306 sal_uInt16
nPos =
static_cast<sal_uInt16
>(
aTabs.size());
3311 if( pTab->
nFlags & nFlagMask )
3328 if (!tooltip.isEmpty())
3338 if( !
pImpl->RequestHelp( rHEvt ) )
3344 OUString aLeft = pLeftText ? pLeftText->
GetText() : OUString();
3345 OUString aRight = pRightText ? pRightText->
GetText() : OUString();
3346 pImpl->UpdateStringSorter();
3347 return pImpl->m_pStringSorter->compare(aLeft, aRight);
3356 return DefaultCompare(pLeftText, pRightText);
3378 nMaxWidth =
pImpl->UpdateContextBmpWidthVector( pEntry1, nMaxWidth );
3419 const Size& rSize =
pImpl->GetOutputSize();
3420 if( aPos.Y() < 0 || aPos.Y() >= rSize.
Height() )
3485 DBG_ASSERT( pParent,
"SvTreeListBox::CreateAccessible - accessible parent not found" );
3487 css::uno::Reference< XAccessible > xAccessible;
3490 css::uno::Reference< XAccessible > xAccParent = pParent->
GetAccessible();
3491 if ( xAccParent.is() )
3495 xAccessible =
pImpl->m_aFactoryAccess.getFactory().createAccessibleTreeListBox( *
this, xAccParent );
3503 assert(pEntry &&
"SvTreeListBox::FillAccessibleEntryStateSet: invalid entry");
3507 rStateSet |= AccessibleStateType::EXPANDABLE;
3509 rStateSet |= AccessibleStateType::EXPANDED;
3513 rStateSet |= AccessibleStateType::CHECKED;
3515 rStateSet |= AccessibleStateType::VISIBLE;
3517 rStateSet |= AccessibleStateType::SELECTED;
3520 rStateSet |= AccessibleStateType::ENABLED;
3521 rStateSet |= AccessibleStateType::FOCUSABLE;
3522 rStateSet |= AccessibleStateType::SELECTABLE;
3524 if (pViewDataNewCur && pViewDataNewCur->
HasFocus())
3525 rStateSet |= AccessibleStateType::FOCUSED;
3534 sal_uInt16 iRealItemCount = 0;
3546 if (iRealItemCount <= 1)
3576 if (rKey ==
"min-width-chars")
3580 else if (rKey ==
"enable-tree-lines")
3588 else if (rKey ==
"show-expanders")
3596 else if (rKey ==
"enable-search")
3600 else if (rKey ==
"activate-on-single-click")
3604 else if (rKey ==
"hover-selection")
3608 else if (rKey ==
"reorderable")
3621 pImpl->m_aHorSBar->EnableRTL(bEnable);
3622 pImpl->m_aVerSBar->EnableRTL(bEnable);
3623 pImpl->m_aScrBarBox->EnableRTL(bEnable);
static bool toBool(std::string_view rValue)
void SetActivateHdl(const Link< Accelerator &, void > &rLink)
void InsertItem(sal_uInt16 nItemId, const vcl::KeyCode &rKeyCode)
const StyleSettings & GetStyleSettings() const
static bool InsertAccel(Accelerator *pAccel)
Insert accelerator.
static void RemoveAccel(Accelerator const *pAccel)
Remove accelerator.
static vcl::Window * GetFocusWindow()
Get the currently focused window.
CommandEventId GetCommand() const
virtual void StateChanged(StateChangedType nStateChange) override
virtual void Resize() override
virtual void EnableRTL(bool bEnable=true) override
virtual void SetText(const OUString &rStr) override
void CallEventListeners(VclEventId nEvent, void *pData=nullptr)
virtual void dispose() override
This is intended to be used to clear any locally held references to other Window-subclass objects.
DataChangedEventType GetType() const
AllSettingsFlags GetFlags() const
void DrawSymbol(const tools::Rectangle &rRect, SymbolType eType, const Color &rColor, DrawSymbolFlags nStyle=DrawSymbolFlags::NONE)
virtual void dispose() override
This is intended to be used to clear any locally held references to other Window-subclass objects.
virtual void SetText(const OUString &rStr) override
const OUString & GetSavedValue() const
virtual void SetSelection(const Selection &rSelection)
virtual void LoseFocus() override
virtual void KeyInput(const KeyEvent &rKEvt) override
virtual OUString GetText() const override
const Point & GetMousePosPixel() const
static void ShowQuickHelp(vcl::Window *pParent, const tools::Rectangle &rScreenRect, const OUString &rHelpText, QuickHelpFlags nStyle=QuickHelpFlags::NONE)
An idle is a timer to be scheduled immediately.
virtual void Start(bool bStartTimer=true) override
Schedules the task for execution.
Size GetSizePixel() const
void setTristateVal(ButtonValue nTristate)
const vcl::KeyCode & GetKeyCode() const
const Point & GetOrigin() const
const Point & GetPosPixel() const
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
const vcl::Font & GetFont() const
void SetFont(const vcl::Font &rNewFont)
void DrawRect(const tools::Rectangle &rRect)
const Wallpaper & GetBackground() const
void SetTextColor(const Color &rColor)
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...
const MapMode & GetMapMode() const
const Color & GetTextColor() const
void Push(vcl::PushFlags nFlags=vcl::PushFlags::ALL)
tools::Long GetTextHeight() const
Height where any character of the current font fits; in logic coordinates.
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.
const AllSettings & GetSettings() const
bool IsNativeControlSupported(ControlType nType, ControlPart nPart) const
Query the platform layer for control support.
const Color & GetFillColor() const
constexpr tools::Long Height() const
tools::Long AdjustHeight(tools::Long n)
void setWidth(tools::Long nWidth)
tools::Long AdjustWidth(tools::Long n)
void setHeight(tools::Long nHeight)
constexpr tools::Long Width() const
const Color & GetFieldTextColor() const
const Color & GetFieldColor() const
const Color & GetDeactiveColor() const
const vcl::Font & GetFieldFont() const
const Color & GetHighlightColor() const
const Color & GetFaceColor() const
const Color & GetHighlightTextColor() const
static const Image & GetDefaultCollapsedNodeImage()
static const Image & GetDefaultExpandedNodeImage()
DECL_LINK(ReturnHdl_Impl, Accelerator &, void)
Link< SvInplaceEdit2 &, void > aCallBackHdl
bool KeyInput(const KeyEvent &rKEvt)
SvInplaceEdit2(vcl::Window *pParent, const Point &rPos, const Size &rSize, const OUString &rData, const Link< SvInplaceEdit2 &, void > &rNotifyEditEnd, const Selection &)
bool EditingCanceled() const
void CallCallBackHdl_Impl()
DECL_LINK(Timeout_Impl, Timer *, void)
DECL_LINK(EscapeHdl_Impl, Accelerator &, void)
void StopEditing(bool bCancel)
OUString const & GetSavedValue() const
const VclPtr< Edit > & GetEditWidget() const
const Image & GetBitmap2() const
void SetBitmap2(const Image &rImage)
void SetBitmap1(const Image &rImage)
const Image & GetBitmap1() const
virtual void InitViewData(SvTreeListBox *pView, SvTreeListEntry *pEntry, SvViewDataItem *pViewData=nullptr)=0
int GetHeight(const SvTreeListBox *pView, const SvTreeListEntry *pEntry) const
virtual SvLBoxItemType GetType() const =0
virtual void Paint(const Point &rPos, SvTreeListBox &rOutDev, vcl::RenderContext &rRenderContext, const SvViewDataEntry *pView, const SvTreeListEntry &rEntry)=0
int GetWidth(const SvTreeListBox *pView, const SvTreeListEntry *pEntry) const
virtual int CalcWidth(const SvTreeListBox *pView) const
const OUString & GetText() const
virtual void InitViewData(SvTreeListBox *pView, SvTreeListEntry *pEntry, SvViewDataItem *pViewData=nullptr) override
void SetText(const OUString &rText)
tools::Long GetPos() const
tools::Long CalcOffset(tools::Long nItemLength, tools::Long nTabWidth)
bool SelectListEntry(SvTreeListEntry *pEntry, bool bSelect)
bool IsSelected(const SvTreeListEntry *pEntry) const
virtual void ModelNotification(SvListAction nActionId, SvTreeListEntry *pEntry1, SvTreeListEntry *pEntry2, sal_uInt32 nPos)
SvTreeListEntry * NextVisible(SvTreeListEntry *pEntry) const
virtual void ModelHasCleared()
void ExpandListEntry(SvTreeListEntry *pParent)
std::unique_ptr< SvTreeList > pModel
void CollapseListEntry(SvTreeListEntry *pParent)
bool IsEntryVisible(SvTreeListEntry *pEntry) const
sal_uInt32 GetSelectionCount() const
SvTreeListEntry * NextSelected(SvTreeListEntry *pEntry) const
SvTreeListEntry * LastVisible() const
SvTreeListEntry * FirstSelected() const
const SvViewDataEntry * GetViewData(const SvTreeListEntry *pEntry) const
bool IsExpanded(SvTreeListEntry *pEntry) const
void SetFont(const vcl::Font &rFont)
static VCL_DLLPRIVATE void RemoveBoxFromDDList_Impl(const SvTreeListBox &rB)
sal_uInt16 nCurEntrySelPos
virtual void StartDrag(sal_Int8 nAction, const Point &rPosPixel) override
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessible() override
Creates and returns the accessible object of the Box.
void SetEntryWidth(short nWidth)
sal_Int8 ExecuteDrop(const ExecuteDropEvent &rEvt, SvTreeListBox *pSourceView)
SvTreeListEntry * GetEntryFromPath(const ::std::deque< sal_Int32 > &_rPath) const
SvTreeListEntry * pTargetEntry
sal_Int32 DefaultCompare(const SvLBoxString *pLeftText, const SvLBoxString *pRightText)
void ScrollToAbsPos(tools::Long nPos)
virtual void ModelNotification(SvListAction nActionId, SvTreeListEntry *pEntry1, SvTreeListEntry *pEntry2, sal_uInt32 nPos) override
sal_Int8 mnClicksToToggle
VCL_DLLPRIVATE void CheckBoxInserted(SvTreeListEntry *pEntry)
VCL_DLLPRIVATE void SetExpandedNodeBmp(const Image &)
void SetDefaultExpandedEntryBmp(const Image &rBmp)
virtual void Resize() override
SvLBoxItem * GetItem(SvTreeListEntry *, tools::Long nX, SvLBoxTab **ppTab)
virtual void DataChanged(const DataChangedEvent &rDCEvt) override
virtual SvTreeListEntry * InsertEntry(const OUString &rText, SvTreeListEntry *pParent=nullptr, bool bChildrenOnDemand=false, sal_uInt32 nPos=TREELIST_APPEND, void *pUserData=nullptr)
void SetCheckButtonState(SvTreeListEntry *, SvButtonState)
VCL_DLLPRIVATE SvLBoxItem * GetItem_Impl(SvTreeListEntry *, tools::Long nX, SvLBoxTab **ppTab)
void AddTab(tools::Long nPos, SvLBoxTabFlags nFlags)
SvTreeListEntry * GetNextEntryInView(SvTreeListEntry *) const
Link< const CommandEvent &, bool > aPopupMenuHdl
void FillAccessibleEntryStateSet(SvTreeListEntry *pEntry, sal_Int64 &rStateSet) const
Fills the StateSet of one entry.
void RemoveEntry(SvTreeListEntry const *pEntry)
Removes the entry along with all of its descendants.
SvTreeListEntry * FirstChild(SvTreeListEntry *pParent) const
void SetDragDropMode(DragDropMode)
virtual void Command(const CommandEvent &rCEvt) override
virtual void RequestingChildren(SvTreeListEntry *pParent)
virtual void DragFinished(sal_Int8 nDropAction)
tools::Long getPreferredDimensions(std::vector< tools::Long > &rWidths) const
VCL_DLLPRIVATE void ImplInitStyle()
Link< SvTreeListBox *, void > aDeselectHdl
virtual Size GetOptimalSize() const override
void ImplEditEntry(SvTreeListEntry *pEntry)
void EnableInplaceEditing(bool bEnable)
bool mbAlternatingRowColors
virtual void InitEntry(SvTreeListEntry *, const OUString &, const Image &, const Image &)
virtual void ModelHasMoved(SvTreeListEntry *pSource) override
virtual void StateChanged(StateChangedType eType) override
void SetActivateOnSingleClick(bool bEnable)
void SetDefaultCollapsedEntryBmp(const Image &rBmp)
Image aPrevInsertedColBmp
virtual vcl::StringEntryIdentifier CurrentEntry(OUString &_out_entryText) const override
returns the current entry in the list of searchable strings.
VCL_DLLPRIVATE void DrawCustomEntry(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect, const SvTreeListEntry &rEntry)
void EditedText(const OUString &)
void SetHoverSelection(bool bEnable)
std::unique_ptr< SvTreeListBoxImpl > mpImpl
virtual void MouseButtonDown(const MouseEvent &rMEvt) override
SvTreeListEntry * CloneEntry(SvTreeListEntry *pSource)
Link< SvTreeListBox *, void > aExpandedHdl
virtual DragDropMode NotifyStartDrag()
SvLBoxTab * GetFirstTab(SvLBoxTabFlags nFlagMask, sal_uInt16 &rTabPos)
DragDropMode nDragDropMode
virtual void LoseFocus() override
VCL_DLLPRIVATE void SetCollapsedNodeBmp(const Image &)
void MakeVisible(SvTreeListEntry *pEntry)
SvTreeListEntry * Next(SvTreeListEntry *pEntry) const
tools::Rectangle GetBoundingRect(const SvTreeListEntry *pEntry)
Calculate and return the bounding rectangle of an entry.
Link< svtree_measure_args, Size > aCustomMeasureHdl
static const Image & GetDefaultExpandedNodeImage()
Returns the default image which clients should use for expanded nodes, to have a consistent user inte...
void SetSpaceBetweenEntries(short nSpace)
Point GetEntryPosition(const SvTreeListEntry *) const
SvTreeListEntry * GetEntry(SvTreeListEntry *pParent, sal_uInt32 nPos) const
void InvalidateEntry(SvTreeListEntry *)
void SetCheckButtonData(SvLBoxButtonData *)
virtual OUString GetEntryText(SvTreeListEntry *pEntry) const
bool CheckDragAndDropMode(SvTreeListBox const *pSource, sal_Int8)
TriState NotifyMoving(SvTreeListEntry *pTarget, const SvTreeListEntry *pEntry, SvTreeListEntry *&rpNewParent, sal_uInt32 &rNewChildPos)
virtual bool set_property(const OString &rKey, const OUString &rValue) override
const Image & GetDefaultExpandedEntryBmp() const
void SetEntryHeight(short nHeight)
void SetCollapsedEntryBmp(SvTreeListEntry *_pEntry, const Image &_rImage)
SvTreeListEntry * pHdlEntry
Size GetOutputSizePixel() const
VCL_DLLPRIVATE void InitTreeView()
bool Collapse(SvTreeListEntry *pParent)
SvTreeListEntry * pEdEntry
bool Select(SvTreeListEntry *pEntry, bool bSelect=true)
virtual void SelectEntry(vcl::StringEntryIdentifier _entry) override
selects a given entry
virtual void ApplySettings(vcl::RenderContext &rRenderContext) override
void SetupDragOrigin()
This sets the global variables used to determine the in-process drag source.
void EnableSelectionAsDropTarget(bool bEnable=true)
void SetExpandedEntryBmp(SvTreeListEntry *_pEntry, const Image &_rImage)
Image aPrevInsertedExpBmp
virtual void KeyInput(const KeyEvent &rKEvt) override
void AdjustEntryHeightAndRecalc()
SvViewDataItem * GetViewDataItem(SvTreeListEntry const *, SvLBoxItem const *)
const Image & GetDefaultCollapsedEntryBmp() const
VCL_DLLPRIVATE Image const & GetExpandedNodeBmp() const
bool mbContextBmpExpanded
virtual void ModelHasRemoved(SvTreeListEntry *pEntry) override
virtual bool EditingEntry(SvTreeListEntry *pEntry)
bool MoveSelectionCopyFallbackPossible(SvTreeListBox *pSource, SvTreeListEntry *pTarget, bool bAllowCopyFallback)
virtual void ModelHasInsertedTree(SvTreeListEntry *pEntry) override
void set_min_width_in_chars(sal_Int32 nChars)
void OnCurrentEntryChanged()
virtual void MouseButtonUp(const MouseEvent &rMEvt) override
void CallImplEventListeners(VclEventId nEvent, void *pData)
virtual void CalcEntryHeight(SvTreeListEntry const *pEntry)
void FillEntryPath(SvTreeListEntry *pEntry, ::std::deque< sal_Int32 > &_rPath) const
void SetSublistOpenWithLeftRight()
SvLBoxButtonData * pCheckButtonData
void SetForceMakeVisible(bool bEnable)
void ModelHasEntryInvalidated(SvTreeListEntry *pEntry) override
static const Image & GetCollapsedEntryBmp(const SvTreeListEntry *_pEntry)
bool IsEditingActive() const
VCL_DLLPRIVATE bool HandleKeyInput(const KeyEvent &rKEvt)
Handles the given key event.
sal_Int32 nMinWidthInChars
void EditText(const OUString &, const tools::Rectangle &, const Selection &)
short GetEntryHeight() const
VCL_DLLPRIVATE void AdjustEntryHeight()
virtual FactoryFunction GetUITestFactory() const override
SvTreeListEntry * GetFirstEntryInView() const
virtual ~SvTreeListBox() override
virtual void Invalidate(InvalidateFlags nFlags=InvalidateFlags::NONE) override
void SetHighlightRange(sal_uInt16 nFirstTab=0, sal_uInt16 nLastTab=0xffff)
rtl::Reference< TransferDataContainer > m_xTransferHelper
void EditItemText(SvTreeListEntry *pEntry, SvLBoxString *pItem, const Selection &)
virtual void ModelIsMoving(SvTreeListEntry *pSource) override
virtual void GetFocus() override
virtual void dispose() override
This is intended to be used to clear any locally held references to other Window-subclass objects.
void SetNoAutoCurEntry(bool b)
virtual void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect) override
virtual void ModelHasInserted(SvTreeListEntry *pEntry) override
VCL_DLLPRIVATE void ImpEntryInserted(SvTreeListEntry *pEntry)
void EditEntry(SvTreeListEntry *pEntry)
void SetSelectionMode(SelectionMode)
tools::Long mnCheckboxItemWidth
void ImplShowTargetEmphasis(SvTreeListEntry *pEntry, bool bShow)
std::vector< std::unique_ptr< SvLBoxTab > > aTabs
virtual sal_Int8 AcceptDrop(const AcceptDropEvent &rEvt) override
SvTreeListEntry * GetCurEntry() const
short nContextBmpWidthMax
Link< SvTreeListBox *, bool > aExpandingHdl
virtual OUString GetEntryAccessibleDescription(SvTreeListEntry *pEntry) const
void SetNodeDefaultImages()
Sets default bitmaps for collapsed and expanded nodes.
SvViewDataEntry * GetViewDataEntry(SvTreeListEntry const *pEntry) const
bool CopySelection(SvTreeListBox *pSource, SvTreeListEntry *pTarget)
void EnableCheckButton(SvLBoxButtonData *)
VCL_DLLPRIVATE bool PosOverBody(const Point &rPos) const
SvLBoxTab * GetFirstDynamicTab() const
TriState NotifyCopying(SvTreeListEntry *pTarget, const SvTreeListEntry *pEntry, SvTreeListEntry *&rpNewParent, sal_uInt32 &rNewChildPos)
void SetCurEntry(SvTreeListEntry *_pEntry)
virtual vcl::StringEntryIdentifier NextEntry(vcl::StringEntryIdentifier _currentEntry, OUString &_out_entryText) const override
returns the next entry in the list.
virtual void EnableRTL(bool bEnable=true) override
void EndEditing(bool bCancel=false)
SvTreeListEntry * First() const
DragDropMode GetDragDropMode() const
void SetDragHelper(const rtl::Reference< TransferDataContainer > &rHelper, sal_uInt8 eDNDConstants)
std::unique_ptr< SvInplaceEdit2 > pEdCtrl
Link< SvTreeListEntry *, OUString > aTooltipHdl
virtual void MouseMove(const MouseEvent &rMEvt) override
void SetAlternatingRowColors(const bool bEnable)
static const Image & GetExpandedEntryBmp(const SvTreeListEntry *_pEntry)
static VCL_DLLPRIVATE void AddBoxToDDList_Impl(const SvTreeListBox &rB)
SvTreeListBox(vcl::Window *pParent, WinBits nWinStyle=0)
VCL_DLLPRIVATE Size MeasureCustomEntry(vcl::RenderContext &rRenderContext, const SvTreeListEntry &rEntry) const
void GetLastTab(SvLBoxTabFlags nFlagMask, sal_uInt16 &rTabPos)
virtual void ModelHasCleared() override
Link< SvTreeListBox *, void > aScrolledHdl
void SetQuickSearch(bool bEnable)
SelectionMode GetSelectionMode() const
VclPtr< Edit > GetEditWidget() const
void ScrollOutputArea(short nDeltaEntries)
virtual tools::Rectangle GetFocusRect(const SvTreeListEntry *, tools::Long nLine)
virtual void RequestHelp(const HelpEvent &rHEvt) override
std::unique_ptr< SvImpLBox > pImpl
Link< SvTreeListBox *, bool > aDoubleClickHdl
DragDropMode nOldDragMode
Link< svtree_render_args, void > aCustomRenderHdl
virtual void ModelIsRemoving(SvTreeListEntry *pEntry) override
std::pair< tools::Long, tools::Long > GetItemPos(SvTreeListEntry *pEntry, sal_uInt16 nTabIdx)
SvButtonState GetCheckButtonState(SvTreeListEntry *) const
VCL_DLLPRIVATE void PaintEntry1(SvTreeListEntry &, tools::Long nLine, vcl::RenderContext &rRenderContext)
virtual bool EditedEntry(SvTreeListEntry *pEntry, const OUString &rNewText)
static OUString SearchEntryTextWithHeadTitle(SvTreeListEntry *pEntry)
void SelectAll(bool bSelect)
SvTreeListBoxFlags nImpFlags
sal_uInt32 GetLevelChildCount(SvTreeListEntry *pParent) const
virtual void InitViewData(SvViewDataEntry *, SvTreeListEntry *pEntry) override
Link< sal_Int8, void > GetDragFinishedHdl() const
bool mbUpdateAlternatingRows
void SetEntryText(SvTreeListEntry *, const OUString &)
static const Image & GetDefaultCollapsedNodeImage()
Returns the default image which clients should use for expanded nodes, to have a consistent user inte...
virtual sal_uInt32 Insert(SvTreeListEntry *pEnt, SvTreeListEntry *pPar, sal_uInt32 nPos=TREELIST_APPEND)
sal_uInt32 SelectChildren(SvTreeListEntry *pParent, bool bSelect)
SvTreeList * GetModel() const
bool Expand(SvTreeListEntry *pParent)
SvLBoxTab * GetTab(SvTreeListEntry const *, SvLBoxItem const *) const
Link< SvTreeListBox *, void > aSelectHdl
sal_IntPtr GetTabPos(const SvTreeListEntry *, const SvLBoxTab *) const
std::optional< Color > const & GetTextColor() const
void SetBackColor(const Color &rColor)
SvTreeListEntry * NextSibling() const
SvTreeListEntries m_Children
const Color & GetBackColor() const
const SvLBoxItem * GetFirstItem(SvLBoxItemType eType) const
void * GetUserData() const
size_t GetPos(const SvLBoxItem *pItem) const
SvTLEntryFlags GetFlags() const
sal_uInt32 GetExtraIndent() const
bool HasChildrenOnDemand() const
const SvLBoxItem & GetItem(size_t nPos) const
void EnableChildrenOnDemand(bool bEnable=true)
void SetFlags(SvTLEntryFlags nFlags)
SvTreeListEntry * pParent
void AddItem(std::unique_ptr< SvLBoxItem > pItem)
SvTLEntryFlags nEntryFlags
void SetUserData(void *pPtr)
void SetSortMode(SvSortMode eMode)
static sal_uInt32 GetRelPos(const SvTreeListEntry *pChild)
void SetCompareHdl(const Link< const SvSortData &, sal_Int32 > &rLink)
void InvalidateEntry(SvTreeListEntry *)
View-dependent data for a tree list entry created in the virtual function SvTreeListBox::CreateViewDa...
bool IsDragTarget() const
const SvViewDataItem & GetItem(size_t nPos) const
bool IsHighlighted() const
void SetPriority(TaskPriority ePriority)
void SetInvokeHandler(const Link< Timer *, void > &rLink)
static std::unique_ptr< UIObject > create(vcl::Window *pWindow)
static VclPtr< reference_type > Create(Arg &&... arg)
A construction helper for VclPtr.
const Color & GetColor() const
void SetColor(const Color &rColor)
void SetTransparent(bool bTransparent)
void SetFillColor(const Color &)
void SetColor(const Color &)
bool IsTransparent() const
const Color & GetColor() const
const Color & GetFillColor() const
sal_uInt16 GetCode() const
Point OutputToScreenPixel(const Point &rPos) const
const Wallpaper & GetBackground() const
void SetStyle(WinBits nStyle)
void SetFont(const vcl::Font &rNewFont)
void SetUpdateMode(bool bUpdate)
vcl::Window * GetParent() const
virtual void RequestHelp(const HelpEvent &rHEvt)
bool IsMouseCaptured() const
bool IsChild(const vcl::Window *pWindow) const
sal_uInt16 GetChildCount() const
virtual void SetSizePixel(const Size &rNewSize)
void GetBorder(sal_Int32 &rLeftBorder, sal_Int32 &rTopBorder, sal_Int32 &rRightBorder, sal_Int32 &rBottomBorder) const
virtual void Command(const CommandEvent &rCEvt)
virtual void queue_resize(StateChangedType eReason=StateChangedType::Layout)
bool IsUpdateMode() const
vcl::Window * GetAccessibleParentWindow() const
tools::Long GetTextHeight() const
Height where any character of the current font fits; in logic coordinates.
const AllSettings & GetSettings() const
void Show(bool bVisible=true, ShowFlags nFlags=ShowFlags::NONE)
virtual void KeyInput(const KeyEvent &rKEvt)
virtual void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect)
vcl::Font GetPointFont(vcl::RenderContext const &rRenderContext) const
const MapMode & GetMapMode() const
::OutputDevice const * GetOutDev() const
const vcl::Font & GetFont() const
SAL_DLLPRIVATE float approximate_char_width() const
virtual css::uno::Reference< css::awt::XWindowPeer > GetComponentInterface(bool bCreate=true)
virtual void ShowFocus(const tools::Rectangle &rRect)
css::uno::Reference< css::accessibility::XAccessible > GetAccessible(bool bCreate=true)
virtual Size GetSizePixel() const
virtual void DataChanged(const DataChangedEvent &rDCEvt)
virtual bool set_property(const OString &rKey, const OUString &rValue)
void SetPointFont(vcl::RenderContext &rRenderContext, const vcl::Font &rFont)
sal_Int32 get_width_request() const
virtual void Invalidate(InvalidateFlags nFlags=InvalidateFlags::NONE)
virtual void SetPosPixel(const Point &rNewPos)
virtual OUString GetText() const
css::uno::Reference< css::datatransfer::dnd::XDropTarget > GetDropTarget()
void SetType(WindowType nType)
Point ScreenToOutputPixel(const Point &rPos) const
void SetTextColor(const Color &rColor)
constexpr ::Color COL_TRANSPARENT(ColorTransparency, 0xFF, 0xFF, 0xFF, 0xFF)
#define DBG_ASSERT(sCon, aError)
std::function< std::unique_ptr< UIObject >(vcl::Window *)> FactoryFunction
constexpr sal_uInt16 KEY_RETURN
constexpr sal_uInt16 KEY_ESCAPE
#define LINK(Instance, Class, Member)
#define SAL_WARN(area, stream)
#define SAL_N_ELEMENTS(arr)
std::unique_ptr< sal_Int32[]> pData
constexpr OUStringLiteral aData
const void * StringEntryIdentifier
const css::datatransfer::dnd::DropTargetDropEvent maDropEvent
vcl::QuickSelectionEngine m_aQuickSelectionEngine
SvTreeListBoxImpl(SvTreeListBox &_rBox)
bool m_bDoingQuickSelection
@ REPAINT
All repaint events should go in here.
#define DND_ACTION_COPYMOVE
#define SVLBOX_ACC_RETURN
#define NODE_AND_CHECK_BUTTONS
IMPL_LINK_NOARG(SvInplaceEdit2, ReturnHdl_Impl, Accelerator &, void)
#define SVLBOX_ACC_ESCAPE
#define TABFLAGS_CHECKBTN
static VclPtr< SvTreeListBox > g_pDDTarget
#define TABFLAGS_CONTEXTBMP
static VclPtr< SvTreeListBox > g_pDDSource
#define SV_LBOX_DEFAULT_INDENT_PIXEL
IMPL_LINK(SvTreeListBox, CloneHdl_Impl, SvTreeListEntry *, pEntry, SvTreeListEntry *)
#define SV_ENTRYHEIGHTOFFS_PIXEL
@ Children
The child windows are invalidated, too.
WinBits const WB_HIDESELECTION
WinBits const WB_HASBUTTONS
WinBits const WB_HASLINESATROOT
WinBits const WB_HASLINES
WinBits const WB_HASBUTTONSATROOT
WinBits const WB_CLIPCHILDREN