自由标记体验重做 + 全部实验性面板可折起

- 网格内固定点:取值胶囊按已放置矩形做纵向避让(不再互相遮挡);行尾 ✕ 改为与
  胶囊同高的正方形;移除固定点的纵向半透明竖线
- 新增「标记透明度」(0–100%),作用于本网格全部固定点的圆点/胶囊/描边/文字/✕;
  半透明时文字改走 GDI+(GDI DrawTextW 忽略 alpha),100% 时像素零变化;
  ≤2% 时不绘制且不登记 ✕ 命中矩形(看不见的按钮不可点)
- 面板按信号分组:信号色托底分组栏(展开三角 + 信号名 + N 标记点 + ✕,文字/三角/✕
  一律用自适应对比色),点击分组栏收起/展开;条目五列(值/枚举/增量/时刻/间隔),
  首项增列与 Δt 显示 N/A,整个面板没有枚举文本时枚举列整列缺省;行尾仍有 ✕
- 面板内容超高时右侧出现滚动条(分组栏与条目一起滚动),滚轮在内容区翻页;
  底部按钮与「标记透明度」滑块固定在底部、不参与滚动
- 底部按钮改为「光标选取模式」切换类按钮(外观与工具栏切换按钮一致,激活高亮),
  激活时其上方出现「标记透明度」滑动条(与信号样式区的透明度滑块同款)
- 所有实验性功能浮动面板支持展开/折起:标题栏 GX 徽标左侧新增「三角 + 横线」指示器,
  单击切换、双击标题栏切换;折起的面板只有标题栏
- 数据层:LanePanelState.collapsed、Lane.freeMarkerOpacity/freeMarkerScroll/
  freeMarkerCollapsedGroups,LaneCarry 与 SplitLane 一并继承
- 验证:新增离屏 .preflight/perf/mark2check 69/69(含两组 A/B);回归 datacheck 69/69、
  verify 49/49、panelanim 158/158、errcheck 19/19;make release/debug 零警告
This commit is contained in:
DeepSeek-V4.1-Flash committed 2026-10-21 02:59:05 +08:00
1 parent 067128f46c
commit 3400ac7c29
9 files changed
+1225 -202

No files matched your search

+4
View File
@@ -430,18 +430,22 @@ namespace jdi
lane.edgeValue = source.edgeValue;
lane.edgeValueValid = source.edgeValueValid;
lane.edgePanel.open = source.edgePanel.open;
lane.edgePanel.collapsed = source.edgePanel.collapsed;
lane.edgePanel.x = source.edgePanel.x;
lane.edgePanel.y = source.edgePanel.y;
lane.edgeCenter = source.edgeCenter;
lane.edgeCenterPanel.open = source.edgeCenterPanel.open;
lane.edgeCenterPanel.collapsed = source.edgeCenterPanel.collapsed;
lane.edgeCenterPanel.x = source.edgeCenterPanel.x;
lane.edgeCenterPanel.y = source.edgeCenterPanel.y;
lane.weakPeak = source.weakPeak;
lane.weakPeakPanel.open = source.weakPeakPanel.open;
lane.weakPeakPanel.collapsed = source.weakPeakPanel.collapsed;
lane.weakPeakPanel.x = source.weakPeakPanel.x;
lane.weakPeakPanel.y = source.weakPeakPanel.y;
lane.meanFilter = source.meanFilter;
lane.meanFilterPanel.open = source.meanFilterPanel.open;
lane.meanFilterPanel.collapsed = source.meanFilterPanel.collapsed;
lane.meanFilterPanel.x = source.meanFilterPanel.x;
lane.meanFilterPanel.y = source.meanFilterPanel.y;
// 拆分后每个子网格只保留自己那个信号的均值滤波 / 中心轴 / 弱峰调整条目。