X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/32b8ec418aee4e38877d4cb79e2984c766dcc358..2eb7ed882f80f60ad39cb8ebe37cc6c281fa0fa6:/samples/widgets/static.cpp diff --git a/samples/widgets/static.cpp b/samples/widgets/static.cpp index 61109a84d0..531041b2dc 100644 --- a/samples/widgets/static.cpp +++ b/samples/widgets/static.cpp @@ -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" @@ -41,7 +42,6 @@ #include "wx/statline.h" #include "widgets.h" - #include "icons/statbox.xpm" // ---------------------------------------------------------------------------- @@ -73,6 +73,65 @@ enum StaticVAlign_Max }; +// ---------------------------------------------------------------------------- +// MyStaticText and MyStaticBox +// ---------------------------------------------------------------------------- + +// these 2 classes simply show that the static controls can get the mouse +// clicks too -- this used to be broken under MSW but works now + +class MyStaticText : public wxStaticText +{ +public: + MyStaticText(wxWindow* parent, + wxWindowID id, + const wxString& label, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0) + : wxStaticText(parent, id, label, pos, size, style) + { + } + +protected: + void OnMouseEvent(wxMouseEvent& WXUNUSED(event)) + { + wxLogMessage(wxT("Clicked on static text")); + } + + DECLARE_EVENT_TABLE() +}; + +class MyStaticBox : public wxStaticBox +{ +public: + MyStaticBox(wxWindow* parent, + wxWindowID id, + const wxString& label, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0) + : wxStaticBox(parent, id, label, pos, size, style) + { + } + +protected: + void OnMouseEvent(wxMouseEvent& WXUNUSED(event)) + { + wxLogMessage(wxT("Clicked on static box")); + } + + DECLARE_EVENT_TABLE() +}; + +BEGIN_EVENT_TABLE(MyStaticText, wxStaticText) + EVT_LEFT_UP(MyStaticText::OnMouseEvent) +END_EVENT_TABLE() + +BEGIN_EVENT_TABLE(MyStaticBox, wxStaticBox) + EVT_LEFT_UP(MyStaticBox::OnMouseEvent) +END_EVENT_TABLE() + // ---------------------------------------------------------------------------- // StaticWidgetsPage // ---------------------------------------------------------------------------- @@ -108,6 +167,7 @@ protected: *m_radioVAlign; // the controls and the sizer containing them + wxStaticBox *m_staticBox; wxStaticBoxSizer *m_sizerStatBox; wxStaticText *m_statText; wxStaticLine *m_statLine; @@ -118,8 +178,8 @@ protected: *m_textLabel; private: - DECLARE_EVENT_TABLE(); - DECLARE_WIDGETS_PAGE(StaticWidgetsPage); + DECLARE_EVENT_TABLE() + DECLARE_WIDGETS_PAGE(StaticWidgetsPage) }; // ---------------------------------------------------------------------------- @@ -157,6 +217,7 @@ StaticWidgetsPage::StaticWidgetsPage(wxNotebook *notebook, m_statLine = (wxStaticLine *)NULL; m_statText = (wxStaticText *)NULL; + m_staticBox = (wxStaticBox *)NULL; m_sizerStatBox = (wxStaticBoxSizer *)NULL; m_sizerStatic = (wxSizer *)NULL; @@ -219,14 +280,14 @@ StaticWidgetsPage::StaticWidgetsPage(wxNotebook *notebook, // right pane wxSizer *sizerRight = new wxBoxSizer(wxHORIZONTAL); - sizerRight->SetMinSize(250, 0); + sizerRight->SetMinSize(150, 0); m_sizerStatic = sizerRight; CreateStatic(); // the 3 panes panes compose the window sizerTop->Add(sizerLeft, 0, wxGROW | (wxALL & ~wxLEFT), 10); - sizerTop->Add(sizerMiddle, 1, wxGROW | wxALL, 10); + sizerTop->Add(sizerMiddle, 0, wxGROW | wxALL, 10); sizerTop->Add(sizerRight, 1, wxGROW | (wxALL & ~wxRIGHT), 10); // final initializations @@ -261,9 +322,9 @@ 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; delete m_statLine; } @@ -318,13 +379,13 @@ void StaticWidgetsPage::CreateStatic() flagsText |= align; flagsBox |= align; - wxStaticBox *box = new wxStaticBox(this, -1, m_textBox->GetValue(), - wxDefaultPosition, wxDefaultSize, - flagsBox); - m_sizerStatBox = new wxStaticBoxSizer(box, isVert ? wxHORIZONTAL - : wxVERTICAL); + m_staticBox = new MyStaticBox(this, -1, m_textBox->GetValue(), + wxDefaultPosition, wxDefaultSize, + flagsBox); + m_sizerStatBox = new wxStaticBoxSizer(m_staticBox, isVert ? wxHORIZONTAL + : wxVERTICAL); - m_statText = new wxStaticText(this, -1, m_textLabel->GetValue(), + m_statText = new MyStaticText(this, -1, m_textLabel->GetValue(), wxDefaultPosition, wxDefaultSize, flagsText); @@ -352,17 +413,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()); }