#include #include #include #include #include #include std::unique_ptr createApplication(const Wt::WEnvironment &env) { auto app = std::make_unique(env); auto appTheme = std::make_shared(); app->setTheme(appTheme); auto layout = app->root()->setLayout(std::make_unique()); auto button = layout->addWidget(std::make_unique("Show dialog")); button->clicked().connect([]() { std::string wtVersion = wApp->environment().libraryVersion(); auto dialog = wApp->addChild(std::make_unique("Dialog compiled with Wt: " + wtVersion)); Wt::WGridLayout *layout = dialog->contents()->setLayout(std::make_unique()); layout->addWidget(std::make_unique("Text1"), 0, 0, Wt::AlignmentFlag::Right); layout->addWidget(std::make_unique("Text2"), 1, 0, Wt::AlignmentFlag::Right); layout->addWidget(std::make_unique("Text3"), 2, 0, Wt::AlignmentFlag::Right); layout->addWidget(std::make_unique("Text4"), 3, 0, Wt::AlignmentFlag::Right); layout->addWidget(std::make_unique("Value1"), 0, 1, Wt::AlignmentFlag::Left); layout->addWidget(std::make_unique("Value2"), 1, 1, Wt::AlignmentFlag::Left); layout->addWidget(std::make_unique("Value3"), 2, 1, Wt::AlignmentFlag::Left); layout->addWidget(std::make_unique("Value4"), 3, 1, Wt::AlignmentFlag::Left); Wt::WPushButton *ok = dialog->footer()->addNew("Ok"); ok->setDefault(true); dialog->rejectWhenEscapePressed(); // Accept the dialog ok->clicked().connect([dialog] { dialog->accept(); }); // Process the dialog result. dialog->finished().connect([dialog] { wApp->removeChild(dialog); }); dialog->show(); }); return app; } int main(int argc, char **argv) { try { Wt::WServer server(argc, argv, WTHTTP_CONFIGURATION); server.addEntryPoint(Wt::EntryPointType::Application, std::bind(createApplication, std::placeholders::_1)); server.run(); } catch (Wt::WException &e) { std::cerr << "Exception: " << e.what() << std::endl; } }