スクリプトパネルの中にスクロールを作る方法について
以下のスクリプトは、ChatGPTを使って作ったAfterEffectsのスクリプトです。
(私はコーディングができず、中身がなんとなくわかるくらいの知識です。)
デフォルトで10行のテキスト入力欄を表示させており、「+」や「-」ボタンを押すことでこのテキスト入力欄の行を増やしたり減らしたりすることができます。
ただ、入力欄を20個などつくるとパネルを伸ばさないと下の方の入力欄が見えなくなってかなり不便なので、一番上のタイトルややボタンがある1行目は固定して、例えば、テキスト入力欄だけ一つのコンテナにまとめて、ここのフィールドはスクロールでみれるようにしたいのですが、ChatGPTだとそれがなかなかうまくできません(※)。
(※)具体的には「Scrollbar」というコードを追加している?ようなのですが、表示が消えたり横向きのスクロールだけ出てきたり変になってうまくできないです。
<質問>
このテキスト入力部分だけをスクロールで表示できるようにするにはどうしたら良いでしょうか。
できれば、見える範囲はデフォルトで横200と縦100と決めておいて、あとあと見える範囲のデフォルト値を変更できるようにはしておきたいです。

<スクリプト>
{
function createUI(thisObj) {
var myPanel = (thisObj instanceof Panel) ? thisObj : new Window("palette", "Frame and Cell Manager", undefined, {resizeable: true});
var res =
"group { \
orientation: 'column', alignment:['fill', 'fill'], \
header: Group { \
alignment: ['fill', 'top'], \
frameText: StaticText { text:'テスト1', alignment:['left', 'top'] }, \
cellTextGroup: Group { \
orientation: 'row', alignment:['fill', 'top'], \
cellText: StaticText { text:'テスト2', alignment:['left', 'top'] }, \
addButton: Button { text:'+', preferredSize:[30, 20] }, \
removeButton: Button { text:'-', preferredSize:[30, 20] }, \
} \
}, \
list: Group { \
orientation: 'column', alignment:['fill', 'fill'], \
}, \
}";
myPanel.grp = myPanel.add(res);
function addRow() {
var group = myPanel.grp.list.add("group", undefined, {name: "row"});
group.orientation = "row";
group.alignment = ['fill', 'top'];
group.add("edittext", undefined, "", {name: "frame"}).alignment = ['fill', 'top'];
group.add("edittext", undefined, "", {name: "cell"}).alignment = ['fill', 'top'];
}
function removeRow() {
var group = myPanel.grp.list;
if (group.children.length > 0) {
group.remove(group.children[group.children.length - 1]);
}
}
for (var i = 0; i < 10; i++) {
addRow();
}
myPanel.grp.header.cellTextGroup.addButton.onClick = function() {
addRow();
myPanel.layout.layout(true);
}
myPanel.grp.header.cellTextGroup.removeButton.onClick = function() {
removeRow();
myPanel.layout.layout(true);
}
myPanel.layout.layout(true);
myPanel.grp.minimumSize = myPanel.grp.size;
return myPanel;
}
var myScriptPal = createUI(this);
if (myScriptPal instanceof Window) {
myScriptPal.center();
myScriptPal.show();
}
}
