
一个用 ANSI C 编写的微型、可移植、即时模式 UI 库。
特性
- 微型:约
1100 sloc的 ANSI C 代码 - 在固定大小的内存区域内运行:不额外分配内存
- 内置控件:窗口、可滚动面板、按钮、滑块、文本框、标签、复选框、自动换行文本
- 可与任何能绘制矩形和文本的渲染系统配合使用
- 设计允许用户轻松添加自定义控件
- 简单的布局系统
示例

if (mu_begin_window(ctx, "My Window", mu_rect(10, 10, 140, 86))) {
mu_layout_row(ctx, 2, (int[]) { 60, -1 }, 0);
mu_label(ctx, "First:");
if (mu_button(ctx, "Button1")) {
printf("Button1 pressed
");
}
mu_label(ctx, "Second:");
if (mu_button(ctx, "Button2")) {
mu_open_popup(ctx, "My Popup");
}
if (mu_begin_popup(ctx, "My Popup")) {
mu_label(ctx, "Hello world!");
mu_end_popup(ctx);
}
mu_end_window(ctx);
}
截图

使用
- 使用说明请参见
doc/usage.md - 使用示例请参见
demo目录
说明
该库期望用户提供输入并处理生成的绘制命令,它本身不执行任何绘制操作。
贡献
该库设计为轻量级,提供了一个基础框架,您可以在此基础上轻松添加自定义控件和 UI 元素;添加额外功能的 Pull Request 很可能不会被合并。欢迎提交 Bug 报告。
许可证
本库是自由软件;您可以根据 MIT 许可证的条款重新分发和/或修改它。详情请参见 LICENSE。