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();
292 virtual void EnableCloseButtonWhileDisabled(
bool bEnable =
false,
bool bRecursive =
true);
303 virtual bool IsCloseButtonEnabledWhileDisabled()
const;
326 virtual void EnableInheritanceOfEnablement(
bool bEnable =
true);
337 virtual bool IsInheritanceOfEnablementEnabled()
const;
340 virtual const CResult SetMinimalAuthorityLevel(Base::EAuthorityLevel eAuthorityLevel, GUI::EPermission ePermission);
341 virtual Base::EAuthorityLevel GetMinimalAuthorityLevel(GUI::EPermission ePermission)
const;
344 virtual void EnableInheritanceOfEnablementOnContextMenu(
bool bEnable =
true);
345 virtual bool IsInheritanceOfEnablementOnContextMenuEnabled()
const;
347 virtual bool IsContextMenuEnabled(
const Base::EAuthorityLevel eCurrentUserAuthorityLevel,
const GUI::EMenuItemPaneMenuTree eMenuItemPaneMenuTree);
349 virtual void SetMinimalAuthorityLevelOnContextMenu(Base::EAuthorityLevel eAuthorityLevel, GUI::EMenuItemPaneMenuTree eMenuItemPaneMenuTree);
350 virtual Base::EAuthorityLevel GetMinimalAuthorityLevelOnContextMenu(GUI::EMenuItemPaneMenuTree eMenuItemPaneMenuTree)
const;
352 virtual void EnableHighAuthorityLevelContextMenuVisible(
bool bEnable);
353 virtual bool IsHighAuthorityLevelContextMenuVisibleEnabled()
const;
355 EContextMenuFlag GetContextMenuFlag(
const Base::EAuthorityLevel eCurrentUserAuthorityLevel,
const GUI::EMenuItemPaneMenuTree eMenuItemPaneMenuTree, EContextMenuFlag eAssignFlag);
357 virtual const CResult SelectPopupMenuItem(EMenuItemPaneMenuTree eSelectedMenuItem);
359 SupportToDuplicateAbstractObject(CGUIMenuItemBase);
360 DeclareGetClassType();
363 virtual bool GetRecentEnablement()
const;
366 virtual bool InternalSetName(
const Base::CFLString<wchar_t>& strName);
367 virtual bool InternalSetPath(
const Base::CFLString<wchar_t>& strPath);
370 virtual bool AppendMenu(CMenu& popupMenu,
const Base::EAuthorityLevel eCurrentUserAuthorityLevel,
const GUI::EMenuItemPaneMenuTree eMenuItem,
const Base::CFLString<wchar_t>& strMenu, EContextMenuFlag eAssignFlag = EContextMenuFlag_Enabled);
372 virtual void SetSortOrder(ESortOrder eSO);
375 virtual const CResult CreateAttributeMultiInstanceParent();
376 virtual const CResult DeleteAttributeMultiInstanceParent();
378 virtual const CResult CreateAttributeMultiInstanceChild();
379 virtual const CResult CreateAttributeMultiInstanceChild(CGUIMenuItemBase* pMIParent, int32_t i32InstanceIndex);
380 virtual const CResult DeleteAttributeMultiInstanceChild();
382 virtual const CResult CreateAttributePane();
383 virtual const CResult CreateAttributePane(CGUIPaneBase* pPane);
384 virtual const CResult DeleteAttributePane();
387 bool m_bDeleteWindowMsgSent;
390 Base::CFLString<wchar_t> m_strName;
391 Base::CFLString<wchar_t> m_strPath;
392 Base::CFLArray<Base::CFLString<wchar_t>> m_flaStrAlias;
394 bool m_bUseDefaultMode;
396 CGUIPaneMenu* m_pPaneMenu;
397 ETreeItemIcon m_eIcon;
398 ETreeItemIcon m_eIconSelected;
402 bool m_bEnableCloseButtonWhileDisabled;
403 bool m_bRecentEnablement;
405 bool m_bInheritanceOfEnablement;
407 bool m_bInheritanceOfEnablementOnContextMenu;
408 bool m_bEnableHighAuthorityLevelContextMenuVisible;
410 CInternalPermissionManager* m_pInternalPM;
412 CGUIMenuItemAttributeMultiInstanceParent* m_pAttrMultiInstanceParent;
413 CGUIMenuItemAttributeMultiInstanceChild* m_pAttrMultiInstanceChild;
414 CGUIMenuItemAttributePane* m_pAttrPane;
416 friend class CGUIManager;
417 friend class CGUIPaneMenu;
418 friend class CGUIPaneExampleSNAP;
419 friend class CGUITreeCtrl;
420 friend class CInternalPermissionManager;
Definition D2DObject.h:12
ESortOrder
Sorting order.
Definition DefinitionsGUI.h:9317
@ Assign
Set the value of CGUIPropertyItemView3DFigure to the specified figure.
Definition DefinitionsGUIView3D.h:2930
@ Save
Save file.
Definition DefinitionsGUI.h:303
@ SetName
Set figure name.
Definition DefinitionsGUI.h:1653
@ Load
Default Load.
Definition DefinitionsGUI.h:50