FLImaging 6.5.8.1
GUIMenuItemProperty.h
1#pragma once
2
11#include "GUIMenuItemBase.h"
12#include "GUIPropertyMessageBox.h"
13#include "GUIStaticText.h"
14#include "GUIDefinitions.h"
15#include <map>
16
18namespace FLImaging
19{
21 namespace GUI
22 {
23 class CGUIPaneProperties;
24 class CGUIPropertyItemBase;
25 class CGUIPropertyItemViewImageFigure;
26 class CGUIPropertyButton;
27 class CGUIPropertyMessageBox;
28 class CGUIStaticText;
29 class CGUIDialogKernel;
30 class CGUIManager;
31 class CGUIPaneFrameWnd;
32 class CGUIDockablePaneHostFrame;
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
154
167
177 virtual bool DoesFileExist();
178
188 virtual bool Load() override;
189
199 virtual bool IsLoaded() const;
200
214 virtual bool Load(CGUIDialogKernel* pKernel);
215
224 virtual bool Save() const override;
225
239 virtual bool Save(CGUIDialogKernel* pKernel) const;
240
250 virtual bool IsLoading() const;
251
261 virtual void EnableAutoLoad(bool bAutoLoad);
262
272 virtual bool IsAutoLoadEnabled() const;
273
283 virtual void EnableAutoSave(bool bAutoSave);
284
294 virtual bool IsAutoSaveEnabled() const;
295
305 virtual void SetCreateControl(bool bSet = true);
306
316 virtual bool IsCreateControl() const;
317
327 virtual void SetActivateViewOnShowPane(bool bActivate);
328
338 virtual bool DoesActivateViewOnShowPane() const;
339
349 virtual bool OnLButtonDoubleClick();
350
360 virtual bool OnRButtonClick();
361
371 virtual bool ShowPaneWindow();
372
382 virtual bool InitialDockPaneWindow();
383
399 virtual bool AddItem(CGUIPropertyItemBase* pItem, bool bAdjustLayout = true);
400
418 virtual bool InsertItem(CGUIPropertyItemBase* pItem, CGUIPropertyItemBase* pItemBefore, bool bAdjustLayout = true);
419
435 virtual bool RemoveItem(CGUIPropertyItemBase* pItem, bool bAdjustLayout = true);
436
448 virtual const CResult UpdateProperty();
449
461 virtual bool BuildItems(CMFCPropertyGridCtrl* pCtrl);
462
472 virtual int64_t GetItemCount() const;
473
487 virtual int64_t GetItemCountByName(const Base::CFLString<wchar_t>& strName) const;
488
502 virtual CGUIPropertyItemBase* GetItem(int64_t i64Index) const;
503
523 virtual CGUIPropertyItemBase* FindItemByName(const Base::CFLString<wchar_t>& strName, bool bNocase = true, size_t stIndex = 0) const;
524
542 virtual CGUIPropertyItemBase* FindItemByFullPath(const Base::CFLString<wchar_t>& strFullPath, bool bNocase = true) const;
543
555 virtual CGUIPropertyItemBase* FindItemByHash(uint32_t u32Hash) const;
556
575 virtual std::vector<CGUIPropertyItemBase*> FindItemsByPath(const Base::CFLString<wchar_t>& strPath, bool bNocase = true) const;
576
599 virtual const CResult FindItemsByPath(const Base::CFLString<wchar_t>& strPath, std::vector<CGUIPropertyItemBase*>& vctItems, bool bNocase = true) const;
600
612 virtual int64_t GetPropertyItemFigureCount() const;
613
628
642 virtual bool AddButton(CGUIPropertyButton* pButton);
643
661 virtual bool SetShortcut(EKeyType eKeyType, CGUIPropertyButton* pButton);
662
674 std::vector<CGUIPropertyButton*>* GetPropertyButtons() const;
675
691 CGUIPropertyButton* FindPropertyButtonByName(const Base::CFLString<wchar_t>& strBtnName);
692
705 CGUIPropertyButton* FindPropertyButtonByIndex(int64_t i64Index);
706
716 void EnableStatusMessageBox(bool bEnable);
717
728
745
758
770 void SetMessageDisplayMode(EMessageDisplayMode eMessageDisplayMode = EMessageDisplayMode_NoScroll);
771
783 EMessageDisplayMode GetMessageDisplayMode() const;
784
796 virtual bool InitializePropertyPane(bool bLoad = true);
797
813 virtual bool InitializePropertyPaneStandalone(bool bLoad, CWnd* pParentWnd, CGUIDockablePaneHostFrame* pHostFrame = nullptr);
814
826 CGUIPaneProperties* GetPaneProperties() const;
827
843 virtual bool SetMenuItemRegistrationCallback(CGUIMenuItemRegistrationCallback* pFunc, bool bAutoDestroy = true);
844
856 virtual CGUIMenuItemRegistrationCallback* GetRegistrationCallback() const;
857
873 virtual bool SetMenuItemUnregistrationCallback(CGUIMenuItemUnregistrationCallback* pFunc, bool bAutoDestroy = true);
874
886 virtual CGUIMenuItemUnregistrationCallback* GetDestroyInstanceCallback() const;
887
897 virtual bool IsInitialized() const;
898
912 virtual bool DoesSameFullPathExist(const Base::CFLString<wchar_t>& flstrFullPath) const;
913
923 virtual bool CreateProperty();
924
937
951 virtual CGUIMenuItemProperty* GetChildInstanceAsMenuItemProperty(int32_t i32InstanceIdx) const;
952
965
967
980 virtual CGUIMenuItemBase* CreateChildInstance(int32_t i32InstanceIdx = -1) override;
981
995 virtual const CResult DeleteChildInstance(int32_t i32InstanceIndex) override;
997
1014
1030 virtual const CResult SelectPopupMenuItem(EMenuItemPaneMenuTree eSelectedContextMenu);
1031
1041 void EnableOpenWindow(bool bEnable);
1042
1053
1063 virtual void SetGlobalModel(bool bSet);
1064
1074 virtual bool IsGlobalModel() const;
1075
1085 virtual void Enable(bool bEnable) override;
1086
1102 virtual void SetMinimalAuthorityLevelOnContextMenu(Base::EAuthorityLevel eAuthorityLevel, GUI::EMenuItemPaneMenuTree eMenuItemPaneMenuTree) override;
1103
1115 virtual const CResult DeletePane();
1116
1128 virtual const CResult ClosePane();
1129
1139 virtual bool IsTerminateAppRequested() const;
1140
1150 virtual void RequestTerminateApp(bool bTerminate = true);
1151
1152 virtual Base::CFLString<wchar_t> GetPaneName();
1153
1154 virtual CGUIPaneBase* GetPane() const override;
1155
1156 virtual void SetDockDone(bool bSet);
1157 virtual bool IsDockDone() const;
1158
1159 /* Create Instance*/
1160 virtual CGUIMenuItemProperty* CreateInstance(int32_t i32InstanceIdx = -1);
1161 virtual CGUIMenuItemProperty* LoadToCreateInstance(int32_t i32InstanceIdx = -1);
1162
1163 virtual void UpdateChildProperty();
1164 virtual bool OnShortKeyDown(UINT uKeyType);
1165 virtual const CResult ActivateSelectedViewOfFirstViewList();
1166
1167 CGUIPropertyMessageBox* GetMessageBox() const;
1168
1169 virtual std::vector<CGUIPropertyItemBase*>& GetItems() const;
1170 virtual std::vector<CGUIPropertyButton*>& GetButtons() const;
1171
1172 protected:
1173 virtual bool InternalLoad();
1174 virtual bool InternalSave() const;
1175
1176 protected:
1177 bool m_bDockDone;
1178 /* Property Items*/
1179 std::vector<CGUIPropertyItemBase*>& m_vctItems;
1180 std::vector<CGUIPropertyItemViewImageFigure*>& m_vctPIViewImageFigure;
1181 std::map<uint32_t, CGUIPropertyItemBase*>& m_mapItems;
1182 std::map<EKeyType, CGUIPropertyButton*>& m_mapBtnShortcuts;
1183
1184 /* Buttons*/
1185 std::vector<CGUIPropertyButton*>& m_vctButtons;
1186
1187 /* Message box*/
1188 CGUIPropertyMessageBox* m_pStaticMessage;
1189 Base::CFLString<wchar_t> m_strMessage;
1190
1191 /* Property Pane*/
1192 CGUIPaneProperties* m_pProperties;
1193 bool m_bInitialized;
1194
1195 /* Create Instance*/
1196 bool m_bCreateControl;
1197
1198 CGUIMenuItemRegistrationCallback* m_pRegistrationCallback;
1199 bool m_bCreateCallbackAutoDestroy;
1200
1201 /* Destroy Instance*/
1202 CGUIMenuItemUnregistrationCallback* m_pDestroyInstanceCallback;
1203 bool m_bDestroyCallbackAutoDestroy;
1204
1205 bool m_bLoaded;
1206 bool m_bLoadingNow;
1207 bool m_bAutoLoad;
1208 bool m_bAutoSave;
1209 bool m_bActivateViewOnShowPane;
1210
1211 bool m_bEnableOpenWindow;
1212 bool m_bGlobalModel;
1213
1214 friend class CGUIPaneProperties;
1215 friend class CGUITabbedPane;
1216 friend class CGUIPropertyItemBase;
1217 friend class CGUIManager;
1218 friend class CGUIPaneMenu;
1219 friend class CGUIManagerPane;
1220 friend class CGUIMainFrame;
1221 friend class CGUIPaneFrameWnd;
1222 friend class CGUIPanePropertiesShell;
1223 friend class CGUIPropertyMenuSNAPView;
1224 friend class CGUIManagerModel;
1225 };
1226 }
1227}
1228
Template type string class.
Definition INIUtilities.h:20
FLImaging module execution result object.
Definition ResultsDef.h:1514
Definition GUIDialogKernel.h:51
GUIDockablePaneHostFrame class.
Definition GUIDockablePaneHostFrame.h:27
Represents the GUI Model Manager responsible for managing model data and operations....
Definition GUIManagerModel.h:38
The menu item class associated with the property pane.
Definition GUIMenuItemProperty.h:48
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 bool InsertItem(CGUIPropertyItemBase *pItem, CGUIPropertyItemBase *pItemBefore, bool bAdjustLayout=true)
Function to insert an item at a specified position, without inserting if pItem already exists.
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
Retrieves the file name associated with this.
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.
virtual bool OnLButtonDoubleClick()
Handles the left button double-click event.
void SetMessageDisplayMode(EMessageDisplayMode eMessageDisplayMode=EMessageDisplayMode_NoScroll)
Sets the message display mode.
virtual void RequestTerminateApp(bool bTerminate=true)
Requests or cancels a program termination.
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 DoesFileExist()
Checks if the file associated with this exists.
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.
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:37
A class of Figure property.
Definition GUIPropertyItemViewImageFigure.h:31
The CGUITabbedPane class is a specialized implementation of a tabbed pane control in a GUI applicatio...
Definition GUITabbedPane.h:29
EAuthorityLevel
Authority level.
Definition AuthorityManager.h:29
EMenuItemPaneMenuTree
Menu items in the menu tree.
Definition GUIDefinitions.h:8684
EKeyType
Keyboard input value.
Definition GUIDefinitions.h:6905