X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6aa89a22b8e47000c98bff05c6f545f331f1c353..52d9d823a1fbfdcec2fcf9ba3c8e86f2c6359558:/samples/listctrl/listtest.cpp diff --git a/samples/listctrl/listtest.cpp b/samples/listctrl/listtest.cpp index 937991839e..c9462339dd 100644 --- a/samples/listctrl/listtest.cpp +++ b/samples/listctrl/listtest.cpp @@ -114,11 +114,14 @@ static const int NUM_ITEMS = 30; // number of items in icon/small icon view static const int NUM_ICONS = 9; -int wxCALLBACK MyCompareFunction(long item1, long item2, long sortData) +int wxCALLBACK MyCompareFunction(long item1, long item2, long WXUNUSED(sortData)) { // inverse the order - if (item1 < item2) return -1; - if (item1 > item2) return 1; + if (item1 < item2) + return -1; + if (item1 > item2) + return 1; + return 0; } @@ -246,6 +249,13 @@ MyFrame::~MyFrame() } void MyFrame::OnSize(wxSizeEvent& event) +{ + DoSize(); + + event.Skip(); +} + +void MyFrame::DoSize() { if ( !m_logWindow ) return; @@ -254,8 +264,17 @@ void MyFrame::OnSize(wxSizeEvent& event) wxCoord y = (2*size.y)/3; m_listCtrl->SetSize(0, 0, size.x, y); m_logWindow->SetSize(0, y + 1, size.x, size.y - y); +} - event.Skip(); +bool MyFrame::CheckNonVirtual() const +{ + if ( !m_listCtrl->HasFlag(wxLC_VIRTUAL) ) + return true; + + // "this" == whatever + wxLogWarning(_T("Can't do this in virtual view, sorry.")); + + return false; } void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) @@ -271,14 +290,14 @@ void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) dialog.ShowModal(); } -void MyFrame::OnFreeze(wxCommandEvent& event) +void MyFrame::OnFreeze(wxCommandEvent& WXUNUSED(event)) { wxLogMessage(_T("Freezing the control")); m_listCtrl->Freeze(); } -void MyFrame::OnThaw(wxCommandEvent& event) +void MyFrame::OnThaw(wxCommandEvent& WXUNUSED(event)) { wxLogMessage(_T("Thawing the control")); @@ -299,11 +318,14 @@ void MyFrame::OnFocusLast(wxCommandEvent& WXUNUSED(event)) void MyFrame::OnToggleFirstSel(wxCommandEvent& WXUNUSED(event)) { - m_listCtrl->SetItemState(0, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED); + m_listCtrl->SetItemState(0, (~m_listCtrl->GetItemState(0, wxLIST_STATE_SELECTED) ) & wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED); } void MyFrame::OnDeselectAll(wxCommandEvent& WXUNUSED(event)) { + if ( !CheckNonVirtual() ) + return; + int n = m_listCtrl->GetItemCount(); for (int i = 0; i < n; i++) m_listCtrl->SetItemState(i,0,wxLIST_STATE_SELECTED); @@ -311,6 +333,9 @@ void MyFrame::OnDeselectAll(wxCommandEvent& WXUNUSED(event)) void MyFrame::OnSelectAll(wxCommandEvent& WXUNUSED(event)) { + if ( !CheckNonVirtual() ) + return; + int n = m_listCtrl->GetItemCount(); for (int i = 0; i < n; i++) m_listCtrl->SetItemState(i,wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED); @@ -362,9 +387,7 @@ void MyFrame::RecreateList(long flags, bool withText) } } -#ifdef __WXMSW__ - SendSizeEvent(); -#endif + DoSize(); m_logWindow->Clear(); } @@ -512,7 +535,7 @@ void MyFrame::OnSort(wxCommandEvent& WXUNUSED(event)) sw.Time())); } -void MyFrame::OnShowSelInfo(wxCommandEvent& event) +void MyFrame::OnShowSelInfo(wxCommandEvent& WXUNUSED(event)) { int selCount = m_listCtrl->GetSelectedItemCount(); wxLogMessage(_T("%d items selected:"), selCount); @@ -538,7 +561,7 @@ void MyFrame::OnShowSelInfo(wxCommandEvent& event) } } -void MyFrame::OnShowColInfo(wxCommandEvent& event) +void MyFrame::OnShowColInfo(wxCommandEvent& WXUNUSED(event)) { int count = m_listCtrl->GetColumnCount(); wxLogMessage(wxT("%d columns:"), count); @@ -672,6 +695,13 @@ void MyListCtrl::LogColEvent(const wxListEvent& event, const wxChar *name) void MyListCtrl::OnColBeginDrag(wxListEvent& event) { LogColEvent( event, wxT("OnColBeginDrag") ); + + if ( event.GetColumn() == 0 ) + { + wxLogMessage(_T("Resizing this column shouldn't work.")); + + event.Veto(); + } } void MyListCtrl::OnColDragging(wxListEvent& event) @@ -706,7 +736,9 @@ void MyListCtrl::OnBeginLabelEdit(wxListEvent& event) void MyListCtrl::OnEndLabelEdit(wxListEvent& event) { - wxLogMessage( wxT("OnEndLabelEdit: %s"), event.m_item.m_text.c_str()); + wxLogMessage( wxT("OnEndLabelEdit: %s"), + event.IsEditCancelled() ? _T("[cancelled]") + : event.m_item.m_text.c_str()); } void MyListCtrl::OnDeleteItem(wxListEvent& event) @@ -899,7 +931,7 @@ wxString MyListCtrl::OnGetItemText(long item, long column) const return wxString::Format(_T("Column %ld of item %ld"), column, item); } -int MyListCtrl::OnGetItemImage(long item) const +int MyListCtrl::OnGetItemImage(long WXUNUSED(item)) const { return 0; }