4#include "GUIDefinitions.h"
5#include "GUITreeCtrlBase.h"
11 class CGUIMenuItemBase;
12 class CGUIDialogAddSNAPNodeDisplay;
13 class CGUIPaneExampleSNAP;
17 typedef struct sMatchResult
20 sMatchResult(int32_t _i32Start, int32_t _i32End, int32_t _i32AliasIndex)
21 : i32Start(_i32Start), i32End(_i32End), i32AliasIndex(_i32AliasIndex){}
25 int32_t i32AliasIndex;
28 class FL_EXPORT CGUITreeCtrl :
public CGUITreeCtrlBase
31 CGUITreeCtrl() noexcept;
32 CGUITreeCtrl(const CGUITreeCtrl& rh);
33 virtual ~CGUITreeCtrl();
44 virtual
bool RecursiveExpand(HTREEITEM hItem, UINT nCode,
bool bWriteFileSystem = true) override;
53 virtual
void GetVerticalRange(HTREEITEM hItemRangeStart, HTREEITEM hItemRangeEnd, std::set<HTREEITEM>& setOut);
59 virtual
void ClearMultiselectItems();
68 virtual HTREEITEM FindHandle(
void* pData, HTREEITEM hParent = 0);
77 virtual HTREEITEM FindHandle(const Base::CFLString<
wchar_t>& strPath, HTREEITEM hParent = 0);
85 virtual HTREEITEM FindHandleByFullPath(const Base::CFLString<
wchar_t>& strFullPath);
96 virtual const CResult SortTreeItem(HTREEITEM hItem = NULL, ESortOrder eSortOrder = ESortOrder_Ascending);
106 virtual const CResult SetRootItemName(const Base::CFLString<
wchar_t>& strRootItemName);
114 virtual const Base::CFLString<
wchar_t>& GetRootItemName();
123 virtual const CResult EnableDragAndDropItem(
bool bEnable);
130 virtual
bool IsDragAndDropItemEnabled();
138 virtual const CResult SetDefaultImageList();
140 virtual
bool SearchNext();
141 virtual
bool SearchPrev();
142 virtual
bool SearchFirst();
143 virtual
bool SearchLast();
145 virtual
void SetParentPane(CGUIPaneBase* pParentPane);
146 virtual CGUIPaneBase* GetParentPane() const;
148 virtual
void SetParentPaneType(EPaneType eParentPaneType);
149 virtual EPaneType GetParentPaneType() const;
151 virtual
void EnableAutoSaveExpandStatus(
bool bEnable);
152 virtual
bool IsAutoSaveExpandStatusEnabled() const;
154 virtual
void SetFoundIndex(int32_t i32Idx);
155 virtual int32_t GetFoundIndex();
156 virtual int32_t GetFoundIndex(HTREEITEM hItem);
157 virtual int32_t GetFoundCount();
158 virtual HTREEITEM GetFoundItem(int32_t i32Index);
160 virtual
void EnableItem(CGUIMenuItemBase* pMenuItem,
bool bEnable);
162 virtual HTREEITEM MoveTreeItem(HTREEITEM hItem, HTREEITEM hItemTo, HTREEITEM hItemPos = TVI_LAST);
165 DECLARE_MESSAGE_MAP()
166 virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);
167 afx_msg
void OnNMCustomdraw(NMHDR* pNMHDR, LRESULT* pResult);
168 afx_msg
void OnNMClick(NMHDR* pNMHDR, LRESULT* pResult);
169 afx_msg
void OnLButtonDblClk(UINT nFlags, CPoint point);
170 afx_msg
void OnLButtonDown(UINT nFlags, CPoint point);
171 afx_msg
void OnLButtonUp(UINT nFlags, CPoint point);
172 afx_msg
void OnMouseMove(UINT nFlags, CPoint point);
173 afx_msg HBRUSH CtlColor(CDC* , UINT );
174 afx_msg BOOL OnEraseBkgnd(CDC* pDC);
175 afx_msg
void OnTvnItemexpanded(NMHDR* pNMHDR, LRESULT* pResult);
176 afx_msg
void OnTvnSelchanging(NMHDR* pNMHDR, LRESULT* pResult);
177 afx_msg
void OnTvnSelchanged(NMHDR* pNMHDR, LRESULT* pResult);
178 afx_msg
void OnTvnItemChanged(NMHDR* pNMHDR, LRESULT* pResult);
179 afx_msg
void OnTvnItemChanging(NMHDR* pNMHDR, LRESULT* pResult);
180 afx_msg
void OnTvnBegindrag(NMHDR* pNMHDR, LRESULT* pResult);
181 afx_msg
void OnTvnBeginrdrag(NMHDR* pNMHDR, LRESULT* pResult);
182 afx_msg
void OnTvnDeleteitem(NMHDR* pNMHDR, LRESULT* pResult);
183 afx_msg BOOL OnMouseWheel(UINT nFlags,
short zDelta, CPoint pt);
185 afx_msg LRESULT OnCancelAddNode(WPARAM wParam, LPARAM lParam);
186 afx_msg LRESULT OnUnselectItem(WPARAM wParam, LPARAM lParam);
188 virtual BOOL PreTranslateMessage(MSG* pMsg);
191 virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
194 CGUIMenuItemBase* GetSNAPNodePropertyMenu(HTREEITEM hItem);
195 virtual
void InternalSortTreeItem(HTREEITEM hItem, ESortOrder eSortOrder,
bool bAllowRoot = false);
196 static
int CALLBACK CompareDesendingProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);
197 static
int CALLBACK CompareAscendingProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);
200 Base::CFLString<
wchar_t> m_strRootItemName;
201 int32_t m_i32FoundIdx;
202 std::vector<std::pair<HTREEITEM, std::vector<SMatchResult>>>& m_vctFound;
203 std::set<CGUIMenuItemBase*>& m_setMenuItemOnFavorite;
204 std::set<CGUIMenuItemBase*>& m_setMenuItemHided;
205 HTREEITEM m_hItemVertStart;
206 std::set<HTREEITEM>& m_setMultiSelect;
207 CImageList m_imgListDefault;
210 bool m_bUnselectItem;
211 bool m_bEnableDragAndDropItem;
212 bool m_bEnableAutoSaveTreeItemExpandStatus;
214 HTREEITEM m_hItemUnselect;
215 HTREEITEM m_hItemLButtonDown;
216 EPaneType m_eParentPaneType;
219 CGUIDialogAddSNAPNodeDisplay* m_pDlgAddNode;
220 CGUIPaneBase* m_pParentPane;
222 friend class CGUIManager;
223 friend class CGUIPaneMenu;
224 friend class CGUIPaneExampleSNAP;
225 friend class CGUITreeCtrlSearchUtils;
Definition D2DObject.h:12