7#include "GUIPaneMenu.h"
8#include "GUIPaneBase.h"
9#include "GUIPropertyGridCtrl.h"
10#include "GUIDefinitions.h"
16 class CGUIPaneProperties;
18 class CGUIPanePropertiesShell :
public CWnd
21 CGUIPanePropertiesShell(CGUIPaneProperties* pWndParent, CGUIPropertyGridCtrl* pGridCtrl);
22 virtual ~CGUIPanePropertiesShell();
24 afx_msg BOOL OnEraseBkgnd(CDC* pDC);
25 afx_msg LRESULT OnPropertyChanged(WPARAM wparam, LPARAM lparam);
26 afx_msg
void OnButtonExecute(UINT uID);
27 afx_msg
void OnUpdateButtonExecute(CCmdUI* pCmdUI);
32 CGUIPaneProperties* GetParentPaneProperties();
35 CGUIPaneProperties* m_pPaneProperties;
36 CGUIPropertyGridCtrl* m_pWndPropList;
38 friend class CGUIPaneProperties;
40 afx_msg
void OnEnable(BOOL bEnable);
43 class CGUIMenuItemProperty;
44 class CGUIPaneProperties;
45 class CGUIPropertyItemBase;
46 class CGUIPropertyButton;
48 typedef std::function<
void(CGUIPaneProperties*)> CPropertyTimerProcedure;
49 #define MakePropertyTimerProcedure [=](CGUIPaneProperties* pPropertyPane) -> void
51 class FL_EXPORT CGUIPaneProperties :
public CGUIPaneBase
57 EControlID_Button_Start = 3000,
58 EControlID_Button_End = EControlID_Button_Start + 200,
59 EControlID_PropertyControls_Start = EControlID_Button_End + 1,
60 EControlID_PropertyControls_End = EControlID_PropertyControls_Start + 1000,
63 EControlID_PropertyControls_StatusMessageCaption = EControlID_PropertyControls_Start,
64 EControlID_PropertyControls_StatusMessageText,
67 CGUIPaneProperties() noexcept;
68 CGUIPaneProperties(const CGUIPaneProperties& rh);
69 virtual ~CGUIPaneProperties();
71 bool SetMenuItemProperty(CGUIMenuItemProperty* pProperty);
72 virtual CGUIMenuItemProperty* GetMenuItemProperty()const;
74 const CResult InitialShowWindow();
76 const CResult SetTimerHandler(int64_t i64Interval, CPropertyTimerProcedure* pFunc, uint32_t* pU32TimerIDResult =
nullptr);
77 const CResult KillTimerHandler(uint32_t u32TimerID);
79 virtual
void StoreRecentDockSiteInfo() override;
81 void SetVSDotNetLook(BOOL bSet);
82 CGUIPropertyGridCtrl* GetPropertyGridCtrl();
84 virtual BOOL IsVisible() const override;
85 virtual BOOL IsWindowVisible() const;
87 virtual
bool SwitchTabs(
bool bForwardDirection) override;
89 CGUIPanePropertiesShell* GetPanePropertiesShell();
90 CGUIPaneProperties* GetMessagePaneProperties();
92 virtual const CResult EnableControls(
bool bEnable);
93 virtual
bool IsControlsEnabled() const;
95 virtual
void AdjustLayout();
97 virtual const CResult UpdateAuthorityLevelItems();
101 virtual const CResult ProcessPaneTermination() override;
103 DECLARE_MESSAGE_MAP()
105 afx_msg
void OnTimer(UINT_PTR nIDEvent);
106 afx_msg
void OnWindowPosChanging(WINDOWPOS* lpwndpos);
107 afx_msg
void OnWindowPosChanged(WINDOWPOS* lpwndpos);
108 afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
109 afx_msg BOOL OnEraseBkgnd(CDC* pDC);
110 afx_msg
void OnDestroy();
111 afx_msg
void OnLButtonUp(UINT nFlags, CPoint point);
112 virtual BOOL PreTranslateMessage(MSG* pMsg);
115 virtual
bool Build();
116 virtual
void OnReceiveBroadcast(const Base::CBroadcastMessage* pMessage) override;
117 virtual
void UpdateFont();
119 afx_msg
int OnCreate(LPCREATESTRUCT lpCreateStruct);
120 afx_msg
void OnSize(UINT nType,
int cx,
int cy);
121 afx_msg
void OnLButtonDown(UINT nFlags, CPoint point);
122 afx_msg
void OnLButtonDblClk(UINT nFlags, CPoint point);
123 afx_msg
void OnSetFocus(CWnd* pOldWnd);
124 afx_msg
void OnEnable(BOOL bEnable);
128 volatile
bool m_bExitProcedure;
132 CGUIMenuItemProperty* m_pMenuItemProperty;
135 CGUIPropertyGridCtrl m_wndPropList;
141 std::map<uint32_t, CPropertyTimerProcedure*>& m_mapTimerCallback;
144 int32_t m_i32InstanceIdx;
146 std::vector<CMFCPropertyGridProperty*>& m_vctProperties;
148 CGUIPanePropertiesShell* m_pWndShell;
150 bool m_bControlEnabled;
151 std::map<CGUIPropertyItemBase*,
bool>& m_mapPrevItemEnabledState;
152 std::map<CGUIPropertyButton*,
bool>& m_mapPrevButtonEnabledState;
154 friend class CGUIPaneMenu;
155 friend class CGUIMenuItemProperty;
156 friend class CGUIManager;
157 friend class CGUITabbedPane;
158 friend class CGUIMainFrame;
159 friend class CGUIManagerPane;
160 friend class CGUIPropertyMenuSNAPView;
161 friend class CGUIPanePropertiesShell;
162 friend class CGUIPropertyItemBase;
163 friend class CGUIPropertyButton;
164 friend class CGUIPropertyItemCategory;