FLImaging 6.8.12.1
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
302 virtual void EnableInheritanceOfEnablement(bool bEnable = true);
303
313 virtual bool IsInheritanceOfEnablementEnabled() const;
314
315
316 virtual const CResult SetMinimalAuthorityLevel(Base::EAuthorityLevel eAuthorityLevel, GUI::EPermission ePermission);
317 virtual Base::EAuthorityLevel GetMinimalAuthorityLevel(GUI::EPermission ePermission) const;
318
319
320 virtual void EnableInheritanceOfEnablementOnContextMenu(bool bEnable = true);
321 virtual bool IsInheritanceOfEnablementOnContextMenuEnabled() const;
322
323 virtual bool IsContextMenuEnabled(const Base::EAuthorityLevel eCurrentUserAuthorityLevel, const GUI::EMenuItemPaneMenuTree eMenuItemPaneMenuTree);
324
325 virtual void SetMinimalAuthorityLevelOnContextMenu(Base::EAuthorityLevel eAuthorityLevel, GUI::EMenuItemPaneMenuTree eMenuItemPaneMenuTree);
326 virtual Base::EAuthorityLevel GetMinimalAuthorityLevelOnContextMenu(GUI::EMenuItemPaneMenuTree eMenuItemPaneMenuTree) const;
327
328 virtual void EnableHighAuthorityLevelContextMenuVisible(bool bEnable);
329 virtual bool IsHighAuthorityLevelContextMenuVisibleEnabled() const;
330
331 EContextMenuFlag GetContextMenuFlag(const Base::EAuthorityLevel eCurrentUserAuthorityLevel, const GUI::EMenuItemPaneMenuTree eMenuItemPaneMenuTree, EContextMenuFlag eAssignFlag);
332
333 virtual const CResult SelectPopupMenuItem(EMenuItemPaneMenuTree eSelectedMenuItem);
334
335 SupportToDuplicateAbstractObject(CGUIMenuItemBase);
336 DeclareGetClassType();
337
338 // 가장 최근의 IsEnabled() 호출에서 백업해둔 값을 리턴
339 virtual bool GetRecentEnablement() const;
340
341
342 virtual bool InternalSetName(const Base::CFLString<wchar_t>& strName);
343 virtual bool InternalSetPath(const Base::CFLString<wchar_t>& strPath);
344
345 protected:
346 virtual bool AppendMenu(CMenu& popupMenu, const Base::EAuthorityLevel eCurrentUserAuthorityLevel, const GUI::EMenuItemPaneMenuTree eMenuItem, const Base::CFLString<wchar_t>& strMenu, EContextMenuFlag eAssignFlag = EContextMenuFlag_Enabled);
347
348 virtual void SetSortOrder(ESortOrder eSO);
349 virtual ESortOrder GetSortOrder();
350
351 virtual const CResult CreateAttributeMultiInstanceParent();
352 virtual const CResult DeleteAttributeMultiInstanceParent();
353
354 virtual const CResult CreateAttributeMultiInstanceChild();
355 virtual const CResult CreateAttributeMultiInstanceChild(CGUIMenuItemBase* pMIParent, int32_t i32InstanceIndex);
356 virtual const CResult DeleteAttributeMultiInstanceChild();
357
358 virtual const CResult CreateAttributePane();
359 virtual const CResult CreateAttributePane(CGUIPaneBase* pPane);
360 virtual const CResult DeleteAttributePane();
361
362 public:
363 bool m_bDeleteWindowMsgSent;
364
365 protected:
366 Base::CFLString<wchar_t> m_strName;
367 Base::CFLString<wchar_t> m_strPath;
368 Base::CFLArray<Base::CFLString<wchar_t>> m_flaStrAlias;
369
370 bool m_bUseDefaultMode;
371
372 CGUIPaneMenu* m_pPaneMenu;
373 ETreeItemIcon m_eIcon;
374 ETreeItemIcon m_eIconSelected;
375 ESortOrder m_eSortOrder;
376
377 bool m_bEnable;
378 bool m_bRecentEnablement;
379
380 bool m_bInheritanceOfEnablement;
381
382 bool m_bInheritanceOfEnablementOnContextMenu;
383 bool m_bEnableHighAuthorityLevelContextMenuVisible;
384
385 CInternalPermissionManager* m_pInternalPM;
386
387 CGUIMenuItemAttributeMultiInstanceParent* m_pAttrMultiInstanceParent;
388 CGUIMenuItemAttributeMultiInstanceChild* m_pAttrMultiInstanceChild;
389 CGUIMenuItemAttributePane* m_pAttrPane;
390
391 friend class CGUIManager;
392 friend class CGUIPaneMenu;
393 friend class CGUIPaneExampleSNAP;
394 friend class CGUITreeCtrl;
395 friend class CInternalPermissionManager;
396 };
397 }
398}
399
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: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