FLImaging 6.5.8.1
GUIDialogProperty.h
1#pragma once
2
3#include "GUIDialog.h"
4#include "GUIPropertyGridCtrl.h"
5#include "GUIPropertyItemBase.h"
6#include <set>
7
8namespace FLImaging
9{
10 namespace GUI
11 {
12 class FL_EXPORT CGUIDialogProperty : public CGUIDialog
13 {
14 DECLARE_DYNAMIC(CGUIDialogProperty)
15 public:
16 CGUIDialogProperty(CWnd* pParent = nullptr);
17 CGUIDialogProperty(const CGUIDialogProperty& rhs);
18
19 virtual ~CGUIDialogProperty();
20
21 virtual void OnReceiveBroadcast(const Base::CBroadcastMessage* pMessage) override;
22 static CGUIDialogProperty* CreateModelessDialog(CWnd* pParent = nullptr);
23
24 virtual void OnOK() override;
25 virtual BOOL OnInitDialog() override;
26
27 virtual void SetSize(int32_t i32W, int32_t i32H);
28 virtual CGUIPropertyItemBase* AddItem(CGUIPropertyItemBase* pItem);
29 virtual CGUIPropertyItemBase* AddItem(const Base::CFLString<wchar_t>& flstrName, const Base::CFLString<wchar_t>& flstrPath, const Base::CFLString<wchar_t>& flstrValue, bool bReadOnly = false);
30 virtual CGUIPropertyItemBase* AddItem(const Base::CFLString<wchar_t>& flstrName, const Base::CFLString<wchar_t>& flstrPath, const Base::CFLString<wchar_t>& flstrValue, CGUIEditBase::EInputType eInputType, bool bReadOnly = false);
31 virtual CGUIPropertyItemBase* GetItemByHash(const uint32_t& u32Hash);
32
33 virtual void SetPropertyGridLeftColumnWidth(int32_t i32LeftColumnWidth);
34 virtual BOOL PreTranslateMessage(MSG* pMsg);
35
36 DeclareGetClassType();
37
38 protected:
39 virtual bool CreateProperty();
40 virtual bool AdjustLayoutProperty(int32_t& i32PropertyW, int32_t& i32PropertyH);
41
42 public:
43 int32_t m_i32PropertyGridLeftColumnWidth;
44 uint32_t m_u32IdWndPropList;
45 std::map<uint32_t, CGUIPropertyItemBase*> m_mapItems;
46 std::vector<CGUIPropertyItemBase*> m_vctItems;
47 std::map<int32_t, Base::CFLString<wchar_t>> m_mapChangedItems;
48 std::vector<CMFCPropertyGridProperty*> m_vctProperties;
49 std::set<int32_t> m_setResetItemIdx;
50 CGUIPropertyGridCtrl m_wndPropList;
51
52 public:
53 DECLARE_MESSAGE_MAP()
54 afx_msg LRESULT OnPropertyChanged(WPARAM wparam, LPARAM lparam);
55 afx_msg void OnDestroy();
56 afx_msg void OnSize(UINT nType, int cx, int cy);
57 };
58 }
59}