FLImaging 7.3.3.3
GUIMenuItemBase.h
1#pragma once
2#include "DefinitionsGUI.h"
3
4namespace FLImaging
5{
6 namespace GUI
7 {
8 class CGUIPaneMenu;
9 class CGUIDocBase;
10 class CGUITreeCtrl;
11 class CInternalPermissionManager;
15 class CGUIPaneBase;
16
17 class FL_EXPORT CGUIMenuItemBase : public Base::CFLBase
18 {
19 public:
20 enum EContextMenuFlag
21 {
22 EContextMenuFlag_Enabled = 0x00000000L,
23 EContextMenuFlag_Disabled = 0x00000002L,
24 EContextMenuFlag_Hide = 0x00010000L,
25 };
26
27 public:
28 CGUIMenuItemBase();
29 CGUIMenuItemBase(const CGUIMenuItemBase& rhs);
30 CGUIMenuItemBase(const CGUIMenuItemBase* pRhs);
31 virtual ~CGUIMenuItemBase();
32
33 virtual const CResult Assign(const CGUIMenuItemBase& rhs);
34 virtual const CResult Assign(const CGUIMenuItemBase* pRhs);
35
47 virtual const CResult PreDestroy();
48
49 virtual bool SetName(const Base::CFLString<wchar_t>& strName);
50 virtual Base::CFLString<wchar_t> GetName() const;
51
52 virtual bool SetPath(const Base::CFLString<wchar_t>& strPath);
53 virtual Base::CFLString<wchar_t> GetPath() const;
54
55 virtual bool AppendAlias(const Base::CFLString<wchar_t>& strAlias);
56 virtual bool ClearAlias();
57 virtual Base::CFLArray<Base::CFLString<wchar_t>>& GetAlias();
58
59 virtual Base::CFLString<wchar_t> GetFullPath() const;
60
61 virtual bool Load();
62 virtual bool Save() const;
63
64 virtual bool SetIcon(ETreeItemIcon eIcon, BOOL bRedraw = FALSE);
65 virtual ETreeItemIcon GetIcon() const;
66 virtual ETreeItemIcon GetIconSelected() const;
67
68 virtual bool SetMenu(CGUIPaneMenu* pMenu);
69
70 virtual bool OnLButtonClick();
71 virtual bool OnLButtonDoubleClick();
72 virtual bool OnRButtonClick();
73
74 virtual void UseDefaultModelOnly(bool bUseDefault);
75
76 virtual uint32_t GetHash() const;
77 virtual uint32_t GetParentHash() const;
78
92 virtual CGUIMenuItemBase* FindParentItem() const;
93
103 virtual bool IsMultiInstanceParent() const;
104
116 virtual CGUIMenuItemBase* GetMultiInstanceParent() const;
117
131 virtual CGUIMenuItemBase* GetChildInstance(int32_t i32InstanceIdx) const;
132
142 virtual int32_t GetChildInstanceCount() const;
143
159 virtual CGUIMenuItemBase* CreateChildInstance(int32_t i32InstanceIdx = -1);
160
176 virtual const CResult DeleteChildInstance(int32_t i32InstanceIndex);
177
187 virtual int32_t GetInstanceIndex() const;
203 virtual CGUIPaneBase* GetPane() const;
204
216 virtual CGUIMenuItemAttributeMultiInstanceParent* GetAttributeMultiInstanceParent() const;
217
229 virtual CGUIMenuItemAttributeMultiInstanceChild* GetAttributeMultiInstanceChild() const;
230
242 virtual CGUIMenuItemAttributePane* GetAttributePane() const;
243
253 virtual void Enable(bool bEnable);
254
265 virtual bool GetEnablement() const;
266
279 virtual bool IsEnabled();
280
292 virtual void EnableCloseButtonWhileDisabled(bool bEnable = false, bool bRecursive = true);
293
303 virtual bool IsCloseButtonEnabledWhileDisabled() const;
304
326 virtual void EnableInheritanceOfEnablement(bool bEnable = true);
327
337 virtual bool IsInheritanceOfEnablementEnabled() const;
338
339
340 virtual const CResult SetMinimalAuthorityLevel(Base::EAuthorityLevel eAuthorityLevel, GUI::EPermission ePermission);
341 virtual Base::EAuthorityLevel GetMinimalAuthorityLevel(GUI::EPermission ePermission) const;
342
343
344 virtual void EnableInheritanceOfEnablementOnContextMenu(bool bEnable = true);
345 virtual bool IsInheritanceOfEnablementOnContextMenuEnabled() const;
346
347 virtual bool IsContextMenuEnabled(const Base::EAuthorityLevel eCurrentUserAuthorityLevel, const GUI::EMenuItemPaneMenuTree eMenuItemPaneMenuTree);
348
349 virtual void SetMinimalAuthorityLevelOnContextMenu(Base::EAuthorityLevel eAuthorityLevel, GUI::EMenuItemPaneMenuTree eMenuItemPaneMenuTree);
350 virtual Base::EAuthorityLevel GetMinimalAuthorityLevelOnContextMenu(GUI::EMenuItemPaneMenuTree eMenuItemPaneMenuTree) const;
351
352 virtual void EnableHighAuthorityLevelContextMenuVisible(bool bEnable);
353 virtual bool IsHighAuthorityLevelContextMenuVisibleEnabled() const;
354
355 EContextMenuFlag GetContextMenuFlag(const Base::EAuthorityLevel eCurrentUserAuthorityLevel, const GUI::EMenuItemPaneMenuTree eMenuItemPaneMenuTree, EContextMenuFlag eAssignFlag);
356
357 virtual const CResult SelectPopupMenuItem(EMenuItemPaneMenuTree eSelectedMenuItem);
358
359 SupportToDuplicateAbstractObject(CGUIMenuItemBase);
360 DeclareGetClassType();
361
362 // 가장 최근의 IsEnabled() 호출에서 백업해둔 값을 리턴
363 virtual bool GetRecentEnablement() const;
364
365
366 virtual bool InternalSetName(const Base::CFLString<wchar_t>& strName);
367 virtual bool InternalSetPath(const Base::CFLString<wchar_t>& strPath);
368
369 protected:
370 virtual bool AppendMenu(CMenu& popupMenu, const Base::EAuthorityLevel eCurrentUserAuthorityLevel, const GUI::EMenuItemPaneMenuTree eMenuItem, const Base::CFLString<wchar_t>& strMenu, EContextMenuFlag eAssignFlag = EContextMenuFlag_Enabled);
371
372 virtual void SetSortOrder(ESortOrder eSO);
373 virtual ESortOrder GetSortOrder();
374
375 virtual const CResult CreateAttributeMultiInstanceParent();
376 virtual const CResult DeleteAttributeMultiInstanceParent();
377
378 virtual const CResult CreateAttributeMultiInstanceChild();
379 virtual const CResult CreateAttributeMultiInstanceChild(CGUIMenuItemBase* pMIParent, int32_t i32InstanceIndex);
380 virtual const CResult DeleteAttributeMultiInstanceChild();
381
382 virtual const CResult CreateAttributePane();
383 virtual const CResult CreateAttributePane(CGUIPaneBase* pPane);
384 virtual const CResult DeleteAttributePane();
385
386 public:
387 bool m_bDeleteWindowMsgSent;
388
389 protected:
390 Base::CFLString<wchar_t> m_strName;
391 Base::CFLString<wchar_t> m_strPath;
392 Base::CFLArray<Base::CFLString<wchar_t>> m_flaStrAlias;
393
394 bool m_bUseDefaultMode;
395
396 CGUIPaneMenu* m_pPaneMenu;
397 ETreeItemIcon m_eIcon;
398 ETreeItemIcon m_eIconSelected;
399 ESortOrder m_eSortOrder;
400
401 bool m_bEnable;
402 bool m_bEnableCloseButtonWhileDisabled;
403 bool m_bRecentEnablement;
404
405 bool m_bInheritanceOfEnablement;
406
407 bool m_bInheritanceOfEnablementOnContextMenu;
408 bool m_bEnableHighAuthorityLevelContextMenuVisible;
409
410 CInternalPermissionManager* m_pInternalPM;
411
412 CGUIMenuItemAttributeMultiInstanceParent* m_pAttrMultiInstanceParent;
413 CGUIMenuItemAttributeMultiInstanceChild* m_pAttrMultiInstanceChild;
414 CGUIMenuItemAttributePane* m_pAttrPane;
415
416 friend class CGUIManager;
417 friend class CGUIPaneMenu;
418 friend class CGUIPaneExampleSNAP;
419 friend class CGUITreeCtrl;
420 friend class CInternalPermissionManager;
421 };
422 }
423}
424
A class of Multi Instance Child.
Definition GUIMenuItemAttributeMultiInstanceChild.h:24
A class of Multi Instance Parent.
Definition GUIMenuItemAttributeMultiInstanceParent.h:25
A class that manages properties related to the Pane window for classes that inherit from CGUIMenuItem...
Definition GUIMenuItemAttributePane.h:32
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