Project

General

Profile

Bug #8602 ยป main_checkbox.cpp

Minimal example code - Georg Wenig, 05/28/2021 02:44 PM

 
#include <Wt/WApplication.h>
#include <Wt/WBreak.h>
#include <Wt/WCheckBox.h>
#include <Wt/WContainerWidget.h>
#include <Wt/WPushButton.h>

#include <iostream>
#include <memory>

class MY_APPLICATION : public Wt::WApplication
{
public:
explicit MY_APPLICATION(const Wt::WEnvironment & i_enviromment) :
WApplication(i_enviromment)
{
m_check_box = root()->addWidget(std::make_unique<Wt::WCheckBox>("An option"));

m_check_box->checked().connect(this, & MY_APPLICATION::checked);
m_check_box->unChecked().connect(this, & MY_APPLICATION::unchecked);
m_check_box->changed().connect(this, & MY_APPLICATION::changed);
root()->addWidget(std::make_unique<Wt::WBreak>());
auto toggle_button = root()->addWidget(std::make_unique<Wt::WPushButton>("Toggle option"));
toggle_button->clicked().connect(this, & MY_APPLICATION::toggle_option);
}

private:
void checked(){ std::cout << "The checkbox was checked" << std::endl; }
void unchecked(){ std::cout << "The checkbox was unchecked" << std::endl; }
void changed() { std::cout << "The checkbox was changed" << std::endl; }
void toggle_option()
{
const bool is_checked = m_check_box->isChecked();
m_check_box->setChecked(! is_checked);
}
Wt::WCheckBox * m_check_box {nullptr};
};

int main(int i_argc, char ** i_argv)
{
return Wt::WRun(i_argc, i_argv, [](const Wt::WEnvironment &env)
{
return std::make_unique<MY_APPLICATION>(env);
});
}
    (1-1/1)