Internet Explorer 11 based HTML UI component for C++.
Due to employing Internet Explorer 11, html-ui offers a flexible and lightweight HTML user interface. It is ideal for small, yet elegant user interfaces.
No external dependencies are required resulting in minuscule binary sizes.
You can start by creating a window with native testFunction
handler:
#include <momo/html_ui.hpp>
int main()
{
momo::html_ui window("Test", 500, 300);
window.register_handler("testFunction", [](const std::string& text) -> int
{
// ...
return 15;
});
window.load_html("<!DOCTYPE html><html> ... </html>");
momo::html_ui::show_windows();
}
Native handlers can be called from JavaScript:
window.external.testFunction("Hello World");
Javascript execution from C++ is also possible:
const auto result = window.evaluate("alert('test')");
The JavaScript values are automatically translated to match the C++ function signature. If the arguments mismatch, an exception is thrown.
Alternatively, a raw handler can be registered, which receives all arguments as vector:
window.register_raw_handler("rawFunction", [&window](const std::vector<momo::html_value>& arguments)
-> momo::html_value
{
// ...
return {};
});