X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9fcd0bf7f313e637e8cd4b5d7f3cd5b294fec033..36333d9ea47e9455e2160c290f590c4aa0b84b9f:/src/mac/carbon/listctrl_mac.cpp diff --git a/src/mac/carbon/listctrl_mac.cpp b/src/mac/carbon/listctrl_mac.cpp index 5a1a1f0bc8..52c83c10a7 100644 --- a/src/mac/carbon/listctrl_mac.cpp +++ b/src/mac/carbon/listctrl_mac.cpp @@ -259,11 +259,11 @@ protected: Rect *maxEditTextRect, Boolean *shrinkToFit); - static pascal Boolean DataBrowserHitTestProc(ControlRef browser, - DataBrowserItemID itemID, - DataBrowserPropertyID property, - const Rect *theRect, - const Rect *mouseRect) { return true; } + static pascal Boolean DataBrowserHitTestProc(ControlRef WXUNUSED(browser), + DataBrowserItemID WXUNUSED(itemID), + DataBrowserPropertyID WXUNUSED(property), + const Rect *WXUNUSED(theRect), + const Rect *WXUNUSED(mouseRect)) { return true; } virtual bool ConfirmEditText(DataBrowserItemID item, DataBrowserPropertyID property, @@ -1076,6 +1076,10 @@ int wxListCtrl::GetCountPerPage() const if (m_dbImpl) { + UInt16 height = 1; + m_dbImpl->GetDefaultRowHeight( &height ); + if (height > 0) + return GetClientSize().y / height; } return 1; @@ -1101,7 +1105,15 @@ bool wxListCtrl::GetItem(wxListItem& info) const if (!IsVirtual()) { if (info.m_itemId >= 0 && info.m_itemId < GetItemCount()) + { m_dbImpl->MacGetColumnInfo(info.m_itemId, info.m_col, info); + if (info.GetMask() & wxLIST_MASK_STATE) + { + DataBrowserItemID id = (DataBrowserItemID)m_dbImpl->GetItemFromLine(info.m_itemId); + if (IsDataBrowserItemSelected( m_dbImpl->GetControlRef(), id )) + info.SetState(info.GetState() | wxLIST_STATE_SELECTED); + } + } } else { @@ -1836,7 +1848,7 @@ wxTextCtrl* wxListCtrl::EditLabel(long item, wxClassInfo* textControlClass) } // End label editing, optionally cancelling the edit -bool wxListCtrl::EndEditLabel(bool cancel) +bool wxListCtrl::EndEditLabel(bool WXUNUSED(cancel)) { // TODO: generic impl. doesn't have this method - is it needed for us? if (m_genericImpl) @@ -2352,7 +2364,7 @@ wxMacListCtrlItem::~wxMacListCtrlItem() void wxMacListCtrlItem::Notification(wxMacDataItemBrowserControl *owner , DataBrowserItemNotification message, - DataBrowserItemDataRef itemData ) const + DataBrowserItemDataRef WXUNUSED(itemData) ) const { wxMacDataBrowserListCtrlControl *lb = wxDynamicCast(owner, wxMacDataBrowserListCtrlControl); @@ -2526,11 +2538,11 @@ pascal Boolean wxMacDataBrowserListCtrlControl::DataBrowserEditTextProc( } bool wxMacDataBrowserListCtrlControl::ConfirmEditText( - DataBrowserItemID itemID, - DataBrowserPropertyID property, - CFStringRef theString, - Rect *maxEditTextRect, - Boolean *shrinkToFit) + DataBrowserItemID WXUNUSED(itemID), + DataBrowserPropertyID WXUNUSED(property), + CFStringRef WXUNUSED(theString), + Rect *WXUNUSED(maxEditTextRect), + Boolean *WXUNUSED(shrinkToFit)) { return false; } @@ -2589,7 +2601,7 @@ void wxMacDataBrowserListCtrlControl::DrawItem( DataBrowserItemID itemID, DataBrowserPropertyID property, DataBrowserItemState itemState, - const Rect *itemRect, + const Rect *WXUNUSED(itemRect), SInt16 gdDepth, Boolean colorDevice) { @@ -2911,7 +2923,7 @@ OSStatus wxMacDataBrowserListCtrlControl::GetSetItemData(DataBrowserItemID itemI void wxMacDataBrowserListCtrlControl::ItemNotification(DataBrowserItemID itemID, DataBrowserItemNotification message, - DataBrowserItemDataRef itemData ) + DataBrowserItemDataRef WXUNUSED(itemData) ) { // we want to depend on as little as possible to make sure tear-down of controls is safe if ( message == kDataBrowserItemRemoved) @@ -3097,7 +3109,7 @@ void wxMacDataBrowserListCtrlControl::UpdateState(wxMacDataItem* dataItem, wxLis bool isSelectedState = (listItem->GetState() == wxLIST_STATE_SELECTED); // toggle the selection state if wxListInfo state and actual state don't match. - if ( isSelected != isSelectedState ) + if ( listItem->GetMask() & wxLIST_MASK_STATE && isSelected != isSelectedState ) { DataBrowserSetOption options = kDataBrowserItemsAdd; if (!isSelectedState)