FLImaging 6.10.23.2
GUIPropertyItemBase.h
1
8#pragma once
9
10#include "DefinitionsGUI.h"
11#include <functional>
12
14namespace FLImaging
15{
17 namespace GUI
18 {
19 class CInternalPermissionManager;
23
189 typedef std::function<void(CGUIPropertyItemBase*,
190 Base::CFLString<wchar_t>&,
192
229 #define MakePropertyCallback [=](CGUIPropertyItemBase* pItem, Base::CFLString<wchar_t>& strValue, const Base::CFLString<wchar_t>& strOrig) -> void
230
314 typedef std::function<void(CGUIPropertyItemBase*,
315 bool&,
317
334 #define MakePropertyAdditionalCheckBoxCallback [=](CGUIPropertyItemBase* pItem, bool& bCheckValue, const bool& bCheckValueOrig) -> void
335
336
344 class FL_EXPORT CGUIPropertyItemBase : public Base::CFLBase
345 {
346 public:
355
364
378 virtual bool SetPath(const Base::CFLString<wchar_t>& strPath);
379
392
406 virtual bool SetName(const Base::CFLString<wchar_t>& strName);
407
420
433
447 virtual bool Load(const Base::CFLString<wchar_t>& strFilePath = L"");
448
462 virtual bool Load(const Base::CFLArray<Base::CFLString<wchar_t>>& flaData);
463
477 virtual bool Save(const Base::CFLString<wchar_t>& strFilePath = L"") const;
478
494 virtual bool Save(Base::CFLArray<Base::CFLString<wchar_t>>& flaData) const;
495
505 virtual void SetReadOnly(bool bReadOnly);
506
516 virtual bool IsReadOnly() const;
517
525 virtual void Invalidate();
526
540 virtual bool SetValue(Base::CFLString<wchar_t> strValue, bool bInvokeCallback = true);
541
554
587
598
609
621 virtual bool SetOrigValue(const Base::CFLString<wchar_t>& strValue);
622
632 virtual void SetDefaultValue(const Base::CFLString<wchar_t>& strDefaultValue);
633
644
655 virtual void EnableAutoLoad(bool bAutoLoad = true);
656
666 virtual bool IsAutoLoadEnabled() const;
667
678 virtual void EnableAutoSave(bool bAutoSave = true);
679
689 virtual bool IsAutoSaveEnabled() const;
690
700 virtual void SetDescription(const Base::CFLString<wchar_t>& strDescription);
701
712
722 virtual CMFCPropertyGridProperty* GetGridProperty() const;
723
733 virtual CMFCPropertyGridProperty* CreateGridProperty() = 0;
734
744 virtual uint32_t GetHash() const;
745
755 virtual uint32_t GetParentHash() const;
756
772 virtual bool SetPropertyCallback(CPropertyCallback* pFunc, bool bAutoDestroy = true);
773
786
798 virtual void SetGUIMenuItemProperty(CGUIMenuItemProperty* pMIP);
799
809 virtual CGUIMenuItemProperty* GetGUIMenuItemProperty() const;
810
822 virtual void SetVisible(BOOL bShow, BOOL bAdjustLayout = FALSE);
823
833 virtual bool IsVisible() const;
834
844 virtual bool GetVisibleValue() const;
845
858
868 virtual bool IsInitialized() const;
869
879 virtual void SetInitialized(bool bInit);
880
890 virtual int32_t GetSubItemsCount() const;
891
903 virtual CGUIPropertyItemBase* GetSubItem(int32_t i32Index) const;
904
914 virtual void Enable(bool bEnable);
915
925 virtual bool IsEnabled() const;
926
936 virtual bool IsEffectivelyEnabled() const;
937
947 virtual void EnableInheritanceOfEnablement(bool bEnable = true);
948
959
969 virtual void EnableInheritanceOfVisibility(bool bEnable = true);
970
981
991 virtual void EnableGrayWhileDisabled(bool bGray = true);
992
1002 virtual bool IsGrayWhileDisabled() const;
1003
1019 virtual void SetMinimalAuthorityLevel(Base::EAuthorityLevel eAuthorityLevel, GUI::EPermission ePermission);
1036
1049
1057 virtual void SetModifiedFlag();
1058
1078 virtual void AddCheckBox(ECheckBoxLocation eLocation = ECheckBoxLocation_LeftOfName, bool bAdditionalCheckBoxValue = false);
1079
1089 virtual bool IsCheckBoxAdded() const;
1090
1099
1112
1125
1146
1157
1167 virtual void SetAdditionalCheckBoxValue(bool bCheck);
1168
1178 virtual bool GetAdditionalCheckBoxValue() const;
1179
1189 virtual bool Update();
1190
1200 virtual bool IsInsideCallback() const;
1201
1202 virtual void SetParentWndList(CMFCPropertyGridCtrl* pPGC);
1203 DeclareGetClassType();
1204
1205 protected:
1206 virtual void InvokeCallback(Base::CFLString<wchar_t>& strValue);
1207 virtual void InternalSetValue(const COleVariant& varValue, bool bRedrawImmediately);
1208 virtual void InternalSetOrigValue(const COleVariant& varValue);
1209
1210 virtual bool IsSNAPPropertyItem() const;
1211 virtual Base::CFLString<wchar_t> GetSNAPFilePath() const;
1212
1213 virtual const CResult ConvertAbsolutePathToRelativePath(const Base::CFLString<wchar_t>& flsAbsolutePath, Base::CFLString<wchar_t>& flsResultRelativePath) const;
1214 virtual const CResult ConvertRelativePathToAbsolutePath(const Base::CFLString<wchar_t>& flsRelativePath, Base::CFLString<wchar_t>& flsResultAbsolutePath) const;
1215
1216 protected:
1217 Base::CFLString<wchar_t> m_strPath;
1218 Base::CFLString<wchar_t> m_strName;
1219
1220 Base::CFLString<wchar_t> m_strDefaultValue;
1221 Base::CFLString<wchar_t> m_strDescription;
1222
1223 Base::CFLString<wchar_t> m_strInitialValue;
1224
1225 Base::CFLString<wchar_t> m_strBufferValue;
1226 Base::CFLString<wchar_t> m_strPrevBufferValue;
1227
1228 CMFCPropertyGridProperty* m_pGridProperty;
1229 mutable CGUIPropertyGridCtrl* m_pParentPropertyGridCtrl;
1230
1231 CPropertyCallback* m_pPropertyCallback;
1232 CPropertyAdditionalCheckBoxCallback* m_pPropertyAdditionalCheckBoxCallback;
1233 bool m_bPropertyCallbackAutoDestroy;
1234 bool m_bPropertyAdditionalCheckBoxCallbackAutoDestroy;
1235
1236 CGUIMenuItemProperty* m_pGUIMenuItemProperty;
1237
1238 CInternalPermissionManager* m_pInternalPM;
1239
1240 bool m_bInit;
1241 BOOL m_bShow;
1242 bool m_bEnable;
1243 bool m_bAutoLoad;
1244 bool m_bAutoSave;
1245 bool m_bReadOnly;
1246 bool m_bInCallback;
1247
1248 bool m_bInheritanceOfEnablement;
1249 bool m_bInheritanceOfVisibility;
1250 bool m_bEnableGrayWhileDisabled;
1251
1252 bool m_bCheckBoxAdded;
1253 bool m_bAdditionalCheckBoxValue;
1254 ECheckBoxLocation m_eAdditionalCheckBoxLocation;
1255
1256 EPropertyItemType m_ePropertyItemType;
1257
1258 friend class CGUIPaneProperties;
1259 friend class CGUIMenuItemProperty;
1260 friend class CInternalPermissionManager;
1261 friend class CGUIPropertyGridPropertyInterface;
1262 friend class CGUIPropertyGridPropertyBase;
1263 friend class CGUIPropertyGridPropertyColor;
1264 friend class CGUIPropertyGridPropertyDraggableSpin;
1265 friend class CGUIDialogPropertyImageFigureDrawingAttribute;
1266 friend class CGUIDialogProperty;
1267 friend class CGUIDialogPropertyObjectFigure;
1268 friend class CGUIDialogPropertyObjectFigureTransform;
1269 friend class CGUIDialogPropertyView3DToolROI;
1270 };
1271 }
1272}
Template type array class.
Definition FLArray.h:53
Top-level base class of FLImaging.
Definition FLBase.h:36
Template type string class.
Definition FLString.h:34
FLImaging module execution result object.
Definition ResultsDef.h:1631
The menu item class associated with the property pane.
Definition GUIMenuItemProperty.h:48
A class of property grid control.
Definition GUIPropertyGridCtrl.h:51
Property item base class.
Definition GUIPropertyItemBase.h:345
virtual FLImaging::GUI::CGUIPropertyGridCtrl * GetParentWndList() const
Returns a pointer to the grid control to which this item belongs.
virtual void Invalidate()
Invalidates the area corresponding to this on the screen, forcing a redraw.
virtual bool SetName(const Base::CFLString< wchar_t > &strName)
Sets the name of this.
virtual Base::EAuthorityLevel GetMinimalAuthorityLevel(GUI::EPermission ePermission) const
Returns the minimal permission level required to view, execute, or modify this property item.
virtual bool SetPath(const Base::CFLString< wchar_t > &strPath)
Sets the parent path of this. It should be set in the format like "Grandparent@Parent".
virtual uint32_t GetHash() const
Returns the hash value of this.
virtual ECheckBoxLocation GetAdditionalCheckBoxLocation() const
Gets the current location of the additional checkbox.
virtual bool IsEffectivelyEnabled() const
Checks whether the object is effectively enabled, taking into account the activation state of its par...
virtual void SetDescription(const Base::CFLString< wchar_t > &strDescription)
Sets the description of this.
virtual bool SetPropertyCallback(CPropertyCallback *pFunc, bool bAutoDestroy=true)
Sets a callback function for the property.
virtual void EnableInheritanceOfEnablement(bool bEnable=true)
Enables or disables inheritance of the enablement state for the object.
virtual Base::CFLString< wchar_t > GetValue() const
Returns the current value of this property item.
virtual void SetAdditionalCheckBoxValue(bool bCheck)
Sets the checked state of the additional checkbox.
virtual bool Save(const Base::CFLString< wchar_t > &strFilePath=L"") const
Saves the value of this to an ini file.
virtual void EnableAutoSave(bool bAutoSave=true)
Enables or disables the auto-save feature for this. Auto-save is a feature that automatically saves t...
virtual CPropertyAdditionalCheckBoxCallback * GetPropertyAdditionalCheckBoxCallback() const
Gets the currently assigned callback for the additional checkbox.
virtual Base::CFLString< wchar_t > GetName() const
Returns the name of this.
virtual bool GetAdditionalCheckBoxValue() const
Gets the checked state of the additional checkbox.
virtual CMFCPropertyGridProperty * CreateGridProperty()=0
It creates and returns the MFC grid property for this item. If an instance has already been created,...
virtual bool IsAutoLoadEnabled() const
Checks if auto-Load is enabled for this.
CGUIPropertyItemBase()
Default constructor.
virtual void SetMinimalAuthorityLevel(Base::EAuthorityLevel eAuthorityLevel, GUI::EPermission ePermission)
Sets the minimal permission level required to view, execute, or modify this.
virtual CPropertyCallback * GetPropertyCallback() const
Retrieves the callback function associated with the property.
virtual bool GetVisibleValue() const
Returns the value (m_bShow) set by SetVisible(). Even if SetVisible(true) is set, the item may be hid...
virtual bool Load(const Base::CFLString< wchar_t > &strFilePath=L"")
Loads the value of this from an ini file.
virtual void SetDefaultValue(const Base::CFLString< wchar_t > &strDefaultValue)
Sets the default value of this.
virtual Base::CFLString< wchar_t > GetBufferValue() const
Returns the current buffer value of this.
virtual bool IsGrayWhileDisabled() const
Returns whether a disabled property item is displayed in grayscale. If true, the disabled property it...
virtual bool SetValue(Base::CFLString< wchar_t > strValue, bool bInvokeCallback=true)
Sets the value for this.
virtual int32_t GetSubItemsCount() const
Gets the count of sub-items contained within the object.
virtual Base::CFLString< wchar_t > GetDefaultValue() const
Returns the default value of this.
virtual bool SetBufferValue(Base::CFLString< wchar_t > strValue)
Sets the buffer value of this.
virtual void AddCheckBox(ECheckBoxLocation eLocation=ECheckBoxLocation_LeftOfName, bool bAdditionalCheckBoxValue=false)
Adds an additional checkbox to the property item. This checkbox is an auxiliary control displayed alo...
virtual bool IsInheritanceOfEnablementEnabled() const
Checks if inheritance of the enablement state is enabled.
virtual CMFCPropertyGridProperty * GetGridProperty() const
Returns a pointer to the grid property associated with this.
virtual bool IsInheritanceOfVisibilityEnabled() const
Checks if inheritance of the visibility state is enabled.
virtual Base::CFLString< wchar_t > GetPrevBufferValue() const
Returns the previous buffer value of this.
virtual bool IsCheckBoxAdded() const
Checks whether an additional checkbox has been added to this property item.
virtual void RemoveAdditionalCheckBoxAdded()
Removes the additional checkbox from the property item if it exists.
virtual bool SetPropertyAdditionalCheckBoxCallback(CPropertyAdditionalCheckBoxCallback *pFunc, bool bAutoDestroy=true)
Sets a callback function for the additional checkbox interaction.
virtual ~CGUIPropertyItemBase()
Destructor for CGUIPropertyItemBase class.
virtual void EnableInheritanceOfVisibility(bool bEnable=true)
Enables or disables inheritance of the visibility state for the object.
virtual void SetVisible(BOOL bShow, BOOL bAdjustLayout=FALSE)
Displays or hides this in the PropertyGridCtrl. If bAdjustLayout is FALSE, you must explicitly call G...
virtual void EnableAutoLoad(bool bAutoLoad=true)
Enables or disables the auto-load feature for this. Auto-load is a feature that loads and sets values...
virtual bool Load(const Base::CFLArray< Base::CFLString< wchar_t > > &flaData)
Loads the value of this from a string array.
virtual bool SetOrigValue(const Base::CFLString< wchar_t > &strValue)
Sets the original value of this.
virtual bool IsInitialized() const
Checks if the object is initialized.
virtual void SetGUIMenuItemProperty(CGUIMenuItemProperty *pMIP)
Sets the GUI menu item property associated with the object.
virtual CGUIPropertyItemBase * GetSubItem(int32_t i32Index) const
Retrieves a specific sub-item by its index.
virtual bool Update()
Updates internal state or UI and returns the success status.
virtual Base::CFLString< wchar_t > GetFullPath() const
Returns the full path of this as a string, formatted like "Grandparent@Parent@MyName".
virtual void SetInitialized(bool bInit)
Sets the initialization state of the object.
virtual bool IsReadOnly() const
Returns whether this is set as read-only. If true, this is read-only; if false, it is editable.
virtual bool IsVisible() const
Returns the visibility state of this. Even if SetVisible(true) is called, the item may be hidden base...
virtual bool IsInsideCallback() const
Returns whether the current context is inside a property callback procedure.
virtual bool IsEnabled() const
Checks if the object is enabled.
virtual uint32_t GetParentHash() const
Returns the hash value of the parent of this.
virtual void EnableGrayWhileDisabled(bool bGray=true)
Sets whether a disabled property item is displayed in grayscale. If true, the disabled property item ...
virtual void SetModifiedFlag()
Marks the property item as modified.
virtual bool Save(Base::CFLArray< Base::CFLString< wchar_t > > &flaData) const
Function to record the value of this in INI data array.
virtual void SetReadOnly(bool bReadOnly)
Sets whether this is read-only. If set to true, the item becomes non-editable; if false,...
virtual void Enable(bool bEnable)
Enables or disables the object.
virtual CGUIMenuItemProperty * GetGUIMenuItemProperty() const
Retrieves the GUI menu item property associated with the object.
virtual EPropertyItemType GetItemType() const
Returns the type of the property item.
virtual void SetAdditionalCheckBoxLocation(ECheckBoxLocation eLocation=ECheckBoxLocation_LeftOfName)
Sets the location of the additional checkbox.
virtual Base::CFLString< wchar_t > GetDescription() const
Returns the description of this.
virtual bool IsAutoSaveEnabled() const
Checks if auto-save is enabled for this.
virtual Base::CFLString< wchar_t > GetPath() const
Returns the parent path of this.
EAuthorityLevel
Authority level.
Definition AuthorityManager.h:29
Definition D2DObject.h:12
ECheckBoxLocation
CheckBox Location.
Definition DefinitionsGUI.h:10346
@ ECheckBoxLocation_LeftOfName
Left of name.
Definition DefinitionsGUI.h:10353
EPermission
Permission.
Definition DefinitionsGUI.h:9840
std::function< void(CGUIPropertyItemBase *, bool &, const bool &)> CPropertyAdditionalCheckBoxCallback
Callback invoked when an item's additional checkbox is toggled.
Definition GUIPropertyItemBase.h:316
EPropertyItemType
Definition DefinitionsGUI.h:10862
std::function< void(CGUIPropertyItemBase *, Base::CFLString< wchar_t > &, const Base::CFLString< wchar_t > &)> CPropertyCallback
Value-change callback invoked from within SetValue().
Definition GUIPropertyItemBase.h:191