FLImaging 6.5.8.1
GUIPropertyItemButton.h
1#pragma once
2#include "GUIPropertyItemBase.h"
3
4namespace FLImaging
5{
6 namespace GUI
7 {
8 class CGUIPropertyItemButton;
9
10 typedef std::function<void(CGUIPropertyItemButton*)> CPropertyItemButtonClickProcedure;
11 #define MakePropertyItemButtonClickProcedure [=](CGUIPropertyItemButton* pPropertyButton) -> void
12
13 class FL_EXPORT CGUIPropertyItemButton : public CGUIPropertyItemBase
14 {
15 public:
16 CGUIPropertyItemButton();
17 virtual ~CGUIPropertyItemButton();
18
19 virtual CMFCPropertyGridProperty* CreateGridProperty() override;
20
21 virtual void SetButtonName(Base::CFLString<wchar_t> strButtonName);
22 virtual Base::CFLString<wchar_t> GetButtonName() const;
23
24 virtual bool SetPropertyButtonClickProcedure(CPropertyItemButtonClickProcedure* pFunc, bool bAutoDestroy = true);
25 virtual CPropertyItemButtonClickProcedure* GetPropertyButtonClickProcedure() const;
26
27 virtual bool SetValue(Base::CFLString<wchar_t> strValue, bool bInvokeCallback = true) override;
28
29 DeclareGetClassType();
30
31 protected:
32 Base::CFLString<wchar_t> m_strButtonName;
33
34 CPropertyItemButtonClickProcedure* m_pButtonClickProcedure;
35 bool m_bButtonClickProcedureAutoDestroy;
36
37 friend class CGUIPaneProperties;
38 friend class CGUIPropertyGridPropertyButton;
39 };
40 }
41}
42