2#include "DefinitionsGUI.h"
11 class CInternalPermissionManager;
17 class FL_EXPORT CGUIMenuItemBase :
public Base::CFLBase
22 EContextMenuFlag_Enabled = 0x00000000L,
23 EContextMenuFlag_Disabled = 0x00000002L,
24 EContextMenuFlag_Hide = 0x00010000L,
29 CGUIMenuItemBase(
const CGUIMenuItemBase& rhs);
30 CGUIMenuItemBase(
const CGUIMenuItemBase* pRhs);
31 virtual ~CGUIMenuItemBase();
33 virtual const CResult
Assign(
const CGUIMenuItemBase& rhs);
34 virtual const CResult
Assign(
const CGUIMenuItemBase* pRhs);
47 virtual const CResult PreDestroy();
49 virtual bool SetName(
const Base::CFLString<wchar_t>& strName);
50 virtual Base::CFLString<wchar_t> GetName()
const;
52 virtual bool SetPath(
const Base::CFLString<wchar_t>& strPath);
53 virtual Base::CFLString<wchar_t> GetPath()
const;
55 virtual bool AppendAlias(
const Base::CFLString<wchar_t>& strAlias);
56 virtual bool ClearAlias();
57 virtual Base::CFLArray<Base::CFLString<wchar_t>>& GetAlias();
59 virtual Base::CFLString<wchar_t> GetFullPath()
const;
62 virtual bool Save()
const;
64 virtual bool SetIcon(ETreeItemIcon eIcon, BOOL bRedraw = FALSE);
65 virtual ETreeItemIcon GetIcon()
const;
66 virtual ETreeItemIcon GetIconSelected()
const;
68 virtual bool SetMenu(CGUIPaneMenu* pMenu);
70 virtual bool OnLButtonClick();
71 virtual bool OnLButtonDoubleClick();
72 virtual bool OnRButtonClick();
74 virtual void UseDefaultModelOnly(
bool bUseDefault);
76 virtual uint32_t GetHash()
const;
77 virtual uint32_t GetParentHash()
const;
92 virtual CGUIMenuItemBase* FindParentItem()
const;
103 virtual bool IsMultiInstanceParent()
const;
116 virtual CGUIMenuItemBase* GetMultiInstanceParent()
const;
131 virtual CGUIMenuItemBase* GetChildInstance(int32_t i32InstanceIdx)
const;
142 virtual int32_t GetChildInstanceCount()
const;
159 virtual CGUIMenuItemBase* CreateChildInstance(int32_t i32InstanceIdx = -1);
176 virtual const CResult DeleteChildInstance(int32_t i32InstanceIndex);
187 virtual int32_t GetInstanceIndex()
const;
203 virtual CGUIPaneBase* GetPane()
const;
216 virtual CGUIMenuItemAttributeMultiInstanceParent* GetAttributeMultiInstanceParent()
const;
229 virtual CGUIMenuItemAttributeMultiInstanceChild* GetAttributeMultiInstanceChild()
const;
242 virtual CGUIMenuItemAttributePane* GetAttributePane()
const;
253 virtual void Enable(
bool bEnable);
265 virtual bool GetEnablement()
const;
279 virtual bool IsEnabled();
302 virtual void EnableInheritanceOfEnablement(
bool bEnable =
true);
313 virtual bool IsInheritanceOfEnablementEnabled()
const;
316 virtual const CResult SetMinimalAuthorityLevel(Base::EAuthorityLevel eAuthorityLevel, GUI::EPermission ePermission);
317 virtual Base::EAuthorityLevel GetMinimalAuthorityLevel(GUI::EPermission ePermission)
const;
320 virtual void EnableInheritanceOfEnablementOnContextMenu(
bool bEnable =
true);
321 virtual bool IsInheritanceOfEnablementOnContextMenuEnabled()
const;
323 virtual bool IsContextMenuEnabled(
const Base::EAuthorityLevel eCurrentUserAuthorityLevel,
const GUI::EMenuItemPaneMenuTree eMenuItemPaneMenuTree);
325 virtual void SetMinimalAuthorityLevelOnContextMenu(Base::EAuthorityLevel eAuthorityLevel, GUI::EMenuItemPaneMenuTree eMenuItemPaneMenuTree);
326 virtual Base::EAuthorityLevel GetMinimalAuthorityLevelOnContextMenu(GUI::EMenuItemPaneMenuTree eMenuItemPaneMenuTree)
const;
328 virtual void EnableHighAuthorityLevelContextMenuVisible(
bool bEnable);
329 virtual bool IsHighAuthorityLevelContextMenuVisibleEnabled()
const;
331 EContextMenuFlag GetContextMenuFlag(
const Base::EAuthorityLevel eCurrentUserAuthorityLevel,
const GUI::EMenuItemPaneMenuTree eMenuItemPaneMenuTree, EContextMenuFlag eAssignFlag);
333 virtual const CResult SelectPopupMenuItem(EMenuItemPaneMenuTree eSelectedMenuItem);
335 SupportToDuplicateAbstractObject(CGUIMenuItemBase);
336 DeclareGetClassType();
339 virtual bool GetRecentEnablement()
const;
342 virtual bool InternalSetName(
const Base::CFLString<wchar_t>& strName);
343 virtual bool InternalSetPath(
const Base::CFLString<wchar_t>& strPath);
346 virtual bool AppendMenu(CMenu& popupMenu,
const Base::EAuthorityLevel eCurrentUserAuthorityLevel,
const GUI::EMenuItemPaneMenuTree eMenuItem,
const Base::CFLString<wchar_t>& strMenu, EContextMenuFlag eAssignFlag = EContextMenuFlag_Enabled);
348 virtual void SetSortOrder(ESortOrder eSO);
351 virtual const CResult CreateAttributeMultiInstanceParent();
352 virtual const CResult DeleteAttributeMultiInstanceParent();
354 virtual const CResult CreateAttributeMultiInstanceChild();
355 virtual const CResult CreateAttributeMultiInstanceChild(CGUIMenuItemBase* pMIParent, int32_t i32InstanceIndex);
356 virtual const CResult DeleteAttributeMultiInstanceChild();
358 virtual const CResult CreateAttributePane();
359 virtual const CResult CreateAttributePane(CGUIPaneBase* pPane);
360 virtual const CResult DeleteAttributePane();
363 bool m_bDeleteWindowMsgSent;
366 Base::CFLString<wchar_t> m_strName;
367 Base::CFLString<wchar_t> m_strPath;
368 Base::CFLArray<Base::CFLString<wchar_t>> m_flaStrAlias;
370 bool m_bUseDefaultMode;
372 CGUIPaneMenu* m_pPaneMenu;
373 ETreeItemIcon m_eIcon;
374 ETreeItemIcon m_eIconSelected;
378 bool m_bRecentEnablement;
380 bool m_bInheritanceOfEnablement;
382 bool m_bInheritanceOfEnablementOnContextMenu;
383 bool m_bEnableHighAuthorityLevelContextMenuVisible;
385 CInternalPermissionManager* m_pInternalPM;
387 CGUIMenuItemAttributeMultiInstanceParent* m_pAttrMultiInstanceParent;
388 CGUIMenuItemAttributeMultiInstanceChild* m_pAttrMultiInstanceChild;
389 CGUIMenuItemAttributePane* m_pAttrPane;
391 friend class CGUIManager;
392 friend class CGUIPaneMenu;
393 friend class CGUIPaneExampleSNAP;
394 friend class CGUITreeCtrl;
395 friend class CInternalPermissionManager;
Definition D2DObject.h:12
ESortOrder
Sorting order.
Definition DefinitionsGUI.h:9013
@ Assign
Set the value of CGUIPropertyItemView3DFigure to the specified figure.
Definition DefinitionsGUIView3D.h:2798
@ Save
Save file.
Definition DefinitionsGUI.h:303
@ SetName
Set figure name.
Definition DefinitionsGUI.h:1569
@ Load
Default Load.
Definition DefinitionsGUI.h:50