Управляйте интерфейсом
Храните окна и контролы в обычных C++-объектах. Плоская модель владения использует shared_ptr и weak_ptr с понятным временем жизни.
Создавайте интерфейсы с компактным API на C++17. Сохраняйте контролы, темы и логику приложения при смене платформы — теперь и в браузере.
wui::framework::init();
wui::set_default_theme_from_file(
"dark", "res/dark.json");
auto window = std::make_shared<wui::window>();
auto button = std::make_shared<wui::button>(
"Hello, WUI!", [] { /* your code */ });
window->add_control(button, {20, 60, 180, 100});
window->init("My application", {0, 0, 400, 300},
wui::window_style::frame);
wui::framework::run();Это настоящие C++-приложения, собранные в WebAssembly. Вводите текст, нажимайте кнопки, двигайте окна и меняйте темы.
Запускаем приложение на C++…
Shift + Esc — вернуть фокус к вкладкам сайта. На небольших экранах пример уменьшен.
В основе WUI — привычные понятия C++: объекты, явное владение и функции обратного вызова.
Храните окна и контролы в обычных C++-объектах. Плоская модель владения использует shared_ptr и weak_ptr с понятным временем жизни.
Окна передают события, контролы вызывают обработчики. Подключайте логику через std::function без генератора кода и этапа MOC.
Используйте общие контролы, JSON-темы и локализацию. Создавайте свои контролы через те же интерфейсы рисования и событий.
Склонируйте библиотеку и соберите примеры. В Hello world уже есть темы, локализация и основа для вашего интерфейса.
Открыть руководство ↗# macOS / Linux · установите зависимости платформы
git clone https://github.com/intent-garden/wui.git
cd wui
git switch I-94
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallelИзучайте исходники, сообщайте об ошибках и участвуйте в развитии библиотеки.