#lv2 #stub #embeddable #applications #pugl #gui-toolkits

pugl-ui

使用 pugl 的轻量级嵌入式 GUI 工具包的占位符

5 个不稳定版本

0.3.0 2020 年 11 月 1 日
0.2.0 2020 年 7 月 4 日
0.1.2 2020 年 6 月 25 日
0.1.1 2020 年 6 月 25 日
0.1.0 2020 年 6 月 25 日

#658GUI

ISC 许可证

160KB
3K SLoC

pugl-ui – 使用 pugl 的轻量级嵌入式 GUI 工具包的占位符

Build Status Current Crates.io Version Documentation Version

pugl 是一个用于嵌入式 GUI 的最小化可移植 API https://gitlab.com/lv2/pugl/

本软件包旨在为使用 pugl 的 GUI 工具包提供占位符

目标

为小型轻量级自包含 GUI 工具包提供占位符,特别是实现 LV2 插件的 UI。LV2 插件的 GUI 需要是自包含的,即它们应该是静态链接的,并且不能动态链接任何其他 GUI 工具包。否则,不同插件在不同主机中运行时使用的同一 GUI 工具包的符号将发生冲突。

存在一个名为 pugl-sys 的软件包,它是 pugl 库的包装器。此软件包提供小部件布局和事件传播。

然而,它不提供小部件本身。在 LV2 世界中,许多插件作者编写自己的小部件集,具有他们独特的视觉和感觉,因为它们是作者企业身份的一部分。

状态

处于某种程度的测试阶段。目前仅在 Linux/X11 上进行了测试

API 稳定性

在达到 1.0.0 版本发布之前,可能会发生不兼容的 API 变更。目前还没有大量应用程序使用 pugl-ui。因此,对 API 的经验有限。在几个开发者使用 pugl-ui 进行实际应用程序并给出反馈之前,1.0.0 版本不会发布。

如果发现有更好的设计 API 的方法,它将被执行。随着更多实际经验的积累,API 可能会向更方便的方向发展。

尤其是因为 API 与 GUI 编程的常规面向对象方法不同。在面向对象 GUI 编程中使用的模式,最显著的是观察者模式和模型视图控制器,在安全的 Rust 中不能正确工作,因为需要共享可变引用来实施它们。

待办事项

  • 更完整的文档

然而,我不愿意在 API 不稳定时投入过多精力进行文档编写。因此,我首先将编写一些 LV2 插件,以查看是否一切顺利。因此,如果某个模块缺少文档,则 API 可能会发生变化。

使用 pugl-ui 的应用程序

依赖关系

~9–11MB
~239K SLoC