X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/be5a51fb592f3fa2ba38ac6cd1e488d6d806058c..6ba5438dda164146bf36ca729f8328332fae36b7:/samples/listbox/lboxtest.cpp?ds=inline diff --git a/samples/listbox/lboxtest.cpp b/samples/listbox/lboxtest.cpp index 751a5a18ce..8f92c1920a 100644 --- a/samples/listbox/lboxtest.cpp +++ b/samples/listbox/lboxtest.cpp @@ -20,11 +20,6 @@ // declarations // ============================================================================ -#ifdef __GNUG__ - #pragma implementation "lboxtest.cpp" - #pragma interface "lboxtest.cpp" -#endif - // ---------------------------------------------------------------------------- // headers // ---------------------------------------------------------------------------- @@ -74,7 +69,9 @@ enum LboxTest_AddSeveral, LboxTest_AddMany, LboxTest_Clear, +#if wxUSE_LOG LboxTest_ClearLog, +#endif // wxUSE_LOG LboxTest_Change, LboxTest_ChangeText, LboxTest_Delete, @@ -117,7 +114,9 @@ protected: void OnButtonDelete(wxCommandEvent& event); void OnButtonDeleteSel(wxCommandEvent& event); void OnButtonClear(wxCommandEvent& event); +#if wxUSE_LOG void OnButtonClearLog(wxCommandEvent& event); +#endif // wxUSE_LOG void OnButtonAdd(wxCommandEvent& event); void OnButtonAddSeveral(wxCommandEvent& event); void OnButtonAddMany(wxCommandEvent& event); @@ -176,8 +175,10 @@ protected: wxListBox *m_lbox; wxSizer *m_sizerLbox; +#if wxUSE_LOG // the listbox for logging messages wxListBox *m_lboxLog; +#endif // wxUSE_LOG // the text entries for "Add/change string" and "Delete" buttons wxTextCtrl *m_textAdd, @@ -185,13 +186,16 @@ protected: *m_textDelete; private: +#if wxUSE_LOG // the log target we use to redirect messages to the listbox wxLog *m_logTarget; +#endif // wxUSE_LOG // any class wishing to process wxWidgets events must use this macro DECLARE_EVENT_TABLE() }; +#if wxUSE_LOG // A log target which just redirects the messages to a listbox class LboxLogger : public wxLog { @@ -251,6 +255,7 @@ private: // the old log target wxLog *m_logOld; }; +#endif // wxUSE_LOG // ---------------------------------------------------------------------------- // misc macros @@ -269,7 +274,9 @@ BEGIN_EVENT_TABLE(LboxTestFrame, wxFrame) EVT_BUTTON(LboxTest_Delete, LboxTestFrame::OnButtonDelete) EVT_BUTTON(LboxTest_DeleteSel, LboxTestFrame::OnButtonDeleteSel) EVT_BUTTON(LboxTest_Clear, LboxTestFrame::OnButtonClear) +#if wxUSE_LOG EVT_BUTTON(LboxTest_ClearLog, LboxTestFrame::OnButtonClearLog) +#endif // wxUSE_LOG EVT_BUTTON(LboxTest_Add, LboxTestFrame::OnButtonAdd) EVT_BUTTON(LboxTest_AddSeveral, LboxTestFrame::OnButtonAddSeveral) EVT_BUTTON(LboxTest_AddMany, LboxTestFrame::OnButtonAddMany) @@ -308,8 +315,10 @@ bool LboxTestApp::OnInit() wxFrame *frame = new LboxTestFrame(_T("wxListBox sample")); frame->Show(); +#if wxUSE_LOG //wxLog::AddTraceMask(_T("listbox")); wxLog::AddTraceMask(_T("scrollbar")); +#endif // wxUSE_LOG return true; } @@ -329,11 +338,15 @@ LboxTestFrame::LboxTestFrame(const wxString& title) m_chkHScroll = m_chkSort = (wxCheckBox *)NULL; - m_lbox = + m_lbox = (wxListBox *)NULL; +#if wxUSE_LOG m_lboxLog = (wxListBox *)NULL; +#endif // wxUSE_LOG m_sizerLbox = (wxSizer *)NULL; +#if wxUSE_LOG m_logTarget = (wxLog *)NULL; +#endif // wxUSE_LOG wxPanel *panel = new wxPanel(this, wxID_ANY); @@ -400,14 +413,14 @@ LboxTestFrame::LboxTestFrame(const wxString& title) sizerRow = new wxBoxSizer(wxHORIZONTAL); btn = new wxButton(panel, LboxTest_Change, _T("C&hange current")); - m_textChange = new wxTextCtrl(panel, LboxTest_ChangeText, _T("")); + m_textChange = new wxTextCtrl(panel, LboxTest_ChangeText, wxEmptyString); sizerRow->Add(btn, 0, wxRIGHT, 5); sizerRow->Add(m_textChange, 1, wxLEFT, 5); sizerMiddle->Add(sizerRow, 0, wxALL | wxGROW, 5); sizerRow = new wxBoxSizer(wxHORIZONTAL); btn = new wxButton(panel, LboxTest_Delete, _T("&Delete this item")); - m_textDelete = new wxTextCtrl(panel, LboxTest_DeleteText, _T("")); + m_textDelete = new wxTextCtrl(panel, LboxTest_DeleteText, wxEmptyString); sizerRow->Add(btn, 0, wxRIGHT, 5); sizerRow->Add(m_textDelete, 1, wxLEFT, 5); sizerMiddle->Add(sizerRow, 0, wxALL | wxGROW, 5); @@ -433,6 +446,7 @@ LboxTestFrame::LboxTestFrame(const wxString& title) sizerUp->Add(sizerRight, 1, wxGROW | (wxALL & ~wxRIGHT), 10); // the lower one only has the log listbox and a button to clear it +#if wxUSE_LOG wxSizer *sizerDown = new wxStaticBoxSizer ( new wxStaticBox(panel, wxID_ANY, _T("&Log window")), @@ -440,10 +454,15 @@ LboxTestFrame::LboxTestFrame(const wxString& title) ); m_lboxLog = new wxListBox(panel, wxID_ANY); sizerDown->Add(m_lboxLog, 1, wxGROW | wxALL, 5); +#else + wxSizer *sizerDown = new wxBoxSizer(wxVERTICAL); +#endif // wxUSE_LOG wxBoxSizer *sizerBtns = new wxBoxSizer(wxHORIZONTAL); +#if wxUSE_LOG btn = new wxButton(panel, LboxTest_ClearLog, _T("Clear &log")); sizerBtns->Add(btn); sizerBtns->Add(10, 0); // spacer +#endif // wxUSE_LOG btn = new wxButton(panel, LboxTest_Quit, _T("E&xit")); sizerBtns->Add(btn); sizerDown->Add(sizerBtns, 0, wxALL | wxALIGN_RIGHT, 5); @@ -457,21 +476,24 @@ LboxTestFrame::LboxTestFrame(const wxString& title) Reset(); m_dirty = false; - panel->SetAutoLayout(true); panel->SetSizer(sizerTop); sizerTop->Fit(this); sizerTop->SetSizeHints(this); +#if wxUSE_LOG // now that everything is created we can redirect the log messages to the // listbox m_logTarget = new LboxLogger(m_lboxLog, wxLog::GetActiveTarget()); wxLog::SetActiveTarget(m_logTarget); +#endif // wxUSE_LOG } LboxTestFrame::~LboxTestFrame() { +#if wxUSE_LOG delete m_logTarget; +#endif // wxUSE_LOG } // ---------------------------------------------------------------------------- @@ -499,6 +521,7 @@ void LboxTestFrame::Reset() void LboxTestFrame::CreateLbox() { + wxWindow *parent = m_lbox->GetParent(); int flags = 0; switch ( m_radioSelMode->GetSelection() ) { @@ -518,19 +541,16 @@ void LboxTestFrame::CreateLbox() flags |= wxLB_SORT; wxArrayString items; - if ( m_lbox ) + int count = m_lbox->GetCount(); + for ( int n = 0; n < count; n++ ) { - int count = m_lbox->GetCount(); - for ( int n = 0; n < count; n++ ) - { - items.Add(m_lbox->GetString(n)); - } - - m_sizerLbox->Detach(m_lbox); - delete m_lbox; + items.Add(m_lbox->GetString(n)); } - m_lbox = new wxListBox(this, wxID_ANY, + m_sizerLbox->Detach(m_lbox); + delete m_lbox; + + m_lbox = new wxListBox(parent, LboxTest_Listbox, wxDefaultPosition, wxDefaultSize, 0, NULL, flags); @@ -598,10 +618,12 @@ void LboxTestFrame::OnButtonClear(wxCommandEvent& WXUNUSED(event)) m_lbox->Clear(); } +#if wxUSE_LOG void LboxTestFrame::OnButtonClearLog(wxCommandEvent& WXUNUSED(event)) { m_lboxLog->Clear(); } +#endif // wxUSE_LOG void LboxTestFrame::OnButtonAdd(wxCommandEvent& WXUNUSED(event)) {