FLImaging 7.8.25.3
GUIMenuItemFavorite.h
1#pragma once
2
3#include "GUIMenuItemBase.h"
4#include <set>
5
6namespace FLImaging
7{
8 namespace GUI
9 {
10 class CGUITreeCtrl;
11
12 class FL_EXPORT CGUIMenuItemFavorite : public CGUIMenuItemBase
13 {
14 public:
15 CGUIMenuItemFavorite();
16 virtual ~CGUIMenuItemFavorite();
17
18 virtual bool OnRButtonClick();
19 virtual bool ClearAllFavoriteItems();
20 virtual bool AddFavoriteItem(CGUIMenuItemBase* pItem, bool bSaveToConfig = true);
21 virtual bool RemoveFromFavorite(CGUIMenuItemBase* pItem, bool bSaveToConfig = true);
22
23 // hItem 이 Favorite 에 등록되어 있는지 확인
24 virtual bool IsItemOnFavorite(HTREEITEM hItem, HTREEITEM hParent, CGUITreeCtrl* pTree);
25
26 // pItem 이 Favorite 에 등록되어 있는지 확인
27 virtual bool IsItemOnFavorite(CGUIMenuItemBase* pItem, HTREEITEM hParent, CGUITreeCtrl* pTree);
28
29 // pItem 이 Favorite 에 등록되어 있다면 pItem 에 해당하는 HTREEITEM 리턴, 없으면 NULL 리턴
30 virtual HTREEITEM GetHTREEITEM(CGUIMenuItemBase* pItem, HTREEITEM hParent, CGUITreeCtrl* pTree);
31
32 // hItem 을 hParentDst 아래에 복사 붙여 넣기, 이미 있으면 수행하지 않음, bDuplicateChildren = true 이면 자식 아이템까지 복제
33 // hItem 의 Parent 가 hParentDst 아래에 없으면 Parent 까지 복제
34 virtual HTREEITEM DuplicateHTREEITEM(HTREEITEM hItem, HTREEITEM hParentDst, CGUITreeCtrl* pTree, bool bDuplicateChildren = true);
35
36 // Favorite 하위 아이템 중, 현재 검색 결과에 걸린 것만 pTreeDst 로 복제
37 // - Favorite 아이템 자체는 항상 생성(검색 결과가 없어도 빈 Favorite 노드는 만들어짐)
38 // - 중간 부모 노드는 하위에 결과가 있을 때만 생성
39 // - bRegisterToFoundList = true 이면 복제된 노드도 m_vctFound 에 등록
40 // 반환값: pTreeDst 에 생성(또는 이미 존재하던) Favorite 아이템 핸들, 실패 시 NULL
41 virtual HTREEITEM DuplicateHTREEITEMFoundItemsOnly(CGUITreeCtrl* pTreeSrc, CGUITreeCtrl* pTreeDst, bool bRegisterToFoundList = false);
42
43 protected:
44 virtual void InsertKeptNodesRecursive(HTREEITEM hItemSrc, HTREEITEM hParentDst, CGUITreeCtrl* pTreeSrc, CGUITreeCtrl* pTreeDst, const std::unordered_set<HTREEITEM>& setKeep, const std::unordered_map<const void*, size_t>& mapFoundIndex, bool bRegisterToFoundList);
45
46 virtual void OnReceiveBroadcast(const Base::CBroadcastMessage* pMessage) override;
47 std::set<CGUIMenuItemBase*>& m_setFavoriteItems;
48
49 friend class CGUITreeCtrl;
50 };
51 }
52}
53
Definition D2DObject.h:12
@ RemoveFromFavorite
Remove from favorites.
Definition DefinitionsGUI.h:10648