FLImaging 6.5.8.1
GUITreeContainer.h
1#pragma once
10#include "GUIDefinitions.h"
11#include <unordered_map>
12
14namespace FLImaging
15{
17 namespace GUI
18 {
19 class CGUITreeContainerItem;
20 class CGUIMenuItemBase;
21
22 enum ETreeContainerItemSortPriority : uint32_t
23 {
24 ETreeContainerItemSortPriority_Default = 0xffff,
25 ETreeContainerItemSortPriority_0 = 0,
26 ETreeContainerItemSortPriority_1 = 1,
27 ETreeContainerItemSortPriority_2 = 2,
28 ETreeContainerItemSortPriority_3 = 3,
29 ETreeContainerItemSortPriority_4 = 4,
30 ETreeContainerItemSortPriority_5 = 5,
31 ETreeContainerItemSortPriority_6 = 6,
32 ETreeContainerItemSortPriority_7 = 7,
33 ETreeContainerItemSortPriority_8 = 8,
34 ETreeContainerItemSortPriority_9 = 9,
35 ETreeContainerItemSortPriority_10 = 10,
36 ETreeContainerItemSortPriority_11 = 11,
37 ETreeContainerItemSortPriority_12 = 12,
38 ETreeContainerItemSortPriority_13 = 13,
39 ETreeContainerItemSortPriority_14 = 14,
40 ETreeContainerItemSortPriority_15 = 15,
41 ETreeContainerItemSortPriority_16 = 16,
42 ETreeContainerItemSortPriority_17 = 17,
43 ETreeContainerItemSortPriority_18 = 18,
44 ETreeContainerItemSortPriority_19 = 19,
45 ETreeContainerItemSortPriority_20 = 20,
46 ETreeContainerItemSortPriority_Folder = 21,
47 };
48
56 class FL_EXPORT CGUITreeContainer : public Base::CFLBase
57 {
58 public:
67
78
89
98
114 virtual const CResult Assign(const CGUITreeContainer& rhs);
115
129 virtual const CResult Assign(const CGUITreeContainer* pRhs);
130
144 virtual const CResult AssignShallowCopy(const CGUITreeContainer& rhs);
145
159 virtual const CResult AssignShallowCopy(const CGUITreeContainer* pRhs);
160
174 virtual const CResult Clear(bool bDestroyItem);
175
176
188 virtual void SetRootItemText(const Base::CFLString<wchar_t>& strRoot);
189
202
214 virtual void SetRootItemIcon(ETreeItemIcon eRootIcon);
215
227 virtual ETreeItemIcon GetRootItemIcon() const;
228
240 virtual const CGUITreeContainerItem* GetRootItem() const;
241
265 virtual const CResult GetItemAll(std::vector<CGUITreeContainerItem*>& vctResult, ETraverseMode eMode = ETraverseMode_DFS) const;
266
283
299 virtual const CResult FindItemBySubstring(const Base::CFLString<wchar_t>& flstrKeyword, CGUITreeContainer& treeResult, bool bDeepCopy = false);
300
325
344
364 virtual const CResult FindItemByMenuItemName(const Base::CFLString<wchar_t>& strName, std::vector<CGUITreeContainerItem*>& vctResults) const;
365
379 virtual void SetItemData(CGUITreeContainerItem* pItem, Base::CFLBase* pData);
380
395
413 virtual const CResult ShowItem(CGUITreeContainerItem* pItem, bool bShow);
414
428 virtual bool IsItemVisible(CGUITreeContainerItem* pItem) const;
429
447 virtual const CResult ExpandItem(CGUITreeContainerItem* pItem, bool bExpand);
448
462 virtual bool IsItemExpanded(const CGUITreeContainerItem* pItem) const;
463
478
500 virtual const CResult InsertItem(CGUITreeContainerItem* pItem, CGUITreeContainerItem* pItemPosition, EInsertPosition eInsertPosition = EInsertPosition_After);
501
519 virtual const CResult AddItem(CGUITreeContainerItem* pItem, CGUITreeContainerItem* pItemParent);
520
538 virtual const CResult RemoveItem(CGUITreeContainerItem* pItem, bool bDestroyItem);
539
557 virtual const CResult SetItemName(CGUITreeContainerItem* pItem, const Base::CFLString<wchar_t>& strFullPathOrig, const Base::CFLString<wchar_t>& strName, bool bUpdateMenuItemName = true);
558
576 virtual const CResult SetItemPath(CGUITreeContainerItem* pItem, const Base::CFLString<wchar_t>& strFullPathOrig, const Base::CFLString<wchar_t>& strPath, bool bUpdateMenuItemPath = true);
577
593 virtual const CResult ChangeItemParent(CGUITreeContainerItem* pItem, CGUITreeContainerItem* pItemNewParent, bool bUpdateMenuItemPath = true);
594
620 virtual const CResult SortItem(CGUITreeContainerItem* pItem, ESortOrder eSortOrder = ESortOrder_Ascending);
621
622 virtual void DebugPrintTree() const;
623 Base::CFLString<wchar_t> MakeFullPathValid(const Base::CFLString<wchar_t>& flstrFullPath) const;
624
625 SupportToDuplicateObject(CGUITreeContainer, *this);
626 DeclareGetClassType();
627
628 protected:
629 CGUITreeContainerItem* m_pRoot;
630 Foundation::CTrie m_trie;
631 std::unordered_map<Base::CFLBase*, CGUITreeContainerItem*>& m_mapDataAndTreeItem;
632 };
633 }
634}
Top-level base class of FLImaging.
Definition FLBase.h:36
Template type string class.
Definition INIUtilities.h:20
FLImaging module execution result object.
Definition ResultsDef.h:1514
Implements a Trie structure for efficient string searching.
Definition Trie.h:153
A data structure class that stores a tree hierarchy.
Definition GUITreeContainer.h:57
virtual const CResult AssignShallowCopy(const CGUITreeContainer &rhs)
Performs a shallow copy assignment from another CGUITreeContainer object.
virtual Base::CFLString< wchar_t > GetRootItemText() const
Retrieves the text of the root item in the tree.
virtual bool IsItemExpanded(const CGUITreeContainerItem *pItem) const
Checks whether the specified item in the tree container is expanded.
virtual ~CGUITreeContainer()
Virtual destructor for the CGUITreeContainer class.
virtual const CResult Clear(bool bDestroyItem)
Clears all tree items in the container.
virtual void SetRootItemIcon(ETreeItemIcon eRootIcon)
Sets the icon of the root item in the tree.
virtual const CResult Assign(const CGUITreeContainer &rhs)
Assigns properties from another CGUITreeContainer object using a reference.
virtual const CGUITreeContainerItem * GetRootItem() const
Retrieves the root item of the tree.
virtual const CResult FindItemBySubstring(const Base::CFLString< wchar_t > &flstrKeyword, CGUITreeContainer &treeResult, bool bDeepCopy=false)
Finds all items in this that contain the given substring.
virtual const CResult SortItem(CGUITreeContainerItem *pItem, ESortOrder eSortOrder=ESortOrder_Ascending)
Sorts the child items of pItem based on predefined rules.
virtual const CResult RemoveItem(CGUITreeContainerItem *pItem, bool bDestroyItem)
Removes a tree item.
virtual ETreeItemIcon GetRootItemIcon() const
Retrieves the icon of the root item in the tree.
virtual void SetItemData(CGUITreeContainerItem *pItem, Base::CFLBase *pData)
Sets custom data for the specified item.
virtual bool IsItemVisible(CGUITreeContainerItem *pItem) const
Checks if a tree item is visible.
virtual const CResult AddItem(CGUITreeContainerItem *pItem, CGUITreeContainerItem *pItemParent)
Adds a new item as the last child of a specified parent.
virtual const CResult FindItemByUppercaseAndInitials(const Base::CFLString< wchar_t > &flstrKeyword, CGUITreeContainer &treeResult)
Finds all items in this that match the uppercase pattern and initials of words.
virtual void SetRootItemText(const Base::CFLString< wchar_t > &strRoot)
Sets the text of the root item in the tree.
CGUITreeContainer(const CGUITreeContainer &rhs)
Copy constructor for the CGUITreeContainer class.
virtual const CResult ChangeItemParent(CGUITreeContainerItem *pItem, CGUITreeContainerItem *pItemNewParent, bool bUpdateMenuItemPath=true)
Changes the parent of a tree item.
virtual const CResult SetItemPath(CGUITreeContainerItem *pItem, const Base::CFLString< wchar_t > &strFullPathOrig, const Base::CFLString< wchar_t > &strPath, bool bUpdateMenuItemPath=true)
Set the path of a tree item.
virtual const CResult ShowItem(CGUITreeContainerItem *pItem, bool bShow)
Shows or hides a tree item.
virtual CGUITreeContainerItem * GetParentItem(CGUITreeContainerItem *pItem) const
Retrieves the parent item of the specified item.
virtual CGUITreeContainerItem * FindItemByData(Base::CFLBase *pData) const
Finds an item by its associated data.
virtual const CResult Assign(const CGUITreeContainer *pRhs)
Assigns properties from another CGUITreeContainer object using a pointer.
virtual const CResult FindItemByMenuItemName(const Base::CFLString< wchar_t > &strName, std::vector< CGUITreeContainerItem * > &vctResults) const
Finds all items with the specified menu item name.
CGUITreeContainer()
Default constructor for the CGUITreeContainer class.
virtual const CResult ExpandItem(CGUITreeContainerItem *pItem, bool bExpand)
Expands or collapses the specified item in the tree container.
virtual const CResult AssignShallowCopy(const CGUITreeContainer *pRhs)
Performs a shallow copy assignment from another CGUITreeContainer object using a pointer.
virtual CGUITreeContainerItem * FindItemByMenuItemName(const CGUITreeContainerItem *pItemParent, const Base::CFLString< wchar_t > &strName) const
Finds a child item by its name under the specified parent item.
virtual const CResult InsertItem(CGUITreeContainerItem *pItem, CGUITreeContainerItem *pItemPosition, EInsertPosition eInsertPosition=EInsertPosition_After)
Inserts a new item at a specified position in the tree.
virtual const CResult SetItemName(CGUITreeContainerItem *pItem, const Base::CFLString< wchar_t > &strFullPathOrig, const Base::CFLString< wchar_t > &strName, bool bUpdateMenuItemName=true)
Renames a tree item.
CGUITreeContainer(const CGUITreeContainer *pRhs)
Pointer-based copy constructor for the CGUITreeContainer class.
virtual const CResult GetItemAll(std::vector< CGUITreeContainerItem * > &vctResult, ETraverseMode eMode=ETraverseMode_DFS) const
Retrieves all tree items in a specified traversal order. If eMode is ETraverseMode_DFS,...
virtual CGUITreeContainerItem * FindItemByMenuItemFullPath(const Base::CFLString< wchar_t > &strFullPath) const
Finds an item in the tree by its full menu item path.
Tree item (a component of CGUITreeContainer)
Definition GUITreeContainerItem.h:31
EInsertPosition
Definition GUIDefinitions.h:10716
ETraverseMode
Definition GUIDefinitions.h:10736
ESortOrder
Sorting order.
Definition GUIDefinitions.h:8642