gpt4 book ai didi

c++ - Adobe 亚当和夏娃 (C++ ASL) : how to bind Eve variable so to get it updated inside C++ application?

转载 作者:搜寻专家 更新时间:2023-10-31 01:56:51 25 4
gpt4 key购买 nike

所以我们知道how to compile it ,我们看过它的演示并喜欢它。我们大概只看到了one real life opensource project基于它。所以我查看示例,只看到 3 个相当长的 C++ 应用程序可能是我感兴趣的 ASL\test\adam_tutorial\, ASL\test\adam_smoke\, ASL\test\eve_smoke\。但我仍然不明白如何使用简单的 Eve 文件:

dialog(name: "Clipping Path")
{
column(child_horizontal: align_fill)
{
popup(name: "Path:", bind: @path, items:
[
{ name: "None", value: empty },
{ name: "Path 1", value: 1 },
{ name: "Path 2", value: 2 }
]);
edit_number(name: "Flatness:", digits: 9, bind: @flatness);
}
button(name: "OK", default: true, bind: @result);
}

在其中,Adam 文件绑定(bind)到它(理论上,因为我不太了解如何将 Eve 绑定(bind)到 adam 并且没有看到关于如何执行此操作的教程),

sheet clipping_path
{
output:
result <== { path: path, flatness: flatness };

interface:
unlink flatness : 0.0 <== (path == empty) ? 0.0 : flatness;
path : 1;
}

在其中,每次更改 flatness 变量时都会调用我的一些 C++ 函数(例如,一个简单的计算新 flatness 值的函数)

那么如何使用 Adob​​e Adam 和 Eve 以及当然的 Boost 来实现这样的事情呢?

更新

我们已经尝试过here它有效但不是以实时反馈的方式 - 仅在对话框关闭操作时。比here但由于我们的 compile evrething on linux absession我们已经暂停了 ASL 编程的开发,并开始投入时间在 Linux 操作系统上进行 ASL 编译。

最佳答案

在 ASL 开发人员邮件列表中提出有关 ASL 问题的好地方:http://sourceforge.net/mail/?group_id=132417 .

您可能想查看“开始”测试应用程序。虽然这只能运行 Mac 和 Win,但它确实演示了如何连接。

基本思想是,当解析布局描述 (Eve) 时,它将调用您的 add_view_proc http://stlab.adobe.com/structadobe_1_1eve__callback__suite__t.html#a964b55af7417ae24aacbf552d1efbda4与参数表达式。通常,您使用 bind_layout_proc 作为回调,它将为您处理参数评估,并调用一个简化的回调,该回调采用带参数的字典。

当您的回调被调用时,您通常会创建一个适当的小部件并将字典与小部件相关联,或者从字典中提取感兴趣的参数并将它们存储在结构中。使用绑定(bind)参数,您可以使用 sheet_t 上的 monitor_xxxx 函数为关联的工作表 (Adam) 设置回调。通常您会使用 monitor_value 和 monitor_enabled。调用时,您可以在小部件上设置值或启用状态。当用户更改小部件值并调用小部件(可能通过事件处理程序、回调或您的 UI 工具包支持的任何机制)时,您调用 sheet_t::set() 来设置单元格的值然后 sheet_t::update() 使工作表重新计算。

就是这样 - 当尝试让 Adam/Eve 使用新的 UI 框架时 - 从小处着手。我通常从一个包含两个复选框的窗口开始,然后先连接 Eve。一旦完成,添加 Adam 和一个连接两个 bool 单元格的简单工作表,以便您可以查看事情是否正确发生。完成后,您会发现连接更复杂的 UI 非常简单。

关于c++ - Adobe 亚当和夏娃 (C++ ASL) : how to bind Eve variable so to get it updated inside C++ application?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6436307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com