FLImaging 6.5.8.1
GUIMenuItemBase.h
1#pragma once
2#include "GUIDefinitions.h"
3
4namespace FLImaging
5{
6 namespace GUI
7 {
8 class CGUIPaneMenu;
9 class CGUIDocBase;
10 class CGUITreeCtrl;
11 class CInternalPermissionManager;
12 class CGUIMenuItemAttributeMultiInstanceParent;
13 class CGUIMenuItemAttributeMultiInstanceChild;
14 class CGUIMenuItemAttributePane;
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
339 virtual bool InternalSetName(const Base::CFLString<wchar_t>& strName);
340 virtual bool InternalSetPath(const Base::CFLString<wchar_t>& strPath);
341
342 protected:
343 virtual bool AppendMenu(CMenu& popupMenu, const Base::EAuthorityLevel eCurrentUserAuthorityLevel, const GUI::EMenuItemPaneMenuTree eMenuItem, const Base::CFLString<wchar_t>& strMenu, EContextMenuFlag eAssignFlag = EContextMenuFlag_Enabled);
344
345 virtual void SetSortOrder(ESortOrder eSO);
346 virtual ESortOrder GetSortOrder();
347
348 virtual const CResult CreateAttributeMultiInstanceParent();
349 virtual const CResult DeleteAttributeMultiInstanceParent();
350
351 virtual const CResult CreateAttributeMultiInstanceChild();
352 virtual const CResult CreateAttributeMultiInstanceChild(CGUIMenuItemBase* pMIParent, int32_t i32InstanceIndex);
353 virtual const CResult DeleteAttributeMultiInstanceChild();
354
355 virtual const CResult CreateAttributePane();
356 virtual const CResult CreateAttributePane(CGUIPaneBase* pPane);
357 virtual const CResult DeleteAttributePane();
358
359 public:
360 bool m_bDeleteWindowMsgSent;
361
362 protected:
363 Base::CFLString<wchar_t> m_strName;
364 Base::CFLString<wchar_t> m_strPath;
365 Base::CFLArray<Base::CFLString<wchar_t>> m_flaStrAlias;
366
367 bool m_bUseDefaultMode;
368
369 CGUIPaneMenu* m_pPaneMenu;
370 ETreeItemIcon m_eIcon;
371 ETreeItemIcon m_eIconSelected;
372 ESortOrder m_eSortOrder;
373
374 bool m_bEnable;
375
376 bool m_bInheritanceOfEnablement;
377
378 bool m_bInheritanceOfEnablementOnContextMenu;
379 bool m_bEnableHighAuthorityLevelContextMenuVisible;
380
381 CInternalPermissionManager* m_pInternalPM;
382
383 CGUIMenuItemAttributeMultiInstanceParent* m_pAttrMultiInstanceParent;
384 CGUIMenuItemAttributeMultiInstanceChild* m_pAttrMultiInstanceChild;
385 CGUIMenuItemAttributePane* m_pAttrPane;
386
387 friend class CGUIManager;
388 friend class CGUIPaneMenu;
389 friend class CGUIPaneExampleSNAP;
390 friend class CGUITreeCtrl;
391 friend class CInternalPermissionManager;
392 };
393 }
394}
395
ESortOrder
정렬 순서
Definition GUIDefinitions.h:8642
@ Assign
CGUIPropertyItemView3DFigure 의 값을 해당 도형으로 설정하는 함수
@ SetName
도형 이름 설정 메뉴