From 829fe6c6bc33d53fda9c31fd45a37e1df87befff Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期五, 30 一月 2026 11:16:24 +0800
Subject: [PATCH] Merge branch 'clh' into liuyang

---
 SourceCode/Bond/Servo/EqsGraphWnd.h |   35 ++++++++++++++++++++++++++---------
 1 files changed, 26 insertions(+), 9 deletions(-)

diff --git a/SourceCode/Bond/Servo/EqsGraphWnd.h b/SourceCode/Bond/Servo/EqsGraphWnd.h
index 1c4ff41..aaf9804 100644
--- a/SourceCode/Bond/Servo/EqsGraphWnd.h
+++ b/SourceCode/Bond/Servo/EqsGraphWnd.h
@@ -1,4 +1,4 @@
-#pragma once
+锘�#pragma once
 #include <functional>
 
 
@@ -35,6 +35,16 @@
 #define MAX(X,Y) (((X)>(Y))?(X):(Y))
 #endif
 
+#define EQITEM_INDICATOR_COUNT		8
+
+
+enum EIndicatorState
+{
+	INDICATOR_STATE_HIDDEN = 0,
+	INDICATOR_STATE_HIGHLIGHT = 1,
+	INDICATOR_STATE_GRAY = 2,
+};
+
 typedef struct tagEQSGRAPHWND_NMHDR
 {
 	NMHDR		nmhdr;
@@ -54,6 +64,7 @@
 	DWORD_PTR pInPins;
 	DWORD_PTR pOutPins;
 	int nFlashFlag;
+	BYTE nIndicatorState[EQITEM_INDICATOR_COUNT]; // 0=闅愯棌, 1=楂樹寒, 2=鐏拌壊
 } EQITEM;
 
 typedef struct tagPIN
@@ -89,6 +100,7 @@
 	ONEQITEMPOSCHANGED		onEqItemPosChanged;
 	ONDELETEEQITEM			onDblckEqItem;
 	ONDELETEEQITEM			onRclickEqItem;
+	ONDELETEEQITEM			onSelectEqItem;
 } EqsGraphListener;
 
 class CEqsGraphWnd
@@ -142,6 +154,9 @@
 	void SetItemPos(EQITEM* pItem, int x, int y);
 	void FlashItem(EQITEM* pItem);
 	void AnimationItem(EQITEM*pItem);
+	void ShowItemIndicator(DWORD_PTR dwItemData, int state, int nIndex = 0);
+	void SetIndicatorSize(int nSize);
+	void SetIndicatorMargin(int nMargin);
 
 private:
 	void Init();
@@ -189,7 +204,7 @@
 	EQITEM*		m_pFlashItem;
 	EQITEM*		m_pAnimationItem;
 	PIN *		m_pCurPin;
-	PIN *		m_pSelLineOutPin;		// 选中的连线的两个pin中的out pin
+	PIN *		m_pSelLineOutPin;		// 閫変腑鐨勮繛绾跨殑涓や釜pin涓殑out pin
 
 private:
 	HWND		m_hWnd;
@@ -198,12 +213,12 @@
 	HFONT		m_hFontTitle;
 
 private:
-	BOOL m_bUseGdiPlus;					// 使用GDI+绘图?
-	COLORREF m_crItemBackground[2];		// item的颜色,normal, active
-	COLORREF m_crItemFrame[2];			// item的边框,normal, active
+	BOOL m_bUseGdiPlus;					// 浣跨敤GDI+缁樺浘锛�
+	COLORREF m_crItemBackground[2];		// item鐨勯鑹诧紝normal锛� active
+	COLORREF m_crItemFrame[2];			// item鐨勮竟妗嗭紝normal锛� active
 	COLORREF m_crItemNameText[2];
 	COLORREF m_crItemIdText[2];
-	COLORREF m_crPinBkgnd[3];			// pin的颜色,normal, active, enable connect
+	COLORREF m_crPinBkgnd[3];			// pin鐨勯鑹诧紝normal, active, enable connect
 	int m_nCurSel;
 	EqsGraphListener m_listener;
 	CPtrArray m_arItem;
@@ -211,18 +226,20 @@
 	int m_nItemRound;
 
 private:
-	int m_nStageCx;			// 画布大小
+	int m_nStageCx;			// 鐢诲竷澶у皬
 	int m_nStageCy;
 	int m_nOffsetX;
 	int m_nOffsetY;
+	int m_nIndicatorSize;
+	int m_nIndicatorMargin;
 
-	// 动画
+	// 鍔ㄧ敾
 	RECTF m_rcAnimation;
 	RECTF m_rcAninationStep;
 	int m_nAninationStep;
 	int m_nAninationDuration;		// ms
 
-	// 字体
+	// 瀛椾綋
 	HFONT m_hFontName;
 	HFONT m_hFontId;
 

--
Gitblit v1.9.3