FLImaging 6.10.16.1
GUIMenuItemProperty.h
1#pragma once
2
10
11#include "GUIMenuItemBase.h"
12#include "GUIPropertyMessageBox.h"
13#include "GUIStaticText.h"
14#include "DefinitionsGUI.h"
15#include <map>
16
18namespace FLImaging
19{
21 namespace GUI
22 {
23 class CGUIPaneProperties;
26 class CGUIPropertyButton;
27 class CGUIPropertyMessageBox;
28 class CGUIStaticText;
29 class CGUIDialogKernel;
30 class CGUIManager;
31 class CGUIPaneFrameWnd;
33
34 typedef std::function<const CResult(int32_t)> CGUIMenuItemRegistrationCallback;
35 #define MakeMenuItemRegistrationCallback [=](int32_t i32Index) -> const CResult
36
37 typedef std::function<const CResult(int32_t)> CGUIMenuItemUnregistrationCallback;
38 #define MakeMenuItemUnregistrationCallback [=](int32_t i32Index) -> const CResult
39
47 class FL_EXPORT CGUIMenuItemProperty : public CGUIMenuItemBase
48 {
49 public:
58
69
80
89
101 virtual const CResult PreDestroy() override;
102
110 virtual void Clear();
111
125 virtual const CResult Assign(const CGUIMenuItemProperty& rhs);
126
140 virtual const CResult Assign(const CGUIMenuItemProperty* pRhs);
141
176
211
221 virtual bool DoesFileExist() const;
222
232 virtual const CResult RemoveSettingFile() const;
233
243 virtual bool Load() override;
244
254 virtual bool IsLoaded() const;
255
269 virtual bool Load(CGUIDialogKernel* pKernel);
270
279 virtual bool Save() const override;
280
294 virtual bool Save(CGUIDialogKernel* pKernel) const;
295
305 virtual bool IsLoading() const;
306
316 virtual void EnableAutoLoad(bool bAutoLoad);
317
327 virtual bool IsAutoLoadEnabled() const;
328
338 virtual void EnableAutoSave(bool bAutoSave);
339
349 virtual bool IsAutoSaveEnabled() const;
350
360 virtual void SetCreateControl(bool bSet = true);
361
371 virtual bool IsCreateControl() const;
372
382 virtual void SetActivateViewOnShowPane(bool bActivate);
383
393 virtual bool DoesActivateViewOnShowPane() const;
394
404 virtual bool OnLButtonDoubleClick();
405
415 virtual bool OnRButtonClick();
416
426 virtual bool ShowPaneWindow();
427
437 virtual bool InitialDockPaneWindow();
438
454 virtual bool AddItem(CGUIPropertyItemBase* pItem, bool bAdjustLayout = true);
455
473 virtual bool InsertItem(CGUIPropertyItemBase* pItem, const CGUIPropertyItemBase* pItemBefore, bool bAdjustLayout = true);
474
490 virtual bool RemoveItem(CGUIPropertyItemBase* pItem, bool bAdjustLayout = true);
491
503 virtual const CResult UpdateProperty();
504
517
529 virtual bool BuildItems(CMFCPropertyGridCtrl* pCtrl);
530
540 virtual int64_t GetItemCount() const;
541
555 virtual int64_t GetItemCountByName(const Base::CFLString<wchar_t>& strName) const;
556
570 virtual CGUIPropertyItemBase* GetItem(int64_t i64Index) const;
571
591 virtual CGUIPropertyItemBase* FindItemByName(const Base::CFLString<wchar_t>& strName, bool bNocase = true, size_t stIndex = 0) const;
592
610 virtual CGUIPropertyItemBase* FindItemByFullPath(const Base::CFLString<wchar_t>& strFullPath, bool bNocase = true) const;
611
623 virtual CGUIPropertyItemBase* FindItemByHash(uint32_t u32Hash) const;
624
643 virtual std::vector<CGUIPropertyItemBase*> FindItemsByPath(const Base::CFLString<wchar_t>& strPath, bool bNocase = true) const;
644
667 virtual const CResult FindItemsByPath(const Base::CFLString<wchar_t>& strPath, std::vector<CGUIPropertyItemBase*>& vctItems, bool bNocase = true) const;
668
680 virtual int64_t GetPropertyItemFigureCount() const;
681
696
710 virtual bool AddButton(CGUIPropertyButton* pButton);
711
729 virtual bool SetShortcut(EKeyType eKeyType, CGUIPropertyButton* pButton);
730
742 std::vector<CGUIPropertyButton*>* GetPropertyButtons() const;
743
759 CGUIPropertyButton* FindPropertyButtonByName(const Base::CFLString<wchar_t>& strBtnName);
760
773 CGUIPropertyButton* FindPropertyButtonByIndex(int64_t i64Index);
774
784 void EnableStatusMessageBox(bool bEnable);
785
796
813
826
838 void SetMessageDisplayMode(EMessageDisplayMode eMessageDisplayMode = EMessageDisplayMode_NoScroll);
839
851 EMessageDisplayMode GetMessageDisplayMode() const;
852
864 virtual bool InitializePropertyPane(bool bLoad = true);
865
881 virtual bool InitializePropertyPaneStandalone(bool bLoad, CWnd* pParentWnd, CGUIDockablePaneHostFrame* pHostFrame = nullptr);
882
894 CGUIPaneProperties* GetPaneProperties() const;
895
911 virtual bool SetMenuItemRegistrationCallback(CGUIMenuItemRegistrationCallback* pFunc, bool bAutoDestroy = true);
912
924 virtual CGUIMenuItemRegistrationCallback* GetRegistrationCallback() const;
925
941 virtual bool SetMenuItemUnregistrationCallback(CGUIMenuItemUnregistrationCallback* pFunc, bool bAutoDestroy = true);
942
954 virtual CGUIMenuItemUnregistrationCallback* GetDestroyInstanceCallback() const;
955
965 virtual bool IsInitialized() const;
966
980 virtual bool DoesSameFullPathExist(const Base::CFLString<wchar_t>& flstrFullPath) const;
981
991 virtual bool CreateProperty();
992
1005
1019 virtual CGUIMenuItemProperty* GetChildInstanceAsMenuItemProperty(int32_t i32InstanceIdx) const;
1020
1033
1035
1048 virtual CGUIMenuItemBase* CreateChildInstance(int32_t i32InstanceIdx = -1) override;
1049
1063 virtual const CResult DeleteChildInstance(int32_t i32InstanceIndex) override;
1065
1081 virtual Base::CFLString<wchar_t> GetItemValue(CGUIPropertyItemBase* pItem) const;
1082
1098 virtual const CResult SelectPopupMenuItem(EMenuItemPaneMenuTree eSelectedContextMenu);
1099
1109 void EnableOpenWindow(bool bEnable);
1110
1121
1131 virtual void SetGlobalModel(bool bSet);
1132
1142 virtual bool IsGlobalModel() const;
1143
1153 virtual void Enable(bool bEnable) override;
1154
1170 virtual void SetMinimalAuthorityLevelOnContextMenu(Base::EAuthorityLevel eAuthorityLevel, GUI::EMenuItemPaneMenuTree eMenuItemPaneMenuTree) override;
1171
1183 virtual const CResult DeletePane();
1184
1196 virtual const CResult ClosePane();
1197
1207 virtual bool IsTerminateAppRequested() const;
1208
1218 virtual void RequestTerminateApp(bool bTerminate = true);
1219
1220 virtual Base::CFLString<wchar_t> GetPaneName();
1221
1222 virtual CGUIPaneBase* GetPane() const override;
1223
1224 virtual void SetDockDone(bool bSet);
1225 virtual bool IsDockDone() const;
1226
1227 /* Create Instance*/
1228 virtual CGUIMenuItemProperty* CreateInstance(int32_t i32InstanceIdx = -1);
1229 virtual CGUIMenuItemProperty* LoadToCreateInstance(int32_t i32InstanceIdx = -1);
1230
1231 virtual void UpdateChildProperty();
1232 virtual bool OnShortKeyDown(UINT uKeyType);
1233 virtual const CResult ActivateSelectedViewOfFirstViewList();
1234
1235 CGUIPropertyMessageBox* GetMessageBox() const;
1236
1237 virtual std::vector<CGUIPropertyItemBase*>& GetItems() const;
1238 virtual std::vector<CGUIPropertyButton*>& GetButtons() const;
1239
1240 virtual bool IsItemExist(const CGUIPropertyItemBase* pItem) const;
1241
1242 protected:
1243 virtual bool InternalLoad();
1244 virtual bool InternalSave() const;
1245
1246 virtual bool IsSNAPNodeProperty() const;
1247
1248 protected:
1249 bool m_bDockDone;
1250 /* Property Items*/
1251 std::vector<CGUIPropertyItemBase*>& m_vctItems;
1252 std::vector<CGUIPropertyItemViewImageFigure*>& m_vctPIViewImageFigure;
1253 std::map<uint32_t, CGUIPropertyItemBase*>& m_mapItems;
1254 std::map<EKeyType, CGUIPropertyButton*>& m_mapBtnShortcuts;
1255
1256 /* Buttons*/
1257 std::vector<CGUIPropertyButton*>& m_vctButtons;
1258
1259 /* Message box*/
1260 CGUIPropertyMessageBox* m_pStaticMessage;
1261 Base::CFLString<wchar_t> m_strMessage;
1262
1263 /* Property Pane*/
1264 CGUIPaneProperties* m_pProperties;
1265 bool m_bInitialized;
1266
1267 /* Create Instance*/
1268 bool m_bCreateControl;
1269
1270 CGUIMenuItemRegistrationCallback* m_pRegistrationCallback;
1271 bool m_bCreateCallbackAutoDestroy;
1272
1273 /* Destroy Instance*/
1274 CGUIMenuItemUnregistrationCallback* m_pDestroyInstanceCallback;
1275 bool m_bDestroyCallbackAutoDestroy;
1276
1277 bool m_bLoaded;
1278 bool m_bLoadingNow;
1279 bool m_bAutoLoad;
1280 bool m_bAutoSave;
1281 bool m_bActivateViewOnShowPane;
1282
1283 bool m_bEnableOpenWindow;
1284 bool m_bGlobalModel;
1285
1286 friend class CGUIPaneProperties;
1287 friend class CGUITabbedPane;
1288 friend class CGUIPropertyItemBase;
1289 friend class CGUIManager;
1290 friend class CGUIPaneMenu;
1291 friend class CGUIManagerPane;
1292 friend class CGUIMainFrame;
1293 friend class CGUIPaneFrameWnd;
1294 friend class CGUIPanePropertiesShell;
1295 friend class CGUIPropertyMenuSNAPView;
1296 friend class CGUIManagerModel;
1297 };
1298 }
1299}
1300
Template type string class.
Definition FLString.h:34
FLImaging module execution result object.
Definition ResultsDef.h:1631
Definition GUIDialogKernel.h:51
GUIDockablePaneHostFrame class.
Definition GUIDockablePaneHostFrame.h:27
virtual Base::CFLString< wchar_t > GetItemValue(CGUIPropertyItemBase *pItem) const
Retrieves the value of an item.
virtual CGUIPropertyItemBase * GetItem(int64_t i64Index) const
Retrieves the item at the specified index.
virtual int64_t GetPropertyItemFigureCount() const
Retrieves the count of CGUIPropertyItemViewImageFigure items.
virtual bool IsAutoLoadEnabled() const
Checks if auto-load is enabled for the property items.
bool IsEnabledOpenWindow() const
Checks if the open window functionality is enabled.
virtual void Clear()
Clears all the added property items.
virtual const CResult Assign(const CGUIMenuItemProperty *pRhs)
Assigns properties from another CGUIMenuItemProperty object using a pointer.
EMessageDisplayMode GetMessageDisplayMode() const
Retrieves the current message display mode.
virtual bool AddItem(CGUIPropertyItemBase *pItem, bool bAdjustLayout=true)
Function to add a property item to the end of the CGUIPropertyGridCtrl.
virtual bool IsTerminateAppRequested() const
Returns whether a program termination request has been received.
virtual CGUIPropertyItemBase * FindItemByHash(uint32_t u32Hash) const
Finds an item by its hash value.
virtual void EnableAutoLoad(bool bAutoLoad)
Enables or disables the auto-load feature for property items.
CGUIPropertyButton * FindPropertyButtonByName(const Base::CFLString< wchar_t > &strBtnName)
Retrieves a pointer to the CGUIPropertyButton object that matches the given button name.
virtual const CResult UpdateProperty()
Refreshes the property grid screen. It performs the same action as calling GetPaneProperties()->GetPr...
virtual bool OnRButtonClick()
Handles the right button click event.
virtual bool Load() override
Loads the value of property items from a file.
virtual const CResult SelectPopupMenuItem(EMenuItemPaneMenuTree eSelectedContextMenu)
Selects a popup menu item.
void EnableStatusMessageBox(bool bEnable)
Enables or disables the status message box.
virtual int64_t GetItemCount() const
Retrieves the number of property items.
virtual const CResult Assign(const CGUIMenuItemProperty &rhs)
Assigns properties from another CGUIMenuItemProperty object.
virtual const CResult DeletePane()
Deletes the property pane.
virtual bool InitializePropertyPane(bool bLoad=true)
Initializes the property pane.
virtual bool RemoveItem(CGUIPropertyItemBase *pItem, bool bAdjustLayout=true)
Function to remove a property item from CGUIPropertyGridCtrl.
virtual bool AddButton(CGUIPropertyButton *pButton)
Adds a CGUIPropertyButton object.
virtual bool IsCreateControl() const
Returns the flag indicating whether the property grid control should be created.
virtual bool Load(CGUIDialogKernel *pKernel)
Loads kernel values into the specified kernel dialog.
virtual CGUIPropertyItemViewImageFigure * GetPropertyItemFigure(int32_t i32Index) const
Retrieves the pointer to the CGUIPropertyItemViewImageFigure at the specified index.
void EnableOpenWindow(bool bEnable)
Enables or disables the open window functionality.
virtual bool IsAutoSaveEnabled() const
Checks if auto-save is enabled for the property items.
CGUIMenuItemProperty()
Default constructor for CGUIMenuItemProperty.
virtual void Enable(bool bEnable) override
Enables or disables the menu item.
bool IsStatusMessageBoxEnabled() const
Checks if the status message box is enabled.
virtual CGUIMenuItemProperty * GetParentMultiInstanceMenuItemProperty() const
Returns the pointer to the parent object if the current object is a child instance.
virtual bool Save(CGUIDialogKernel *pKernel) const
Saves the values of the kernel dialog.
virtual void SetGlobalModel(bool bSet)
Sets the global model flag.
virtual std::vector< CGUIPropertyItemBase * > FindItemsByPath(const Base::CFLString< wchar_t > &strPath, bool bNocase=true) const
Retrieves items that match the specified path.
virtual const CResult DeleteChildInstance(int32_t i32InstanceIndex) override
Deletes a child instance. This function works only if this is a multi-instance parent.
virtual void SetActivateViewOnShowPane(bool bActivate)
Sets the flag to activate the view when showing the pane.
virtual int64_t GetItemCountByName(const Base::CFLString< wchar_t > &strName) const
Retrieves the count of items by name.
virtual const CResult FindItemsByPath(const Base::CFLString< wchar_t > &strPath, std::vector< CGUIPropertyItemBase * > &vctItems, bool bNocase=true) const
Retrieves items that match the specified path.
virtual bool BuildItems(CMFCPropertyGridCtrl *pCtrl)
Function to initialize the property window and add items to the property pane.
const CResult SetStatusMessage(const Base::CFLString< wchar_t > &strMessage)
Sets the status message to be displayed.
virtual void SetCreateControl(bool bSet=true)
Sets the flag to create the property grid control.
virtual const CResult UpdatePropertyAsync()
Refreshes the property grid screen. It performs the same action as calling GetPaneProperties()->GetPr...
virtual bool SetShortcut(EKeyType eKeyType, CGUIPropertyButton *pButton)
Assigns a shortcut key to perform the click action of a CGUIPropertyButton.
virtual Base::CFLString< wchar_t > GetFileName() const
Returns the INI file path associated with this object.
virtual CGUIMenuItemBase * CreateChildInstance(int32_t i32InstanceIdx=-1) override
Creates a child instance. This function works only if this is a multi-instance parent....
CGUIMenuItemProperty(const CGUIMenuItemProperty *pRhs)
Pointer-based copy constructor for CGUIMenuItemProperty.
virtual bool ShowPaneWindow()
Shows the pane window.
virtual Base::CFLString< wchar_t > GetChildInstanceIndexAsString() const
Retrieves the child instance numbers as a comma-separated string. For example, if the child instance ...
virtual ~CGUIMenuItemProperty()
Destructor for CGUIMenuItemProperty.
virtual bool DoesSameFullPathExist(const Base::CFLString< wchar_t > &flstrFullPath) const
Checks if an item with the same full path exists.
CGUIPropertyButton * FindPropertyButtonByIndex(int64_t i64Index)
Retrieves a pointer to the CGUIPropertyButton object at the specified index.
virtual bool IsInitialized() const
Checks if the menu item is initialized.
virtual CGUIPropertyItemBase * FindItemByName(const Base::CFLString< wchar_t > &strName, bool bNocase=true, size_t stIndex=0) const
Finds an item by name.
virtual Base::CFLString< wchar_t > GetDirPath() const
Retrieves the directory path associated with this object.
virtual bool OnLButtonDoubleClick()
Handles the left button double-click event.
virtual const CResult RemoveSettingFile() const
Removes the configuration file (e.g., .ini file) associated with this object. The file path for the c...
void SetMessageDisplayMode(EMessageDisplayMode eMessageDisplayMode=EMessageDisplayMode_NoScroll)
Sets the message display mode.
virtual void RequestTerminateApp(bool bTerminate=true)
Requests or cancels a program termination.
virtual bool DoesFileExist() const
Checks if the settings file associated with this exists. The file path for the configuration can be o...
CGUIPaneProperties * GetPaneProperties() const
Retrieves the pane properties.
virtual bool IsGlobalModel() const
Returns whether it is a global model.
virtual const CResult ClosePane()
Closes the property pane.
std::vector< CGUIPropertyButton * > * GetPropertyButtons() const
Retrieves a pointer to the vector containing the added CGUIPropertyButton objects.
virtual void SetMinimalAuthorityLevelOnContextMenu(Base::EAuthorityLevel eAuthorityLevel, GUI::EMenuItemPaneMenuTree eMenuItemPaneMenuTree) override
Sets the minimal authority level for the context menu.
virtual bool DoesActivateViewOnShowPane() const
Checks if the view is activated when showing the pane.
virtual CGUIMenuItemProperty * GetChildInstanceAsMenuItemProperty(int32_t i32InstanceIdx) const
Retrieves a child instance by its index.
virtual bool SetMenuItemRegistrationCallback(CGUIMenuItemRegistrationCallback *pFunc, bool bAutoDestroy=true)
Sets the menu item registration callback.
virtual bool IsLoaded() const
Checks if the value of property items are loaded.
virtual bool IsLoading() const
Checks if the property is currently being loaded.
virtual CGUIPropertyItemBase * FindItemByFullPath(const Base::CFLString< wchar_t > &strFullPath, bool bNocase=true) const
Finds an item by its full path.
CGUIMenuItemProperty(const CGUIMenuItemProperty &rhs)
Copy constructor for CGUIMenuItemProperty.
virtual bool Save() const override
Saves the properties to a file.
virtual bool CreateProperty()
Creates a property.
virtual bool SetMenuItemUnregistrationCallback(CGUIMenuItemUnregistrationCallback *pFunc, bool bAutoDestroy=true)
Sets the menu item unregistration callback.
virtual bool InitializePropertyPaneStandalone(bool bLoad, CWnd *pParentWnd, CGUIDockablePaneHostFrame *pHostFrame=nullptr)
Initializes the standalone property pane (for execution in a standalone DLL environment).
virtual CGUIMenuItemUnregistrationCallback * GetDestroyInstanceCallback() const
Retrieves the destroy instance callback function.
virtual bool InsertItem(CGUIPropertyItemBase *pItem, const CGUIPropertyItemBase *pItemBefore, bool bAdjustLayout=true)
Function to insert an item at a specified position, without inserting if pItem already exists.
Base::CFLString< wchar_t > GetStatusMessage() const
Retrieves the current status message.
virtual const CResult PreDestroy() override
Performs cleanup operations before the object is destroyed.
virtual bool InitialDockPaneWindow()
Initializes the dock pane window.
virtual void EnableAutoSave(bool bAutoSave)
Enables or disables the auto-save feature for property items. When enabled, changes to the values of ...
virtual CGUIMenuItemRegistrationCallback * GetRegistrationCallback() const
Retrieves the registration callback function.
Property item base class.
Definition GUIPropertyItemBase.h:345
A class of Figure property.
Definition GUIPropertyItemViewImageFigure.h:31
EAuthorityLevel
Authority level.
Definition AuthorityManager.h:29
Definition D2DObject.h:12
EKeyType
Keyboard input value.
Definition DefinitionsGUI.h:7269
EMenuItemPaneMenuTree
Menu items in the menu tree.
Definition DefinitionsGUI.h:9064