LibreOffice Module vcl (master)  1
svimpbox.hxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  * Licensed to the Apache Software Foundation (ASF) under one or more
12  * contributor license agreements. See the NOTICE file distributed
13  * with this work for additional information regarding copyright
14  * ownership. The ASF licenses this file to you under the Apache
15  * License, Version 2.0 (the "License"); you may not use this file
16  * except in compliance with the License. You may obtain a copy of
17  * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 
20 #ifndef INCLUDED_VCL_SOURCE_INC_SVIMPBOX_HXX
21 #define INCLUDED_VCL_SOURCE_INC_SVIMPBOX_HXX
22 
23 #include <vcl/dllapi.h>
24 #include <vcl/seleng.hxx>
25 #include <vcl/scrbar.hxx>
26 #include <vcl/idle.hxx>
27 #include <vcl/image.hxx>
29 #include <vcl/vclevent.hxx>
31 #include <o3tl/enumarray.hxx>
32 #include <memory>
33 #include <vector>
34 
35 class SvLBoxButton;
36 class SvTreeList;
37 class SvImpLBox;
38 class SvTreeListEntry;
39 namespace comphelper::string { class NaturalStringSorter; }
40 
41 class ImpLBSelEng final : public FunctionSet
42 {
45 
46 public:
47  ImpLBSelEng( SvImpLBox* pImp, SvTreeListBox* pView );
48  virtual ~ImpLBSelEng() override;
49  void BeginDrag() override;
50  void CreateAnchor() override;
51  void DestroyAnchor() override;
52  void SetCursorAtPoint( const Point& rPoint,
53  bool bDontSelectAtCursor=false ) override;
54  bool IsSelectionAtPoint( const Point& rPoint ) override;
55  void DeselectAtPoint( const Point& rPoint ) override;
56  void DeselectAll() override;
57 };
58 
59 // Flags for nFlag
60 enum class LBoxFlags {
61  NONE = 0x0000,
62  DeselectAll = 0x0002,
63  StartEditTimer = 0x0004, // MAC only
64  IgnoreSelect = 0x0008,
65  InResize = 0x0010,
66  RemovedEntryInvisible = 0x0020,
67  RemovedRecalcMostRight = 0x0040,
68  IgnoreChangedTabs = 0x0080,
69  InPaint = 0x0100,
70  EndScrollSetVisSize = 0x0200,
71  Filling = 0x0400,
72 };
73 namespace o3tl
74 {
75  template<> struct typed_flags<LBoxFlags> : is_typed_flags<LBoxFlags, 0x07fe> {};
76 }
77 
78 #define NODE_BMP_TABDIST_NOTVALID -2000000
79 #define FIRST_ENTRY_TAB 1
80 
81 class SvImpLBox
82 {
83 friend class ImpLBSelEng;
84 friend class SvTreeListBox;
85 friend class SalInstanceTreeView;
86 friend class IconView;
87 private:
94 
97 
98  ::vcl::AccessibleFactoryAccess
100 
103  static oslInterlockedCount s_nImageRefCount;
104 
105  // Node Bitmaps
106  enum class ImageType
107  {
108  NodeExpanded = 0, // node is expanded ( usually a bitmap showing a minus )
109  NodeCollapsed, // node is collapsed ( usually a bitmap showing a plus )
110  NodeDontKnow, // don't know the node state
111  EntryDefExpanded, // default for expanded entries
112  EntryDefCollapsed, // default for collapsed entries
113  LAST = EntryDefCollapsed
114  };
115 
116  // all our images
119 
121 
125 
126  bool m_bUpdateMode : 1;
127  bool m_bSubLstOpLR : 1; // open/close sublist with cursor left/right, defaulted with false
129 
132 
133  std::unique_ptr<comphelper::string::NaturalStringSorter> m_pStringSorter;
134 
135  std::vector< short > m_aContextBmpWidthVector;
136 
137  DECL_LINK(EditTimerCall, Timer *, void);
138 
139  void InvalidateEntriesFrom( tools::Long nY ) const;
140  bool IsLineVisible( tools::Long nY ) const;
141  void KeyLeftRight( tools::Long nDiff );
142 
143  void DrawNet(vcl::RenderContext& rRenderContext);
144 
145  // ScrollBar-Handler
146  DECL_LINK( ScrollUpDownHdl, ScrollBar*, void );
147  DECL_LINK( ScrollLeftRightHdl, ScrollBar*, void );
148  DECL_LINK( EndScrollHdl, ScrollBar*, void );
149 
150  void SetNodeBmpWidth( const Image& );
151  void SetNodeBmpTabDistance();
152 
153  // Selection-Engine
154  SvTreeListEntry* MakePointVisible( const Point& rPoint );
155 
157  SvTreeListEntry* pNewCursor );
158  void BeginDrag();
159  bool ButtonDownCheckCtrl( const MouseEvent& rMEvt, SvTreeListEntry* pEntry );
160  bool MouseMoveCheckCtrl( const MouseEvent& rMEvt, SvTreeListEntry const * pEntry );
161  bool ButtonUpCheckCtrl( const MouseEvent& rMEvt );
163 
164  bool EntryReallyHit(SvTreeListEntry* pEntry, const Point& rPos, tools::Long nLine);
165  void InitScrollBarBox();
166  SvLBoxTab* NextTab( SvLBoxTab const * );
167 
168  void SetMostRight( SvTreeListEntry* pEntry );
169  void FindMostRight( SvTreeListEntry* pParent );
170  void FindMostRight_Impl( SvTreeListEntry* pParent );
171  void NotifyTabsChanged();
172 
173  // if element at cursor can be expanded in general
174  bool IsExpandable() const;
175 
176  static void implInitDefaultNodeImages();
177 
178  void UpdateStringSorter();
179 
180  short UpdateContextBmpWidthVector( SvTreeListEntry const * pEntry, short nWidth );
181  void UpdateContextBmpWidthMax( SvTreeListEntry const * pEntry );
183 
184  void ExpandAll();
185  void CollapseTo(SvTreeListEntry* pParentToCollapse);
186 
187 protected:
197  bool mbNoAutoCurEntry; // disable the behavior of automatically selecting a "CurEntry" upon painting the control
199  sal_uLong m_nVisibleCount; // Number of lines in control
200  bool m_bInVScrollHdl : 1;
201  bool m_bSimpleTravel : 1; // is true if SelectionMode::Single
203  tools::Long m_nNodeBmpTabDistance; // typical smaller than 0
204 
205  virtual tools::Long GetEntryLine(const SvTreeListEntry* pEntry) const;
206  virtual void CursorDown();
207  virtual void CursorUp();
208  virtual void PageDown( sal_uInt16 nDelta );
209  virtual void PageUp( sal_uInt16 nDelta );
210  // set Thumb to FirstEntryToDraw
211  virtual void SyncVerThumb();
212  virtual void AdjustScrollBars( Size& rSize );
213  virtual void InvalidateEntry( tools::Long nY ) const;
214 
216  void SetCursor( SvTreeListEntry* pEntry, bool bForceNoSelect = false );
217  void PositionScrollBars( Size& rOSize, sal_uInt16 nMask );
218  void FindMostRight();
219  void FillView();
220  void ShowVerSBar();
221  void StopUserEvent();
222 
223  DECL_LINK( MyUserEvent, void*, void);
224 
225 public:
226  SvImpLBox( SvTreeListBox* pView, SvTreeList*, WinBits nWinStyle );
227  virtual ~SvImpLBox();
228 
229  void Clear();
230  void SetStyle( WinBits i_nWinStyle );
231  void SetNoAutoCurEntry( bool b );
232  void SetModel( SvTreeList* pModel ) { m_pTree = pModel;}
233 
235  void RemovingEntry( SvTreeListEntry* pEntry );
236  void EntryRemoved();
237  void MovingEntry( SvTreeListEntry* pEntry );
238  void EntryMoved( SvTreeListEntry* pEntry );
239  void TreeInserted( SvTreeListEntry* pEntry );
240 
241  void EntryExpanded( SvTreeListEntry* pEntry );
242  void EntryCollapsed( SvTreeListEntry* pEntry );
243  void CollapsingEntry( SvTreeListEntry* pEntry );
244  void EntrySelected( SvTreeListEntry* pEntry, bool bSelect );
245 
246  virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect);
247  void MouseButtonDown( const MouseEvent& );
248  void MouseButtonUp( const MouseEvent& );
249  void MouseMove( const MouseEvent&);
250  virtual bool KeyInput( const KeyEvent& );
251  void Resize();
252  void GetFocus();
253  void LoseFocus();
254  virtual void UpdateAll( bool bInvalidateCompleteView );
255  void SetEntryHeight();
257  void RecalcFocusRect();
258 
259  void SelectEntry( SvTreeListEntry* pEntry, bool bSelect );
260  void SetDragDropMode( DragDropMode eDDMode );
261  void SetSelectionMode( SelectionMode eSelMode );
262 
263  virtual bool IsEntryInView( SvTreeListEntry* pEntry ) const;
264  virtual SvTreeListEntry* GetEntry( const Point& rPos ) const;
265  // returns last entry, if Pos below last entry
266  virtual SvTreeListEntry* GetClickedEntry( const Point& ) const;
267  SvTreeListEntry* GetCurEntry() const { return m_pCursor; }
268  void SetCurEntry( SvTreeListEntry* );
269  virtual Point GetEntryPosition(const SvTreeListEntry*) const;
270  void MakeVisible( SvTreeListEntry* pEntry, bool bMoveToTop = false );
271  void ScrollToAbsPos( tools::Long nPos );
272 
273  void PaintDDCursor(SvTreeListEntry* pEntry, bool bShow);
274 
275  // Images
276  inline Image& implGetImageLocation( const ImageType _eType );
277 
278  inline void SetExpandedNodeBmp( const Image& _rImg );
279  inline void SetCollapsedNodeBmp( const Image& _rImg );
280 
281  inline const Image& GetExpandedNodeBmp( );
282  inline const Image& GetCollapsedNodeBmp( );
283  inline const Image& GetDontKnowNodeBmp( );
284 
285  inline void SetDefaultEntryExpBmp( const Image& _rImg );
286  inline void SetDefaultEntryColBmp( const Image& _rImg );
287  inline const Image& GetDefaultEntryExpBmp( );
288  inline const Image& GetDefaultEntryColBmp( );
289 
290  static const Image& GetDefaultExpandedNodeImage( );
291  static const Image& GetDefaultCollapsedNodeImage( );
292 
293  const Size& GetOutputSize() const { return m_aOutputSize;}
294  virtual void KeyUp( bool bPageUp );
295  virtual void KeyDown( bool bPageDown );
296  void Command( const CommandEvent& rCEvt );
297 
298  void Invalidate();
299  void DestroyAnchor() { m_pAnchor=nullptr; m_aSelEng.Reset(); }
300  void SelAllDestrAnch( bool bSelect, bool bDestroyAnchor = true, bool bSingleSelToo = false );
301  void ShowCursor( bool bShow );
302 
303  bool RequestHelp( const HelpEvent& rHEvt );
304  bool IsNodeButton( const Point& rPosPixel, const SvTreeListEntry* pEntry ) const;
305  void SetUpdateMode( bool bMode );
306  bool GetUpdateMode() const { return m_bUpdateMode; }
308  bool HasHorScrollBar() const { return m_aHorSBar->IsVisible(); }
309  void CallEventListeners( VclEventId nEvent, void* pData = nullptr );
310 
311  bool IsSelectable( const SvTreeListEntry* pEntry ) const;
312  void SetForceMakeVisible(bool bEnable) { mbForceMakeVisible = bEnable; }
313 
314  // tdf#143114 allow to ask if CaptureOnButton is active
315  // (MouseButtonDown hit on SvLBoxButton, CaptureMouse() active)
316  bool IsCaptureOnButtonActive() const;
317 };
318 
320 {
321  return nullptr != m_pActiveButton && nullptr != m_pActiveEntry;
322 }
323 
325 {
326  return m_aNodeAndEntryImages[_eType];
327 }
328 
329 inline void SvImpLBox::SetExpandedNodeBmp( const Image& rImg )
330 {
332  SetNodeBmpWidth( rImg );
333 }
334 
335 inline void SvImpLBox::SetCollapsedNodeBmp( const Image& rImg )
336 {
338  SetNodeBmpWidth( rImg );
339 }
340 
342 {
344 }
345 
347 {
349 }
350 
352 {
354 }
355 
356 inline void SvImpLBox::SetDefaultEntryExpBmp( const Image& _rImg )
357 {
359 }
360 
361 inline void SvImpLBox::SetDefaultEntryColBmp( const Image& _rImg )
362 {
364 }
365 
367 {
369 }
370 
372 {
374 }
375 
377 {
378  return Point(0, GetEntryLine(pEntry));
379 }
380 
381 inline bool SvImpLBox::IsLineVisible( tools::Long nY ) const
382 {
383  bool bRet = true;
384  if ( nY < 0 || nY >= m_aOutputSize.Height() )
385  bRet = false;
386  return bRet;
387 }
388 
389 inline void SvImpLBox::TreeInserted( SvTreeListEntry* pInsTree )
390 {
391  EntryInserted( pInsTree );
392 }
393 
394 #endif // INCLUDED_VCL_SOURCE_INC_SVIMPBOX_HXX
395 
396 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
void EntryMoved(SvTreeListEntry *pEntry)
Definition: svimpbox.cxx:1703
void MovingEntry(SvTreeListEntry *pEntry)
Definition: svimpbox.cxx:1673
void SetCursorAtPoint(const Point &rPoint, bool bDontSelectAtCursor=false) override
Definition: svimpbox.cxx:2562
bool RequestHelp(const HelpEvent &rHEvt)
Definition: svimpbox.cxx:2898
void SelectEntry(SvTreeListEntry *pEntry, bool bSelect)
Definition: svimpbox.cxx:2532
virtual void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect)
Definition: svimpbox.cxx:843
bool GetUpdateMode() const
Definition: svimpbox.hxx:306
void MouseMove(const MouseEvent &)
Definition: svimpbox.cxx:2034
virtual void AdjustScrollBars(Size &rSize)
Definition: svimpbox.cxx:1102
SvLBoxTab * m_pActiveTab
Definition: svimpbox.hxx:93
void SetNoAutoCurEntry(bool b)
Definition: svimpbox.cxx:224
short m_nHorSBarHeight
Definition: svimpbox.hxx:124
tools::Long m_nNodeBmpTabDistance
Definition: svimpbox.hxx:203
const Image & GetExpandedNodeBmp()
Definition: svimpbox.hxx:346
virtual SvTreeListEntry * GetEntry(const Point &rPos) const
Definition: svimpbox.cxx:775
SvTreeListEntry * m_pCursorOld
Definition: svimpbox.hxx:191
Size m_aOutputSize
Definition: svimpbox.hxx:194
virtual void UpdateAll(bool bInvalidateCompleteView)
Definition: svimpbox.cxx:670
void UpdateStringSorter()
Definition: svimpbox.cxx:131
sal_uIntPtr sal_uLong
void SetEntryHeight()
Definition: svimpbox.cxx:1397
long Long
void BeginDrag()
Definition: svimpbox.cxx:2802
void EntryExpanded(SvTreeListEntry *pEntry)
Definition: svimpbox.cxx:1419
void MakeVisible(SvTreeListEntry *pEntry, bool bMoveToTop=false)
Definition: svimpbox.cxx:912
void DrawNet(vcl::RenderContext &rRenderContext)
Definition: svimpbox.cxx:981
void GetFocus()
Definition: svimpbox.cxx:2488
void PositionScrollBars(Size &rOSize, sal_uInt16 nMask)
Definition: svimpbox.cxx:1070
void Reset()
Definition: seleng.cxx:358
static Image * s_pDefCollapsed
Definition: svimpbox.hxx:101
SvTreeList * m_pTree
Definition: svimpbox.hxx:88
VclPtr< SvTreeListBox > m_pView
Definition: svimpbox.hxx:188
bool IsSelectionAtPoint(const Point &rPoint) override
Definition: svimpbox.cxx:2575
static const Image & GetDefaultCollapsedNodeImage()
Definition: svimpbox.cxx:3110
SelectionMode
Definition: vclenum.hxx:26
void SetModel(SvTreeList *pModel)
Definition: svimpbox.hxx:232
void UpdateContextBmpWidthMax(SvTreeListEntry const *pEntry)
Definition: svimpbox.cxx:203
o3tl::enumarray< ImageType, Image > m_aNodeAndEntryImages
Definition: svimpbox.hxx:118
ImageType
When 0 all static images will be destroyed.
Definition: svimpbox.hxx:106
void SetExpandedNodeBmp(const Image &_rImg)
Definition: svimpbox.hxx:329
tools::Long m_nNextVerVisSize
Definition: svimpbox.hxx:202
void StopUserEvent()
Definition: svimpbox.cxx:3083
sal_uLong m_nVisibleCount
Definition: svimpbox.hxx:199
LBoxFlags
Definition: svimpbox.hxx:60
void EntryRemoved()
Definition: svimpbox.cxx:1624
bool IsExpandable() const
Definition: svimpbox.cxx:3061
void SetCurEntry(SvTreeListEntry *)
Definition: svimpbox.cxx:2859
static const Image & GetDefaultExpandedNodeImage()
Definition: svimpbox.cxx:3103
void ScrollToAbsPos(tools::Long nPos)
Definition: svimpbox.cxx:952
SvTreeListEntry * MakePointVisible(const Point &rPoint)
Definition: svimpbox.cxx:791
void Resize()
Definition: svimpbox.cxx:1230
virtual ~SvImpLBox()
Definition: svimpbox.cxx:114
void InitScrollBarBox()
Definition: svimpbox.cxx:1223
bool mbNoAutoCurEntry
Definition: svimpbox.hxx:197
DECL_LINK(EditTimerCall, Timer *, void)
bool ButtonDownCheckCtrl(const MouseEvent &rMEvt, SvTreeListEntry *pEntry)
Definition: svimpbox.cxx:1800
sal_Int64 WinBits
virtual bool IsEntryInView(SvTreeListEntry *pEntry) const
Definition: svimpbox.cxx:1372
void SetAnchorSelection(SvTreeListEntry *pOld, SvTreeListEntry *pNewCursor)
Definition: svimpbox.cxx:2601
void MouseButtonUp(const MouseEvent &)
Definition: svimpbox.cxx:2010
void UpdateContextBmpWidthVectorFromMovedEntry(SvTreeListEntry *pEntry)
Definition: svimpbox.cxx:181
DragDropMode
SvImpLBox(SvTreeListBox *pView, SvTreeList *, WinBits nWinStyle)
Definition: svimpbox.cxx:51
VclPtr< ScrollBarBox > m_aScrBarBox
Definition: svimpbox.hxx:96
void SetDragDropMode(DragDropMode eDDMode)
Definition: svimpbox.cxx:2788
const Image & GetDontKnowNodeBmp()
Definition: svimpbox.hxx:341
void RecalcFocusRect()
Definition: svimpbox.cxx:561
VclPtr< SvTreeListBox > pView
Definition: svimpbox.hxx:44
VclEventId
Definition: vclevent.hxx:37
void SetSelectionMode(SelectionMode eSelMode)
Definition: svimpbox.cxx:2773
bool ButtonDownCheckExpand(const MouseEvent &, SvTreeListEntry *)
Definition: svimpbox.cxx:1893
static void implInitDefaultNodeImages()
Definition: svimpbox.cxx:3092
virtual void InvalidateEntry(tools::Long nY) const
Definition: svimpbox.cxx:517
const Size & GetOutputSize() const
Definition: svimpbox.hxx:293
virtual bool KeyInput(const KeyEvent &)
Definition: svimpbox.cxx:2100
bool m_bSimpleTravel
Definition: svimpbox.hxx:201
virtual void PageDown(sal_uInt16 nDelta)
Definition: svimpbox.cxx:373
ImplSVEvent * m_nCurUserEvent
Definition: svimpbox.hxx:193
void MouseButtonDown(const MouseEvent &)
Definition: svimpbox.cxx:1918
void SetDefaultEntryExpBmp(const Image &_rImg)
Definition: svimpbox.hxx:356
virtual tools::Long GetEntryLine(const SvTreeListEntry *pEntry) const
Definition: svimpbox.cxx:1385
::vcl::AccessibleFactoryAccess m_aFactoryAccess
Definition: svimpbox.hxx:99
void EntrySelected(SvTreeListEntry *pEntry, bool bSelect)
Definition: svimpbox.cxx:1527
void DestroyAnchor() override
Definition: svimpbox.cxx:2557
Image & implGetImageLocation(const ImageType _eType)
Definition: svimpbox.hxx:324
virtual void CursorUp()
Definition: svimpbox.cxx:350
bool IsSelectable(const SvTreeListEntry *pEntry) const
Definition: svimpbox.cxx:3124
void CreateAnchor() override
Definition: svimpbox.cxx:2552
ImpLBSelEng(SvImpLBox *pImp, SvTreeListBox *pView)
Definition: svimpbox.cxx:2537
void CallEventListeners(VclEventId nEvent, void *pData=nullptr)
Definition: svimpbox.cxx:3117
Idle m_aEditIdle
Definition: svimpbox.hxx:131
bool IsLineVisible(tools::Long nY) const
Definition: svimpbox.hxx:381
SvTreeListEntry * m_pAnchor
Definition: svimpbox.hxx:89
void NotifyTabsChanged()
Definition: svimpbox.cxx:3052
bool IsNodeButton(const Point &rPosPixel, const SvTreeListEntry *pEntry) const
Definition: svimpbox.cxx:1870
VclPtr< ScrollBar > m_aHorSBar
Definition: svimpbox.hxx:95
void SetDefaultEntryColBmp(const Image &_rImg)
Definition: svimpbox.hxx:361
virtual void KeyUp(bool bPageUp)
Definition: svimpbox.cxx:446
Point m_aEditClickPos
Definition: svimpbox.hxx:130
WinBits m_nStyle
Definition: svimpbox.hxx:196
bool MouseMoveCheckCtrl(const MouseEvent &rMEvt, SvTreeListEntry const *pEntry)
Definition: svimpbox.cxx:1819
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
Definition: outdev.hxx:168
tools::Long m_nMostRight
Definition: svimpbox.hxx:123
SvTreeListEntry * GetCurEntry() const
Definition: svimpbox.hxx:267
void ShowVerSBar()
Definition: svimpbox.cxx:1297
void DeselectAtPoint(const Point &rPoint) override
Definition: svimpbox.cxx:2583
SvImpLBox * pImp
Definition: svimpbox.hxx:43
void SelAllDestrAnch(bool bSelect, bool bDestroyAnchor=true, bool bSingleSelToo=false)
Definition: svimpbox.cxx:2708
tools::Rectangle GetVisibleArea() const
Definition: svimpbox.cxx:2846
bool ButtonUpCheckCtrl(const MouseEvent &rMEvt)
Definition: svimpbox.cxx:1846
ImpLBSelEng m_aFctSet
Definition: svimpbox.hxx:120
void DestroyAnchor()
Definition: svimpbox.hxx:299
void FindMostRight_Impl(SvTreeListEntry *pParent)
Definition: svimpbox.cxx:3038
void CollapsingEntry(SvTreeListEntry *pEntry)
Definition: svimpbox.cxx:1481
virtual void PageUp(sal_uInt16 nDelta)
Definition: svimpbox.cxx:411
static oslInterlockedCount s_nImageRefCount
Definition: svimpbox.hxx:103
std::unique_ptr< comphelper::string::NaturalStringSorter > m_pStringSorter
Definition: svimpbox.hxx:133
LBoxFlags m_nFlags
Definition: svimpbox.hxx:195
void SetCursor(SvTreeListEntry *pEntry, bool bForceNoSelect=false)
Definition: svimpbox.cxx:578
void CollapseTo(SvTreeListEntry *pParentToCollapse)
Definition: svimpbox.cxx:2067
bool mbForceMakeVisible
Definition: svimpbox.hxx:128
void ShowCursor(bool bShow)
Definition: svimpbox.cxx:647
void SetMostRight(SvTreeListEntry *pEntry)
Definition: svimpbox.cxx:2975
bool IsCaptureOnButtonActive() const
Definition: svimpbox.hxx:319
tools::Rectangle GetClipRegionRect() const
Definition: svimpbox.cxx:833
SvTreeListEntry * m_pCursor
Definition: svimpbox.hxx:190
void PaintDDCursor(SvTreeListEntry *pEntry, bool bShow)
Definition: svimpbox.cxx:2808
void Invalidate()
Definition: svimpbox.cxx:2854
bool m_bUpdateMode
Definition: svimpbox.hxx:126
void TreeInserted(SvTreeListEntry *pEntry)
Definition: svimpbox.hxx:389
static Image * s_pDefExpanded
Definition: svimpbox.hxx:102
bool EntryReallyHit(SvTreeListEntry *pEntry, const Point &rPos, tools::Long nLine)
Definition: svimpbox.cxx:752
void SetForceMakeVisible(bool bEnable)
Definition: svimpbox.hxx:312
virtual SvTreeListEntry * GetClickedEntry(const Point &) const
Definition: svimpbox.cxx:730
void FindMostRight()
Definition: svimpbox.cxx:3015
void LoseFocus()
Definition: svimpbox.cxx:2509
tools::Long m_nNodeBmpWidth
Definition: svimpbox.hxx:122
constexpr tools::Long Height() const
SvLBoxTab * NextTab(SvLBoxTab const *)
Definition: svimpbox.cxx:2952
SelectionEngine m_aSelEng
Definition: svimpbox.hxx:198
bool IsVisible() const
Definition: window2.cxx:1096
Definition: image.hxx:39
void Clear()
Definition: svimpbox.cxx:230
bool m_bSubLstOpLR
Definition: svimpbox.hxx:127
short m_nVerSBarWidth
Definition: svimpbox.hxx:124
void SetUpdateMode(bool bMode)
Definition: svimpbox.cxx:2965
virtual void CursorDown()
Definition: svimpbox.cxx:330
void EntryCollapsed(SvTreeListEntry *pEntry)
Definition: svimpbox.cxx:1440
const Image & GetCollapsedNodeBmp()
Definition: svimpbox.hxx:351
SvTreeListEntry * m_pStartEntry
Definition: svimpbox.hxx:192
virtual void SyncVerThumb()
Definition: svimpbox.cxx:1361
void SetStyle(WinBits i_nWinStyle)
Definition: svimpbox.cxx:217
void FillView()
Definition: svimpbox.cxx:1252
void SetNodeBmpWidth(const Image &)
Definition: svimpbox.cxx:1507
SvLBoxButton * m_pActiveButton
Definition: svimpbox.hxx:91
void KeyLeftRight(tools::Long nDiff)
Definition: svimpbox.cxx:701
virtual void KeyDown(bool bPageDown)
Definition: svimpbox.cxx:475
Definition: timer.hxx:26
virtual Point GetEntryPosition(const SvTreeListEntry *) const
Definition: svimpbox.hxx:376
void ExpandAll()
Definition: svimpbox.cxx:2055
VclPtr< ScrollBar > m_aVerSBar
Definition: svimpbox.hxx:189
void SetNodeBmpTabDistance()
Definition: svimpbox.cxx:1513
void InvalidateEntriesFrom(tools::Long nY) const
Definition: svimpbox.cxx:507
bool m_bInVScrollHdl
Definition: svimpbox.hxx:200
void RemovingEntry(SvTreeListEntry *pEntry)
Definition: svimpbox.cxx:1554
SvTreeListEntry * m_pMostRightEntry
Definition: svimpbox.hxx:90
void EntryInserted(SvTreeListEntry *)
Definition: svimpbox.cxx:1738
void Command(const CommandEvent &rCEvt)
Definition: svimpbox.cxx:2824
const Image & GetDefaultEntryColBmp()
Definition: svimpbox.hxx:371
bool HasHorScrollBar() const
Definition: svimpbox.hxx:308
const Image & GetDefaultEntryExpBmp()
Definition: svimpbox.hxx:366
An idle is a timer to be scheduled immediately.
Definition: idle.hxx:34
virtual ~ImpLBSelEng() override
Definition: svimpbox.cxx:2543
void SetCollapsedNodeBmp(const Image &_rImg)
Definition: svimpbox.hxx:335
void DeselectAll() override
Definition: svimpbox.cxx:2591
SvTreeListEntry * m_pActiveEntry
Definition: svimpbox.hxx:92
void BeginDrag() override
Definition: svimpbox.cxx:2547
short UpdateContextBmpWidthVector(SvTreeListEntry const *pEntry, short nWidth)
Definition: svimpbox.cxx:153
std::vector< short > m_aContextBmpWidthVector
Definition: svimpbox.hxx:135