日志段固定高度 200(Cell.I=height 实测确认),中段 450:根表格三段都能看出来(上按钮/中列表/下日志)
This commit is contained in:
1 parent
5a59b0f739
commit
1f402ea8e4
1 file changed
+26
-16
@@ -121,33 +121,43 @@ public final class ObjectPanel {
|
|||||||
Object[] top = {refresh, newBone, newSlot, newBBox, newPath, delete, rename, inspect, setValue};
|
Object[] top = {refresh, newBone, newSlot, newBBox, newPath, delete, rename, inspect, setValue};
|
||||||
Object buttons = tableClass.getConstructor().newInstance();
|
Object buttons = tableClass.getConstructor().newInstance();
|
||||||
call(buttons, Obf.TABLE_TOP, new Class<?>[0], tableClass);
|
call(buttons, Obf.TABLE_TOP, new Class<?>[0], tableClass);
|
||||||
|
call(buttons, Obf.TABLE_LEFT, new Class<?>[0], tableClass); // 按钮块靠左上(不然整宽后会居中)
|
||||||
for (int i = 0; i < top.length; i++) {
|
for (int i = 0; i < top.length; i++) {
|
||||||
Object buttonCell = call(buttons, Obf.TABLE_ADD, new Class<?>[] {actorClass}, cellClass, top[i]);
|
Object buttonCell = call(buttons, Obf.TABLE_ADD, new Class<?>[] {actorClass}, cellClass, top[i]);
|
||||||
layoutCell(buttonCell, Obf.CELL_LEFT);
|
layoutCell(buttonCell, Obf.CELL_LEFT);
|
||||||
if (i % 2 == 1) call(buttons, Obf.TABLE_ROW, new Class<?>[0], cellClass);
|
// 每个按钮一行:上段是**一条整带**(不要左右两列),整体读起来才是"上/中/下"
|
||||||
|
call(buttons, Obf.TABLE_ROW, new Class<?>[0], cellClass);
|
||||||
}
|
}
|
||||||
call(buttons, Obf.TABLE_ROW, new Class<?>[0], cellClass);
|
call(buttons, Obf.TABLE_ROW, new Class<?>[0], cellClass);
|
||||||
Object nameCell = call(buttons, Obf.TABLE_ADD, new Class<?>[] {actorClass}, cellClass, state.nameField);
|
Object nameCell = call(buttons, Obf.TABLE_ADD, new Class<?>[] {actorClass}, cellClass, state.nameField);
|
||||||
layoutCell(nameCell, Obf.CELL_LEFT);
|
layoutCell(nameCell, Obf.CELL_LEFT);
|
||||||
// 上段:按钮块(自适应高度,紧贴顶部)
|
// 上段:按钮块(自适应高度,紧贴顶部)
|
||||||
Object cell = call(root, Obf.TABLE_ADD, new Class<?>[] {actorClass}, cellClass, buttons);
|
Object cell = call(root, Obf.TABLE_ADD, new Class<?>[] {actorClass}, cellClass, buttons);
|
||||||
layoutCell(cell, Obf.CELL_LEFT);
|
layoutCell(cell, Obf.CELL_LEFT, Obf.CELL_FILL_X);
|
||||||
call(root, Obf.TABLE_ROW, new Class<?>[0], cellClass);
|
call(root, Obf.TABLE_ROW, new Class<?>[0], cellClass);
|
||||||
// 中段+下段放进**同一个竖直容器**:列表在上面 expand+fill(一直拉到日志上沿),
|
// 上/中/下 = 根表格的**三个单元格**(这样 setDebug 画出来就是三条带):
|
||||||
// 日志紧跟其下一行 —— 结构上保证"列表下边和日志区紧贴",不依赖任何高度猜测。
|
// 上 = 按钮块(已经在上面加过)
|
||||||
Object content = tableClass.getConstructor().newInstance();
|
// 中 = 列表/Inspector:固定高度 500 + fillX + expand + fill(下边自然顶到日志上沿)
|
||||||
call(content, Obf.TABLE_TOP, new Class<?>[0], tableClass);
|
// 下 = 日志 Label:自然高度贴底
|
||||||
Object contentCell = call(content, Obf.TABLE_ADD, new Class<?>[] {actorClass}, cellClass, scroll);
|
|
||||||
layoutCell(contentCell, Obf.CELL_TOP, Obf.CELL_EXPAND, Obf.CELL_FILL);
|
|
||||||
state.listCell = contentCell;
|
|
||||||
state.content = content;
|
|
||||||
state.root = root;
|
state.root = root;
|
||||||
call(content, Obf.TABLE_ROW, new Class<?>[0], cellClass);
|
cell = call(root, Obf.TABLE_ADD, new Class<?>[] {actorClass}, cellClass, scroll);
|
||||||
Object logCell = call(content, Obf.TABLE_ADD, new Class<?>[] {actorClass}, cellClass,
|
layoutCell(cell, Obf.CELL_TOP, Obf.CELL_FILL_X, Obf.CELL_EXPAND, Obf.CELL_FILL);
|
||||||
state.status);
|
try {
|
||||||
layoutCell(logCell, Obf.CELL_LEFT);
|
// 中段固定高度:Cell.height(float) 在载荷里叫 `I`(实测确认:设 900 -> 根表格 580->1080)
|
||||||
cell = call(root, Obf.TABLE_ADD, new Class<?>[] {actorClass}, cellClass, content);
|
call(cell, "I", new Class<?>[] {float.class}, cellClass, Float.valueOf(450f));
|
||||||
layoutCell(cell, Obf.CELL_EXPAND, Obf.CELL_FILL);
|
} catch (Throwable error) {
|
||||||
|
System.err.println("[panel] 设置中段高度失败: " + error);
|
||||||
|
}
|
||||||
|
state.listCell = cell;
|
||||||
|
call(root, Obf.TABLE_ROW, new Class<?>[0], cellClass);
|
||||||
|
Object logCell = call(root, Obf.TABLE_ADD, new Class<?>[] {actorClass}, cellClass, state.status);
|
||||||
|
layoutCell(logCell, Obf.CELL_LEFT, Obf.CELL_FILL_X);
|
||||||
|
try {
|
||||||
|
// 日志段也给固定高度,否则只有一行高(视觉上等于没有这一段)
|
||||||
|
call(logCell, "I", new Class<?>[] {float.class}, cellClass, Float.valueOf(200f));
|
||||||
|
} catch (Throwable error) {
|
||||||
|
System.err.println("[panel] 设置日志段高度失败: " + error);
|
||||||
|
}
|
||||||
// 中段高度固定:Cell.height(float) 在载荷里叫 `I`(描述符 (F)LdR;)
|
// 中段高度固定:Cell.height(float) 在载荷里叫 `I`(描述符 (F)LdR;)
|
||||||
// 实测确认:设 900 后根表格高度 580 -> 1080,说明它就是 height()。
|
// 实测确认:设 900 后根表格高度 580 -> 1080,说明它就是 height()。
|
||||||
try {
|
try {
|
||||||
|
|||||||
Reference in new issue
Block a user