基于 FunctionArea.tsx 的分析,当前共有 30 个功能按钮:
| Action | Title (i18n) | Icon | 当前行为 |
|---|---|---|---|
Add L Mark |
添加 L 标记 | LMark | 一次性操作 |
Add R Mark |
添加 R 标记 | RMark | 一次性操作 |
AddMark |
添加标记 | AddMark | 切换到标记面板 |
Delete Selected Mark |
删除选中标记 | EraseMark | 一次性操作 |
| Action | Title (i18n) | Icon | 当前行为 |
|---|---|---|---|
Horizontal Flip |
水平翻转 | HReverse | 一次性操作 |
Vertical Flip |
垂直翻转 | VReverse | 一次性操作 |
Rotate Counterclockwise 90 |
逆时针旋转90° | RotateL90 | 一次性操作 |
Rotate Clockwise 90 |
顺时针旋转90° | RotateR90 | 一次性操作 |
Rotate Any Angle |
任意角度旋转 | RotateAnyDegree | 一次性操作 |
| Action | Title (i18n) | Icon | 当前行为 |
|---|---|---|---|
Crop Selected Area |
裁剪选定区域 | Crop | ❌ 未实现 |
Delete Digital Mask |
删除数字掩码 | btn_RemoveCrop | ❌ 未实现 |
Add Mask |
添加掩码 | AddMask | 激活掩码工具 |
Delete Mask |
删除掩码 | DeleteMask | 清除掩码 |
| Action | Title (i18n) | Icon | 当前行为 | 特殊标记 |
|---|---|---|---|---|
Adjust Brightness and Contrast |
调整亮度对比度 | btn_BrightnessContrast | 调整亮度对比度 | ✅ STATEFUL_BUTTON |
Invert Contrast |
反色对比 | btn_ReverseColour | 一次性操作 |
| Action | Title (i18n) | Icon | 当前行为 |
|---|---|---|---|
1x1 Layout |
1x1 布局 | 1x1_normal | 切换布局 |
1x2 Layout |
1x2 布局 | 1x2_normal | 切换布局 |
2x2 Layout |
2x2 布局 | 2x1_normal | 切换布局 |
4x4 Layout |
4x4 布局 | 2x2_normal | 切换布局 |
| Action | Title (i18n) | Icon | 当前行为 | 特殊标记 |
|---|---|---|---|---|
Magnifier |
放大镜 | Magnifier | 激活放大镜工具 | ✅ STATEFUL_BUTTON |
Fit Size |
适应窗口大小 | FitInWindow | 一次性操作 | |
Original Size |
原始大小 | 1by1_normal | 一次性操作 | |
Zoom Image |
缩放图像 | Zoom | ❌ 未实现 |
| Action | Title (i18n) | Icon | 当前行为 |
|---|---|---|---|
Reset Cursor |
重置光标 | btn_pointer | ❌ 未实现 |
Pan |
平移 | Pan | ❌ 未实现 |
Image Comparison |
图像对比 | btn_Compare | ❌ 未实现 |
| Action | Title (i18n) | Icon | 当前行为 |
|---|---|---|---|
Invert Image |
反转图像 | Invert | 一次性操作 |
Reset Image |
重置图像 | Reset | 一次性操作 |
Snapshot |
快照 | imgsnapshot | ❌ 未实现 |
| Action | Title (i18n) | Icon | 当前行为 |
|---|---|---|---|
Advanced Processing |
高级处理 | btn_Imageprocess | 切换到高级处理面板 |
Image Measurement |
图像测量 | btn_Measurements | 切换到测量面板 |
Rectangle Crop |
矩形裁剪 | rectangle-crop | 切换到矩形裁剪面板 |
More |
更多 | btn_OtherSetting | 切换到更多功能面板 |
特点: 点击后立即执行,不保持状态
特点: 点击激活工具,再次点击停用
STATEFUL_BUTTON_ACTIONS)STATEFUL_BUTTON_ACTIONS)特点: 打开侧边栏面板
Pan 工具目前被 showNotImplemented() 拦截STATEFUL_BUTTON_ACTIONS 中handleButtonClick 逻辑调用 adjustBrightnessAndContrast(viewportId) (一次性操作)| FunctionArea Action | Cornerstone3D Tool | 当前状态 |
|---|---|---|
Adjust Brightness and Contrast |
WindowLevelTool |
按钮存在,但行为是一次性函数调用 |
Pan |
PanTool |
按钮存在,但被标记为"未实现" |
Magnifier |
MagnifyTool |
按钮存在,标记为 STATEFUL |
// 两个工具作为示例
tools: ['WindowLevel', 'Pan']
// 行为规则
1. 点击按钮 → 工具 Active + 抢左键 + 按钮高亮
2. 再次点击 → 工具 Passive + 释放左键 + 取消高亮
3. 同一时间:允许无工具抢左键,不允许多个工具同时抢左键
WindowLevel:
STATEFUL_BUTTON_ACTIONS 集合中)Pan:
showNotImplemented() 拦截映射现有按钮到 Cornerstone3D 工具
WindowLevel → "Adjust Brightness and Contrast" 按钮
handleButtonClick 逻辑activeTools['WindowLevel'] 状态Pan → "Pan" 按钮
showNotImplemented() 拦截activeTools['Pan'] 状态统一所有工具到新架构
activeTools 管理所有持续工具请确认以下设计决策:
工具互斥性:
按钮映射:
其他工具:
向后兼容:
adjustBrightnessAndContrast(viewportId) 函数?或完全替换为新的 ToolGroup 绑定逻辑?
Adjust Brightness and Contrast 、Magnifier 、Zoom Image、pan。这4个是有状态按钮。点击任一按钮后,其他三个按钮对应的工具处于失活状态,不再绑定鼠标左键了;被点击的按钮绑定了鼠标左键。对应工具成功激活并绑定左键后高亮。
点击面板上的任一按钮,不论是一面板切换按钮,还是一次性按钮,当前绑定鼠标左键的按钮要失活,不再和鼠标左键绑定
重置光标按钮的功能。清除几个状态按钮的按下状态。
多分格状态下。按钮可用性如下表: