FLImaging 7.1.2.3
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 {
13
14 class FL_EXPORT CGUIDialogProperty : public CGUIDialog
15 {
16 DECLARE_DYNAMIC(CGUIDialogProperty)
17 public:
18 CGUIDialogProperty(CWnd* pParent = nullptr);
19 CGUIDialogProperty(const CGUIDialogProperty& rhs);
20
21 virtual ~CGUIDialogProperty();
22
23 virtual void OnReceiveBroadcast(const Base::CBroadcastMessage* pMessage) override;
24 static CGUIDialogProperty* CreateModelessDialog(CWnd* pParent = nullptr);
25
26 virtual void UpdateFont();
27 virtual void OnOK() override;
28 virtual BOOL OnInitDialog() override;
29
30 virtual void SetSize(int32_t i32W, int32_t i32H);
31 virtual CGUIPropertyItemBase* AddItem(CGUIPropertyItemBase* pItem);
32 virtual CGUIPropertyItemText* AddItem(const Base::CFLString<wchar_t>& flstrName, const Base::CFLString<wchar_t>& flstrPath, const Base::CFLString<wchar_t>& flstrValue, bool bReadOnly = false);
33 virtual CGUIPropertyItemText* 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);
34 virtual CGUIPropertyItemBase* GetItemByHash(const uint32_t& u32Hash);
35
36 virtual void SetPropertyGridLeftColumnWidth(int32_t i32LeftColumnWidth);
37 virtual BOOL PreTranslateMessage(MSG* pMsg);
38 virtual bool AdjustLayoutButton(int32_t i32BtnW, int32_t i32BtnH, int32_t i32BtnMargin, int32_t i32BtnSpace, int32_t i32BtnTop);
39
40 bool IsModified(const CGUIPropertyItemBase* pItem) const;
41 bool IsModifiedDouble(const CGUIPropertyItemBase* pItem) const;
42
43 DeclareGetClassType();
44
45 protected:
46 virtual bool CreateProperty();
47 virtual bool AdjustLayoutProperty(int32_t& i32PropertyW, int32_t& i32PropertyH);
48
49 public:
50 int32_t m_i32PropertyGridLeftColumnWidth;
51 uint32_t m_u32IdWndPropList;
52 std::map<uint32_t, CGUIPropertyItemBase*> m_mapItems;
53 std::vector<CGUIPropertyItemBase*> m_vctItems;
54 std::map<int32_t, Base::CFLString<wchar_t>> m_mapChangedItems;
55 std::vector<CMFCPropertyGridProperty*> m_vctProperties;
56 std::set<int32_t> m_setResetItemIdx;
57 CGUIPropertyGridCtrl m_wndPropList;
58
59 public:
60 DECLARE_MESSAGE_MAP()
61 afx_msg LRESULT OnPropertyChanged(WPARAM wparam, LPARAM lparam);
62 afx_msg void OnDestroy();
63 afx_msg void OnSize(UINT nType, int cx, int cy);
64 };
65 }
66}
A file of dialog class.
Definition GUIDialog.h:72
Property-grid item for single-line text input with validation, tooltip, and real-time callback suppor...
Definition GUIPropertyItemText.h:40
Definition D2DObject.h:12