3#include "GUITreeCtrl.h"
5#include "GUIPaneBase.h"
6#include "GUIEditBase.h"
7#include "GUIStaticText.h"
14 class CGUIPaneProperties;
16 class CGUIMenuItemFixedViewPreset;
17 class CGUIMenuItemFavorite;
18 class CGUIMenuItemViewBase;
21 class FL_EXPORT CGUIPaneMenu :
public CGUIPaneBase
24 CGUIPaneMenu() noexcept;
25 virtual ~CGUIPaneMenu();
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);
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);
48 virtual
void GetChildItemsAllowDelete(HTREEITEM hItem, std::set<CGUIMenuItemFixedViewPlacementSet*>& setOut, CTreeCtrl* pTree =
nullptr);
58 virtual
void GetMenuItemMultiInstanceParent(HTREEITEM hItem, std::set<CGUIMenuItemBase*>& setOut, CTreeCtrl* pTree =
nullptr);
70 virtual
void GetMenuItemChildInstance(HTREEITEM hItem, std::set<CGUIMenuItemBase*>& setOut, CTreeCtrl* pTree =
nullptr,
bool* pBOpenedItemExist =
nullptr,
bool* pBClosedItemExist =
nullptr);
80 virtual
void GetChildMenuItemView(HTREEITEM hItem, std::set<CGUIMenuItemViewBase*>& setOut, CTreeCtrl* pTree =
nullptr);
90 virtual
void GetChildMenuItemViewClosable(HTREEITEM hItem, std::set<CGUIMenuItemViewBase*>& setOut, CTreeCtrl* pTree =
nullptr);
92 virtual
void AdjustLayout();
93 virtual
void UpdateTheme();
94 virtual
void UpdateFont();
96 CGUITreeCtrl* GetTreeCtrl()const;
97 CGUITreeCtrl* GetTreeCtrlOfSearchResult()const;
98 CGUITreeCtrl* GetActiveTree()const;
100 bool TreeItemExpandCheck(Base::CFLString<
wchar_t> strFullPath);
101 bool IsSearching() const;
103 const CResult SetTreeItemIcon(Base::CFLString<
wchar_t> strPath, Base::CFLString<
wchar_t> strName, ETreeItemIcon eTreeItemIcon);
113 virtual
bool SortTreeItem(HTREEITEM hItem = NULL, ESortOrder eSortOrder = ESortOrder_Ascending);
121 virtual
bool CancelSortTreeItem(HTREEITEM hItem = NULL);
123 virtual
void SetDefaultPopupMenu(CMenu& popupMenu, CGUIMenuItemBase* pMenuItem);
124 virtual
void SetDefaultPopupMenuMultiSelect(CMenu& popupMenu);
125 virtual
void SetFavoritePopupMenu(CMenu& popupMenu, CGUIMenuItemBase* pMenuItem);
126 virtual
void SetFavoritePopupMenuMultiSelect(CMenu& popupMenu);
128 virtual
void SelectPopupMenuItem(EMenuItemPaneMenuTree eMenu, CGUIMenuItemBase* pMenuItem);
129 virtual
void SelectMultiSelectPopupMenuItem(EMenuItemPaneMenuTree eMenu);
131 virtual const Base::CFLString<
wchar_t>& GetRootPathOfTree();
133 virtual
void BuildTreeMenu();
134 virtual
void BuildTreeMenuItemView();
135 virtual
void RestoreTreeMenu();
136 virtual
void CopyTree(const CGUITreeCtrl& treeSrc, CGUITreeCtrl& treeDst);
139 virtual const CResult SetRootPathOfTree(const Base::CFLString<
wchar_t>& strRootPath);
140 virtual
void Search(const Base::CFLString<
wchar_t>& flstrKeyword, const CGUITreeCtrl& treeSrc, CGUITreeCtrl& treeDst);
141 virtual Base::CFLString<
wchar_t> GetSearchResultString()const;
143 virtual
void InternalCancelSortTreeItem(HTREEITEM hItem);
144 virtual
void InternalSetSortOrder(HTREEITEM hItem, ESortOrder eSortOrder);
146 virtual
bool SortTreeFavoriteItemToTop(CTreeCtrl* pTree);
147 virtual
bool SortTreeSNAPObjectsItemToBottom(CTreeCtrl* pTree);
148 virtual
bool SortTreeSNAPObjectsItemToTop(CTreeCtrl* pTree);
149 static
int CALLBACK FavoriteItemToTop(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);
150 static
int CALLBACK SNAPObjectsItemToBottom(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);
151 static
int CALLBACK SNAPObjectsItemToTop(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);
152 virtual
bool AddItemOnSearchResultTree(const
wchar_t* pName, const
wchar_t* pParent,
void* pData, ETreeItemIcon eIcon);
153 virtual
bool InsertItemOnSearchResultTree(const
wchar_t* pWcsName, const
wchar_t* pWcsInsertPositionFullPath, EInsertPosition eInsertAt,
void* pData, ETreeItemIcon eIcon);
154 virtual
bool RemoveItemOnSearchResultTree(
void* pData);
155 virtual
bool RenameItemOnSearchResultTree(
void* pData, const
wchar_t* pRename);
156 virtual
bool SetMenuIconOnSearchResultTree(
void* pData, ETreeItemIcon eIcon, ETreeItemIcon eIconSelected);
158 virtual BOOL OnBeforeFloat(CRect& rectFloat, AFX_DOCK_METHOD dockMethod) override;
159 virtual
bool ShowOnlySelectedFixedViews();
160 virtual
bool UpdateIndexMenuItemFixedViewPlacementSet();
161 virtual
bool IsNowUpdatingFont() const;
163 virtual HTREEITEM GetItem(Base::CFLString<
wchar_t> strPath, Base::CFLString<
wchar_t> strName);
164 virtual HTREEITEM GetItemOnSearchResultTree(Base::CFLString<
wchar_t> strPath, Base::CFLString<
wchar_t> strName);
165 virtual
bool SaveFavoriteItems();
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);
174 DECLARE_MESSAGE_MAP()
175 virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
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);
182 afx_msg
void OnNMRClick(NMHDR* pNMHDR, LRESULT* pResult);
184 afx_msg
void OnSearchButtonClick();
185 afx_msg
void OnSearchPrevButtonClick();
186 afx_msg
void OnSearchNextButtonClick();
187 afx_msg
void OnUpdatePaneSearchPrevButton(CCmdUI* pCmdUI);
188 afx_msg
void OnUpdatePaneSearchNextButton(CCmdUI* pCmdUI);
189 virtual BOOL PreTranslateMessage(MSG* pMsg);
191 virtual
bool SetMenuItemPtr(HTREEITEM hItem, HTREEITEM hItemParent);
194 virtual
void OnReceiveBroadcast(const Base::CBroadcastMessage* pMessage) override;
196 CGUIEditBase m_editSearch;
197 CGUIStaticText m_staticSearch;
198 CGUIStaticText m_staticResult;
200 CGUIButton m_btnPrev;
201 CGUIButton m_btnNext;
202 CToolTipCtrl m_toolTip;
204 mutable CGUITreeCtrl m_treeCtrl;
205 mutable CGUITreeCtrl m_treeCtrlOfSearchResult;
206 CImageList m_GUIPaneMenuImages;
207 CImageList m_GUIPaneMenuImages32x32;
208 Base::CFLString<
wchar_t> m_strSearchWordPrev;
209 CGUIMenuItemFixedViewPreset* m_pMenuItemFixedViewPreset;
210 CGUIMenuItemFavorite* m_pMenuItemFavorite;
211 std::vector<CGUIMenuItemBase*>& m_vctUnderRoot;
213 bool m_bShowSearchingBtn;
214 bool m_bAddItemOnSearchTree;
215 bool m_bNowUpdatingFont;
216 bool m_bCopyItemOnSearchTree;
219 int32_t m_i32InputKeyTime;
221 friend class CGUITreeCtrl;
222 friend class CGUIMainFrame;
223 friend class CGUIManager;
224 friend class CGUIManagerView;
225 friend class CGUIMenuItemFavorite;
Definition D2DObject.h:12