FLImaging 6.5.8.1
GUIPropertyMenuLink.h
1#pragma once
2
3#include "GUIPropertyMenuSNAPObject.h"
4#include "SNAPFigureOutputInfo.h"
5#include "DefinitionGUISNAP.h"
6
7namespace FLImaging
8{
9 namespace GUI
10 {
11 class CGUIPropertyItemBase;
12
13 class CGUIViewSNAPObjectLink;
14
15 class FL_EXPORT CGUIPropertyMenuLink : public CGUIPropertyMenuSNAPObject
16 {
17 SupportToDuplicateObject(CGUIPropertyMenuLink);
18
19 public:
20 CGUIPropertyMenuLink();
21 CGUIPropertyMenuLink(CGUIViewSNAPObjectLink* pLink);
22 virtual ~CGUIPropertyMenuLink();
23
24 virtual const CResult ConfigureMenu() override;
25
26 CSNAPFigureOutputInfo GetFigureOutputInfo(int32_t i32Index);
27
28 int32_t GetIOPropertyCount();
29 const CResult SetIOPropertyCount(int32_t i32Count);
30
31 SRegisterParameterInfo* GetOutputProcedureInfo(int32_t i32Index);
32 SRegisterParameterInfo* GetInputProcedureInfo(int32_t i32Index);
33
34 std::vector<SRegisterParameterInfo*> GetSelectedOutputProcedureInfos();
35 std::vector<SRegisterParameterInfo*> GetSelectedInputProcedureInfos();
36
37 void UpdatePropertyOutputList();
38
39 Base::CFLString<wchar_t> GetOutputPropertySelectedItemName(int32_t i32Index);
40 Base::CFLString<wchar_t> GetInputPropertySelectedItemName(int32_t i32Index);
41
42 bool IsSetIO();
43
44 const CResult AddPropertyIO(Base::CFLString<wchar_t> flsOutput, Base::CFLString<wchar_t> flsInput);
45 const CResult ModifyPropertyIO(int32_t i32Index, Base::CFLString<wchar_t> flsOutput, Base::CFLString<wchar_t> flsInput);
46
47 const CResult RemovePropertyIO(SRegisterParameterInfo* pInfo);
48
49 virtual const CResult UpdatePropertyMenuItem() override;
50
51 virtual const CResult UpdateInputItem(int32_t i32Index);
52
53 CGUIViewSNAPObjectLink* GetLink();
54
55 virtual CGUIViewSNAP* GetParentViewSNAP();
56
57 DeclareGetClassType();
58
59 protected:
60 virtual const CResult ChangedIOPropertyCount();
61 virtual const CResult ChangedOutputProperty(CGUIPropertyItemBase* pItem, Base::CFLString<wchar_t> flsValue);
62 virtual const CResult ChangedInputProperty(CGUIPropertyItemBase* pItem, Base::CFLString<wchar_t> flsValue);
63 virtual const CResult ChangedFigureOutputModeProperty(CGUIPropertyItemBase* pItem, Base::CFLString<wchar_t> flsValue);
64 virtual const CResult ChangedMakeCrosshairPropertyItem(CGUIPropertyItemBase* pItem);
65
66 int32_t GetIOIndex(CGUIPropertyItemBase* pItem);
67
68 virtual const CResult UpdateDrawingFigureItem(int32_t i32Index, Base::CFLString<wchar_t> flsValue);
69
70 virtual std::vector<SRegisterParameterInfo*> GetCandidateOutputProcedure();
71
72 CGUIPropertyItemBase* GetInputMenuItem(int32_t i32Index);
73 CGUIPropertyItemBase* GetOutputMenuItem(int32_t i32Index);
74
75 bool IsUsedOutputProperty();
76 bool IsUsedInputProperty();
77
78 void UpdateView();
79
80 protected:
81 CGUIViewSNAPObjectLink* m_pLink;
82 };
83 }
84}