rxi/microui
GitHub: rxi/microui
一个用 ANSI C 编写的微型即时模式 UI 库,提供基础控件和布局,可嵌入任意渲染系统。
Stars: 5769 | Forks: 361
# 
一个用 ANSI C 编写的*微型*、可移植、即时模式 UI 库
## 功能特性
* 微型:大约 `1100 sloc` 的 ANSI C 代码
* 在固定大小的内存区域中工作:不分配额外的内存
* 内置控件:window、scrollable panel、button、slider、textbox、label、
checkbox、wordwrapped text
* 适用于任何能够绘制矩形和文本的渲染系统
* 旨在让用户能轻松添加自定义控件
* 简单的布局系统
## 示例

```
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\n");
}
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);
}
```
## 截图

[**浏览器演示**](https://floooh.github.io/sokol-html5/sgl-microui-sapp.html)
## 用法
* 有关使用说明,请参阅 [`doc/usage.md`](doc/usage.md)
* 有关使用示例,请参阅 [`demo`](demo) 目录
## 注意
该库期望用户提供输入并处理生成的绘图命令,它本身不进行任何绘图操作。
## 贡献
该库被设计为轻量级的,提供了一个基础,您可以轻松地向其添加自定义控件和 UI 元素;添加额外功能的 pull request 通常不会被合并。欢迎提交 Bug 报告。
## 许可证
该库是自由软件;您可以根据 MIT 许可证的条款对其进行重新分发和修改。有关详细信息,请参阅 [LICENSE](LICENSE)。
标签:ANSI C, GUI, Immediate-mode, LangChain, MIT许可, SLOC, UI库, 内存安全, 即时模式, 图形界面, 客户端加密, 嵌入式UI, 工具库, 开源, 微型库, 渲染抽象, 游戏开发UI, 自定义控件, 轻量级