FLImaging 6.8.12.1
GUIPropertyMenuBase.h
1#pragma once
2
3#include "GUIMenuItemProperty.h"
4#include "GUIPropertyButton.h"
5#include <map>
6
7namespace FLImaging
8{
9 namespace GUI
10 {
11 class CGUISNAPNodeInfo;
12 class CSNAPParameter;
13 class CSNAPGenerateCodeInfo;
14 class CGUIViewSNAP;
15
16 class FL_EXPORT CGUIPropertyMenuBase : public CGUIMenuItemProperty
17 {
18 SupportToDuplicateAbstractObject(CGUIPropertyMenuBase);
19
20 public:
21 CGUIPropertyMenuBase();
22 CGUIPropertyMenuBase(const CGUIPropertyMenuBase& rhs);
23 CGUIPropertyMenuBase(const CGUIPropertyMenuBase* pRhs);
24
25 virtual ~CGUIPropertyMenuBase();
26
27 const CGUIPropertyMenuBase& operator=(const CGUIPropertyMenuBase& rhs);
28 const CGUIPropertyMenuBase& operator=(const CGUIPropertyMenuBase* pRhs);
29
30 virtual const CResult Assign(const CGUIPropertyMenuBase& rhs);
31 virtual const CResult Assign(const CGUIPropertyMenuBase* pRhs);
32
33 virtual const CResult ConfigureMenu() = 0;
34
35 virtual const Foundation::CAlgorithmBase* GetAlgorithmObject() const;
36
37 virtual const CResult UpdateParameters();
38
39 virtual const CResult GenerateCodeScript(const Base::CFLString<wchar_t>& flsObjectName, Base::CFLString<wchar_t> flsDescription = L"");
40
41 virtual const CResult GenerateParameterCodeScript(const Base::CFLString<wchar_t>& flsObjectName);
42
43 // 사용자 확인 없이 `SetDefaultParameters()`를 호출하는 기본 프로퍼티 버튼 클릭 절차를 생성합니다.
44 virtual CPropertyButtonClickProcedure* Default();
45 // 사용자 확인 여부에 따라 `SetDefaultParameters()`를 호출하는 프로퍼티 버튼 클릭 절차를 생성합니다.
46 // flsMsgBoxString: 확인 메시지 박스에 표시할 문자열입니다. 문자열이 비어 있을 경우 사용자 확인 없이 기본 설정이 바로 적용됩니다.
47 virtual CPropertyButtonClickProcedure* Default(const Base::CFLString<wchar_t>& flsMsgBoxString);
48 virtual const CResult SetDefaultParameters();
49
50 public:
51 virtual const CResult InitializeParameter();
52
53 virtual Base::CFLString<wchar_t> GetSNAPPaneTitle();
54 virtual const CResult UpdateSNAPTitle();
55
56 void SetSNAPNodeInfo(const CGUISNAPNodeInfo* pSNAPNodeInfo);
57 const CGUISNAPNodeInfo* GetSNAPNodeInfo() const;
58
59 virtual const CResult OnInputParameter(CSNAPParameter* pParameter);
60 virtual const CResult OnOutputParameter(CSNAPParameter* pParameter);
61 virtual const CResult GetLastResultValue(Base::CFLString<wchar_t>& flsResult) const;
62
63 virtual Base::EPixelFormat OnResponseImagePixelFormat(Base::EPixelFormat eInputPixelFormat, Base::CFLString<wchar_t> flsOutputProcedureName);
64 virtual const CResult OnSetImagePixelFormat(Base::EPixelFormat eInputPixelFormat);
65
66 virtual bool IsSNAPNodeProperty() const;
67 virtual Base::EPixelFormat GetInputImagePixelFormat();
68
69 virtual const CResult UpdatePropertyMenuItem();
70
71 void RemoveCustomProcess(bool bRemove);
72
73 virtual const CResult GenerateCode(CSNAPGenerateCodeInfo* pGenerateCodeInfo);
74
75 virtual const CResult MakeProcessProperty();
76 virtual const CResult AddProcessPropertyItem(int32_t i32Index, bool bSelectItem = false);
77 virtual int32_t GetProcessPropertyItemCount();
78
79 virtual const CResult SendUpdateProcessProperty();
80 virtual const CResult UpdateProcessProperty();
81
82 virtual const CResult SetProcessPropertyItemCount(int32_t i32Count);
83
84 virtual Base::CFLString<wchar_t> GetProcessPropertyItemRootPath() const;
85
86 virtual Base::CFLString<wchar_t> GetProcessPropertyItemProcessName(int32_t i32Index) const;
87 virtual Base::CFLString<wchar_t> GetProcessPropertyItemProcessFullPath(int32_t i32Index) const;
88
89 virtual Base::CFLString<wchar_t> GetProcessPropertyItemExceptionName(int32_t i32Index) const;
90 virtual Base::CFLString<wchar_t> GetProcessPropertyItemExceptionFullPath(int32_t i32Index) const;
91
92 CGUIPropertyItemBase* GetProcessPropertyIndexesItem();
93 CGUIPropertyItemBase* GetProcessPropertyProcessItem(int32_t i32Index);
94 CGUIPropertyItemBase* GetProcessPropertyExceptionItem(int32_t i32Index);
95
96 virtual CGUIViewSNAP* GetParentViewSNAP() const;
97 virtual bool IsSNAPStopFlag() const;
98
99 virtual const CResult EnableSNAPRun(bool bEnable);
100 virtual bool IsSNAPRunEnabled() const;
101
102 virtual Base::CFLBase* GetInstance() const;
103
104 DeclareGetClassType();
105
106 protected:
107 Foundation::CAlgorithmBase* m_pAlgorithmObject;
108
109 CGUISNAPNodeInfo* m_pSNAPNodeInfo;
110 bool m_bRemoveCustomProcess;
111
112 std::function<void(void*)>* m_pLmdUpdateProcessProperty;
113
114 bool m_bSNAPRunEnable;
115
116 friend class CGUIManager;
117 };
118 }
119}
The menu item class associated with the property pane.
Definition GUIMenuItemProperty.h:48
SNAP view class.
Definition GUIViewSNAP.h:35
Definition D2DObject.h:12
@ Assign
Set the value of CGUIPropertyItemView3DFigure to the specified figure.
Definition DefinitionsGUIView3D.h:2798