X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/80a4659776396941bbf7b08615dd60d35dbc47b5..1ee968ea97b66a9795f76c4030874be0faa632d5:/src/generic/listctrl.cpp diff --git a/src/generic/listctrl.cpp b/src/generic/listctrl.cpp index 11fa7ffcfb..e8e6b26b34 100644 --- a/src/generic/listctrl.cpp +++ b/src/generic/listctrl.cpp @@ -1582,10 +1582,9 @@ wxListMainWindow::wxListMainWindow() wxListMainWindow::wxListMainWindow( wxWindow *parent, wxWindowID id, const wxPoint& pos, - const wxSize& size, - long style, - const wxString &name ) - : wxWindow( parent, id, pos, size, style, name ) + const wxSize& size ) + : wxWindow( parent, id, pos, size, + wxWANTS_CHARS | wxBORDER_NONE ) { Init(); @@ -2303,8 +2302,11 @@ void wxListMainWindow::OnMouse( wxMouseEvent &event ) if ( event.LeftDown() ) SetFocus(); - event.SetEventObject( GetParent() ); - if ( GetParent()->GetEventHandler()->ProcessEvent( event) ) + // Pretend that the event happened in wxListCtrl itself. + wxMouseEvent me(event); + me.SetEventObject( GetParent() ); + me.SetId(GetParent()->GetId()); + if ( GetParent()->GetEventHandler()->ProcessEvent( me )) return; if (event.GetEventType() == wxEVT_MOUSEWHEEL) @@ -2706,6 +2708,7 @@ void wxListMainWindow::OnKeyDown( wxKeyEvent &event ) // propagate the key event upwards wxKeyEvent ke(event); ke.SetEventObject( parent ); + ke.SetId(GetParent()->GetId()); if (parent->GetEventHandler()->ProcessEvent( ke )) return; @@ -2729,6 +2732,8 @@ void wxListMainWindow::OnKeyUp( wxKeyEvent &event ) // propagate the key event upwards wxKeyEvent ke(event); + ke.SetEventObject( parent ); + ke.SetId(GetParent()->GetId()); if (parent->GetEventHandler()->ProcessEvent( ke )) return; @@ -2758,6 +2763,7 @@ void wxListMainWindow::OnChar( wxKeyEvent &event ) // propagate the char event upwards wxKeyEvent ke(event); ke.SetEventObject( parent ); + ke.SetId(GetParent()->GetId()); if (parent->GetEventHandler()->ProcessEvent( ke )) return; @@ -4126,8 +4132,10 @@ void wxListMainWindow::InsertItem( wxListItem &item ) RefreshLines(id, GetItemCount() - 1); } -void wxListMainWindow::InsertColumn( long col, const wxListItem &item ) +long wxListMainWindow::InsertColumn( long col, const wxListItem &item ) { + long idx = -1; + m_dirty = true; if ( InReportView() ) { @@ -4144,9 +4152,11 @@ void wxListMainWindow::InsertColumn( long col, const wxListItem &item ) node = m_columns.Item( col ); m_columns.Insert( node, column ); m_aColWidths.Insert( colWidthInfo, col ); + idx = col; } else { + idx = m_aColWidths.GetCount(); m_columns.Append( column ); m_aColWidths.Add( colWidthInfo ); } @@ -4168,6 +4178,7 @@ void wxListMainWindow::InsertColumn( long col, const wxListItem &item ) // invalidate it as it has to be recalculated m_headerWidth = 0; } + return idx; } int wxListMainWindow::GetItemWidthWithImage(wxListItem * item) @@ -4389,12 +4400,7 @@ bool wxGenericListCtrl::Create(wxWindow *parent, validator, name ) ) return false; -#ifdef __WXGTK__ - style &= ~wxBORDER_MASK; - style |= wxBORDER_THEME; -#endif - - m_mainWin = new wxListMainWindow( this, wxID_ANY, wxPoint(0, 0), size, style ); + m_mainWin = new wxListMainWindow(this, wxID_ANY, wxPoint(0, 0), size); SetTargetWindow( m_mainWin ); @@ -4953,14 +4959,14 @@ long wxGenericListCtrl::DoInsertColumn( long col, const wxListItem &item ) { wxCHECK_MSG( InReportView(), -1, wxT("can't add column in non report mode") ); - m_mainWin->InsertColumn( col, item ); + long idx = m_mainWin->InsertColumn( col, item ); // NOTE: if wxLC_NO_HEADER was given, then we are in report view mode but // still have m_headerWin==NULL if (m_headerWin) m_headerWin->Refresh(); - return 0; + return idx; } bool wxGenericListCtrl::ScrollList( int dx, int dy )