3

所以我们知道如何编译它,我们看过它的演示并且喜欢它。我们可能只见过一个基于它的现实生活中的开源项目。因此,我查看了示例,只看到了 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 文件绑定到它(理论上,因为我不太了解如何将 Eve 绑定到亚当,也没有看到如何执行此操作的教程),

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 来实现这样的事情呢?

更新

我们已经尝试在此处执行此操作,但它确实有效,但不是以实时反馈的方式 - 仅在对话关闭操作时。比起这里,但由于我们对 linux 的痴迷,我们已经暂停了 ASL 编程的开发,并开始在 Linux OS 上投入时间进行 ASL 编译。

4

1 回答 1

4

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 和一个连接两个布尔单元格的简单表格,这样您就可以查看事情是否正确发生。一旦你这样做了,你会发现连接更复杂的 UI 非常简单。

于 2011-11-11T08:00:14.543 回答