FLImaging 6.8.12.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;
19
20 class FL_EXPORT CGUIPaneMenu : public CGUIPaneBase
21 {
22 public:
23 CGUIPaneMenu() noexcept;
24 virtual ~CGUIPaneMenu();
25
26 virtual bool AddItem(const wchar_t* pWcsName, const wchar_t* pWcsParent, void* pData, ETreeItemIcon eIcon);
27 virtual bool InsertItem(const wchar_t* pWcsName, const wchar_t* pWcsInsertPositionFullPath, EInsertPosition eInsertAt, void* pData, ETreeItemIcon eIcon);
28 virtual bool MakePath(Base::CFLString<wchar_t> strPath, HTREEITEM hParent = 0);
29 virtual bool RemoveItem(HTREEITEM hItem);
30 virtual bool RemoveItem(void* pData);
31 virtual bool RenameItem(void* pData, const wchar_t* pRename);
32 virtual bool SetMenuIcon(void* pData, ETreeItemIcon eIcon);
33 virtual bool SetMenuIcon(void* pData, ETreeItemIcon eIcon, ETreeItemIcon eIconSelected);
34
35 virtual HTREEITEM FindHandle(void* pData, HTREEITEM hParent = 0, CGUITreeCtrl* pTree = nullptr);
36 virtual HTREEITEM FindHandle(Base::CFLString<wchar_t> strPath, HTREEITEM hParent = 0, CGUITreeCtrl* pTree = nullptr);
37 virtual HTREEITEM FindHandleByFullPath(Base::CFLString<wchar_t> strFullPath, CGUITreeCtrl* pTree = nullptr);
38
47 virtual void GetChildItemsAllowDelete(HTREEITEM hItem, std::set<CGUIMenuItemFixedViewPlacementSet*>& setOut, CTreeCtrl* pTree = nullptr);
48
57 virtual void GetMenuItemMultiInstanceParent(HTREEITEM hItem, std::set<CGUIMenuItemBase*>& setOut, CTreeCtrl* pTree = nullptr);
58
69 virtual void GetMenuItemChildInstance(HTREEITEM hItem, std::set<CGUIMenuItemBase*>& setOut, CTreeCtrl* pTree = nullptr, bool* pBOpenedItemExist = nullptr, bool* pBClosedItemExist = nullptr);
70
79 virtual void GetChildMenuItemView(HTREEITEM hItem, std::set<CGUIMenuItemViewBase*>& setOut, CTreeCtrl* pTree = nullptr);
80
89 virtual void GetChildMenuItemViewClosable(HTREEITEM hItem, std::set<CGUIMenuItemViewBase*>& setOut, CTreeCtrl* pTree = nullptr);
90
91 virtual void AdjustLayout();
92 virtual void UpdateTheme();
93 virtual void UpdateFont();
94
95 CGUITreeCtrl* GetTreeCtrl()const;
96 CGUITreeCtrl* GetTreeCtrlOfSearchResult()const;
97 CGUITreeCtrl* GetActiveTree()const;
98
99 bool TreeItemExpandCheck(Base::CFLString<wchar_t> strFullPath);
100 bool IsSearching();
101
102 const CResult SetTreeItemIcon(Base::CFLString<wchar_t> strPath, Base::CFLString<wchar_t> strName, ETreeItemIcon eTreeItemIcon);
103
112 virtual bool SortTreeItem(HTREEITEM hItem = NULL, ESortOrder eSortOrder = ESortOrder_Ascending);
113
120 virtual bool CancelSortTreeItem(HTREEITEM hItem = NULL);
121
122 virtual void SetDefaultPopupMenu(CMenu& popupMenu, CGUIMenuItemBase* pMenuItem);
123 virtual void SetDefaultPopupMenuMultiSelect(CMenu& popupMenu);
124 virtual void SetFavoritePopupMenu(CMenu& popupMenu, CGUIMenuItemBase* pMenuItem);
125 virtual void SetFavoritePopupMenuMultiSelect(CMenu& popupMenu);
126
127 virtual void SelectPopupMenuItem(EMenuItemPaneMenuTree eMenu, CGUIMenuItemBase* pMenuItem);
128 virtual void SelectMultiSelectPopupMenuItem(EMenuItemPaneMenuTree eMenu);
129
130 virtual const Base::CFLString<wchar_t>& GetRootPathOfTree();
131 virtual const CResult SetRootPathOfTree(const Base::CFLString<wchar_t>& strRootPath);
132
133 virtual void BuildTreeMenu();
134 virtual void BuildTreeMenuItemView();
135 virtual void RestoreTreeMenu();
136 virtual void CopyTree(const CGUITreeCtrl& treeSrc, CGUITreeCtrl& treeDst);
137
138 protected:
139 virtual void Search(const Base::CFLString<wchar_t>& flstrKeyword, const CGUITreeCtrl& treeSrc, CGUITreeCtrl& treeDst);
140 virtual Base::CFLString<wchar_t> GetSearchResultString()const;
141
142 virtual void InternalCancelSortTreeItem(HTREEITEM hItem);
143 virtual void InternalSetSortOrder(HTREEITEM hItem, ESortOrder eSortOrder);
144
145 virtual bool SortTreeFavoriteItemToTop(CTreeCtrl* pTree);
146 virtual bool SortTreeSNAPObjectsItemToBottom(CTreeCtrl* pTree);
147 virtual bool SortTreeSNAPObjectsItemToTop(CTreeCtrl* pTree);
148 static int CALLBACK FavoriteItemToTop(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);
149 static int CALLBACK SNAPObjectsItemToBottom(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);
150 static int CALLBACK SNAPObjectsItemToTop(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);
151 virtual bool AddItemOnSearchResultTree(const wchar_t* pName, const wchar_t* pParent, void* pData, ETreeItemIcon eIcon);
152 virtual bool InsertItemOnSearchResultTree(const wchar_t* pWcsName, const wchar_t* pWcsInsertPositionFullPath, EInsertPosition eInsertAt, void* pData, ETreeItemIcon eIcon);
153 virtual bool RemoveItemOnSearchResultTree(void* pData);
154 virtual bool RenameItemOnSearchResultTree(void* pData, const wchar_t* pRename);
155 virtual bool SetMenuIconOnSearchResultTree(void* pData, ETreeItemIcon eIcon, ETreeItemIcon eIconSelected);
156
157 virtual BOOL OnBeforeFloat(CRect& rectFloat, AFX_DOCK_METHOD dockMethod) override;
158 virtual bool ShowOnlySelectedFixedViews();
159 virtual bool UpdateIndexMenuItemFixedViewPlacementSet();
160 virtual bool IsNowUpdatingFont() const;
161
162 virtual HTREEITEM GetItem(Base::CFLString<wchar_t> strPath, Base::CFLString<wchar_t> strName);
163 virtual HTREEITEM GetItemOnSearchResultTree(Base::CFLString<wchar_t> strPath, Base::CFLString<wchar_t> strName);
164
165 protected:
166 afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
167 afx_msg void OnSize(UINT nType, int cx, int cy);
168 afx_msg void OnSetFocus(CWnd* pOldWnd);
169 LRESULT OnDeleteMenuItemProperty(WPARAM wParam, LPARAM lParam);
170 LRESULT OnDeleteMenuItem(WPARAM wParam, LPARAM lParam);
171
172 DECLARE_MESSAGE_MAP()
173 virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
174 public:
175 afx_msg void OnDestroy();
176 afx_msg void OnClose();
177 afx_msg void OnShowWindow(BOOL bShow, UINT nStatus);
178 afx_msg void OnTimer(UINT_PTR nIDEvent);
179
180 afx_msg void OnNMRClick(NMHDR* pNMHDR, LRESULT* pResult);
181
182 afx_msg void OnSearchButtonClick();
183 afx_msg void OnSearchPrevButtonClick();
184 afx_msg void OnSearchNextButtonClick();
185 virtual BOOL PreTranslateMessage(MSG* pMsg);
186
187 virtual bool SetMenuItemPtr(HTREEITEM hItem, HTREEITEM hItemParent);
188
189
190 virtual void OnReceiveBroadcast(const Base::CBroadcastMessage* pMessage) override;
191 protected:
192 CGUIEditBase m_editSearch;
193 CGUIStaticText m_staticSearch;
194 CGUIStaticText m_staticResult;
195 CButton m_btnSearch;
196 mutable CGUITreeCtrl m_treeCtrl;
197 mutable CGUITreeCtrl m_treeCtrlOfSearchResult;
198 CImageList m_GUIPaneMenuImages;
199 CImageList m_GUIPaneMenuImages32x32;
200 Base::CFLString<wchar_t> m_strSearchWordPrev;
201 CGUIMenuItemFixedViewPreset* m_pMenuItemFixedViewPreset;
202 CGUIMenuItemFavorite* m_pMenuItemFavorite;
203 std::vector<CGUIMenuItemBase*>& m_vctUnderRoot;
204 CFont* m_pFont;
205 bool m_bShowSearchingBtn;
206 bool m_bAddItemOnSearchTree;
207 bool m_bNowUpdatingFont;
208 bool m_bCopyItemOnSearchTree;
209 bool m_bSearching;
210 int32_t m_i32CyEdit;
211 int32_t m_i32InputKeyTime;
212
213 friend class CGUITreeCtrl;
214 friend class CGUIMainFrame;
215 friend class CGUIManager;
216 friend class CGUIManagerView;
217 friend class CGUIMenuItemFavorite;
218};
219 }
220}
The menu item class associated with the property pane.
Definition GUIMenuItemProperty.h:48
Definition D2DObject.h:12