Added wxSplitterWindow::SetSashInvisible() and IsSashInvisible().

Also fix handling of wxSP_NOSASH.

Closes #14074.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70840 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2012-03-08 13:23:39 +00:00
parent 81f2b2ee81
commit c0430d964d
5 changed files with 83 additions and 7 deletions

View File

@@ -60,7 +60,8 @@ enum
SPLIT_SETPOSITION,
SPLIT_SETMINSIZE,
SPLIT_SETGRAVITY,
SPLIT_REPLACE
SPLIT_REPLACE,
SPLIT_INVISIBLE
};
// ----------------------------------------------------------------------------
@@ -99,6 +100,7 @@ public:
void OnSetMinSize(wxCommandEvent& event);
void OnSetGravity(wxCommandEvent& event);
void OnReplace(wxCommandEvent &event);
void OnToggleInvisible(wxCommandEvent &event);
void OnQuit(wxCommandEvent& event);
@@ -106,6 +108,7 @@ public:
void OnUpdateUIHorizontal(wxUpdateUIEvent& event);
void OnUpdateUIVertical(wxUpdateUIEvent& event);
void OnUpdateUIUnsplit(wxUpdateUIEvent& event);
void OnUpdateUIInvisible(wxUpdateUIEvent& event);
private:
wxScrolledWindow *m_left, *m_right;
@@ -187,12 +190,14 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_MENU(SPLIT_SETMINSIZE, MyFrame::OnSetMinSize)
EVT_MENU(SPLIT_SETGRAVITY, MyFrame::OnSetGravity)
EVT_MENU(SPLIT_REPLACE, MyFrame::OnReplace)
EVT_MENU(SPLIT_INVISIBLE, MyFrame::OnToggleInvisible)
EVT_MENU(SPLIT_QUIT, MyFrame::OnQuit)
EVT_UPDATE_UI(SPLIT_VERTICAL, MyFrame::OnUpdateUIVertical)
EVT_UPDATE_UI(SPLIT_HORIZONTAL, MyFrame::OnUpdateUIHorizontal)
EVT_UPDATE_UI(SPLIT_UNSPLIT, MyFrame::OnUpdateUIUnsplit)
EVT_UPDATE_UI(SPLIT_INVISIBLE, MyFrame::OnUpdateUIInvisible)
END_EVENT_TABLE()
// My frame constructor
@@ -218,6 +223,9 @@ MyFrame::MyFrame()
splitMenu->Append(SPLIT_UNSPLIT,
wxT("&Unsplit\tCtrl-U"),
wxT("Unsplit"));
splitMenu->AppendCheckItem(SPLIT_INVISIBLE,
wxT("Toggle sash &invisibility\tCtrl-I"),
wxT("Toggle sash invisibility"));
splitMenu->AppendSeparator();
splitMenu->AppendCheckItem(SPLIT_LIVE,
@@ -436,6 +444,12 @@ void MyFrame::OnReplace(wxCommandEvent& WXUNUSED(event) )
}
}
void MyFrame::OnToggleInvisible(wxCommandEvent& WXUNUSED(event) )
{
m_splitter->SetSashInvisible(!m_splitter->IsSashInvisible());
m_splitter->SizeWindows();
}
// Update UI handlers
void MyFrame::OnUpdateUIHorizontal(wxUpdateUIEvent& event)
@@ -453,6 +467,11 @@ void MyFrame::OnUpdateUIUnsplit(wxUpdateUIEvent& event)
event.Enable( m_splitter->IsSplit() );
}
void MyFrame::OnUpdateUIInvisible(wxUpdateUIEvent& event)
{
event.Check( m_splitter->IsSashInvisible() );
}
// ----------------------------------------------------------------------------
// MySplitterWindow
// ----------------------------------------------------------------------------