# Josh User Interface ![Static Badge](https://img.shields.io/badge/Lit-Based-%20) Fourth Time's The Charm!™ #### JUI is a C++20 Library for building interactive menus in OpenGL / Redacted3D. It is expressly built with our Redacted3D engine in mind, but steps have been taken to support OpenGL generally. ![JUI First Showcase](showcase.png) ## Abstract JUI provides a set of objects that we term Widgets, which can be styled and laid out on-screen in relation to each other. Each widget has a single parent, and a list of child elements. Your root widget should be a Scene object. ## Features * Flexible and comprehensive set of Widgets. [Full List Here](docs/widgets.md) * Extendable - Widgets can be extended via class derivation, and even combined to create complex behavior. * Low-overhead stateful GUI elements. * Easy integration with your project. Simply provide update, draw, and user-input callbacks to your scene. ## Examples Browse the src/Demos directories for examples of building and interacting with things in JUI. Browse the Repository's ![Wiki](https://git.redacted.cc/josh/ReJUI/wiki), linked above, for further explainations and sample code on each widget. ## Dependencies ReJUI shares dependencies with it's rendering layer, ![JGL](https://git.redacted.cc/josh/JGL). Currently, the package is also integrated with ![J3ML](https://git.redacted.cc/josh/J3ML) and ![ReWindow](https://git.redacted.cc/Redacted/ReWindow). `Fedora/RHEL: dnf install cmake make gcc-g++ libX11 libX11-devel mesa-libGL-devel vulkan-loader-devel` `Ubuntu/Debian: apt-get install cmake make gcc g++ libx11-6 libx11-dev libgl-dev libvulkan-dev libxrandr-dev` ## Documentation Documentation is automatically generated from latest commit and is hosted at https://doc.redacted.cc/jui . [An overview of the library is available here.](docs/overview.md) [A full list of widgets is available here.](docs/widgets.md) ## Contributing Contributions to JUI are welcome! Feel free to file bug reports or feature requests by creating an Issue. Pull requests are also very welcome! ## License JUI is expressly released without a license, under no restrictions. We dedicate all of our works to the public domain for the (hopeful) betterment of humanity. ## Acknowledgements JUI is developed and maintained by Joshua O'Leary from Redacted Software Group, and all the wonderful contributors.