X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6ecfe2ac4981d681466520df56cb1a5366469ddf..c857185ce07eeb3699b53aea20748c30b52b0ed3:/src/msw/listctrl.cpp?ds=sidebyside diff --git a/src/msw/listctrl.cpp b/src/msw/listctrl.cpp index b521e1c583..34649103cc 100644 --- a/src/msw/listctrl.cpp +++ b/src/msw/listctrl.cpp @@ -61,13 +61,48 @@ static void wxConvertFromMSWListItem(const wxListCtrl *ctrl, wxListItem& info, L // macros // ---------------------------------------------------------------------------- - IMPLEMENT_DYNAMIC_CLASS(wxListCtrl, wxControl) - IMPLEMENT_DYNAMIC_CLASS(wxListItem, wxObject) +IMPLEMENT_DYNAMIC_CLASS(wxListCtrl, wxControl) +IMPLEMENT_DYNAMIC_CLASS(wxListItem, wxObject) // ============================================================================ // implementation // ============================================================================ +// ---------------------------------------------------------------------------- +// wxListEvent +// ---------------------------------------------------------------------------- + +void wxListEvent::CopyObject(wxObject& object_dest) const +{ + wxListEvent *obj = (wxListEvent *)&object_dest; + + wxNotifyEvent::CopyObject(object_dest); + + obj->m_code = m_code; + obj->m_itemIndex = m_itemIndex; + obj->m_oldItemIndex = m_oldItemIndex; + obj->m_col = m_col; + obj->m_cancelled = m_cancelled; + obj->m_pointDrag = m_pointDrag; + obj->m_item.m_mask = m_item.m_mask; + obj->m_item.m_itemId = m_item.m_itemId; + obj->m_item.m_col = m_item.m_col; + obj->m_item.m_state = m_item.m_state; + obj->m_item.m_stateMask = m_item.m_stateMask; + obj->m_item.m_text = m_item.m_text; + obj->m_item.m_image = m_item.m_image; + obj->m_item.m_data = m_item.m_data; + obj->m_item.m_format = m_item.m_format; + obj->m_item.m_width = m_item.m_width; + + if ( m_item.HasAttributes() ) + { + obj->m_item.SetTextColour(m_item.GetTextColour()); + obj->m_item.SetBackgroundColour(m_item.GetBackgroundColour()); + obj->m_item.SetFont(m_item.GetFont()); + } +} + // ---------------------------------------------------------------------------- // wxListCtrl construction // ---------------------------------------------------------------------------- @@ -91,7 +126,10 @@ bool wxListCtrl::Create(wxWindow *parent, const wxValidator& validator, const wxString& name) { +#if wxUSE_VALIDATORS SetValidator(validator); +#endif // wxUSE_VALIDATORS + SetName(name); int x = pos.x; @@ -1382,9 +1420,16 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result) } // else translate it into wxEVT_COMMAND_LIST_ITEM_ACTIVATED event + // if it happened on an item (and not on empty place) { - eventType = wxEVT_COMMAND_LIST_ITEM_ACTIVATED; NM_LISTVIEW* hdr = (NM_LISTVIEW*)lParam; + if ( hdr->iItem == -1 ) + { + // not on item + return FALSE; + } + + eventType = wxEVT_COMMAND_LIST_ITEM_ACTIVATED; event.m_itemIndex = hdr->iItem; } break;