Project

General

Profile

Bug #7210 » main.cpp

Marco Kinski, 08/24/2019 01:00 PM

 

#include <Wt/WServer.h>
#include <Wt/WApplication.h>
#include <Wt/WEnvironment.h>

#include <Wt/WContainerWidget.h>
#include <Wt/WVBoxLayout.h>
#include <Wt/WPushButton.h>
#include <Wt/WCssDecorationStyle.h>

class MyApp : public Wt::WApplication {

Wt::WVBoxLayout* innerLayout{nullptr};

void Reset ()
{
while (innerLayout->count()) {
innerLayout->removeItem(innerLayout->itemAt(innerLayout->count() -1));
}

auto container = innerLayout->addWidget(std::make_unique<Wt::WContainerWidget>(), 1);
container->decorationStyle().setBackgroundColor(Wt::StandardColor::Green);
}

public:
MyApp(const Wt::WEnvironment& e)
: Wt::WApplication(e)
{
auto layout = root()->setLayout(std::make_unique<Wt::WVBoxLayout>());
auto button = layout->addWidget(std::make_unique<Wt::WPushButton>("reset"));
button->clicked().connect(this, &MyApp::Reset);

auto innerContainer = layout->addWidget(std::make_unique<Wt::WContainerWidget>(), 1);
innerLayout = innerContainer->setLayout(std::make_unique<Wt::WVBoxLayout>());

Reset();
}

static std::unique_ptr<MyApp> Instance (const Wt::WEnvironment& env)
{
return std::make_unique<MyApp>(env);
}
};


int main (int argc, char** argv)
try {
Wt::WServer wserver{argc, argv};

Wt::WLayout::setDefaultImplementation(Wt::LayoutImplementation::JavaScript);

wserver.addEntryPoint(Wt::EntryPointType::Application, &MyApp::Instance);
wserver.run();

return 0;
}
catch (std::exception& e) {
std::cerr << e.what() << std::endl;
return 10;
}
(1-1/2)