momo5502 / html-ui

Extremely lightweight, yet flexible HTML UI

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

HTML-UI

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.

Preview

 

Usage

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 {};
});

About

Extremely lightweight, yet flexible HTML UI

License:GNU General Public License v3.0


Languages

Language:C++ 98.7%Language:CMake 1.3%