X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/13cd17453c3019708591605f91ea3b218e329ccc..bb650010c8200174ce824aaadac44e8e5ead194d:/samples/widgets/static.cpp diff --git a/samples/widgets/static.cpp b/samples/widgets/static.cpp index ba1b4d0ca9..c40d3bccc0 100644 --- a/samples/widgets/static.cpp +++ b/samples/widgets/static.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Program: wxWindows Widgets Sample +// Program: wxWidgets Widgets Sample // Name: static.cpp // Purpose: Part of the widgets sample showing various static controls // Author: Vadim Zeitlin @@ -28,6 +28,7 @@ #ifndef WX_PRECOMP #include "wx/log.h" + #include "wx/bitmap.h" #include "wx/button.h" #include "wx/checkbox.h" #include "wx/radiobox.h" @@ -50,7 +51,7 @@ // control ids enum { - StaticPage_Reset = 100, + StaticPage_Reset = wxID_HIGHEST, StaticPage_BoxText, StaticPage_LabelText }; @@ -93,7 +94,7 @@ public: } protected: - void OnMouseEvent(wxMouseEvent& event) + void OnMouseEvent(wxMouseEvent& WXUNUSED(event)) { wxLogMessage(wxT("Clicked on static text")); } @@ -115,7 +116,7 @@ public: } protected: - void OnMouseEvent(wxMouseEvent& event) + void OnMouseEvent(wxMouseEvent& WXUNUSED(event)) { wxLogMessage(wxT("Clicked on static box")); } @@ -138,8 +139,14 @@ END_EVENT_TABLE() class StaticWidgetsPage : public WidgetsPage { public: - StaticWidgetsPage(wxNotebook *notebook, wxImageList *imaglist); - virtual ~StaticWidgetsPage(); + StaticWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist); + virtual ~StaticWidgetsPage(){}; + + virtual wxControl *GetWidget() const { return m_statText; } + virtual void RecreateWidget() { CreateStatic(); } + + // lazy creation of the content + virtual void CreateContent(); protected: // event handlers @@ -166,9 +173,12 @@ protected: *m_radioVAlign; // the controls and the sizer containing them + wxStaticBox *m_staticBox; wxStaticBoxSizer *m_sizerStatBox; wxStaticText *m_statText; +#if wxUSE_STATLINE wxStaticLine *m_statLine; +#endif // wxUSE_STATLINE wxSizer *m_sizerStatic; // the text entries for command parameters @@ -189,22 +199,22 @@ BEGIN_EVENT_TABLE(StaticWidgetsPage, WidgetsPage) EVT_BUTTON(StaticPage_LabelText, StaticWidgetsPage::OnButtonLabelText) EVT_BUTTON(StaticPage_BoxText, StaticWidgetsPage::OnButtonBoxText) - EVT_CHECKBOX(-1, StaticWidgetsPage::OnCheckOrRadioBox) - EVT_RADIOBOX(-1, StaticWidgetsPage::OnCheckOrRadioBox) + EVT_CHECKBOX(wxID_ANY, StaticWidgetsPage::OnCheckOrRadioBox) + EVT_RADIOBOX(wxID_ANY, StaticWidgetsPage::OnCheckOrRadioBox) END_EVENT_TABLE() // ============================================================================ // implementation // ============================================================================ -IMPLEMENT_WIDGETS_PAGE(StaticWidgetsPage, _T("Static")); +IMPLEMENT_WIDGETS_PAGE(StaticWidgetsPage, _T("Static"), + (int)wxPlatform(GENERIC_CTRLS).If(wxOS_WINDOWS,NATIVE_CTRLS) + ); -StaticWidgetsPage::StaticWidgetsPage(wxNotebook *notebook, - wxImageList *imaglist) - : WidgetsPage(notebook) +StaticWidgetsPage::StaticWidgetsPage(WidgetsBookCtrl *book, + wxImageList *imaglist) + : WidgetsPage(book, imaglist, statbox_xpm) { - imaglist->Add(wxBitmap(statbox_xpm)); - // init everything m_chkVert = m_chkAutoResize = (wxCheckBox *)NULL; @@ -212,16 +222,22 @@ StaticWidgetsPage::StaticWidgetsPage(wxNotebook *notebook, m_radioHAlign = m_radioVAlign = (wxRadioBox *)NULL; +#if wxUSE_STATLINE m_statLine = (wxStaticLine *)NULL; +#endif // wxUSE_STATLINE m_statText = (wxStaticText *)NULL; + m_staticBox = (wxStaticBox *)NULL; m_sizerStatBox = (wxStaticBoxSizer *)NULL; m_sizerStatic = (wxSizer *)NULL; +} +void StaticWidgetsPage::CreateContent() +{ 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); @@ -243,10 +259,10 @@ StaticWidgetsPage::StaticWidgetsPage(wxNotebook *notebook, _T("bottom"), }; - m_radioHAlign = new wxRadioBox(this, -1, _T("&Horz alignment"), + m_radioHAlign = new wxRadioBox(this, wxID_ANY, _T("&Horz alignment"), wxDefaultPosition, wxDefaultSize, WXSIZEOF(halign), halign); - m_radioVAlign = new wxRadioBox(this, -1, _T("&Vert alignment"), + m_radioVAlign = new wxRadioBox(this, wxID_ANY, _T("&Vert alignment"), wxDefaultPosition, wxDefaultSize, WXSIZEOF(valign), valign); @@ -257,19 +273,19 @@ StaticWidgetsPage::StaticWidgetsPage(wxNotebook *notebook, sizerLeft->Add(btn, 0, wxALIGN_CENTRE_HORIZONTAL | wxALL, 15); // middle pane - wxStaticBox *box2 = new wxStaticBox(this, -1, _T("&Change labels")); + wxStaticBox *box2 = new wxStaticBox(this, wxID_ANY, _T("&Change labels")); wxSizer *sizerMiddle = new wxStaticBoxSizer(box2, wxVERTICAL); wxSizer *sizerRow; sizerRow = CreateSizerWithTextAndButton(StaticPage_BoxText, _T("Change &box label"), - -1, &m_textBox); + wxID_ANY, &m_textBox); sizerMiddle->Add(sizerRow, 0, wxGROW | wxALL, 5); sizerRow = CreateSizerWithTextAndButton(StaticPage_LabelText, _T("Change &text label"), - -1, &m_textLabel); + wxID_ANY, &m_textLabel); sizerMiddle->Add(sizerRow, 0, wxGROW | wxALL, 5); m_textBox->SetValue(_T("This is a box")); @@ -290,14 +306,7 @@ StaticWidgetsPage::StaticWidgetsPage(wxNotebook *notebook, // final initializations Reset(); - SetAutoLayout(TRUE); SetSizer(sizerTop); - - sizerTop->Fit(this); -} - -StaticWidgetsPage::~StaticWidgetsPage() -{ } // ---------------------------------------------------------------------------- @@ -306,8 +315,8 @@ StaticWidgetsPage::~StaticWidgetsPage() void StaticWidgetsPage::Reset() { - m_chkVert->SetValue(FALSE); - m_chkAutoResize->SetValue(TRUE); + m_chkVert->SetValue(false); + m_chkAutoResize->SetValue(true); m_radioHAlign->SetSelection(StaticHAlign_Left); m_radioVAlign->SetSelection(StaticVAlign_Top); @@ -319,15 +328,17 @@ void StaticWidgetsPage::CreateStatic() if ( m_sizerStatBox ) { - m_sizerStatic->Remove(m_sizerStatBox); - + delete m_staticBox; // delete m_sizerStatBox; -- deleted by Remove() + m_sizerStatic->Remove(m_sizerStatBox); delete m_statText; +#if wxUSE_STATLINE delete m_statLine; +#endif // wxUSE_STATLINE } int flagsBox = 0, - flagsText = 0; + flagsText = ms_defaultFlags; if ( !m_chkAutoResize->GetValue() ) { @@ -376,22 +387,26 @@ void StaticWidgetsPage::CreateStatic() flagsText |= align; flagsBox |= align; - wxStaticBox *box = new MyStaticBox(this, -1, m_textBox->GetValue(), - wxDefaultPosition, wxDefaultSize, - flagsBox); - m_sizerStatBox = new wxStaticBoxSizer(box, isVert ? wxHORIZONTAL - : wxVERTICAL); + m_staticBox = new MyStaticBox(this, wxID_ANY, m_textBox->GetValue(), + wxDefaultPosition, wxDefaultSize, + flagsBox); + m_sizerStatBox = new wxStaticBoxSizer(m_staticBox, isVert ? wxHORIZONTAL + : wxVERTICAL); - m_statText = new MyStaticText(this, -1, m_textLabel->GetValue(), + m_statText = new MyStaticText(this, wxID_ANY, m_textLabel->GetValue(), wxDefaultPosition, wxDefaultSize, flagsText); - m_statLine = new wxStaticLine(this, -1, +#if wxUSE_STATLINE + m_statLine = new wxStaticLine(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, isVert ? wxLI_VERTICAL : wxLI_HORIZONTAL); +#endif // wxUSE_STATLINE m_sizerStatBox->Add(m_statText, 1, wxGROW | wxALL, 5); +#if wxUSE_STATLINE m_sizerStatBox->Add(m_statLine, 0, wxGROW | wxALL, 5); +#endif // wxUSE_STATLINE m_sizerStatBox->Add(0, 0, 1); m_sizerStatic->Add(m_sizerStatBox, 1, wxGROW); @@ -410,17 +425,17 @@ void StaticWidgetsPage::OnButtonReset(wxCommandEvent& WXUNUSED(event)) CreateStatic(); } -void StaticWidgetsPage::OnCheckOrRadioBox(wxCommandEvent& event) +void StaticWidgetsPage::OnCheckOrRadioBox(wxCommandEvent& WXUNUSED(event)) { CreateStatic(); } -void StaticWidgetsPage::OnButtonBoxText(wxCommandEvent& event) +void StaticWidgetsPage::OnButtonBoxText(wxCommandEvent& WXUNUSED(event)) { m_sizerStatBox->GetStaticBox()->SetLabel(m_textBox->GetValue()); } -void StaticWidgetsPage::OnButtonLabelText(wxCommandEvent& event) +void StaticWidgetsPage::OnButtonLabelText(wxCommandEvent& WXUNUSED(event)) { m_statText->SetLabel(m_textLabel->GetValue()); }