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 日 |
#658 在 GUI
160KB
3K SLoC
pugl-ui – 使用 pugl 的轻量级嵌入式 GUI 工具包的占位符
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