tianmo
|
4000a06d61
|
+10 Red Bones 修两处:①每建一根等一帧(编辑器下一帧才真建,同帧连调只生效一次)②颜色按映射表写 Gp 的 color 字段(混淆名 B),不再取'第一个 Color 字段'
|
2026-10-16 17:57:06 +08:00 |
|
tianmo
|
b09a7e0659
|
统一'当前操作对象':优先取编辑器里的选择(用户在层级面板选),New/Delete/Rename/+10 全部改用 currentTarget()
|
2026-10-16 17:55:50 +08:00 |
|
tianmo
|
dd520655f0
|
+10 Red Bones 的父级改为读'编辑器当前选择'(用户是在层级面板里选的,不走我们列表行)
|
2026-10-16 17:55:10 +08:00 |
|
tianmo
|
e57d31dfe6
|
撤掉列表表格外层的包装容器(它让编辑器布局抛 RuntimeException: Actor: ScrollPane,面板因此失去响应)
|
2026-10-16 17:53:55 +08:00 |
|
tianmo
|
f696c15671
|
新增按钮 +10 Red Bones:在当前选中骨骼下用编辑器自己的 New Bone 建 10 根,位置随机(±200),颜色写 red(Gp 的 x/y 走 names.tsv 反查、color 按类型找字段)
|
2026-10-16 17:52:04 +08:00 |
|
tianmo
|
2e325bc1b9
|
去掉根表格 setFillParent(它把根表格拉成父容器大小,反而压扁三段);实测 root 仍被父容器限制在 ~1250
|
2026-10-16 17:39:50 +08:00 |
|
tianmo
|
a0c1b13a47
|
列表表格外包一层容器(容器 setFillParent + 表格 expand/fill),让表格铺满 ScrollPane 视口(绿框=红框)
|
2026-10-16 17:37:47 +08:00 |
|
tianmo
|
3b5e80f991
|
中段套回 ScrollPane(填满该格高度=红框、内容超出时裁剪+可滚)
|
2026-10-16 17:36:14 +08:00 |
|
tianmo
|
b737cc2b87
|
修 spine-lab/启动实验室Spine.command:它注入的 native-hook/hook.dylib 早已不存在(那套方案已废弃),改为调用 viewpanel/run.sh
|
2026-10-16 17:31:33 +08:00 |
|
tianmo
|
104eaba8c0
|
中段直接放列表表格(去掉 ScrollPane):expand/fill 撑满红框(代价:失去滚动)
|
2026-10-16 17:25:08 +08:00 |
|
tianmo
|
d6a766d5b4
|
列表表格垫空白(80行)让 pref ≥ ScrollPane 视口:列表区域铺满红框,内容多时照常滚动
|
2026-10-16 17:24:23 +08:00 |
|
tianmo
|
949d741cde
|
列表表格 setFillParent(true):撑满 ScrollPane 视口(原来按内容固定高度只画一小块)
|
2026-10-16 17:23:38 +08:00 |
|
tianmo
|
9b85090e93
|
拉伸后保持内容靠左上:按钮块 top()+left(),日志格加 top()
|
2026-10-16 17:22:11 +08:00 |
|
tianmo
|
22c483738c
|
三段控件纵向拉伸填满各自单元格:按钮块与日志块加 fillY(Cell.L),中段原本已有 fillY
|
2026-10-16 17:21:28 +08:00 |
|
tianmo
|
ee82bedabe
|
三段都加 expand(用户点名):吃掉停靠框剩余空间,消掉底部空带;600:1400:400 的比例仍作为各段 pref
|
2026-10-16 17:19:31 +08:00 |
|
tianmo
|
dc4db3e8fa
|
三段按 600:1400:400 等比缩放到 Stage 高度(略大于停靠框):内容盖过底部,消掉底部空带
|
2026-10-16 17:17:37 +08:00 |
|
tianmo
|
efeee1fe5a
|
加一行布局实测日志(root/按钮表/日志Label 高度),用于定位'底部空一条'的原因
|
2026-10-16 17:15:01 +08:00 |
|
tianmo
|
120d88bf0b
|
改回固定高度:上 600 / 中 1400 / 日志 400(不做等比缩放)
|
2026-10-16 17:13:32 +08:00 |
|
tianmo
|
4505c50af1
|
三段按 600:1400:400 的比例缩放到面板高度(原来三个数合计 2400 超过面板,被 libGDX 压扁导致比例看着不对)
|
2026-10-16 17:12:36 +08:00 |
|
tianmo
|
2a02984b79
|
三段固定高度按用户指定:上 600 / 中 1400 / 日志 400
|
2026-10-16 17:11:46 +08:00 |
|
tianmo
|
6744f122b4
|
三段高度按用户指定:中段 1400、日志段 400、上段取剩余;三段单元格都用 fillX 占满面板宽度
|
2026-10-16 17:10:22 +08:00 |
|
tianmo
|
8e9f70fdbd
|
下段(日志)固定 800 高;中段 = 面板高 − 上段20% − 800(仍铺满,不出空带)
|
2026-10-16 17:08:51 +08:00 |
|
tianmo
|
05c5d45cca
|
修 run.sh(漏 import os,导致编辑器根本起不来)+ 三段高度 20/60/20 自动按 Stage 高度算(实测 Stage.B()F=getHeight:4K 窗口 2044)
|
2026-10-16 17:07:41 +08:00 |
|
tianmo
|
84a8f30811
|
三段高度按 20/60/20 计算,面板高度可配置:-Dpanel.h=<像素>(默认 984,run.sh 支持 PANEL_H 环境变量)——4K 屏窗口更大时用得上
|
2026-10-16 17:01:37 +08:00 |
|
tianmo
|
77d6a91422
|
中段高度自适应父容器:middle = 父容器高(fillParent 前读到的 dock) − 按钮段 − 日志段(不用 expand);3 次迭代收敛
|
2026-10-16 16:59:27 +08:00 |
|
tianmo
|
8a1279bf5c
|
按用户要求去掉 expand:中段(列表)只用固定高度 700 做成最长的一段(fillY=L 拉伸),日志段自然高度贴底
|
2026-10-16 16:57:10 +08:00 |
|
tianmo
|
5c5ae8e7aa
|
中段(列表)改回最长的一段:expand+fill 吃掉剩余空间、保留高度下限;日志段只占自然高度贴底
|
2026-10-16 16:56:10 +08:00 |
|
tianmo
|
42def5b395
|
消除第 4 条空带:中段固定 450 且不再 expand,剩余高度全部给日志段(文字贴段顶)——此时面板就是干净的 上/中/下 三段
|
2026-10-16 16:55:14 +08:00 |
|
tianmo
|
1f402ea8e4
|
日志段固定高度 200(Cell.I=height 实测确认),中段 450:根表格三段都能看出来(上按钮/中列表/下日志)
|
2026-10-16 16:54:34 +08:00 |
|
tianmo
|
5a59b0f739
|
按用户要求画出上/中/下三段边界:根表格 setDebug(true)(载荷名 et.B(Z)V,对照表已确认)—— 红线=根表格三个单元格(按钮/中段/日志)的边界,绿线=按钮块内部单元格
|
2026-10-16 16:51:13 +08:00 |
|
tianmo
|
05e2d1b074
|
中段固定高度:Cell.I(float)=height(实测确认:设 900 → 根表格 580->1080;设后列表区出现滚动条可滚)。值先取 700,并把该映射写进 anchors.tsv/names.tsv
|
2026-10-16 16:50:16 +08:00 |
|
tianmo
|
a5307021f3
|
回滚到可编译版本并修映射表路径:从 classes 往上找含 tools/deobf/names.tsv 的仓库根(Inspector 显示真名)
|
2026-10-16 16:46:14 +08:00 |
|
tianmo
|
84eb409b76
|
修映射表路径:classes 上跳三级才是仓库根(<root>/viewpanel/build/classes)
|
2026-10-16 16:44:46 +08:00 |
|
tianmo
|
f0b78dbfd6
|
Inspector 显示用映射表翻译真名:字段/方法显示为 realName(混淆名),表来自 tools/deobf/names.tsv(运行时载荷不能改名,indy 靠加密串里的原名反射查找)
|
2026-10-16 16:44:12 +08:00 |
|
tianmo
|
0cdc0894a4
|
Revert "面板支持热更:视图里挂稳定容器(编辑器类加载器建的 Table),面板内容放在容器里;后台线程轮询 build/classes/com/spineview/ObjectPanel.class 的 mtime,一变就用新的子类加载器重建内容换进容器 —— 改完代码只需 build.sh,编辑器不用重启、场景与选择状态保留"
This reverts commit be0ed2352b.
|
2026-10-16 16:37:58 +08:00 |
|
tianmo
|
be0ed2352b
|
面板支持热更:视图里挂稳定容器(编辑器类加载器建的 Table),面板内容放在容器里;后台线程轮询 build/classes/com/spineview/ObjectPanel.class 的 mtime,一变就用新的子类加载器重建内容换进容器 —— 改完代码只需 build.sh,编辑器不用重启、场景与选择状态保留
|
2026-10-16 16:35:23 +08:00 |
|
tianmo
|
f8d2cda17c
|
grabScrollFocus 改用 getMethods():Stage 的焦点 API 声明在接口里(lpt6 implements LPt9),getDeclaredMethods 扫不到(实测 setter1/getter0);排除 Actor/Group/WidgetGroup 上声明的同名形状方法以免误调 addActor
|
2026-10-16 16:31:48 +08:00 |
|
tianmo
|
55c0794ed4
|
面板恢复成上/中/下三段:上=按钮块(两列紧邻+名字输入框)、中=列表(expand+fill)、下=日志(独立 Label,自然高度贴底);去掉列表里内嵌的日志行与之前未验证的尺寸调用
|
2026-10-16 16:26:15 +08:00 |
|
tianmo
|
4b05804479
|
修鼠标滚轮(第3版):面板按钮动作后把编辑器的滚动焦点抢到列表上
- 诊断证据:给列表 ScrollPane 挂 EventListener 代理后,滚轮事件收到 0 条 → 滚轮被视口的 scroll focus 拿走;
- grabScrollFocus():只在 **Stage 自己声明**的方法里找(addActor 声明在 Group,不会误调);
setter=『1 个参数是 Actor、返回 void』,getter=『无参返回 Actor』;调 setter 后看哪个 getter 变成面板,
找到就写日志『滚动焦点已抢到面板:setter=.. getter=..』,找不到写『没找到 setScrollFocus』。
- 触发时机:每次点击面板按钮/字段行之后(路由器里统一调用)。
|
2026-10-16 16:22:19 +08:00 |
|
tianmo
|
995ec585f4
|
修正映射表:把 MapMethods 的候选猜测(~n/m)从确定表里剔除
- anchors-libgdx.tsv 只保留唯一命中的 (126 条);候选消歧的 (138 条)移到
anchors-libgdx-unconfirmed.tsv 并标『不可信、要用先实测』;
- names.tsv 重新合并 = 确定(=) + 手动/实测锚点(不再混入猜测)。
|
2026-10-16 16:20:00 +08:00 |
|
tianmo
|
13bce4509d
|
让鼠标滚轮能滚列表:把列表 ScrollPane 的 touchable 从默认 childrenOnly 改成 enabled(无参返回枚举的方法=getTouchable,枚举 dv 第0常量=enabled)
- 诊断证据:程序化 scrollY(200) 生效(before=0 after=200),说明可滚范围没问题,
是滚轮事件没送到面板 —— 因为 childrenOnly 时 ScrollPane 自己不是命中目标,收不到 enter、
也就不会 setScrollFocus。
- 顺带把这条 Actor/Touchable 映射写进 anchors.tsv + names.tsv。
|
2026-10-16 16:18:28 +08:00 |
|
tianmo
|
d59287937d
|
列表滚动(第二版):给列表单元格固定高度 360(Cell.height 载荷名 I,(F)LdR; 指纹确认)+ setForceScroll(false,true)(ScrollPane.I(ZZ)V 指纹确认);并把 setForceScroll/setOverscroll/Cell 尺寸方法写进 anchors.tsv+names.tsv
|
2026-10-16 16:15:35 +08:00 |
|
tianmo
|
f558a4e4aa
|
把确认的映射写进表 + 技能补一条立即生效的规矩
- anchors.tsv 增补 ScrollPane(含踩坑确认的 B(ZZ)V=setScrollingDisabled,不是 setForceScroll),
names.tsv 同步为 220 条;
- 混淆名对照表.md 新增第七节(ScrollPane 方法映射 + 教训);
- .codex/skills/scope-discipline 增补『结论必须落进映射表(立即生效)』:新确认的映射/字段语义
当场写进 anchors.tsv 并同步 names.tsv / src-named,不许只留在对话里。
|
2026-10-16 16:13:54 +08:00 |
|
tianmo
|
8d396ecb5b
|
修列表滚动:ScrollPane 的 (boolean,boolean) 方法是 setScrollingDisabled 不是 setForceScroll;上一版传 (false,true) 把纵向滚动关掉了,现改为 (false,false) 恢复双向滚动
|
2026-10-16 16:13:09 +08:00 |
|
tianmo
|
320f537a60
|
只修列表:beginRender 改回复用同一个 Table(换新 ScrollPane 会抛 InvocationTargetException 导致列表渲染失败);invalidate 后再调 ScrollPane(boolean,boolean)=setForceScroll 让它按新内容高度重算可滚动范围
|
2026-10-16 16:11:54 +08:00 |
|
tianmo
|
b8fe2f98d1
|
新增项目级 skill:.codex/skills/scope-discipline(只做用户明确要求的事;改完自动重启并确认进程活着)
|
2026-10-16 16:10:49 +08:00 |
|
tianmo
|
ee1f2a2ced
|
只修列表滚动:每次渲染换一套新的 Table+ScrollPane 塞回同一单元格(复用时 ScrollPane 不重新测量 widget 高度,maxY=0 导致滚轮失效)
|
2026-10-16 16:10:20 +08:00 |
|
tianmo
|
94c467a40d
|
Revert "列表区改分页:每页 12 行 + Prev/Next(复用同一个 ScrollPane 时高度不重算,滚轮失效;分页绕开滚动)"
This reverts commit 32e707d23a.
|
2026-10-16 16:09:11 +08:00 |
|
tianmo
|
32e707d23a
|
列表区改分页:每页 12 行 + Prev/Next(复用同一个 ScrollPane 时高度不重算,滚轮失效;分页绕开滚动)
|
2026-10-16 16:09:08 +08:00 |
|
tianmo
|
5e7aed4a51
|
Inspector 变成可测数据的入口:字段行可点(读出当前值到输入框) + Set Value 按钮直接改模型字段(带撤销+重建树节点) + 跟随编辑器选择自动重新 Inspect
|
2026-10-16 16:08:05 +08:00 |
|