FLImaging 6.5.8.1
GUIPropertyMenuNodeContainer.h
1#pragma once
2
3#include "GUIPropertyMenuNodeBase.h"
4#include "DefinitionGUISNAP.h"
5
6namespace FLImaging
7{
8 namespace GUI
9 {
10 class CGUIPropertyItemBase;
11 class CSNAPFeatureContainer;
12
13 class FL_EXPORT CGUIPropertyMenuNodeContainer : public CGUIPropertyMenuNodeBase
14 {
15 SupportToDuplicateAbstractObject(CGUIPropertyMenuNodeContainer);
16
17 public:
18 CGUIPropertyMenuNodeContainer();
19 virtual ~CGUIPropertyMenuNodeContainer();
20
21 virtual const CResult GenerateCode(CSNAPGenerateCodeInfo* pGenerateCodeInfo) override;
22
23 virtual const CResult ConfigureMenu() override;
24
25 virtual const CResult UpdatePropertyMenuItem() override;
26
27 virtual const CResult OnInputParameter(CSNAPParameter* pParameter) override;
28 virtual const CResult OnOutputParameter(CSNAPParameter* pParameter) override;
29
30 virtual const CResult GetLastResultValue(Base::CFLString<wchar_t>& flsResult) const override;
31
32 void SetConfigureValueItemCount(int32_t i32Count);
33
34 int32_t GetValueItemCount() const;
35
36 CGUIPropertyItemBase* GetSelectionIndexesItem() const;
37 CGUIPropertyItemBase* GetCategoryItem(EControlType eType) const;
38
39 CGUIPropertyItemBase* GetValueItem(EControlType eType, int32_t i32Index) const;
40 CGUIPropertyItemBase* GetActivatedValueItem(int32_t i32Index) const;
41
42 virtual const CResult SetItemValue(CGUIPropertyItemBase* pItem, Base::CFLString<wchar_t> flsValue);
43 virtual Base::CFLString<wchar_t> GetItemValue(CGUIPropertyItemBase* pItem) const override;
44
45 DeclareGetClassType();
46
47 protected:
48 virtual const CResult InitializationProcedure() override;
49 virtual const CResult ProcessProcedure() override;
50
51 virtual const CResult PushBackProcedure();
52 virtual const CResult PushFrontProcedure();
53 virtual const CResult SetProcedure();
54 virtual const CResult ClearProcedure();
55
56 int32_t GetIndex(Base::CFLString<wchar_t> flsName) const;
57
58 Base::CFLString<wchar_t> GetCategoryName(EControlType eType) const;
59
60 Base::CFLString<wchar_t> GetValueItemName(int32_t i32Index) const;
61 Base::CFLString<wchar_t> GetValueItemPathName(EControlType eType, int32_t i32Index) const;
62
63 CPropertyButtonClickProcedure* MakeAddButtonImplement();
64 CPropertyButtonClickProcedure* MakeRemoveButtonImplement();
65
66 const CResult AddValueItem();
67 const CResult RemoveValueItem();
68
69 EControlType GetActivatedControlType() const;
70
71 const CResult SetVisibleControlItem(EControlType eType, bool bSet);
72
73 virtual Base::CFLString<wchar_t> GetPropertyData() const = 0;
74 virtual const CResult UpdatePropertyMenuItemValue() = 0;
75
76 virtual Base::CFLString<wchar_t> GetCodeVariableType() const = 0;
77 virtual Base::CFLString<wchar_t> GetCodeVariableInitValue() const;
78
79 virtual CSNAPFeatureContainer* GetFeatureContainer() const;
80
81 protected:
82 EDefinedParameterType m_eElementParameterType;
83
84 bool m_bDataInput;
85
86 Base::CFLArray<Base::CFLString<wchar_t>> m_flaDropDownList;
87 Base::CFLString<wchar_t> m_flsItemDescription;
88 Base::CFLString<wchar_t> m_flsItemToolTip;
89
90 std::vector<CGUIPropertyItemBase*>* m_pVctValueItems;
91
92 static Base::CFLString<wchar_t> m_flsCategoryName[EControlTypeCount];
93 };
94 }
95}