X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/32b8ec418aee4e38877d4cb79e2984c766dcc358..1aa3e471fea5255ce9dc0cc53a670ccaa5ddbdb4:/samples/widgets/radiobox.cpp?ds=sidebyside diff --git a/samples/widgets/radiobox.cpp b/samples/widgets/radiobox.cpp index 3594d9de6c..ebb3f78086 100644 --- a/samples/widgets/radiobox.cpp +++ b/samples/widgets/radiobox.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Program: wxWindows Widgets Sample +// Program: wxWidgets Widgets Sample // Name: radiobox.cpp // Purpose: Part of the widgets sample showing wxRadioBox // Author: Vadim Zeitlin @@ -24,10 +24,13 @@ #pragma hdrstop #endif +#if wxUSE_RADIOBOX + // for all others, include the necessary headers #ifndef WX_PRECOMP #include "wx/log.h" + #include "wx/bitmap.h" #include "wx/button.h" #include "wx/checkbox.h" #include "wx/radiobox.h" @@ -65,8 +68,8 @@ enum }; // default values for the number of radiobox items -static const size_t DEFAULT_NUM_ENTRIES = 12; -static const size_t DEFAULT_MAJOR_DIM = 4; +static const unsigned int DEFAULT_NUM_ENTRIES = 12; +static const unsigned int DEFAULT_MAJOR_DIM = 3; // ---------------------------------------------------------------------------- // RadioWidgetsPage @@ -75,8 +78,10 @@ static const size_t DEFAULT_MAJOR_DIM = 4; class RadioWidgetsPage : public WidgetsPage { public: - RadioWidgetsPage(wxNotebook *notebook, wxImageList *imaglist); - virtual ~RadioWidgetsPage(); + RadioWidgetsPage(wxBookCtrl *book, wxImageList *imaglist); + virtual ~RadioWidgetsPage(){}; + + virtual wxControl *GetWidget() const { return m_radio; } protected: // event handlers @@ -119,8 +124,8 @@ protected: *m_textLabelBtns; private: - DECLARE_EVENT_TABLE(); - DECLARE_WIDGETS_PAGE(RadioWidgetsPage); + DECLARE_EVENT_TABLE() + DECLARE_WIDGETS_PAGE(RadioWidgetsPage) }; // ---------------------------------------------------------------------------- @@ -141,8 +146,8 @@ BEGIN_EVENT_TABLE(RadioWidgetsPage, WidgetsPage) EVT_RADIOBOX(RadioPage_Radio, RadioWidgetsPage::OnRadioBox) - EVT_CHECKBOX(-1, RadioWidgetsPage::OnCheckOrRadioBox) - EVT_RADIOBOX(-1, RadioWidgetsPage::OnCheckOrRadioBox) + EVT_CHECKBOX(wxID_ANY, RadioWidgetsPage::OnCheckOrRadioBox) + EVT_RADIOBOX(wxID_ANY, RadioWidgetsPage::OnCheckOrRadioBox) END_EVENT_TABLE() // ============================================================================ @@ -151,9 +156,9 @@ END_EVENT_TABLE() IMPLEMENT_WIDGETS_PAGE(RadioWidgetsPage, _T("Radio")); -RadioWidgetsPage::RadioWidgetsPage(wxNotebook *notebook, - wxImageList *imaglist) - : WidgetsPage(notebook) +RadioWidgetsPage::RadioWidgetsPage(wxBookCtrl *book, + wxImageList *imaglist) + : WidgetsPage(book) { imaglist->Add(wxBitmap(radio_xpm)); @@ -171,7 +176,7 @@ RadioWidgetsPage::RadioWidgetsPage(wxNotebook *notebook, wxSizer *sizerTop = new wxBoxSizer(wxHORIZONTAL); // left pane - wxStaticBox *box = new wxStaticBox(this, -1, _T("&Set style")); + wxStaticBox *box = new wxStaticBox(this, wxID_ANY, _T("&Set style")); wxSizer *sizerLeft = new wxStaticBoxSizer(box, wxVERTICAL); @@ -184,9 +189,10 @@ RadioWidgetsPage::RadioWidgetsPage(wxNotebook *notebook, _T("top to bottom") }; - m_radioDir = new wxRadioBox(this, -1, _T("Numbering:"), + m_radioDir = new wxRadioBox(this, wxID_ANY, _T("Numbering:"), wxDefaultPosition, wxDefaultSize, - WXSIZEOF(layoutDir), layoutDir); + WXSIZEOF(layoutDir), layoutDir, + 1, wxRA_SPECIFY_COLS); sizerLeft->Add(m_radioDir, 0, wxGROW | wxALL, 5); // if it's not defined, we can't change the radiobox direction @@ -195,13 +201,13 @@ RadioWidgetsPage::RadioWidgetsPage(wxNotebook *notebook, #endif // wxRA_LEFTTORIGHT wxSizer *sizerRow; - sizerRow = CreateSizerWithTextAndLabel(_T("&Major dimension"), - -1, + sizerRow = CreateSizerWithTextAndLabel(_T("&Major dimension:"), + wxID_ANY, &m_textMajorDim); sizerLeft->Add(sizerRow, 0, wxGROW | wxALL, 5); - sizerRow = CreateSizerWithTextAndLabel(_T("&Number of buttons"), - -1, + sizerRow = CreateSizerWithTextAndLabel(_T("&Number of buttons:"), + wxID_ANY, &m_textNumBtns); sizerLeft->Add(sizerRow, 0, wxGROW | wxALL, 5); @@ -215,35 +221,35 @@ RadioWidgetsPage::RadioWidgetsPage(wxNotebook *notebook, sizerLeft->Add(btn, 0, wxALIGN_CENTRE_HORIZONTAL | wxALL, 15); // middle pane - wxStaticBox *box2 = new wxStaticBox(this, -1, _T("&Change parameters")); + wxStaticBox *box2 = new wxStaticBox(this, wxID_ANY, _T("&Change parameters")); wxSizer *sizerMiddle = new wxStaticBoxSizer(box2, wxVERTICAL); - sizerRow = CreateSizerWithTextAndLabel(_T("Current selection"), - -1, + sizerRow = CreateSizerWithTextAndLabel(_T("Current selection:"), + wxID_ANY, &m_textCurSel); sizerMiddle->Add(sizerRow, 0, wxGROW | wxALL, 5); sizerRow = CreateSizerWithTextAndButton(RadioPage_Selection, - _T("&Change selection"), - -1, + _T("&Change selection:"), + wxID_ANY, &m_textSel); sizerMiddle->Add(sizerRow, 0, wxGROW | wxALL, 5); sizerRow = CreateSizerWithTextAndButton(RadioPage_Label, - _T("&Label for box"), - -1, + _T("&Label for box:"), + wxID_ANY, &m_textLabel); sizerMiddle->Add(sizerRow, 0, wxGROW | wxALL, 5); sizerRow = CreateSizerWithTextAndButton(RadioPage_LabelBtn, - _T("&Label for buttons"), - -1, + _T("&Label for buttons:"), + wxID_ANY, &m_textLabelBtns); sizerMiddle->Add(sizerRow, 0, wxGROW | wxALL, 5); // right pane wxSizer *sizerRight = new wxBoxSizer(wxHORIZONTAL); - sizerRight->SetMinSize(250, 0); + sizerRight->SetMinSize(150, 0); m_sizerRadio = sizerRight; // save it to modify it later Reset(); @@ -252,31 +258,26 @@ RadioWidgetsPage::RadioWidgetsPage(wxNotebook *notebook, // the 3 panes panes compose the window sizerTop->Add(sizerLeft, 0, wxGROW | (wxALL & ~wxLEFT), 10); sizerTop->Add(sizerMiddle, 1, wxGROW | wxALL, 10); - sizerTop->Add(sizerRight, 1, wxGROW | (wxALL & ~wxRIGHT), 10); + sizerTop->Add(sizerRight, 0, wxGROW | (wxALL & ~wxRIGHT), 10); // final initializations - SetAutoLayout(TRUE); SetSizer(sizerTop); sizerTop->Fit(this); } -RadioWidgetsPage::~RadioWidgetsPage() -{ -} - // ---------------------------------------------------------------------------- // operations // ---------------------------------------------------------------------------- void RadioWidgetsPage::Reset() { - m_textMajorDim->SetValue(wxString::Format(_T("%d"), DEFAULT_MAJOR_DIM)); - m_textNumBtns->SetValue(wxString::Format(_T("%d"), DEFAULT_NUM_ENTRIES)); + m_textMajorDim->SetValue(wxString::Format(_T("%u"), DEFAULT_MAJOR_DIM)); + m_textNumBtns->SetValue(wxString::Format(_T("%u"), DEFAULT_NUM_ENTRIES)); m_textLabel->SetValue(_T("I'm a radiobox")); m_textLabelBtns->SetValue(_T("item")); - m_chkVert->SetValue(FALSE); + m_chkVert->SetValue(false); m_radioDir->SetSelection(RadioDir_Default); } @@ -287,7 +288,7 @@ void RadioWidgetsPage::CreateRadio() { sel = m_radio->GetSelection(); - m_sizerRadio->Remove(m_radio); + m_sizerRadio->Detach( m_radio ); delete m_radio; } @@ -319,7 +320,8 @@ void RadioWidgetsPage::CreateRadio() wxString labelBtn = m_textLabelBtns->GetValue(); for ( size_t n = 0; n < count; n++ ) { - items[n] = wxString::Format(_T("%s %u"), labelBtn.c_str(), n + 1); + items[n] = wxString::Format(_T("%s %lu"), + labelBtn.c_str(), (unsigned long)n + 1); } int flags = m_chkVert->GetValue() ? wxRA_VERTICAL @@ -374,7 +376,7 @@ void RadioWidgetsPage::OnButtonReset(wxCommandEvent& WXUNUSED(event)) CreateRadio(); } -void RadioWidgetsPage::OnCheckOrRadioBox(wxCommandEvent& event) +void RadioWidgetsPage::OnCheckOrRadioBox(wxCommandEvent& WXUNUSED(event)) { CreateRadio(); } @@ -382,10 +384,12 @@ void RadioWidgetsPage::OnCheckOrRadioBox(wxCommandEvent& event) void RadioWidgetsPage::OnRadioBox(wxCommandEvent& event) { int sel = m_radio->GetSelection(); + int event_sel = event.GetSelection(); + wxUnusedVar(event_sel); wxLogMessage(_T("Radiobox selection changed, now %d"), sel); - wxASSERT_MSG( sel == event.GetSelection(), + wxASSERT_MSG( sel == event_sel, _T("selection should be the same in event and radiobox") ); m_textCurSel->SetValue(wxString::Format(_T("%d"), sel)); @@ -453,3 +457,4 @@ void RadioWidgetsPage::OnUpdateUIReset(wxUpdateUIEvent& event) event.Enable(enable); } +#endif // wxUSE_RADIOBOX