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 |
|
tianmo
|
0ec33d90ae
|
修 Inspect 被日志覆盖:setStatus 改为只追加一行日志(不再触发整表重排),日志块用 logBlockStarted 标记
|
2026-10-16 16:06:48 +08:00 |
|
tianmo
|
8fefcb76c4
|
run.sh 改用 python subprocess.Popen(start_new_session=True) 启动:nohup 方式会让编辑器挂在启动它的会话下,会话结束就被收掉
|
2026-10-16 16:04:26 +08:00 |
|
tianmo
|
1333e3d89c
|
面板内容区合并为一个滚动区:列表/Inspector 在上、日志块在下(不再用两个单元格,顺序不会再反)
|
2026-10-16 16:00:46 +08:00 |
|
tianmo
|
9e318f3361
|
下段提示区:包进 ScrollPane + 固定 90px 高度,保证任意停靠高度下三段都各占一块
|
2026-10-16 15:58:32 +08:00 |
|
tianmo
|
1cfd5e13cd
|
面板改为上/中/下三段:上=按钮(自适应)、中=列表(expand+fill 吃掉剩余)、下=实时提示(保留最近6条,多行)
|
2026-10-16 15:57:36 +08:00 |
|
tianmo
|
7f5ee1f00e
|
面板布局再修:按钮直接进根表格(两列多行),列表区是唯一 expand+fill 的行;列表内容 Table 设 top()+left(),否则 ScrollPane 里控件比视口小时会居中显示,看着像'列表跑到下面'
|
2026-10-16 15:51:46 +08:00 |
|
tianmo
|
f4cf713ded
|
修面板布局:根表格与按钮子表 top(),按钮行/状态行不再 fill(否则控件被拉伸挤到停靠框下方)
|
2026-10-16 15:49:29 +08:00 |
|
tianmo
|
1f8a3b4dae
|
加可双击的 viewpanel/重启编辑器.command(Finder 双击即重启编辑器)
|
2026-10-16 15:47:58 +08:00 |
|
tianmo
|
e5461cbf12
|
加 viewpanel/run.sh:一条命令手动重启编辑器(先杀旧实例、按需 rebuild、日志写 /tmp/spineview.log)
|
2026-10-16 15:46:40 +08:00 |
|
tianmo
|
15468829ae
|
按 setup pose 实测补锚点:Gp.length/worldScale、GU.name/bone/attachment/color、GO 附件的 rotation/scale/width/height
用户用四张 setup pose 截图给出对照:Gp(root/bone)、GU(插槽)、GO(region 附件)。
- Gp:面板 Length 与 float Class 一致 → length;Ljava/java 与 Code/SourceFile 相等 → 世界缩放。
- GU:String D=名字、Gp D=所属骨骼、Gn D=附件、Color D=颜色。
- GO:六个 float 对上 Region 附件的 旋转/缩放XY/宽高。
names.tsv 合并后 222 行,Renamer 重新产出 payload-named.zip。
|
2026-10-16 15:44:31 +08:00 |
|