36 #include <bitmaps.hlst>
54 , m_aFctSet(this, pLBView)
55 , mbForceMakeVisible (false)
58 , mbNoAutoCurEntry(false)
59 , m_aSelEng(pLBView, nullptr)
60 , m_nNextVerVisSize(0)
138 if( aLocale.Language != rNewLocale.Language ||
139 aLocale.Country != rNewLocale.Country ||
140 aLocale.Variant != rNewLocale.Variant )
159 while ( nDepth > nSize )
171 if( nContextBmpWidth < nWidth )
177 return nContextBmpWidth;
182 DBG_ASSERT( pEntry,
"Moved Entry is invalid!" );
187 short nMax = std::max(nExpWidth, nColWidth);
193 DBG_ASSERT( pChild,
"The first child is invalid!" );
252 Range aRange( 0, 0 );
259 m_pView->Control::SetMapMode( aMapMode );
282 m_aVerSBar->SetVisibleSize( m_nNextVerVisSize );
291 DBG_ASSERT(!m_bInVScrollHdl,
"Scroll handler out-paces itself!");
297 if (pScrollBar->GetPageSize() == 1)
298 nDelta = nDelta > 0 ? 1 : -1;
302 m_bInVScrollHdl =
true;
304 if( m_pView->IsEditingActive() )
306 m_pView->EndEditing(
true );
307 m_pView->PaintImmediately();
312 if( nDelta == 1 && pScrollBar->GetPageSize() > 1)
315 PageDown( static_cast<sal_uInt16>(nDelta) );
320 if( nDelta == 1 && pScrollBar->GetPageSize() > 1)
323 PageUp( static_cast<sal_uInt16>(nDelta) );
325 m_bInVScrollHdl =
false;
335 if( pNextFirstToDraw )
355 if( !pPrevFirstToDraw )
373 sal_uInt16 nRealDelta = nDelta;
411 sal_uInt16 nRealDelta = nDelta;
457 if( nThumbPos < nDelta )
467 PageUp( static_cast<short>(nDelta) );
489 while( (nDelta > 0) && (nTmp+nDelta) >= nRange )
499 PageDown( static_cast<short>(nDelta) );
524 if( aRect.
Top() > nMaxBottom )
526 if( aRect.
Bottom() > nMaxBottom )
546 bool bHasFocusRect =
false;
549 bHasFocusRect =
true;
591 while( pEntry && pViewDataNewCur && !pViewDataNewCur->
IsSelectable() )
678 if( bInvalidateCompleteView )
689 if( m_pView->IsEditingActive() )
691 m_pView->EndEditing(
true );
692 m_pView->PaintImmediately();
694 m_pView->nFocusWidth = -1;
695 KeyLeftRight( nDelta );
708 Point aOrigin( -nPos, 0 );
714 if( !(
m_nFlags & LBoxFlags::InResize) )
730 DBG_ASSERT(
m_pView->
GetModel(),
"SvImpLBox::GetClickedEntry: how can this ever happen? Please tell me (frank.schoenheit@sun.com) how to reproduce!" );
741 sal_uInt16 nTemp = nClickedEntry;
763 aRect.AdjustLeft( -4 );
765 Point aPos( rPosPixel );
767 bRet = aRect.IsInside( aPos );
781 sal_uInt16 nTemp = nClickedEntry;
783 if( nTemp != nClickedEntry )
796 if( nY < 0 || nY >= nMax )
816 sal_uInt16 nSteps = 0xFFFF;
834 aOrigin.setX( aOrigin.X() * -1 );
859 reinterpret_cast<void*>(1));
876 sal_uInt16 nStartLine =
static_cast<sal_uInt16
>(rRect.
Top() / nEntryHeight);
877 sal_uInt16
nCount =
static_cast<sal_uInt16
>(nRectHeight / nEntryHeight);
882 while (nStartLine && pEntry)
895 for(sal_uInt16
n=0;
n< nCount && pEntry;
n++)
958 else if( nPos > nLastEntryPos )
959 nPos = nLastEntryPos;
1001 if( nEntryHeightDIV2 && !(nEntryHeight & 0x0001))
1014 nY -= (nOffs * nEntryHeight);
1027 sal_uInt16 nDistance;
1039 aPos1.setY(nY + nEntryHeight);
1041 assert(pChild &&
"Child?");
1046 aPos2.AdjustY((nDistance * nEntryHeight) - (nEntryHeightDIV2 + 2));
1047 rRenderContext.
DrawLine(aPos1, aPos2);
1056 aPos1.setY(nY + nEntryHeightDIV2);
1059 rRenderContext.
DrawLine(aPos1, aPos2);
1065 rRenderContext.
Pop();
1075 if( nMask & 0x0001 )
1077 if( nMask & 0x0002 )
1080 aVerSize.AdjustHeight(2 * nOverlap );
1081 Point aVerPos( rSize.
Width() - aVerSize.Width() + nOverlap, -nOverlap );
1084 aHorSize.AdjustWidth(2 * nOverlap );
1085 Point aHorPos( -nOverlap, rSize.
Height() - aHorSize.Height() + nOverlap );
1089 if( nMask & 0x0001 )
1091 if( nMask & 0x0002 )
1094 if( (nMask & (0x0001|0x0002)) == (0x0001|0x0002) )
1106 sal_uInt16 nResult = 0;
1108 Size aOSize(
m_pView->Control::GetOutputSizePixel() );
1111 bool bVerSBar = ( nWindowStyle &
WB_VSCROLL ) != 0;
1112 bool bHorBar =
false;
1115 aOrigin.setX( aOrigin.X() * -1 );
1116 nMaxRight += aOrigin.X() - 1;
1151 if( !(nResult & 0x0001) &&
1195 if( nTemp != nNewThumbPos )
1197 nTemp = nNewThumbPos - nTemp;
1207 if( nResult & 0x0001 )
1212 if( nResult & 0x0002 )
1224 Size aSize(
m_pView->Control::GetOutputSizePixel() );
1256 if( nTempThumb < 0 )
1259 nTempThumb = nVisibleViewCount == 0 ? 0 : nVisibleViewCount - 1;
1267 sal_uLong nCurDispEntries = nLast-nThumb+1;
1273 bool bFound =
false;
1322 aPos.setX( aPos.X() * -1 );
1323 nMaxRight = nMaxRight + aPos.X() - 1;
1390 nFirstVisPos = nEntryVisPos - nFirstVisPos;
1392 return nFirstVisPos;
1401 Size aSize =
m_pView->Control::GetOutputSizePixel();
1456 if( nNewThumbPos != nOldThumbPos )
1459 sal_uInt16 nDistance =
static_cast<sal_uInt16
>(nNewThumbPos);
1712 sal_uInt16 nNewPos =
static_cast<sal_uInt16
>(
m_pTree->
GetAbsPos( pEntry ));
1714 if( nNewPos < nFirstPos )
1769 sal_uInt16 nCurDispEntries = nLast-nThumb+1;
1874 if( !pFirstDynamicTab )
1880 nMouseX -= aOrigin.X();
1887 return nMouseX <= nX;
2059 if (!pParentToCollapse)
2062 sal_uInt16 nRefDepth;
2104 bool bKeyUsed =
true;
2107 sal_uInt16 aCode = rKeyCode.
GetCode();
2109 bool bShift = rKeyCode.
IsShift();
2110 bool bMod1 = rKeyCode.
IsMod1();
2248 while( nDelta && pNewCursor && !
IsSelectable(pNewCursor) )
2276 while( nDelta && pNewCursor && !
IsSelectable(pNewCursor) )
2282 if( nDelta && pNewCursor )
2337 if( !bShift && !bMod1 )
2340 EditTimerCall(
nullptr );
2422 if( pNewCursor && pNewCursor !=
m_pCursor )
2442 if( pNewCursor && pNewCursor !=
m_pCursor)
2597 if( nOldVisPos > nAnchorVisPos ||
2598 ( nAnchorVisPos==nOldVisPos && nNewVisPos > nAnchorVisPos) )
2600 if( nNewVisPos > nOldVisPos )
2602 pEntry = pOldCursor;
2603 while( pEntry && pEntry != pNewCursor )
2613 if( nNewVisPos < nAnchorVisPos )
2616 while( pEntry && pEntry != pOldCursor )
2624 pEntry = pNewCursor;
2635 if( nNewVisPos < nOldVisPos )
2638 while( pEntry && pEntry != pOldCursor )
2650 if( nNewVisPos < nOldVisPos )
2652 pEntry = pNewCursor;
2653 while( pEntry && pEntry != pOldCursor )
2663 if( nNewVisPos > nAnchorVisPos )
2665 pEntry = pOldCursor;
2674 while( pEntry && pEntry != pNewCursor )
2684 if( nNewVisPos > nOldVisPos )
2686 pEntry = pOldCursor;
2687 while( pEntry && pEntry != pNewCursor )
2698 bool bSelect,
bool bDestroyAnchor,
bool bSingleSelToo )
2725 if( bDestroyAnchor )
2755 if( bDestroyAnchor )
2838 aPos.setX( aPos.X() * -1 );
2863 if( !m_pView->IsInplaceEditingEnabled() )
2866 bool bIsMouseTriggered = m_aEditClickPos.X() >= 0;
2867 if ( bIsMouseTriggered )
2869 Point aCurrentMousePos = m_pView->GetPointerPosPixel();
2870 if ( ( std::abs( aCurrentMousePos.X() - m_aEditClickPos.X() ) > 5 )
2871 || ( std::abs( aCurrentMousePos.Y() - m_aEditClickPos.Y() ) > 5 )
2881 ShowCursor(
false );
2882 m_pView->ImplEditEntry( pEntry );
2908 bool bItemClipped =
false;
2910 if( pNextTab &&
m_pView->
GetTabPos(pEntry,pNextTab) < aPos.X()+aSize.Width() )
2912 aSize.setWidth( pNextTab->GetPos() - pTab->
GetPos() );
2913 bItemClipped =
true;
2919 if( bItemClipped || !aViewRect.
IsInside( aItemRect ) )
2927 aItemRect.
SetTop( aPt.Y() );
2944 if( nTabCount <= 1 )
2946 for(
int nTab=0; nTab < (nTabCount-1); nTab++)
2974 sal_uInt16 nLastItem = pEntry->
ItemCount() - 1;
2977 if( nLastItem < nLastTab )
2978 nLastTab = nLastItem;
2987 aPos.setX( aPos.X() * -1 );
2988 nMaxRight = nMaxRight + aPos.X() - 1;
2990 tools::Long nNextTab = nTabPos < nMaxRight ? nMaxRight : nMaxRight + 50;
2995 tools::Long nRight = nTabPos + nOffset + nItemSize;
3033 size_t nCount = rList.size();
3034 for(
size_t nCur = 0; nCur < nCount; nCur++ )
3059 m_nCurUserEvent =
nullptr;
3062 m_pView->Invalidate();
3063 m_pView->PaintImmediately();
3069 m_pView->Invalidate( GetVisibleArea() );
3120 return (pViewDataNewCur ==
nullptr) || pViewDataNewCur->
IsSelectable();
#define LINK(Instance, Class, Member)
vcl::Region GetClipRegion() const
Size GetSizePixel() const
void EntryMoved(SvTreeListEntry *pEntry)
bool SelMouseButtonDown(const MouseEvent &rMEvt)
const Color & GetShadowColor() const
void MovingEntry(SvTreeListEntry *pEntry)
void SetCursorAtPoint(const Point &rPoint, bool bDontSelectAtCursor=false) override
bool RequestHelp(const HelpEvent &rHEvt)
void SelectEntry(SvTreeListEntry *pEntry, bool bSelect)
SvTreeListEntry * NextVisible(SvTreeListEntry *pEntry) const
const Wallpaper & GetBackground() const
SvTreeListEntry * NextSelected(SvTreeListEntry *pEntry) const
bool IsSelectable() const
virtual void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect)
bool GetUpdateMode() const
void MouseMove(const MouseEvent &)
IMPL_LINK_NOARG(SvImpLBox, EndScrollHdl, ScrollBar *, void)
void InvalidateEntry(SvTreeListEntry *)
virtual void AdjustScrollBars(Size &rSize)
sal_uInt16 TabCount() const
void SetSelectionMode(SelectionMode eMode)
void setWidth(tools::Long nWidth)
void SetNoAutoCurEntry(bool b)
IMPL_LINK(SvImpLBox, ScrollUpDownHdl, ScrollBar *, pScrollBar, void)
tools::Long m_nNodeBmpTabDistance
bool IsEntryVisible(SvTreeListEntry *pEntry) const
const Image & GetExpandedNodeBmp()
constexpr sal_uInt16 KEY_COMMA
virtual SvTreeListEntry * GetEntry(const Point &rPos) const
A thin wrapper around rtl::Reference to implement the acquire and dispose semantics we want for refer...
SvTreeList * GetModel() const
SvTreeListEntry * PrevVisible(SvTreeListEntry *pEntry) const
bool IsEditingActive() const
SvTLEntryFlags GetFlags() const
SvTreeListEntry * m_pCursorOld
virtual void UpdateAll(bool bInvalidateCompleteView)
void UpdateStringSorter()
const SvTreeListEntries & GetChildList(SvTreeListEntry *pParent) const
sal_uLong GetEntryCount() const
const StyleSettings & GetStyleSettings() const
static const AllSettings & GetSettings()
Gets the application's settings.
constexpr sal_uInt16 KEY_A
const Color & GetFaceColor() const
virtual tools::Rectangle GetFocusRect(const SvTreeListEntry *, tools::Long nLine)
void SetFlags(SvTLEntryFlags nFlags)
sal_uInt16 GetDepth(const SvTreeListEntry *pEntry) const
virtual Size GetSizePixel() const
void EntryExpanded(SvTreeListEntry *pEntry)
virtual void SetSizePixel(const Size &rNewSize)
SvLBoxTab * GetFirstDynamicTab() const
void MakeVisible(SvTreeListEntry *pEntry, bool bMoveToTop=false)
void DrawNet(vcl::RenderContext &rRenderContext)
void PositionScrollBars(Size &rOSize, sal_uInt16 nMask)
static Image * s_pDefCollapsed
VclPtr< SvTreeListBox > m_pView
bool IsSelectionAtPoint(const Point &rPoint) override
static const Image & GetDefaultCollapsedNodeImage()
static ImplSVEvent * PostUserEvent(const Link< void *, void > &rLink, void *pCaller=nullptr, bool bReferenceLink=false)
Post a user event to the default window.
const MapMode & GetMapMode() const
virtual void StartDrag(sal_Int8 nAction, const Point &rPosPixel) override
sal_uInt16 GetCode() const
void UpdateContextBmpWidthMax(SvTreeListEntry const *pEntry)
short nContextBmpWidthMax
tools::Long m_nNextVerVisSize
SelectionMode GetSelectionMode() const
sal_uLong m_nVisibleCount
constexpr sal_uInt16 KEY_SPACE
constexpr sal_uInt16 KEY_ADD
View-dependent data for a tree list entry created in the virtual function SvTreeListBox::CreateViewDa...
bool HandleScrollCommand(const CommandEvent &rCmd, ScrollBar *pHScrl, ScrollBar *pVScrl)
void EnableDrag(bool bOn)
void CursorPosChanging(bool bShift, bool bMod1)
bool IsNativeControlSupported(ControlType nType, ControlPart nPart) const
Query the platform layer for control support.
bool IsExpandable() const
HelpEventMode GetMode() const
void SetCurEntry(SvTreeListEntry *)
static const Image & GetDefaultExpandedNodeImage()
void ScrollToAbsPos(tools::Long nPos)
constexpr sal_uInt16 KEY_UP
const css::lang::Locale & getLocale(bool bResolveSystem=true) const
SvTreeListEntry * MakePointVisible(const Point &rPoint)
void SetFocus(bool bFocus)
const Image & GetBitmap2() const
constexpr sal_uInt16 KEY_END
sal_uLong GetAbsPos(SvTreeListEntry const *pEntry) const
sal_uInt16 GetClicks() const
bool ButtonDownCheckCtrl(const MouseEvent &rMEvt, SvTreeListEntry *pEntry)
int GetHeight(const SvTreeListBox *pView, const SvTreeListEntry *pEntry) const
virtual bool IsEntryInView(SvTreeListEntry *pEntry) const
void SetEntryFocus(SvTreeListEntry *pEntry, bool bFocus)
void SetAnchorSelection(SvTreeListEntry *pOld, SvTreeListEntry *pNewCursor)
void MouseButtonUp(const MouseEvent &)
void UpdateContextBmpWidthVectorFromMovedEntry(SvTreeListEntry *pEntry)
SvImpLBox(SvTreeListBox *pView, SvTreeList *, WinBits nWinStyle)
SvTreeListEntry * Next(SvTreeListEntry *pEntry, sal_uInt16 *pDepth=nullptr) const
VclPtr< ScrollBarBox > m_aScrBarBox
const BorderLinePrimitive2D *pCandidateB assert(pCandidateA)
const SvTreeListEntry * GetParent(const SvTreeListEntry *pEntry) const
void SetDragDropMode(DragDropMode eDDMode)
SvTreeListEntry * FirstSelected() const
const Point & GetMousePosPixel() const
constexpr sal_uInt16 KEY_PAGEUP
SvTreeListEntry * NextSibling() const
VclPtr< SvTreeListBox > pView
constexpr sal_uInt16 KEY_F2
virtual void Start() override
Activates the timer task.
void EndEditing(bool bCancel=false)
void SetSelectionMode(SelectionMode eSelMode)
bool ButtonDownCheckExpand(const MouseEvent &, SvTreeListEntry *)
static void implInitDefaultNodeImages()
virtual void InvalidateEntry(tools::Long nY) const
WinBits const WB_HASLINESATROOT
const Size & GetOutputSize() const
virtual bool KeyInput(const KeyEvent &)
virtual void PageDown(sal_uInt16 nDelta)
void CallImplEventListeners(VclEventId nEvent, void *pData)
ImplSVEvent * m_nCurUserEvent
void DrawLine(const Point &rStartPt, const Point &rEndPt)
SvTreeListEntry * GetRootLevelParent(SvTreeListEntry *pEntry) const
void MouseButtonDown(const MouseEvent &)
short GetEntryHeight() const
virtual tools::Long GetEntryLine(const SvTreeListEntry *pEntry) const
const LanguageTag & GetLanguageTag() const
void EntrySelected(SvTreeListEntry *pEntry, bool bSelect)
sal_IntPtr GetTabPos(const SvTreeListEntry *, const SvLBoxTab *)
void DestroyAnchor() override
SvTreeListEntry * pHdlEntry
const Point & GetMousePosPixel() const
bool IsChild(const SvTreeListEntry *pParent, const SvTreeListEntry *pChild) const
constexpr sal_uInt16 KEY_DOWN
static void RemoveUserEvent(ImplSVEvent *nUserEvent)
Remove user event based on event ID.
void CreateAnchor() override
void OnCurrentEntryChanged()
ImpLBSelEng(SvImpLBox *pImp, SvTreeListBox *pView)
void CallEventListeners(VclEventId nEvent, void *pData=nullptr)
void ExpandSelectionOnMouseMove(bool bExpand=true)
sal_uLong GetAbsPos(const SvTreeListEntry *pEntry) const
#define DBG_ASSERT(sCon, aError)
SvTreeListEntry * PrevSibling() const
bool IsLineVisible(tools::Long nY) const
SvTreeListEntry * m_pAnchor
constexpr sal_uInt16 KEY_HOME
bool SelMouseMove(const MouseEvent &rMEvt)
WinBits const WB_SIMPLEMODE
bool IsNodeButton(const Point &rPosPixel, const SvTreeListEntry *pEntry) const
bool mbActivateOnSingleClick
VclPtr< ScrollBar > m_aHorSBar
virtual void KeyUp(bool bPageUp)
const Color & GetColor() const
virtual void Invalidate(InvalidateFlags nFlags=InvalidateFlags::NONE)
void SetOrigin(const Point &rOrigin)
bool SelMouseButtonUp(const MouseEvent &rMEvt)
SvTreeListEntry * FirstVisible() const
bool IsSelected(const SvTreeListEntry *pEntry) const
std::unique_ptr< SvTreeList > pModel
SvTreeListEntry * FirstChild(SvTreeListEntry *pParent) const
tools::Long Width() const
bool MouseMoveCheckCtrl(const MouseEvent &rMEvt, SvTreeListEntry const *pEntry)
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
constexpr std::enable_if_t< std::is_signed_v< T >, std::make_unsigned_t< T > > make_unsigned(T value)
CommandEventId GetCommand() const
SvViewDataEntry * GetViewDataEntry(SvTreeListEntry const *pEntry) const
bool Collapse(SvTreeListEntry *pParent)
SvLBoxItem * GetItem(SvTreeListEntry *, tools::Long nX, SvLBoxTab **ppTab)
constexpr sal_uInt16 KEY_PAGEDOWN
void DeselectAtPoint(const Point &rPoint) override
void SelAllDestrAnch(bool bSelect, bool bDestroyAnchor=true, bool bSingleSelToo=false)
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.
tools::Rectangle GetVisibleArea() const
SvTreeListEntry * Last() const
const AllSettings & GetSettings() const
bool ButtonUpCheckCtrl(const MouseEvent &rMEvt)
SvTreeListEntry * GetEntryAtVisPos(sal_uLong nVisPos) const
void FindMostRight_Impl(SvTreeListEntry *pParent)
void CollapsingEntry(SvTreeListEntry *pEntry)
const SvLBoxItem & GetItem(size_t nPos) const
virtual void PageUp(sal_uInt16 nDelta)
bool Expand(SvTreeListEntry *pParent)
bool IsRGBEqual(const Color &rColor) const
void SelectAll(bool bSelect)
static oslInterlockedCount s_nImageRefCount
Point ScreenToOutputPixel(const Point &rPos) const
std::unique_ptr< comphelper::string::NaturalStringSorter > m_pStringSorter
static void ShowQuickHelp(vcl::Window *pParent, const tools::Rectangle &rScreenRect, const OUString &rHelpText, QuickHelpFlags nStyle=QuickHelpFlags::NONE)
virtual void ShowFocus(const tools::Rectangle &rRect)
bool HasChildrenOnDemand() const
void SetCursor(SvTreeListEntry *pEntry, bool bForceNoSelect=false)
void CollapseTo(SvTreeListEntry *pParentToCollapse)
constexpr sal_uInt16 KEY_RETURN
virtual void SetPosSizePixel(const Point &rNewPos, const Size &rNewSize)
virtual SvLBoxItemType GetType() const =0
constexpr sal_uInt16 KEY_RIGHT
const Point & GetMousePosPixel() const
void ShowCursor(bool bShow)
bool IsAtRootDepth(const SvTreeListEntry *pEntry) const
std::vector< std::unique_ptr< SvLBoxTab > > aTabs
SvTreeListEntry * Next(SvTreeListEntry *pEntry) const
SvTreeListEntry * LastSibling() const
void SetVisibleArea(const tools::Rectangle &rNewArea)
tools::Rectangle GetClipRegionRect() const
SvTreeListEntry * m_pCursor
void PaintDDCursor(SvTreeListEntry *pEntry, bool bShow)
WinBits const WB_HASLINES
SvTreeListEntry * LastVisible() const
bool IsExpanded(SvTreeListEntry *pEntry) const
const SvViewDataEntry * GetViewData(const SvTreeListEntry *pEntry) const
int GetWidth(const SvTreeListBox *pView, const SvTreeListEntry *pEntry) const
static Image * s_pDefExpanded
SvTreeListEntry * First() const
virtual void Invalidate(InvalidateFlags nFlags=InvalidateFlags::NONE) override
WinBits const WB_HIDESELECTION
const vcl::KeyCode & GetKeyCode() const
bool IsAllExpanded(SvTreeListEntry *pEntry) const
sal_uLong GetVisibleCount() const
bool EntryReallyHit(SvTreeListEntry *pEntry, const Point &rPos, tools::Long nLine)
virtual SvTreeListEntry * GetClickedEntry(const Point &) const
constexpr sal_uInt16 KEY_SUBTRACT
virtual void Scroll(tools::Long nHorzScroll, tools::Long nVertScroll, ScrollFlags nFlags=ScrollFlags::NONE)
SvTreeListEntry * pEdEntry
tools::Long m_nNodeBmpWidth
SvLBoxTab * GetTab(SvTreeListEntry const *, SvLBoxItem const *) const
constexpr sal_uInt16 KEY_ESCAPE
SvLBoxTab * NextTab(SvLBoxTab const *)
const o3tl::enumarray< SvxAdjust, unsigned short > aSvxToUnoAdjust USHRT_MAX
SelectionEngine m_aSelEng
WinBits const WB_NOINITIALSELECTION
bool Command(const CommandEvent &rCEvt)
tools::Long AdjustWidth(tools::Long n)
bool IsSelectable(const SvTreeListEntry *pEntry)
SvTreeListEntry * First() const
tools::Long Height() const
const SvLBoxItem * GetFirstItem(SvLBoxItemType eType) const
#define NODE_BMP_TABDIST_NOTVALID
Reference< XComponentContext > getProcessComponentContext()
SvTreeListEntry * Last() const
void SetInvokeHandler(const Link< Timer *, void > &rLink)
void SetUpdateMode(bool bMode)
const Point & GetPosPixel() const
virtual void CursorDown()
void EntryCollapsed(SvTreeListEntry *pEntry)
const Point & GetOrigin() const
WinBits const WB_AUTOHSCROLL
void SetFunctionSet(FunctionSet *pFuncs)
constexpr sal_uInt16 KEY_BACKSPACE
const Image & GetCollapsedNodeBmp()
SvTreeListEntry * m_pStartEntry
virtual void SyncVerThumb()
void SetStyle(WinBits i_nWinStyle)
void setHeight(tools::Long nHeight)
SvTreeListEntry * GetEntryAtAbsPos(sal_uLong nAbsPos) const
constexpr sal_uInt16 KEY_MULTIPLY
reference_type * get() const
Get the body.
void SetNodeBmpWidth(const Image &)
SvLBoxButton * m_pActiveButton
void KeyLeftRight(tools::Long nDiff)
virtual void KeyDown(bool bPageDown)
tools::Long GetPos() const
void SetPriority(TaskPriority ePriority)
constexpr sal_uInt16 KEY_DELETE
constexpr sal_uInt16 KEY_LEFT
Point OutputToScreenPixel(const Point &rPos) const
bool Select(SvTreeListEntry *pEntry, bool bSelect=true)
virtual Point GetEntryPosition(const SvTreeListEntry *) const
VCL_DLLPRIVATE void PaintEntry1(SvTreeListEntry &, tools::Long nLine, vcl::RenderContext &rRenderContext)
bool SetMostRight(SvTreeListEntry *pEntry)
sal_uLong GetVisiblePos(SvTreeListEntry const *pEntry) const
VclPtr< ScrollBar > m_aVerSBar
Low, very idle cleanup tasks.
void SetNodeBmpTabDistance()
tools::Long CalcOffset(tools::Long nItemLength, tools::Long nTabWidth)
sal_uLong GetSelectionCount() const
void Push(PushFlags nFlags=PushFlags::ALL)
bool SupportsDoubleBuffering() const
Can the widget derived from this Window do the double-buffering via RenderContext properly...
void InvalidateEntriesFrom(tools::Long nY) const
constexpr sal_uInt16 KEY_DIVIDE
SvTreeListEntry * GetParent(SvTreeListEntry *pEntry) const
virtual void SetPosPixel(const Point &rNewPos)
void RemovingEntry(SvTreeListEntry *pEntry)
SelectionMode GetSelectionMode() const
SvTreeListEntry * m_pMostRightEntry
void EntryInserted(SvTreeListEntry *)
void Command(const CommandEvent &rCEvt)
virtual ~ImpLBSelEng() override
constexpr sal_uInt16 KEY_TAB
void DeselectAll() override
bool IsAlwaysAdding() const
std::vector< std::unique_ptr< SvTreeListEntry > > SvTreeListEntries
SvTreeListEntry * m_pActiveEntry
void BeginDrag() override
short UpdateContextBmpWidthVector(SvTreeListEntry const *pEntry, short nWidth)
std::vector< short > m_aContextBmpWidthVector
constexpr sal_uInt16 KEY_F8
void Show(bool bVisible=true, ShowFlags nFlags=ShowFlags::NONE)
void SetDragTarget(bool bDragTarget)