4#include "GUIWndCtrlBase.h"
5#include "GUIEditCtrl.h"
6#include "GUILayoutBase.h"
7#include "GUIBoxLayout.h"
8#include "GUIGridLayout.h"
11#include "GUIComboBox.h"
12#include "GUICheckBox.h"
13#include "GUIStaticText.h"
14#include "GUIListCtrl.h"
15#include "GUIListCtrlMassive.h"
17#include "GUIDialogBase.h"
35 class CInternalDialog;
74 friend class CGUILayoutBase;
75 friend class CGUIBoxLayout;
76 friend class CGUIGridLayout;
77 friend class CGUIPaneDialog;
78 friend class CGUIManagerViewImageObjectImageFigure;
132 CGUIDialog(UINT nIDTemplate, CWnd* pParent = NULL);
133 CGUIDialog(LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL);
137 virtual BOOL Create(LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL)
override;
138 virtual BOOL Create(UINT nIDTemplate, CWnd* pParentWnd = NULL)
override;
139 virtual BOOL CreateIndirect(LPCDLGTEMPLATE lpDialogTemplate, CWnd* pParentWnd = NULL,
void* lpDialogInit = NULL)
override;
140 virtual BOOL CreateIndirect(HGLOBAL hDialogTemplate, CWnd* pParentWnd = NULL)
override;
144 virtual void ShowCaption(
bool bShow =
true);
145 virtual bool IsCaptionVisible()
const;
147 virtual void ShowCloseButtonOnCaption(
bool bShow =
true);
148 virtual bool IsCloseButtonOnCaptionVisible()
const;
149 virtual bool SetCloseButtonOnCaptionCallback(CWndCtrlProcedure* pFunc,
bool bAutoDestroy =
true);
150 virtual CWndCtrlProcedure* GetCloseButtonOnCaptionCallback()
const;
151 virtual int32_t GetCloseButtonOnCaptionClickCount()
const;
152 virtual void SetCloseButtonOnCaptionClickCount(int32_t i32ClickCount);
153 virtual void ClearCloseButtonOnCaptionClickCount();
155 virtual void ShowMinimizeButtonOnCaption(
bool bShow =
false);
156 virtual bool IsMinimizeButtonOnCaptionVisible()
const;
158 virtual void SetMinimizeWidth(int32_t i32Width = 120);
159 virtual int32_t GetMinimizeWidth()
const;
161 virtual void EnableScroll(
bool bEnable,
bool bIncludeButtons =
true);
162 virtual bool IsScrollEnabled()
const;
164 virtual void ShowOkButton(
bool bShow);
165 virtual void ShowCancelButton(
bool bShow);
166 virtual void ShowYesButton(
bool bShow);
167 virtual void ShowNoButton(
bool bShow);
169 virtual void EnableOkButton(
bool bEnable);
170 virtual bool IsOkButtonEnabled()
const;
171 virtual void EnableCancelButton(
bool bEnable);
172 virtual bool IsCancelButtonEnabled()
const;
173 virtual void EnableYesButton(
bool bEnable);
174 virtual bool IsYesButtonEnabled()
const;
175 virtual void EnableNoButton(
bool bEnable);
176 virtual bool IsNoButtonEnabled()
const;
178 virtual void SetMarginLeft(int32_t i32Margin);
179 virtual int32_t GetMarginLeft()
const;
180 virtual void SetMarginTop(int32_t i32Margin);
181 virtual int32_t GetMarginTop()
const;
182 virtual void SetMarginRight(int32_t i32Margin);
183 virtual int32_t GetMarginRight()
const;
184 virtual void SetMarginBottom(int32_t i32Margin);
185 virtual int32_t GetMarginBottom()
const;
187 virtual void SetIntervalSpacing(int32_t i32IntervalSpacing);
188 virtual int32_t GetIntervalSpacing()
const;
190 virtual void SetTitleHeight(int32_t i32Height);
191 virtual int32_t GetTitleHeight()
const;
197 virtual void SetOkButtonCallback(CWndCtrlProcedure* pFunc,
bool bAutoDestroy =
true);
198 virtual void SetCancelButtonCallback(CWndCtrlProcedure* pFunc,
bool bAutoDestroy =
true);
199 virtual void SetYesButtonCallback(CWndCtrlProcedure* pFunc,
bool bAutoDestroy =
true);
200 virtual void SetNoButtonCallback(CWndCtrlProcedure* pFunc,
bool bAutoDestroy =
true);
202 virtual bool AdjustLayout();
206 virtual void UpdateTheme();
207 virtual void SetWindowSize(int32_t i32Width, int32_t i32Height);
210 #ifdef AFX_DESIGN_TIME
213 IDD = IDD_DIALOG_CUSTOM
216 DECLARE_MESSAGE_MAP()
218 virtual
void PostNcDestroy();
219 virtual int32_t Add(CGUILayoutBase* pLayout);
220 virtual CGUILayoutBase* GetAt(int32_t i32Index);
221 virtual BOOL OnInitDialog() override;
222 virtual
bool SetFocusWnd(CGUIGridLayout* pLayout, int32_t i32Row, int32_t i32Col);
223 virtual
bool SetFocusWnd(CGUIBoxLayout* pLayout, int32_t i32Idx);
224 virtual
bool SetFocusWnd(
CGUIDialog::EButton eButtonId);
227 virtual INT_PTR DoModal()override;
230 virtual
void InitDefaults();
231 virtual
void InternalSetWindowPosMinimized();
234 virtual BOOL PreTranslateMessage(MSG* pMsg);
236 virtual
void OnCancel();
237 virtual
void OnYes();
239 virtual
void DrawBorder(CDC* pDC);
240 virtual
void DrawCloseButton(CDC* pDC);
241 virtual
void DrawMinButton(CDC* pDC);
242 virtual
void DrawTitleRect(CDC* pDC);
244 virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);
245 virtual
bool CreateButton();
246 virtual
bool AdjustLayoutButton(int32_t i32BtnW, int32_t i32BtnH, int32_t i32BtnMargin, int32_t i32BtnSpace, int32_t i32BtnTop);
247 virtual BOOL HitTestGrip(MSG* pMsg);
249 virtual
bool IsExternalParent();
250 virtual
bool IsNeedRegisterHook();
252 DeclareGetClassType();
257 int32_t m_i32MinWidth;
258 int32_t m_i32MinHeight;
262 int32_t m_i32WndowWidthUserDefined;
263 int32_t m_i32WndowHeightUserDefined;
264 int32_t m_i32ContentsW;
265 int32_t m_i32ContentsH;
266 int32_t m_i32MarginL;
267 int32_t m_i32MarginT;
268 int32_t m_i32MarginR;
269 int32_t m_i32MarginB;
273 int32_t m_i32WndCtrlCnt;
277 int32_t m_i32TitleHeight;
278 bool m_bShowWindowOnAdjustLayout;
281 CInternalDialog* m_pInternal;
293 bool m_bLockWindowUpdate;
297 CRect m_rcMinimizeBtn;
301 int32_t m_i32IntervalSpacing;
302 int32_t m_i32HoveringBtn;
303 int32_t m_i32HoveringBtnBf;
304 COLORREF m_clrBorder;
305 COLORREF m_clrBorderActive;
306 COLORREF m_clrClientFill;
307 std::vector<CGUILayoutBase*>& m_vctLayout;
308 std::vector<CGUIDialogLayoutElement*>& m_vctInputWnd;
312 Base::CFLString<
wchar_t> m_strTitle;
314 Base::CFLString<
wchar_t> m_strOkBtnName;
315 Base::CFLString<
wchar_t> m_strCancelBtnName;
316 Base::CFLString<
wchar_t> m_strYesBtnName;
317 Base::CFLString<
wchar_t> m_strNoBtnName;
319 CGUIScrollWnd* m_pScrollWnd;
325 CGUIDialogLayoutElement* m_pWndCtrlOK;
326 CGUIDialogLayoutElement* m_pWndCtrlCancel;
327 CGUIDialogLayoutElement* m_pWndCtrlYes;
328 CGUIDialogLayoutElement* m_pWndCtrlNo;
329 CGUIPaneDialog* m_pParentPaneDialog;
332 bool m_bEnableScroll;
333 bool m_bScrollWndIncludeButtons;
335 bool m_bCenterWindowDone;
337 bool m_bShowCaptionMinBtn;
338 bool m_bShowCaptionCloseBtn;
340 bool m_bShowCancelBtn;
344 bool m_bEnableCancelBtn;
345 bool m_bEnableYesBtn;
349 bool m_bAlreadyInsideProcedure;
352 int32_t m_i32MinimizeWidth;
355 CGUILayoutBase* m_pFocusLayout;
357 int32_t m_i32FocusIdx;
358 int32_t m_i32FocusIdxRow;
359 int32_t m_i32FocusIdxCol;
361 CWndCtrlProcedure* m_pProcedureOfCloseButtonOnCaption;
362 bool m_bProcedureOfCloseButtonOnCaptionAutoDestroy;
363 int32_t m_i32CloseButtonOnCaptionClickCount;
365 bool m_bRegisterHook;
368 afx_msg BOOL OnEraseBkgnd(CDC* pDC);
369 afx_msg
void OnPaint();
370 afx_msg
void OnNcPaint();
371 afx_msg
void OnMouseMove(UINT nFlags, CPoint point);
372 afx_msg
void OnLButtonDown(UINT nFlags, CPoint point);
373 afx_msg
void OnLButtonUp(UINT nFlags, CPoint point);
374 afx_msg
void OnSetFocus(CWnd* pOldWnd);
375 afx_msg
void OnKillFocus(CWnd* pNewWnd);
376 afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
377 afx_msg
void OnDestroy();
378 afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
379 afx_msg
void OnSize(UINT nType,
int cx,
int cy);
380 afx_msg BOOL OnNcActivate(BOOL bActive);
381 afx_msg
void OnMouseLeave();
382 afx_msg
void OnNcMouseMove(UINT nHitTest, CPoint point);
383 afx_msg
void OnNcMouseLeave();
384 virtual
void PreSubclassWindow();
385 afx_msg
void OnSysCommand(UINT nID, LPARAM lParam);
386 afx_msg
void OnWindowPosChanging(WINDOWPOS* lpwndpos);
387 afx_msg
void OnDisplayChange(UINT nBitsPerPixel,
int cx,
int cy);
388 afx_msg
void OnShowWindow(BOOL bShow, UINT nStatus);
389 afx_msg
void OnClose();
Template type string class.
Definition FLString.h:34
ComboBox class.
Definition GUIComboBox.h:29
A file of dialog class.
Definition GUIDialog.h:72
virtual void OnReceiveBroadcast(const Base::CBroadcastMessage *pMessage) override
Callback function. A function that receives a BroadcastMessage.
EButton
Buttons of dialog.
Definition GUIDialog.h:90
@ EButton_Yes
Yes button.
Definition GUIDialog.h:113
@ EButton_Cancel
Cancel button.
Definition GUIDialog.h:105
@ EButton_Ok
Ok button.
Definition GUIDialog.h:97
@ EButton_No
No button.
Definition GUIDialog.h:121
CGUIDialog(CWnd *pParent=nullptr)
Default constructor.
Text box class.
Definition GUIEditCtrl.h:30
ListControl classes in very many data to store.
Definition GUIListCtrlMassive.h:39
Definition FLImagingBase/AESCryptography.h:18
Definition D2DObject.h:12
EOrientation
Direction.
Definition FLImagingGUI/DefinitionsGUI.h:9905
ELayout
A layout of dialog.
Definition GUIDialog.h:45
@ BoxLayout
Box layout.
Definition GUIDialog.h:61
@ GridLayout
Grid layout.
Definition GUIDialog.h:52