From: Vadim Zeitlin Date: Mon, 10 May 2010 21:22:16 +0000 (+0000) Subject: Add column parameter to wxListCtrl::GetItemText(). X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/b6812a6f19ff9cbabfb7408017984a5c237d58ce Add column parameter to wxListCtrl::GetItemText(). Allow retrieving the text from columns other than the first one directly. Add implementations for MSW and generic versions, documentation and a unit test. Closes #11597. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64281 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/docs/changes.txt b/docs/changes.txt index 8aecf879ba..43902e1310 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -724,6 +724,7 @@ All (GUI): - Added wxGenericStaticBitmap suitable for display of large bitmaps. - Support wxListCtrl::GetViewRect() in report view too. - Implement wxListCtrl::GetSubItemRect() in generic version (David Barnard). +- Add column parameter to wxListCtrl::GetItemText() (Allann Jones). - Added wxVListBox::GetItemRect() (Javier Urien). - Show busy cursor in wxLaunchDefaultBrowser and add wxBROWSER_NOBUSYCURSOR. - Added wxFlexGridSizer::Is{Row,Col}Growable() (Marcin Wojdyr). diff --git a/include/wx/generic/listctrl.h b/include/wx/generic/listctrl.h index 591fb664aa..91ee46b035 100644 --- a/include/wx/generic/listctrl.h +++ b/include/wx/generic/listctrl.h @@ -79,7 +79,7 @@ public: bool SetItemState( long item, long state, long stateMask); bool SetItemImage( long item, int image, int selImage = -1 ); bool SetItemColumnImage( long item, long column, int image ); - wxString GetItemText( long item ) const; + wxString GetItemText( long item, int col = 0 ) const; void SetItemText( long item, const wxString& str ); wxUIntPtr GetItemData( long item ) const; bool SetItemPtrData(long item, wxUIntPtr data); diff --git a/include/wx/msw/listctrl.h b/include/wx/msw/listctrl.h index 4309527a72..a5afb0df32 100644 --- a/include/wx/msw/listctrl.h +++ b/include/wx/msw/listctrl.h @@ -173,7 +173,7 @@ public: bool SetItemColumnImage(long item, long column, int image); // Gets the item text - wxString GetItemText(long item) const; + wxString GetItemText(long item, int col = 0) const; // Sets the item text void SetItemText(long item, const wxString& str); diff --git a/interface/wx/listctrl.h b/interface/wx/listctrl.h index fe29f57455..9a6ddd739b 100644 --- a/interface/wx/listctrl.h +++ b/interface/wx/listctrl.h @@ -449,8 +449,14 @@ public: /** Gets the item text for this item. + + @param item + Item (zero-based) index. + @param col + Item column (zero-based) index. Column 0 is the default. This + parameter is new in wxWidgets 2.9.1. */ - wxString GetItemText(long item) const; + wxString GetItemText(long item, int col = 0) const; /** Returns the colour for this item. diff --git a/src/generic/listctrl.cpp b/src/generic/listctrl.cpp index 60305d7c2b..a59e9dc976 100644 --- a/src/generic/listctrl.cpp +++ b/src/generic/listctrl.cpp @@ -4562,9 +4562,9 @@ wxGenericListCtrl::SetItemColumnImage( long item, long column, int image ) return true; } -wxString wxGenericListCtrl::GetItemText( long item ) const +wxString wxGenericListCtrl::GetItemText( long item, int col ) const { - return m_mainWin->GetItemText(item); + return m_mainWin->GetItemText(item, col); } void wxGenericListCtrl::SetItemText( long item, const wxString& str ) diff --git a/src/msw/listctrl.cpp b/src/msw/listctrl.cpp index 08014bc3c3..f688344557 100644 --- a/src/msw/listctrl.cpp +++ b/src/msw/listctrl.cpp @@ -1031,12 +1031,13 @@ bool wxListCtrl::SetItemColumnImage(long item, long column, int image) } // Gets the item text -wxString wxListCtrl::GetItemText(long item) const +wxString wxListCtrl::GetItemText(long item, int col) const { wxListItem info; info.m_mask = wxLIST_MASK_TEXT; info.m_itemId = item; + info.m_col = col; if (!GetItem(info)) return wxEmptyString; diff --git a/tests/controls/listctrltest.cpp b/tests/controls/listctrltest.cpp index 6f591e0ef0..93f0756a74 100644 --- a/tests/controls/listctrltest.cpp +++ b/tests/controls/listctrltest.cpp @@ -41,6 +41,7 @@ private: CPPUNIT_TEST( ColumnsOrder ); #endif // wxHAS_LISTCTRL_COLUMN_ORDER CPPUNIT_TEST( ItemRect ); + CPPUNIT_TEST( ItemText ); CPPUNIT_TEST( ChangeMode ); CPPUNIT_TEST_SUITE_END(); @@ -48,6 +49,7 @@ private: void ColumnsOrder(); #endif // wxHAS_LISTCTRL_COLUMN_ORDER void ItemRect(); + void ItemText(); void ChangeMode(); wxListCtrl *m_list; @@ -178,6 +180,19 @@ void ListCtrlTestCase::ItemRect() WX_ASSERT_FAILS_WITH_ASSERT( m_list->GetSubItemRect(0, 3, r) ); } +void ListCtrlTestCase::ItemText() +{ + m_list->InsertColumn(0, "First"); + m_list->InsertColumn(1, "Second"); + + m_list->InsertItem(0, "0,0"); + CPPUNIT_ASSERT_EQUAL( "0,0", m_list->GetItemText(0) ); + CPPUNIT_ASSERT_EQUAL( "", m_list->GetItemText(0, 1) ); + + m_list->SetItem(0, 1, "0,1"); + CPPUNIT_ASSERT_EQUAL( "0,1", m_list->GetItemText(0, 1) ); +} + void ListCtrlTestCase::ChangeMode() { m_list->InsertColumn(0, "Header");