SPLIT_HORIZONTAL,
SPLIT_VERTICAL,
SPLIT_UNSPLIT,
+ SPLIT_LIVE,
SPLIT_SETMINSIZE
};
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
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)
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"));
SetMenuBar(menuBar);
+ menuBar->Check(SPLIT_LIVE, TRUE);
m_splitter = new MySplitterWindow(this);
#if 1
m_right->Show(FALSE);
m_splitter->Initialize(m_left);
#else
+ // you can also try -100
m_splitter->SplitVertically(m_left, m_right, 100);
#endif
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) )
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) )
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);
}