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>
30 #include <vcl/treelistbox.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
40 {
41  namespace string
42  {
43  class NaturalStringSorter;
44  }
45 }
46 
47 class ImpLBSelEng : public FunctionSet
48 {
51 
52 public:
53  ImpLBSelEng( SvImpLBox* pImp, SvTreeListBox* pView );
54  virtual ~ImpLBSelEng() override;
55  void BeginDrag() override;
56  void CreateAnchor() override;
57  void DestroyAnchor() override;
58  void SetCursorAtPoint( const Point& rPoint,
59  bool bDontSelectAtCursor=false ) override;
60  bool IsSelectionAtPoint( const Point& rPoint ) override;
61  void DeselectAtPoint( const Point& rPoint ) override;
62  void DeselectAll() override;
63 };
64 
65 // Flags for nFlag
66 enum class LBoxFlags {
67  NONE = 0x0000,
68  InScrolling = 0x0001,
69  DeselectAll = 0x0002,
70  StartEditTimer = 0x0004, // MAC only
71  IgnoreSelect = 0x0008,
72  InResize = 0x0010,
73  RemovedEntryInvisible = 0x0020,
74  RemovedRecalcMostRight = 0x0040,
75  IgnoreChangedTabs = 0x0080,
76  InPaint = 0x0100,
77  EndScrollSetVisSize = 0x0200,
78  Filling = 0x0400,
79 };
80 namespace o3tl
81 {
82  template<> struct typed_flags<LBoxFlags> : is_typed_flags<LBoxFlags, 0x07ff> {};
83 }
84 
85 #define NODE_BMP_TABDIST_NOTVALID -2000000
86 #define FIRST_ENTRY_TAB 1
87 
88 class SvImpLBox
89 {
90 friend class ImpLBSelEng;
91 friend class SvTreeListBox;
92 friend class SalInstanceTreeView;
93 friend class IconView;
94 private:
101 
104 
107 
110  static oslInterlockedCount s_nImageRefCount;
111 
112  // Node Bitmaps
113  enum class ImageType
114  {
115  NodeExpanded = 0, // node is expanded ( usually a bitmap showing a minus )
116  NodeCollapsed, // node is collapsed ( usually a bitmap showing a plus )
117  NodeDontKnow, // don't know the node state
118  EntryDefExpanded, // default for expanded entries
119  EntryDefCollapsed, // default for collapsed entries
120  LAST = EntryDefCollapsed
121  };
122 
123  // all our images
126 
130 
134  sal_uInt16 m_nCurTabPos;
135 
136  bool m_bUpdateMode : 1;
138  bool m_bSubLstOpRet : 1; // open/close sublist with return/enter, defaulted with false
139  bool m_bSubLstOpLR : 1; // open/close sublist with cursor left/right, defaulted with false
140  bool m_bSubLstOpDblClick : 1; // open/close sublist with mouse double click, defaulted with true
145 
148 
149  std::unique_ptr<comphelper::string::NaturalStringSorter> m_pStringSorter;
150 
151  std::vector< short > m_aContextBmpWidthVector;
152 
153  DECL_LINK(EditTimerCall, Timer *, void);
154 
155  DECL_LINK( BeginDragHdl, Timer*, void );
156 
157  void InvalidateEntriesFrom( long nY ) const;
158  bool IsLineVisible( long nY ) const;
159  void KeyLeftRight( long nDiff );
160 
161  void DrawNet(vcl::RenderContext& rRenderContext);
162 
163  // ScrollBar-Handler
164  DECL_LINK( ScrollUpDownHdl, ScrollBar*, void );
165  DECL_LINK( ScrollLeftRightHdl, ScrollBar*, void );
166  DECL_LINK( EndScrollHdl, ScrollBar*, void );
167 
168  void SetNodeBmpWidth( const Image& );
169  void SetNodeBmpTabDistance();
170 
171  // Selection-Engine
172  SvTreeListEntry* MakePointVisible( const Point& rPoint );
173 
175  SvTreeListEntry* pNewCursor );
176  void BeginDrag();
177  bool ButtonDownCheckCtrl( const MouseEvent& rMEvt, SvTreeListEntry* pEntry );
178  bool MouseMoveCheckCtrl( const MouseEvent& rMEvt, SvTreeListEntry const * pEntry );
179  bool ButtonUpCheckCtrl( const MouseEvent& rMEvt );
181 
182  bool EntryReallyHit(SvTreeListEntry* pEntry, const Point& rPos, long nLine);
183  void InitScrollBarBox();
184  SvLBoxTab* NextTab( SvLBoxTab const * );
185 
186  bool SetMostRight( SvTreeListEntry* pEntry );
187  void FindMostRight( SvTreeListEntry* pParent, SvTreeListEntry* EntryToIgnore );
188  void FindMostRight_Impl( SvTreeListEntry* pParent,SvTreeListEntry* EntryToIgnore );
189  void NotifyTabsChanged();
190 
191  // if element at cursor can be expanded in general
192  bool IsExpandable() const;
193 
194  static void implInitDefaultNodeImages();
195 
196  void UpdateStringSorter();
197 
198  short UpdateContextBmpWidthVector( SvTreeListEntry const * pEntry, short nWidth );
199  void UpdateContextBmpWidthMax( SvTreeListEntry const * pEntry );
201 
202  void CalcCellFocusRect( SvTreeListEntry const * pEntry, tools::Rectangle& rRect );
203 
205 
206  void ExpandAll();
207  void CollapseTo(SvTreeListEntry* pParentToCollapse);
208 
209 protected:
218  bool mbNoAutoCurEntry; // disable the behavior of automatically selecting a "CurEntry" upon painting the control
220  sal_uLong m_nVisibleCount; // Number of lines in control
221  bool m_bInVScrollHdl : 1;
222  bool m_bSimpleTravel : 1; // is true if SelectionMode::Single
224  long m_nNodeBmpTabDistance; // typical smaller than 0
225 
226  virtual long GetEntryLine( SvTreeListEntry* pEntry ) const;
227  virtual void CursorDown();
228  virtual void CursorUp();
229  virtual void PageDown( sal_uInt16 nDelta );
230  virtual void PageUp( sal_uInt16 nDelta );
231  // set Thumb to FirstEntryToDraw
232  virtual void SyncVerThumb();
233  virtual void AdjustScrollBars( Size& rSize );
234  virtual void InvalidateEntry( long nY ) const;
235 
237  void SetCursor( SvTreeListEntry* pEntry, bool bForceNoSelect = false );
238  void BeginScroll();
239  void EndScroll();
240  void PositionScrollBars( Size& rOSize, sal_uInt16 nMask );
241  void FindMostRight( SvTreeListEntry const * EntryToIgnore );
242  void FillView();
243  void ShowVerSBar();
244  void StopUserEvent();
245 
246  DECL_LINK( MyUserEvent, void*, void);
247 
248 public:
249  SvImpLBox( SvTreeListBox* pView, SvTreeList*, WinBits nWinStyle );
250  virtual ~SvImpLBox();
251 
252  void Clear();
253  void SetStyle( WinBits i_nWinStyle );
254  void SetNoAutoCurEntry( bool b );
255  void SetModel( SvTreeList* pModel ) { m_pTree = pModel;}
256 
258  void RemovingEntry( SvTreeListEntry* pEntry );
259  void EntryRemoved();
260  void MovingEntry( SvTreeListEntry* pEntry );
261  void EntryMoved( SvTreeListEntry* pEntry );
262  void TreeInserted( SvTreeListEntry* pEntry );
263 
264  void EntryExpanded( SvTreeListEntry* pEntry );
265  void EntryCollapsed( SvTreeListEntry* pEntry );
266  void CollapsingEntry( SvTreeListEntry* pEntry );
267  void EntrySelected( SvTreeListEntry* pEntry, bool bSelect );
268 
269  virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect);
270  void MouseButtonDown( const MouseEvent& );
271  void MouseButtonUp( const MouseEvent& );
272  void MouseMove( const MouseEvent&);
273  virtual bool KeyInput( const KeyEvent& );
274  void Resize();
275  void GetFocus();
276  void LoseFocus();
277  virtual void UpdateAll( bool bInvalidateCompleteView );
278  void SetEntryHeight();
280  void RecalcFocusRect();
281 
282  void SelectEntry( SvTreeListEntry* pEntry, bool bSelect );
283  void SetDragDropMode( DragDropMode eDDMode );
284  void SetSelectionMode( SelectionMode eSelMode );
285 
287  virtual bool IsEntryInView( SvTreeListEntry* pEntry ) const;
288  virtual SvTreeListEntry* GetEntry( const Point& rPos ) const;
289  // returns last entry, if Pos below last entry
290  virtual SvTreeListEntry* GetClickedEntry( const Point& ) const;
291  SvTreeListEntry* GetCurEntry() const { return m_pCursor; }
292  void SetCurEntry( SvTreeListEntry* );
293  virtual Point GetEntryPosition( SvTreeListEntry* ) const;
294  void MakeVisible( SvTreeListEntry* pEntry, bool bMoveToTop = false );
295  void ScrollToAbsPos( long nPos );
296 
297  void PaintDDCursor(SvTreeListEntry* pEntry, bool bShow);
298 
299  // Images
300  inline Image& implGetImageLocation( const ImageType _eType );
301 
302  inline void SetExpandedNodeBmp( const Image& _rImg );
303  inline void SetCollapsedNodeBmp( const Image& _rImg );
304 
305  inline const Image& GetExpandedNodeBmp( );
306  inline const Image& GetCollapsedNodeBmp( );
307  inline const Image& GetDontKnowNodeBmp( );
308 
309  inline void SetDefaultEntryExpBmp( const Image& _rImg );
310  inline void SetDefaultEntryColBmp( const Image& _rImg );
311  inline const Image& GetDefaultEntryExpBmp( );
312  inline const Image& GetDefaultEntryColBmp( );
313 
314  static const Image& GetDefaultExpandedNodeImage( );
315  static const Image& GetDefaultCollapsedNodeImage( );
316 
317  const Size& GetOutputSize() const { return m_aOutputSize;}
318  virtual void KeyUp( bool bPageUp );
319  virtual void KeyDown( bool bPageDown );
320  void Command( const CommandEvent& rCEvt );
321 
322  void Invalidate();
323  void DestroyAnchor() { m_pAnchor=nullptr; m_aSelEng.Reset(); }
324  void SelAllDestrAnch( bool bSelect, bool bDestroyAnchor = true, bool bSingleSelToo = false );
325  void ShowCursor( bool bShow );
326 
327  bool RequestHelp( const HelpEvent& rHEvt );
328  void EndSelection();
329  bool IsNodeButton( const Point& rPosPixel, SvTreeListEntry* pEntry ) const;
330  void EnableAsyncDrag( bool b ) { m_bAsyncBeginDrag = b; }
331  void SetUpdateMode( bool bMode );
332  bool GetUpdateMode() const { return m_bUpdateMode; }
334  bool HasHorScrollBar() const { return m_aHorSBar->IsVisible(); }
335  void ShowFocusRect( const SvTreeListEntry* pEntry );
336  void CallEventListeners( VclEventId nEvent, void* pData = nullptr );
337 
339  bool IsCellFocusEnabled() const { return m_bIsCellFocusEnabled; }
341  bool SetCurrentTabPos( sal_uInt16 _nNewPos );
342  sal_uInt16 GetCurrentTabPos() const { return m_nCurTabPos; }
343 
344  bool IsSelectable( const SvTreeListEntry* pEntry );
345  void SetForceMakeVisible(bool bEnable) { mbForceMakeVisible = bEnable; }
346 };
347 
349 {
350  return m_aNodeAndEntryImages[_eType];
351 }
352 
353 inline void SvImpLBox::SetExpandedNodeBmp( const Image& rImg )
354 {
356  SetNodeBmpWidth( rImg );
357 }
358 
359 inline void SvImpLBox::SetCollapsedNodeBmp( const Image& rImg )
360 {
362  SetNodeBmpWidth( rImg );
363 }
364 
366 {
368 }
369 
371 {
373 }
374 
376 {
378 }
379 
380 inline void SvImpLBox::SetDefaultEntryExpBmp( const Image& _rImg )
381 {
383 }
384 
385 inline void SvImpLBox::SetDefaultEntryColBmp( const Image& _rImg )
386 {
388 }
389 
391 {
393 }
394 
396 {
398 }
399 
401 {
402  return Point( 0, GetEntryLine( pEntry ) );
403 }
404 
405 inline bool SvImpLBox::IsLineVisible( long nY ) const
406 {
407  bool bRet = true;
408  if ( nY < 0 || nY >= m_aOutputSize.Height() )
409  bRet = false;
410  return bRet;
411 }
412 
413 inline void SvImpLBox::TreeInserted( SvTreeListEntry* pInsTree )
414 {
415  EntryInserted( pInsTree );
416 }
417 
418 #endif // INCLUDED_VCL_SOURCE_INC_SVIMPBOX_HXX
419 
420 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
void EntryMoved(SvTreeListEntry *pEntry)
Definition: svimpbox.cxx:1765
void MovingEntry(SvTreeListEntry *pEntry)
Definition: svimpbox.cxx:1735
bool m_bContextMenuHandling
Definition: svimpbox.hxx:141
void SetCursorAtPoint(const Point &rPoint, bool bDontSelectAtCursor=false) override
Definition: svimpbox.cxx:2640
bool RequestHelp(const HelpEvent &rHEvt)
Definition: svimpbox.cxx:3124
void SelectEntry(SvTreeListEntry *pEntry, bool bSelect)
Definition: svimpbox.cxx:2610
virtual void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect)
Definition: svimpbox.cxx:870
bool GetUpdateMode() const
Definition: svimpbox.hxx:332
void MouseMove(const MouseEvent &)
Definition: svimpbox.cxx:2091
virtual void AdjustScrollBars(Size &rSize)
Definition: svimpbox.cxx:1164
SvLBoxTab * m_pActiveTab
Definition: svimpbox.hxx:100
void SetNoAutoCurEntry(bool b)
Definition: svimpbox.cxx:242
short m_nHorSBarHeight
Definition: svimpbox.hxx:133
const Image & GetExpandedNodeBmp()
Definition: svimpbox.hxx:370
virtual SvTreeListEntry * GetEntry(const Point &rPos) const
Definition: svimpbox.cxx:802
long Height() const
Size m_aOutputSize
Definition: svimpbox.hxx:215
virtual void UpdateAll(bool bInvalidateCompleteView)
Definition: svimpbox.cxx:696
void UpdateStringSorter()
Definition: svimpbox.cxx:130
sal_uIntPtr sal_uLong
void SetEntryHeight()
Definition: svimpbox.cxx:1459
void EndScroll()
Definition: svimpbox.cxx:3062
void ScrollToAbsPos(long nPos)
Definition: svimpbox.cxx:986
void BeginDrag()
Definition: svimpbox.cxx:2883
void EntryExpanded(SvTreeListEntry *pEntry)
Definition: svimpbox.cxx:1481
void MakeVisible(SvTreeListEntry *pEntry, bool bMoveToTop=false)
Definition: svimpbox.cxx:946
void DrawNet(vcl::RenderContext &rRenderContext)
Definition: svimpbox.cxx:1015
void GetFocus()
Definition: svimpbox.cxx:2566
void PositionScrollBars(Size &rOSize, sal_uInt16 nMask)
Definition: svimpbox.cxx:1132
void Reset()
Definition: seleng.cxx:340
static Image * s_pDefCollapsed
Definition: svimpbox.hxx:108
SvTreeList * m_pTree
Definition: svimpbox.hxx:95
VclPtr< SvTreeListBox > m_pView
Definition: svimpbox.hxx:210
bool IsSelectionAtPoint(const Point &rPoint) override
Definition: svimpbox.cxx:2656
static const Image & GetDefaultCollapsedNodeImage()
Definition: svimpbox.cxx:3368
SelectionMode
Definition: vclenum.hxx:26
void SetModel(SvTreeList *pModel)
Definition: svimpbox.hxx:255
void UpdateContextBmpWidthMax(SvTreeListEntry const *pEntry)
Definition: svimpbox.cxx:202
o3tl::enumarray< ImageType, Image > m_aNodeAndEntryImages
Definition: svimpbox.hxx:125
ImageType
When 0 all static images will be destroyed.
Definition: svimpbox.hxx:113
void SetExpandedNodeBmp(const Image &_rImg)
Definition: svimpbox.hxx:353
void StopUserEvent()
Definition: svimpbox.cxx:3321
sal_uLong m_nVisibleCount
Definition: svimpbox.hxx:220
LBoxFlags
Definition: svimpbox.hxx:66
void EntryRemoved()
Definition: svimpbox.cxx:1686
bool IsExpandable() const
Definition: svimpbox.cxx:3299
void SetCurEntry(SvTreeListEntry *)
Definition: svimpbox.cxx:3085
static const Image & GetDefaultExpandedNodeImage()
Definition: svimpbox.cxx:3361
SvTreeListEntry * MakePointVisible(const Point &rPoint)
Definition: svimpbox.cxx:818
void Resize()
Definition: svimpbox.cxx:1292
virtual ~SvImpLBox()
Definition: svimpbox.cxx:115
sal_uInt16 m_nCurTabPos
Definition: svimpbox.hxx:134
void InitScrollBarBox()
Definition: svimpbox.cxx:1285
bool mbNoAutoCurEntry
Definition: svimpbox.hxx:218
DECL_LINK(EditTimerCall, Timer *, void)
bool m_bAsyncBeginDrag
Definition: svimpbox.hxx:137
bool ButtonDownCheckCtrl(const MouseEvent &rMEvt, SvTreeListEntry *pEntry)
Definition: svimpbox.cxx:1862
sal_Int64 WinBits
virtual bool IsEntryInView(SvTreeListEntry *pEntry) const
Definition: svimpbox.cxx:1434
void SetAnchorSelection(SvTreeListEntry *pOld, SvTreeListEntry *pNewCursor)
Definition: svimpbox.cxx:2682
void MouseButtonUp(const MouseEvent &)
Definition: svimpbox.cxx:2078
void UpdateContextBmpWidthVectorFromMovedEntry(SvTreeListEntry *pEntry)
Definition: svimpbox.cxx:180
DragDropMode
SvImpLBox(SvTreeListBox *pView, SvTreeList *, WinBits nWinStyle)
Definition: svimpbox.cxx:48
bool EntryReallyHit(SvTreeListEntry *pEntry, const Point &rPos, long nLine)
Definition: svimpbox.cxx:779
VclPtr< ScrollBarBox > m_aScrBarBox
Definition: svimpbox.hxx:103
Idle m_aAsyncBeginDragIdle
Definition: svimpbox.hxx:128
void SetDragDropMode(DragDropMode eDDMode)
Definition: svimpbox.cxx:2869
const Image & GetDontKnowNodeBmp()
Definition: svimpbox.hxx:365
void RecalcFocusRect()
Definition: svimpbox.cxx:583
bool SetCurrentTabPos(sal_uInt16 _nNewPos)
Definition: svimpbox.cxx:3382
VclPtr< SvTreeListBox > pView
Definition: svimpbox.hxx:50
VclEventId
Definition: vclevent.hxx:41
void InvalidateEntriesFrom(long nY) const
Definition: svimpbox.cxx:529
void SetSelectionMode(SelectionMode eSelMode)
Definition: svimpbox.cxx:2854
bool ButtonDownCheckExpand(const MouseEvent &, SvTreeListEntry *)
Definition: svimpbox.cxx:1955
bool m_bIsCellFocusEnabled
Definition: svimpbox.hxx:142
static void implInitDefaultNodeImages()
Definition: svimpbox.cxx:3350
const Size & GetOutputSize() const
Definition: svimpbox.hxx:317
virtual bool KeyInput(const KeyEvent &)
Definition: svimpbox.cxx:2143
bool m_bSimpleTravel
Definition: svimpbox.hxx:222
virtual void PageDown(sal_uInt16 nDelta)
Definition: svimpbox.cxx:387
ImplSVEvent * m_nCurUserEvent
Definition: svimpbox.hxx:214
void MouseButtonDown(const MouseEvent &)
Definition: svimpbox.cxx:1980
void SetDefaultEntryExpBmp(const Image &_rImg)
Definition: svimpbox.hxx:380
::vcl::AccessibleFactoryAccess m_aFactoryAccess
Definition: svimpbox.hxx:106
void EntrySelected(SvTreeListEntry *pEntry, bool bSelect)
Definition: svimpbox.cxx:1589
void DestroyAnchor() override
Definition: svimpbox.cxx:2635
Image & implGetImageLocation(const ImageType _eType)
Definition: svimpbox.hxx:348
void EndSelection()
Definition: svimpbox.cxx:3191
virtual void CursorUp()
Definition: svimpbox.cxx:365
bool m_bAreChildrenTransient
Definition: svimpbox.hxx:143
void CreateAnchor() override
Definition: svimpbox.cxx:2630
ImpLBSelEng(SvImpLBox *pImp, SvTreeListBox *pView)
Definition: svimpbox.cxx:2615
void CallEventListeners(VclEventId nEvent, void *pData=nullptr)
Definition: svimpbox.cxx:3375
long m_nNextVerVisSize
Definition: svimpbox.hxx:223
Idle m_aEditIdle
Definition: svimpbox.hxx:147
a client for the accessibility implementations which have been outsourced from the main vcl/svtools l...
void FindMostRight_Impl(SvTreeListEntry *pParent, SvTreeListEntry *EntryToIgnore)
Definition: svimpbox.cxx:3273
SvTreeListEntry * m_pAnchor
Definition: svimpbox.hxx:96
long m_nNodeBmpWidth
Definition: svimpbox.hxx:131
void NotifyTabsChanged()
Definition: svimpbox.cxx:3290
VclPtr< ScrollBar > m_aHorSBar
Definition: svimpbox.hxx:102
void SetDefaultEntryColBmp(const Image &_rImg)
Definition: svimpbox.hxx:385
virtual void KeyUp(bool bPageUp)
Definition: svimpbox.cxx:462
Point m_aEditClickPos
Definition: svimpbox.hxx:146
WinBits m_nStyle
Definition: svimpbox.hxx:217
bool MouseMoveCheckCtrl(const MouseEvent &rMEvt, SvTreeListEntry const *pEntry)
Definition: svimpbox.cxx:1881
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
Definition: outdev.hxx:304
bool IsCellFocusEnabled() const
Enables, that one cell of a tablistbox entry can be focused.
Definition: svimpbox.hxx:339
void ShowFocusRect(const SvTreeListEntry *pEntry)
Definition: svimpbox.cxx:3330
bool IsNodeButton(const Point &rPosPixel, SvTreeListEntry *pEntry) const
Definition: svimpbox.cxx:1932
SvTreeListEntry * GetCurEntry() const
Definition: svimpbox.hxx:291
void ShowVerSBar()
Definition: svimpbox.cxx:1359
void DeselectAtPoint(const Point &rPoint) override
Definition: svimpbox.cxx:2664
SvImpLBox * pImp
Definition: svimpbox.hxx:49
void SelAllDestrAnch(bool bSelect, bool bDestroyAnchor=true, bool bSingleSelToo=false)
Definition: svimpbox.cxx:2789
tools::Rectangle GetVisibleArea() const
Definition: svimpbox.cxx:3072
bool ButtonUpCheckCtrl(const MouseEvent &rMEvt)
Definition: svimpbox.cxx:1908
ImpLBSelEng m_aFctSet
Definition: svimpbox.hxx:127
void DestroyAnchor()
Definition: svimpbox.hxx:323
void CollapsingEntry(SvTreeListEntry *pEntry)
Definition: svimpbox.cxx:1543
virtual void PageUp(sal_uInt16 nDelta)
Definition: svimpbox.cxx:426
virtual Point GetEntryPosition(SvTreeListEntry *) const
Definition: svimpbox.hxx:400
static oslInterlockedCount s_nImageRefCount
Definition: svimpbox.hxx:110
std::unique_ptr< comphelper::string::NaturalStringSorter > m_pStringSorter
Definition: svimpbox.hxx:149
bool m_bSubLstOpDblClick
Definition: svimpbox.hxx:140
LBoxFlags m_nFlags
Definition: svimpbox.hxx:216
void SetCursor(SvTreeListEntry *pEntry, bool bForceNoSelect=false)
Definition: svimpbox.cxx:603
void CollapseTo(SvTreeListEntry *pParentToCollapse)
Definition: svimpbox.cxx:2110
bool mbForceMakeVisible
Definition: svimpbox.hxx:144
void FindMostRight(SvTreeListEntry *pParent, SvTreeListEntry *EntryToIgnore)
Definition: svimpbox.cxx:3265
void ShowCursor(bool bShow)
Definition: svimpbox.cxx:672
tools::Rectangle GetClipRegionRect() const
Definition: svimpbox.cxx:860
SvTreeListEntry * m_pCursor
Definition: svimpbox.hxx:212
void PaintDDCursor(SvTreeListEntry *pEntry, bool bShow)
Definition: svimpbox.cxx:2904
void Invalidate()
Definition: svimpbox.cxx:3080
bool m_bUpdateMode
Definition: svimpbox.hxx:136
void TreeInserted(SvTreeListEntry *pEntry)
Definition: svimpbox.hxx:413
static Image * s_pDefExpanded
Definition: svimpbox.hxx:109
void EnableAsyncDrag(bool b)
Definition: svimpbox.hxx:330
void SetForceMakeVisible(bool bEnable)
Definition: svimpbox.hxx:345
virtual SvTreeListEntry * GetClickedEntry(const Point &) const
Definition: svimpbox.cxx:757
void LoseFocus()
Definition: svimpbox.cxx:2587
SvLBoxTab * NextTab(SvLBoxTab const *)
Definition: svimpbox.cxx:3178
SelectionEngine m_aSelEng
Definition: svimpbox.hxx:219
void CalcCellFocusRect(SvTreeListEntry const *pEntry, tools::Rectangle &rRect)
Definition: svimpbox.cxx:216
bool IsVisible() const
Definition: window2.cxx:1091
long m_nNodeBmpTabDistance
Definition: svimpbox.hxx:224
Definition: image.hxx:40
bool IsSelectable(const SvTreeListEntry *pEntry)
Definition: svimpbox.cxx:3397
void Clear()
Definition: svimpbox.cxx:248
bool m_bSubLstOpLR
Definition: svimpbox.hxx:139
long m_nMostRight
Definition: svimpbox.hxx:132
short m_nVerSBarWidth
Definition: svimpbox.hxx:133
void SetUpdateMode(bool bMode)
Definition: svimpbox.cxx:3197
virtual void CursorDown()
Definition: svimpbox.cxx:345
void EntryCollapsed(SvTreeListEntry *pEntry)
Definition: svimpbox.cxx:1502
virtual void InvalidateEntry(long nY) const
Definition: svimpbox.cxx:539
bool IsLineVisible(long nY) const
Definition: svimpbox.hxx:405
bool AreChildrenTransient() const
Definition: svimpbox.hxx:204
const Image & GetCollapsedNodeBmp()
Definition: svimpbox.hxx:375
SvTreeListEntry * m_pStartEntry
Definition: svimpbox.hxx:213
virtual long GetEntryLine(SvTreeListEntry *pEntry) const
Definition: svimpbox.cxx:1447
virtual void SyncVerThumb()
Definition: svimpbox.cxx:1423
void SetStyle(WinBits i_nWinStyle)
Definition: svimpbox.cxx:235
void FillView()
Definition: svimpbox.cxx:1314
void SetNodeBmpWidth(const Image &)
Definition: svimpbox.cxx:1569
SvLBoxButton * m_pActiveButton
Definition: svimpbox.hxx:98
Point m_aAsyncBeginDragPos
Definition: svimpbox.hxx:129
virtual void KeyDown(bool bPageDown)
Definition: svimpbox.cxx:494
Definition: timer.hxx:26
bool SetMostRight(SvTreeListEntry *pEntry)
Definition: svimpbox.cxx:3207
void ExpandAll()
Definition: svimpbox.cxx:2098
void BeginScroll()
Definition: svimpbox.cxx:3054
VclPtr< ScrollBar > m_aVerSBar
Definition: svimpbox.hxx:211
bool m_bSubLstOpRet
Definition: svimpbox.hxx:138
void SetNodeBmpTabDistance()
Definition: svimpbox.cxx:1575
void EnableCellFocus()
Definition: svimpbox.hxx:340
SvTreeListEntry * GetCurrentEntry() const
Definition: svimpbox.hxx:286
bool m_bInVScrollHdl
Definition: svimpbox.hxx:221
sal_uInt16 GetCurrentTabPos() const
Definition: svimpbox.hxx:342
void RemovingEntry(SvTreeListEntry *pEntry)
Definition: svimpbox.cxx:1616
SvTreeListEntry * m_pMostRightEntry
Definition: svimpbox.hxx:97
void EntryInserted(SvTreeListEntry *)
Definition: svimpbox.cxx:1800
void Command(const CommandEvent &rCEvt)
Definition: svimpbox.cxx:2920
const Image & GetDefaultEntryColBmp()
Definition: svimpbox.hxx:395
bool HasHorScrollBar() const
Definition: svimpbox.hxx:334
const Image & GetDefaultEntryExpBmp()
Definition: svimpbox.hxx:390
An idle is a timer to be scheduled immediately.
Definition: idle.hxx:30
virtual ~ImpLBSelEng() override
Definition: svimpbox.cxx:2621
void SetCollapsedNodeBmp(const Image &_rImg)
Definition: svimpbox.hxx:359
void DeselectAll() override
Definition: svimpbox.cxx:2672
SvTreeListEntry * m_pActiveEntry
Definition: svimpbox.hxx:99
void BeginDrag() override
Definition: svimpbox.cxx:2625
short UpdateContextBmpWidthVector(SvTreeListEntry const *pEntry, short nWidth)
Definition: svimpbox.cxx:152
void KeyLeftRight(long nDiff)
Definition: svimpbox.cxx:727
std::vector< short > m_aContextBmpWidthVector
Definition: svimpbox.hxx:151