X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2f294a9c3883a9360a8fce0790ec1602ee6d80dc..24ad91f346d85b50e4ac66d26850c143f7d8c32f:/samples/splitter/splitter.cpp diff --git a/samples/splitter/splitter.cpp b/samples/splitter/splitter.cpp index 60fa68fe6e..182421b6a9 100644 --- a/samples/splitter/splitter.cpp +++ b/samples/splitter/splitter.cpp @@ -41,6 +41,7 @@ enum SPLIT_HORIZONTAL, SPLIT_VERTICAL, SPLIT_UNSPLIT, + SPLIT_LIVE, SPLIT_SETMINSIZE }; @@ -64,7 +65,9 @@ public: void SplitHorizontal(wxCommandEvent& event); void SplitVertical(wxCommandEvent& event); void Unsplit(wxCommandEvent& event); + void ToggleLive(wxCommandEvent& event); void SetMinSize(wxCommandEvent& event); + void Quit(wxCommandEvent& event); // Menu command update functions @@ -134,9 +137,11 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_MENU(SPLIT_VERTICAL, MyFrame::SplitVertical) EVT_MENU(SPLIT_HORIZONTAL, MyFrame::SplitHorizontal) EVT_MENU(SPLIT_UNSPLIT, MyFrame::Unsplit) - EVT_MENU(SPLIT_QUIT, MyFrame::Quit) + EVT_MENU(SPLIT_LIVE, MyFrame::ToggleLive) EVT_MENU(SPLIT_SETMINSIZE, MyFrame::SetMinSize) + EVT_MENU(SPLIT_QUIT, MyFrame::Quit) + EVT_UPDATE_UI(SPLIT_VERTICAL, MyFrame::UpdateUIVertical) EVT_UPDATE_UI(SPLIT_HORIZONTAL, MyFrame::UpdateUIHorizontal) EVT_UPDATE_UI(SPLIT_UNSPLIT, MyFrame::UpdateUIUnsplit) @@ -156,6 +161,7 @@ MyFrame::MyFrame() fileMenu->Append(SPLIT_HORIZONTAL, _T("Split &Horizontally\tCtrl-H"), _T("Split horizontally")); fileMenu->Append(SPLIT_UNSPLIT, _T("&Unsplit\tCtrl-U"), _T("Unsplit")); fileMenu->AppendSeparator(); + fileMenu->Append(SPLIT_LIVE, _T("&Live update"), _T("Toggle live update mode"), TRUE); fileMenu->Append(SPLIT_SETMINSIZE, _T("Set &min size"), _T("Set minimum pane size")); fileMenu->AppendSeparator(); fileMenu->Append(SPLIT_QUIT, _T("E&xit\tAlt-X"), _T("Exit")); @@ -165,6 +171,7 @@ MyFrame::MyFrame() SetMenuBar(menuBar); + menuBar->Check(SPLIT_LIVE, TRUE); m_splitter = new MySplitterWindow(this); #if 1 @@ -186,6 +193,7 @@ MyFrame::MyFrame() m_right->Show(FALSE); m_splitter->Initialize(m_left); #else + // you can also try -100 m_splitter->SplitVertically(m_left, m_right, 100); #endif @@ -210,6 +218,8 @@ void MyFrame::SplitHorizontal(wxCommandEvent& WXUNUSED(event) ) m_left->Show(TRUE); m_right->Show(TRUE); m_splitter->SplitHorizontally( m_left, m_right ); + + SetStatusText(_T("Splitter split horizontally"), 1); } void MyFrame::SplitVertical(wxCommandEvent& WXUNUSED(event) ) @@ -219,6 +229,8 @@ void MyFrame::SplitVertical(wxCommandEvent& WXUNUSED(event) ) m_left->Show(TRUE); m_right->Show(TRUE); m_splitter->SplitVertically( m_left, m_right ); + + SetStatusText(_T("Splitter split vertically"), 1); } void MyFrame::Unsplit(wxCommandEvent& WXUNUSED(event) ) @@ -228,17 +240,28 @@ void MyFrame::Unsplit(wxCommandEvent& WXUNUSED(event) ) SetStatusText(_T("No splitter")); } +void MyFrame::ToggleLive(wxCommandEvent& event ) +{ + long style = m_splitter->GetWindowStyleFlag(); + if ( event.IsChecked() ) + style |= wxSP_LIVE_UPDATE; + else + style &= ~wxSP_LIVE_UPDATE; + + m_splitter->SetWindowStyleFlag(style); +} + void MyFrame::SetMinSize(wxCommandEvent& WXUNUSED(event) ) { wxString str; - str.Printf( _T(_T("%d")), m_splitter->GetMinimumPaneSize()); + str.Printf( wxT("%d"), m_splitter->GetMinimumPaneSize()); str = wxGetTextFromUser(_T("Enter minimal size for panes:"), _T(""), str, this); if ( str.IsEmpty() ) return; int minsize = wxStrtol( str, (wxChar**)NULL, 10 ); m_splitter->SetMinimumPaneSize(minsize); - str.Printf( _T(_T("Min pane size = %d")), minsize); + str.Printf( wxT("Min pane size = %d"), minsize); SetStatusText(str, 1); }