I started this library to make a portable, low latency and modern looking UI framework, which may also be used in proprietary (closed source) applications.
It is specifically designed to display information with low-latency, and at the screen's refresh rate. Special care is taken for making it easy for GUI element to observe and modify data external to the GUI.
You can find a lot more information, documentation, example code, news and blog posts on the main web site: https://hikogui.org/
- High level API to make simple desktop applications.
- Modern C 20 library.
- Retained-mode GUI.
- GUI will dynamically track the state of the application.
- Localization and translation.
- Animation at the screen's refresh rate.
- Themes; including light/dark support.
- Editable key-bindings.
- Most or all drawing is GPU accelerated with Vulkan.
- Text is drawn using kerning, perceptional correct blending and subpixel anti-aliasing.
- High dynamic range and high gamut color handling.
- Automatic application preferences storage.
- Many support systems:
- logging,
- statistics,
- text handling,
- text template language,
- expression language,
- dynamic type system.
Here is some example code for an application with three radio buttons,
who form a set by sharing a single value
observer.
int hi_main(int argc, char *argv[])
{
observer<int> value = 0;
auto gui = hi::gui_system::make_unique();
auto &window = gui.make_window(txt("Radio button example"));
window.content().emplace<label_widget>("A1", txt("radio buttons:"));
window.content().emplace<radio_button_widget>("B1", txt("one"), value, 1);
window.content().emplace<radio_button_widget>("B2", txt("two"), value, 2);
window.content().emplace<radio_button_widget>("B3", txt("three"), value, 3);
return gui->loop();
}
The following platforms are supported:
- MSVC - Windows 10 (or newer) - x64
For hardware support see: hardware_support
You can find the install and build instruction for your favorite IDE in the INSTALL.md document.
You can find instruction on how to contribute to the HikoGUI library in the CONTRIBUTING.md document.
If you want to use HikoGUI as a library for your own application you can find instructions in the hikogui_hello_world example application's README.
If you like to become a sponsor, please contribute to Take Vos the main developer of the HikoGUI.
The following people and companies are platinum sponsors:
There are currently no platinum sponsors.
For more sponsors please see SPONSORS.