Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rxi/microui
A tiny immediate-mode UI library
https://github.com/rxi/microui
Last synced: about 18 hours ago
JSON representation
A tiny immediate-mode UI library
- Host: GitHub
- URL: https://github.com/rxi/microui
- Owner: rxi
- License: mit
- Created: 2018-09-22T07:17:38.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-08-13T19:01:59.000Z (4 months ago)
- Last Synced: 2024-12-04T15:43:33.498Z (8 days ago)
- Language: C
- Homepage:
- Size: 52.7 KB
- Stars: 3,558
- Watchers: 80
- Forks: 250
- Open Issues: 31
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesomecpp - microui - - tiny, portable, immediate-mode UI library written in ANSI C. (UI)
- AwesomeCppGameDev - microui - mode UI library (Graphics)
README
# ![microui](https://user-images.githubusercontent.com/3920290/75171571-be83c500-5723-11ea-8a50-504cc2ae1109.png)
A *tiny*, portable, immediate-mode UI library written in ANSI C## Features
* Tiny: around `1100 sloc` of ANSI C
* Works within a fixed-sized memory region: no additional memory is allocated
* Built-in controls: window, scrollable panel, button, slider, textbox, label,
checkbox, wordwrapped text
* Works with any rendering system that can draw rectangles and text
* Designed to allow the user to easily add custom controls
* Simple layout system## Example
![example](https://user-images.githubusercontent.com/3920290/75187058-2b598800-5741-11ea-9358-38caf59f8791.png)
```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\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);
}
```## Screenshot
![screenshot](https://user-images.githubusercontent.com/3920290/75188642-63ae9580-5744-11ea-9eee-d753ff5c0aa7.png)[**Browser Demo**](https://floooh.github.io/sokol-html5/sgl-microui-sapp.html)
## Usage
* See [`doc/usage.md`](doc/usage.md) for usage instructions
* See the [`demo`](demo) directory for a usage example## Notes
The library expects the user to provide input and handle the resultant drawing
commands, it does not do any drawing itself.## Contributing
The library is designed to be lightweight, providing a foundation to which you
can easily add custom controls and UI elements; pull requests adding additional
features will likely not be merged. Bug reports are welcome.## License
This library is free software; you can redistribute it and/or modify it under
the terms of the MIT license. See [LICENSE](LICENSE) for details.