FLImaging 6.6.27.1
GUIPaneMenu.h
1#pragma once
2
3#include "GUITreeCtrl.h"
4#include "GUIManager.h"
5#include "GUIPaneBase.h"
6#include "GUIEditBase.h"
7#include "GUIStaticText.h"
8
9namespace FLImaging
10{
11 namespace GUI
12 {
13 class CGUIPaneProperties;
15 class CGUIMenuItemFixedViewPreset;
16 class CGUIMenuItemFavorite;
17 class CGUIMenuItemViewBase;
18 class CGUIManager;
20
21 class FL_EXPORT CGUIPaneMenu : public CGUIPaneBase
22 {
23 public:
24 CGUIPaneMenu() noexcept;
25 virtual ~CGUIPaneMenu();
26
27 virtual bool AddItem(const wchar_t* pWcsName, const wchar_t* pWcsParent, void* pData, ETreeItemIcon eIcon);
28 virtual bool InsertItem(const wchar_t* pWcsName, const wchar_t* pWcsInsertPositionFullPath, EInsertPosition eInsertAt, void* pData, ETreeItemIcon eIcon);
29 virtual bool MakePath(Base::CFLString<wchar_t> strPath, HTREEITEM hParent = 0);
30 virtual bool RemoveItem(HTREEITEM hItem);
31 virtual bool RemoveItem(void* pData);
32 virtual bool RenameItem(void* pData, const wchar_t* pRename);
33 virtual bool SetMenuIcon(void* pData, ETreeItemIcon eIcon);
34 virtual bool SetMenuIcon(void* pData, ETreeItemIcon eIcon, ETreeItemIcon eIconSelected);
35
36 virtual HTREEITEM FindHandle(void* pData, HTREEITEM hParent = 0, CGUITreeCtrl* pTree = nullptr);
37 virtual HTREEITEM FindHandle(Base::CFLString<wchar_t> strPath, HTREEITEM hParent = 0, CGUITreeCtrl* pTree = nullptr);
38 virtual HTREEITEM FindHandleByFullPath(Base::CFLString<wchar_t> strFullPath, CGUITreeCtrl* pTree = nullptr);
39
48 virtual void GetChildItemsAllowDelete(HTREEITEM hItem, std::set<CGUIMenuItemFixedViewPlacementSet*>& setOut, CTreeCtrl* pTree = nullptr);
49
58 virtual void GetMenuItemMultiInstanceParent(HTREEITEM hItem, std::set<CGUIMenuItemBase*>& setOut, CTreeCtrl* pTree = nullptr);
59
70 virtual void GetMenuItemChildInstance(HTREEITEM hItem, std::set<CGUIMenuItemBase*>& setOut, CTreeCtrl* pTree = nullptr, bool* pBOpenedItemExist = nullptr, bool* pBClosedItemExist = nullptr);
71
80 virtual void GetChildMenuItemView(HTREEITEM hItem, std::set<CGUIMenuItemViewBase*>& setOut, CTreeCtrl* pTree = nullptr);
81
90 virtual void GetChildMenuItemViewClosable(HTREEITEM hItem, std::set<CGUIMenuItemViewBase*>& setOut, CTreeCtrl* pTree = nullptr);
91
92 virtual void AdjustLayout();
93 virtual void UpdateTheme();
94 virtual void UpdateFont();
95
96 virtual CGUITreeContainer* GetTreeContainer() const;
97 CGUITreeCtrl* GetTreeCtrl()const;
98 CGUITreeCtrl* GetTreeCtrlOfSearchResult()const;
99 CGUITreeCtrl* GetActiveTree()const;
100
101 bool TreeItemExpandCheck(Base::CFLString<wchar_t> strFullPath);
102 bool IsSearching();
103
104 const CResult SetTreeItemIcon(Base::CFLString<wchar_t> strPath, Base::CFLString<wchar_t> strName, ETreeItemIcon eTreeItemIcon);
105
114 virtual bool SortTreeItem(HTREEITEM hItem = NULL, ESortOrder eSortOrder = ESortOrder_Ascending);
115
122 virtual bool CancelSortTreeItem(HTREEITEM hItem = NULL);
123
124 virtual void SetDefaultPopupMenu(CMenu& popupMenu, CGUIMenuItemBase* pMenuItem);
125 virtual void SetDefaultPopupMenuMultiSelect(CMenu& popupMenu);
126 virtual void SetFavoritePopupMenu(CMenu& popupMenu, CGUIMenuItemBase* pMenuItem);
127 virtual void SetFavoritePopupMenuMultiSelect(CMenu& popupMenu);
128
129 virtual void SelectPopupMenuItem(EMenuItemPaneMenuTree eMenu, CGUIMenuItemBase* pMenuItem);
130 virtual void SelectMultiSelectPopupMenuItem(EMenuItemPaneMenuTree eMenu);
131
132 virtual const Base::CFLString<wchar_t>& GetRootPathOfTree();
133 virtual const CResult SetRootPathOfTree(const Base::CFLString<wchar_t>& strRootPath);
134
135 virtual void BuildTreeMenu();
136 virtual void BuildTreeMenuItemView();
137 virtual void RestoreTreeMenu();
138 virtual void CopyTree(const CGUITreeCtrl& treeSrc, CGUITreeCtrl& treeDst);
139
140 protected:
141 virtual const CResult MakeTreeContainerItem(const Base::CFLString<wchar_t>& strFullPath, CGUIMenuItemBase* pMenuItem = nullptr, ETreeItemIcon eIcon = ETreeItemIcon_OpenFolderVert);
142 virtual void Search(const Base::CFLString<wchar_t>& flstrKeyword, const CGUITreeCtrl& treeSrc, CGUITreeCtrl& treeDst);
143 virtual Base::CFLString<wchar_t> GetSearchResultString()const;
144
145 virtual void InternalCancelSortTreeItem(HTREEITEM hItem);
146 virtual void InternalSetSortOrder(HTREEITEM hItem, ESortOrder eSortOrder);
147
148 virtual bool SortTreeFavoriteItemToTop(CTreeCtrl* pTree);
149 virtual bool SortTreeSNAPObjectsItemToBottom(CTreeCtrl* pTree);
150 virtual bool SortTreeSNAPObjectsItemToTop(CTreeCtrl* pTree);
151 static int CALLBACK FavoriteItemToTop(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);
152 static int CALLBACK SNAPObjectsItemToBottom(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);
153 static int CALLBACK SNAPObjectsItemToTop(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);
154 virtual bool AddItemOnSearchResultTree(const wchar_t* pName, const wchar_t* pParent, void* pData, ETreeItemIcon eIcon);
155 virtual bool InsertItemOnSearchResultTree(const wchar_t* pWcsName, const wchar_t* pWcsInsertPositionFullPath, EInsertPosition eInsertAt, void* pData, ETreeItemIcon eIcon);
156 virtual bool RemoveItemOnSearchResultTree(void* pData);
157 virtual bool RenameItemOnSearchResultTree(void* pData, const wchar_t* pRename);
158 virtual bool SetMenuIconOnSearchResultTree(void* pData, ETreeItemIcon eIcon, ETreeItemIcon eIconSelected);
159
160 virtual BOOL OnBeforeFloat(CRect& rectFloat, AFX_DOCK_METHOD dockMethod) override;
161 virtual bool ShowOnlySelectedFixedViews();
162 virtual bool UpdateIndexMenuItemFixedViewPlacementSet();
163
164 virtual HTREEITEM GetItem(Base::CFLString<wchar_t> strPath, Base::CFLString<wchar_t> strName);
165 virtual HTREEITEM GetItemOnSearchResultTree(Base::CFLString<wchar_t> strPath, Base::CFLString<wchar_t> strName);
166
167 protected:
168 afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
169 afx_msg void OnSize(UINT nType, int cx, int cy);
170 afx_msg void OnSetFocus(CWnd* pOldWnd);
171 LRESULT OnDeleteMenuItemProperty(WPARAM wParam, LPARAM lParam);
172 LRESULT OnDeleteMenuItem(WPARAM wParam, LPARAM lParam);
173
174 DECLARE_MESSAGE_MAP()
175 virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
176 public:
177 afx_msg void OnDestroy();
178 afx_msg void OnClose();
179 afx_msg void OnShowWindow(BOOL bShow, UINT nStatus);
180 afx_msg void OnTimer(UINT_PTR nIDEvent);
181
182 afx_msg void OnNMRClick(NMHDR* pNMHDR, LRESULT* pResult);
183
184 afx_msg void OnSearchButtonClick();
185 afx_msg void OnSearchPrevButtonClick();
186 afx_msg void OnSearchNextButtonClick();
187 virtual BOOL PreTranslateMessage(MSG* pMsg);
188
189 virtual bool SetMenuItemPtr(HTREEITEM hItem, HTREEITEM hItemParent);
190
191
192 virtual void OnReceiveBroadcast(const Base::CBroadcastMessage* pMessage) override;
193 protected:
194 CGUIEditBase m_editSearch;
195 CGUIStaticText m_staticSearch;
196 CGUIStaticText m_staticResult;
197 CButton m_btnSearch;
198 CGUITreeContainer* m_pTreeContainerSearchResult;
199 mutable CGUITreeCtrl m_treeCtrl;
200 mutable CGUITreeCtrl m_treeCtrlOfSearchResult;
201 CImageList m_GUIPaneMenuImages;
202 CImageList m_GUIPaneMenuImages32x32;
203 Base::CFLString<wchar_t> m_strSearchWordPrev;
204 CGUIMenuItemFixedViewPreset* m_pMenuItemFixedViewPreset;
205 CGUIMenuItemFavorite* m_pMenuItemFavorite;
206 std::vector<CGUIMenuItemBase*>& m_vctUnderRoot;
207 CFont* m_pFont;
208 bool m_bShowSearchingBtn;
209 bool m_bAddItemOnSearchTree;
210 bool m_bCopyItemOnSearchTree;
211 bool m_bSearching;
212 int32_t m_i32CyEdit;
213 int32_t m_i32InputKeyTime;
214
215 friend class CGUITreeCtrl;
216 friend class CGUIMainFrame;
217 friend class CGUIManager;
218 friend class CGUIManagerView;
219 friend class CGUIMenuItemFavorite;
220};
221 }
222}
프로퍼티 창에 연결된 메뉴 아이템 클래스
Definition GUIMenuItemProperty.h:48
트리 계층 구조를 저장하는 자료구조 클래스
Definition GUITreeContainer.h:57
Definition D2DObject.h:12