An open API service indexing awesome lists of open source software.

https://github.com/mupen64/ugui

Flexible immediate-mode Lua GUI library
https://github.com/mupen64/ugui

gui-library lua

Last synced: about 2 months ago
JSON representation

Flexible immediate-mode Lua GUI library

Awesome Lists containing this project

README

          




ugui



Flexible immediate-mode GUI library for Lua

# 🚀 Quickstart

```lua
---@module "mupen-lua-ugui"
ugui = dofile('mupen-lua-ugui.lua')
```

That's it. Don't forget to pass an absolute path, not a relative one.

Read the [demo scripts](https://github.com/Aurumaker72/mupen-lua-ugui/tree/main/demos) and function documentation for usage information.

# 📈 Advantages

- Easy Usage
- Immediate-mode control spawning API
- Flexible
- Add or extend controls
- Add or extend stylers
- Mock subsystems
- Host-authoritative
- Invokable anytime and anywhere
- No global pollution - only necessary components are exposed as tables
- Fast
- Shallow callstacks
- Reduced indirection
- Controls optimized for large datasets

# ✨ Features

mupen-lua-ugui — The base library

- Stylers
- Windows 10 (built-in)
- Flexibility
- Modify any part of the framework to your liking
- User Productivity
- Controls behave like Windows controls, ensuring consistency
- Button
- TextBox
- Full-fledged selection and editing system
- ToggleButton
- CarrouselButton
- Joystick
- Adjustable magnitude circle
- TrackBar
- Automatic layout adjustement based on size ratio
- ComboBox
- ListBox
- Scrolling support
- Unlimited items with no performance degradation
- Scrollbar
- Menu
- Unlimited child items and tree depth
- Checkable items
- Single-Pass Layout System
- StackPanel
- Horizontal/Vertical stacking
- Element gap size
- Spinner
- NumberBox
- TabControl

mupen-lua-ugui-ext — Extensions and advanced features

- Performance
- Graphics caching extension
- Stylers
- Nineslice (built-in)

BreitbandGraphics — ugui's rendering core

- Powerful abstraction layer over Mupen Lua drawing APIs
- Maximized usability
- Stable API surface
- Helpful utilities
- Hexadecimal color conversion
- Standard color tables
- Low overhead

## 🧩 Porting

### To mupen-lua-ugui

Porting a script to `mupen-lua-ugui` requires an understanding of the library's usage, achieved by reading the demos and comment docs.
For help, post an issue in this repository.