FLImaging 7.4.14.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 virtual void EnableInheritanceOfEnablementOnContextMenu(bool bEnable = true);
344 virtual bool IsInheritanceOfEnablementOnContextMenuEnabled() const;
345
346 virtual bool IsContextMenuEnabled(const Base::EAuthorityLevel eCurrentUserAuthorityLevel, const GUI::EMenuItemPaneMenuTree eMenuItemPaneMenuTree);
347
348 virtual void SetMinimalAuthorityLevelOnContextMenu(Base::EAuthorityLevel eAuthorityLevel, GUI::EMenuItemPaneMenuTree eMenuItemPaneMenuTree);
349 virtual Base::EAuthorityLevel GetMinimalAuthorityLevelOnContextMenu(GUI::EMenuItemPaneMenuTree eMenuItemPaneMenuTree) const;
350
351 virtual void EnableHighAuthorityLevelContextMenuVisible(bool bEnable);
352 virtual bool IsHighAuthorityLevelContextMenuVisibleEnabled() const;
353
354 EContextMenuFlag GetContextMenuFlag(const Base::EAuthorityLevel eCurrentUserAuthorityLevel, const GUI::EMenuItemPaneMenuTree eMenuItemPaneMenuTree, EContextMenuFlag eAssignFlag);
355
356 virtual const CResult SelectPopupMenuItem(EMenuItemPaneMenuTree eSelectedMenuItem);
357
358 SupportToDuplicateAbstractObject(CGUIMenuItemBase);
359 DeclareGetClassType();
360
361 // 가장 최근의 IsEnabled() 호출에서 백업해둔 값을 리턴
362 virtual bool GetRecentEnablement() const;
363
364
365 virtual bool InternalSetName(const Base::CFLString<wchar_t>& strName);
366 virtual bool InternalSetPath(const Base::CFLString<wchar_t>& strPath);
367
368 protected:
369 virtual bool AppendMenu(CMenu& popupMenu, const Base::EAuthorityLevel eCurrentUserAuthorityLevel, const GUI::EMenuItemPaneMenuTree eMenuItem, const Base::CFLString<wchar_t>& strMenu, EContextMenuFlag eAssignFlag = EContextMenuFlag_Enabled);
370
371 virtual void SetSortOrder(ESortOrder eSO);
372 virtual ESortOrder GetSortOrder();
373
374 virtual const CResult CreateAttributeMultiInstanceParent();
375 virtual const CResult DeleteAttributeMultiInstanceParent();
376
377 virtual const CResult CreateAttributeMultiInstanceChild();
378 virtual const CResult CreateAttributeMultiInstanceChild(CGUIMenuItemBase* pMIParent, int32_t i32InstanceIndex);
379 virtual const CResult DeleteAttributeMultiInstanceChild();
380
381 virtual const CResult CreateAttributePane();
382 virtual const CResult CreateAttributePane(CGUIPaneBase* pPane);
383 virtual const CResult DeleteAttributePane();
384
385 public:
386 bool m_bDeleteWindowMsgSent;
387
388 protected:
389 Base::CFLString<wchar_t> m_strName;
390 Base::CFLString<wchar_t> m_strPath;
391 Base::CFLArray<Base::CFLString<wchar_t>> m_flaStrAlias;
392
393 bool m_bUseDefaultMode;
394
395 CGUIPaneMenu* m_pPaneMenu;
396 ETreeItemIcon m_eIcon;
397 ETreeItemIcon m_eIconSelected;
398 ESortOrder m_eSortOrder;
399
400 bool m_bEnable;
401 bool m_bEnableCloseButtonWhileDisabled;
402 bool m_bRecentEnablement;
403
404 bool m_bInheritanceOfEnablement;
405
406 bool m_bInheritanceOfEnablementOnContextMenu;
407 bool m_bEnableHighAuthorityLevelContextMenuVisible;
408
409 CInternalPermissionManager* m_pInternalPM;
410
411 CGUIMenuItemAttributeMultiInstanceParent* m_pAttrMultiInstanceParent;
412 CGUIMenuItemAttributeMultiInstanceChild* m_pAttrMultiInstanceChild;
413 CGUIMenuItemAttributePane* m_pAttrPane;
414
415 friend class CGUIManager;
416 friend class CGUIPaneMenu;
417 friend class CGUIPaneExampleSNAP;
418 friend class CGUITreeCtrl;
419 friend class CInternalPermissionManager;
420 };
421 }
422}
423
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:9926
@ 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:1671
@ Load
Default Load.
Definition DefinitionsGUI.h:50