Show wxCollapsibleHeaderCtrl in the collpane sample

If nothing else, this at least verifies that this control can be used in all
ports.

See #17309.
This commit is contained in:
Vadim Zeitlin
2016-02-08 01:02:07 +01:00
parent f0da6aa0ae
commit 1ba4d1847b

View File

@@ -35,6 +35,7 @@
#include "wx/textdlg.h" // for wxGetTextFromUser #include "wx/textdlg.h" // for wxGetTextFromUser
#endif #endif
#include "wx/collheaderctrl.h"
#include "wx/collpane.h" #include "wx/collpane.h"
#include "wx/sizer.h" #include "wx/sizer.h"
#include "wx/stattext.h" #include "wx/stattext.h"
@@ -98,8 +99,11 @@ public:
void OnCollapseUpdateUI(wxUpdateUIEvent& event); void OnCollapseUpdateUI(wxUpdateUIEvent& event);
void OnExpandUpdateUI(wxUpdateUIEvent& event); void OnExpandUpdateUI(wxUpdateUIEvent& event);
void OnCollapsibleHeaderChanged(wxCommandEvent& event);
private: private:
wxCollapsiblePane *m_collPane; wxCollapsiblePane *m_collPane;
wxCollapsibleHeaderCtrl *m_collHeaderCtrl;
wxBoxSizer *m_paneSizer; wxBoxSizer *m_paneSizer;
wxDECLARE_EVENT_TABLE(); wxDECLARE_EVENT_TABLE();
@@ -161,6 +165,8 @@ wxBEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_UPDATE_UI(PANE_COLLAPSE, MyFrame::OnCollapseUpdateUI) EVT_UPDATE_UI(PANE_COLLAPSE, MyFrame::OnCollapseUpdateUI)
EVT_UPDATE_UI(PANE_EXPAND, MyFrame::OnExpandUpdateUI) EVT_UPDATE_UI(PANE_EXPAND, MyFrame::OnExpandUpdateUI)
EVT_COLLAPSIBLEHEADER_CHANGED(wxID_ANY, MyFrame::OnCollapsibleHeaderChanged)
wxEND_EVENT_TABLE() wxEND_EVENT_TABLE()
// My frame constructor // My frame constructor
@@ -194,7 +200,7 @@ MyFrame::MyFrame()
menuBar->Append(helpMenu, wxT("&Help")); menuBar->Append(helpMenu, wxT("&Help"));
SetMenuBar(menuBar); SetMenuBar(menuBar);
m_collPane = new wxCollapsiblePane(this, -1, wxT("test!")); m_collPane = new wxCollapsiblePane(this, -1, "This is a wxCollapsiblePane");
wxWindow *win = m_collPane->GetPane(); wxWindow *win = m_collPane->GetPane();
m_paneSizer = new wxBoxSizer( wxHORIZONTAL ); m_paneSizer = new wxBoxSizer( wxHORIZONTAL );
@@ -208,6 +214,13 @@ MyFrame::MyFrame()
paneSubSizer->Add( new wxButton(win, PANE_BUTTON, wxT("Press to align right") ), 0, wxALIGN_LEFT | wxALL, 3 ); paneSubSizer->Add( new wxButton(win, PANE_BUTTON, wxT("Press to align right") ), 0, wxALIGN_LEFT | wxALL, 3 );
win->SetSizer( m_paneSizer ); win->SetSizer( m_paneSizer );
m_collHeaderCtrl = new wxCollapsibleHeaderCtrl(this, wxID_ANY, "Collapsed wxCollapsibleHeaderCtrl");
wxSizer* const sizerTop = new wxBoxSizer(wxVERTICAL);
sizerTop->Add(m_collPane, wxSizerFlags(1).Expand());
sizerTop->Add(m_collHeaderCtrl);
SetSizer(sizerTop);
} }
MyFrame::~MyFrame() MyFrame::~MyFrame()
@@ -268,6 +281,17 @@ void MyFrame::OnExpandUpdateUI(wxUpdateUIEvent& event)
event.Enable(m_collPane->IsCollapsed()); event.Enable(m_collPane->IsCollapsed());
} }
void MyFrame::OnCollapsibleHeaderChanged(wxCommandEvent& WXUNUSED(event))
{
m_collHeaderCtrl->SetLabel
(
wxString::Format
(
"%s wxCollapsibleHeaderCtrl",
m_collHeaderCtrl->IsCollapsed() ? "Collapsed" : "Expanded"
)
);
}
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// MyDialog // MyDialog