class TestToggleButton:public wxFrame
{
public:
TestToggleButton(const wxString& title);
protected:
void OnToggleRed(wxCommandEvent& event);
void OnToggleGreen(wxCommandEvent& event);
void OnToggleBlue(wxCommandEvent& event);
wxColour* colour;
wxPanel* pnColour;
wxToggleButton* btnRed;
wxToggleButton* btnGreen;
wxToggleButton* btnBlue;
};
TestToggleButton::TestToggleButton(const wxString& title)
:wxFrame(NULL,-1,title)
{
colour = new wxColour(0,0,0);
btnRed = new wxToggleButton(this,-1,"Red");
btnRed->Bind(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED,TestToggleButton::OnToggleRed,this);
btnGreen = new wxToggleButton(this,-1,"Green");
btnGreen->Bind(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED,TestToggleButton::OnToggleGreen,this);
btnBlue = new wxToggleButton(this,-1,"Blue");
btnBlue->Bind(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED,TestToggleButton::OnToggleBlue,this);
wxBoxSizer* szLeft = new wxBoxSizer(wxVERTICAL);
szLeft->Add(btnRed,1 ,wxALL|wxEXPAND ,10);
szLeft->Add(btnGreen,1 ,wxALL|wxEXPAND ,10);
szLeft->Add(btnBlue,1 ,wxALL|wxEXPAND ,10);
pnColour = new wxPanel(this,-1);
wxBoxSizer* szRight = new wxBoxSizer(wxVERTICAL);
szRight->Add(pnColour,1,wxEXPAND);
wxBoxSizer* szMain = new wxBoxSizer(wxHORIZONTAL);
szMain->Add(szLeft,1,wxEXPAND);
szMain->Add(szRight,1,wxEXPAND);
SetSizerAndFit(szMain);
Centre();
}
void TestToggleButton::OnToggleRed(wxCommandEvent& event)
{
colour->Set(colour->Red()?0:255,colour->Green(),colour->Blue());
pnColour->SetBackgroundColour(colour->GetAsString());
pnColour->Refresh();
}
void TestToggleButton::OnToggleGreen(wxCommandEvent& event)
{
colour->Set(colour->Red(),colour->Green()? 0:255,colour->Blue());
pnColour->SetBackgroundColour(colour->GetAsString());
pnColour->Refresh();
}
void TestToggleButton::OnToggleBlue(wxCommandEvent& WXUNUSED(event))
{
colour->Set(colour->Red(),colour->Green(),colour->Blue()?0:255);
pnColour->SetBackgroundColour(colour->GetAsString());
pnColour->Refresh();
}