#ifndef _BUGREPRO_BUTTONGROUP_SIGNAL_HPP #define _BUGREPRO_BUTTONGROUP_SIGNAL_HPP #include #include #include #include #include namespace Bugrepro { namespace ButtonGroup_Signal { struct TestWidget : public Wt::WContainerWidget { TestWidget(); // private: // void createLayout(); // void setupConnections(); private: Wt::WRadioButton *rbtn_ONE, *rbtn_TWO; std::shared_ptr btnGroup; Wt::WText *txt_Clicked, *txt_Changed; }; TestWidget::TestWidget() { addNew("Signal from Radio Button Groups Signal 'checkedChanged' does not always return checked Button:"); addNew(); rbtn_ONE = addNew("Radio ONE"); rbtn_TWO = addNew("Radio TWO"); btnGroup = std::make_shared(); btnGroup->addButton(rbtn_ONE); btnGroup->addButton(rbtn_TWO); addNew(); txt_Changed = addNew("Group Changed Signal: "); addNew(); txt_Clicked = addNew("Button Clicked Signal: "); btnGroup->checkedChanged().connect([this](Wt::WRadioButton *btn){ if(btn == this->rbtn_ONE) { this->txt_Changed->setText("Group Changed Signal: 'Radio ONE'"); return; } if(btn == this->rbtn_TWO) { this->txt_Changed->setText("Group Changed Signal: 'Radio TWO'"); return; } this->txt_Changed->setText(Wt::WString("Group Changed Signal: Not Recognised: Index {1}").arg(this->btnGroup->selectedButtonIndex())); }); rbtn_ONE->clicked().connect([this](){ this->txt_Clicked->setText("Button Clicked Signal: 'Radio ONE"); }); rbtn_TWO->clicked().connect([this](){ this->txt_Clicked->setText("Button Clicked Signal: 'Radio TWO"); }); } } } #endif // _BUGREPRO_BUTTONGROUP_SIGNAL_HPP