如何动态地将新选项卡添加到红色的选项卡面板

How can you dynamically add a new tab to a tab-panel in Red

假设您有一个像这样的标签面板:

editor: layout [
    below
    t: tab-panel 350x350 [
        "tab 1" [
            below
            b: button 75x25 "Interpret" on-click [do a/text ]
            a: area 320x250
        ]
    ]
]

view editor

我怎样才能动态地添加一个新的选项卡以使其具有当前选项卡的内容?

有几种动态添加新选项卡的方法,但在所有情况下,归结为添加:

  • 作为 string!t/data 块的选项卡标签。
  • 一个对应的panelobject!t/pane方块。

这是一个完整的示例代码:

tab1: [
    below
    button 75x25 "Interpret" on-click [do face/parent/pane/2/text ]
    area 320x250
]

editor: layout compose/deep/only [
    below
    button "add tab" [
        append t/data "tab 2"
        append t/pane make face! [type: 'panel pane: layout/only tab1]
    ]
    t: tab-panel 350x350 ["tab 1" (tab1)]
]
view editor

一些备注:

  • tab1 定义已被外部化,因此它的定义可以重新用于另一个选项卡内容(根据您的要求)。
  • a: 词已被删除,因为它不能被复制,访问当前选项卡面板中的当前 area 面孔现在通过沿着面孔树向上移动来完成。 b: 由于同样的原因,定义已被删除(而且它也没有被使用)。

提供了动态行为和动态面部构造示例(没有 VID 方言)here. tab-panel face type is described there