mrDarker
2026-01-30 829fe6c6bc33d53fda9c31fd45a37e1df87befff
SourceCode/Bond/Servo/AlarmPopupDlg.h
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
#pragma once
#include "afxwin.h"
#include "AlarmManager.h"
#include "Common.h"
#include "ToolUnits.h"
#include "BlButton.h"
// ç®€åŒ–版报警弹窗,对接 AlarmManager çš„æ´»è·ƒå‘Šè­¦
class CAlarmPopupDlg : public CDialogEx
{
   DECLARE_DYNAMIC(CAlarmPopupDlg)
public:
   CAlarmPopupDlg(CWnd* pParent = NULL);
   virtual ~CAlarmPopupDlg();
public:
   void RefreshContent(); // åˆ·æ–°å½“前告警显示
private:
   COLORREF m_crBkgnd;
   HBRUSH m_hbrBkgnd;
   CFont m_fontTitle;
   CFont m_fontLevel;
   CFont m_fontName;
   CFont m_fontDescription;
   CBlButton m_btnClose;
   CBlButton m_btnSoundOff;
   CBlButton m_btnAlarmOff;
// å¯¹è¯æ¡†æ•°æ®
#ifdef AFX_DESIGN_TIME
   enum { IDD = IDD_DIALOG_POPUP_ALARM };
#endif
protected:
   virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV æ”¯æŒ
   DECLARE_MESSAGE_MAP()
public:
   virtual BOOL OnInitDialog();
   afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
   afx_msg void OnDestroy();
   afx_msg void OnBnClickedClose();
   afx_msg void OnBnClickedAlarmOff();
   afx_msg void OnBnClickedPrev();
   afx_msg void OnBnClickedNext();
private:
   bool m_hasActive;
   AlarmData m_activeAlarm;
   std::vector<AlarmData> m_activeAlarms;
   int m_activeIndex = 0;
   void SetButtonBackgroundColors(bool bMute);
   void ShowNoAlarmControls(bool bShow);
   void ShowAlarmControls(bool bShow);
   void UpdateNavButtons();
   void DisplayActiveAt(int idx);
};