]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/listctrl.cpp
In DialogEd, changed Close to Destroy to make it shut down properly.
[wxWidgets.git] / src / generic / listctrl.cpp
index 6db8a65314b8aa97c3daa32d6c5f271fa93b1dd6..c395229e1cf71cef0bd538d69c7ef1035186923d 100644 (file)
@@ -1216,7 +1216,7 @@ void wxListMainWindow::OnMouse( wxMouseEvent &event )
         m_lastOnSame = FALSE;
         m_renameTimer->Stop();
     
-        SendNotify( line, wxEVT_COMMAND_LIST_KEY_DOWN );
+        SendNotify( line, wxEVT_COMMAND_LIST_ITEM_ACTIVATED );
     
        return;
     }
@@ -1369,6 +1369,11 @@ void wxListMainWindow::OnArrowChar( wxListLineData *newCurrent, bool shiftDown )
 
 void wxListMainWindow::OnChar( wxKeyEvent &event )
 {
+  wxListEvent le( wxEVT_COMMAND_LIST_KEY_DOWN, GetParent()->GetId() );
+  le.m_code = event.KeyCode();
+  le.SetEventObject( GetParent() );
+  GetParent()->GetEventHandler()->ProcessEvent( le );
+  
 /*
   if (event.KeyCode() == WXK_TAB)
   {
@@ -1379,7 +1384,12 @@ void wxListMainWindow::OnChar( wxKeyEvent &event )
     return;
   }
 */
-  if (!m_current) return;
+  if ( !m_current )
+  {
+      event.Skip();
+      return;
+  }
+
   switch (event.KeyCode())
   {
     case WXK_UP:
@@ -1482,7 +1492,7 @@ void wxListMainWindow::OnChar( wxKeyEvent &event )
     case WXK_RETURN:
     case WXK_EXECUTE:
     {
-      wxListEvent le( wxEVT_COMMAND_LIST_KEY_DOWN, GetParent()->GetId() );
+      wxListEvent le( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, GetParent()->GetId() );
       le.SetEventObject( GetParent() );
       le.m_itemIndex = GetIndexOfLine( m_current );
       m_current->GetItem( 0, le.m_item );
@@ -2291,7 +2301,7 @@ bool wxListCtrl::Create( wxWindow *parent, wxWindowID id,
   m_mainWin = new wxListMainWindow( this, -1, wxPoint(0,0), size, s );
 
   if (GetWindowStyleFlag() & wxLC_REPORT)
-    m_headerWin = new wxListHeaderWindow( this, -1, m_mainWin, wxPoint(0,0), wxSize(size.x,23) );
+    m_headerWin = new wxListHeaderWindow( this, -1, m_mainWin, wxPoint(0,0), wxSize(size.x,23), wxTAB_TRAVERSAL );
   else
     m_headerWin = (wxListHeaderWindow *) NULL;
 
@@ -2345,7 +2355,7 @@ void wxListCtrl::SetWindowStyleFlag( long flag )
 //      m_mainWin->SetSize( 0, 24, width, height-24 );
       if (!m_headerWin)
       {
-        m_headerWin = new wxListHeaderWindow( this, -1, m_mainWin, wxPoint(0,0), wxSize(width,23) );
+        m_headerWin = new wxListHeaderWindow( this, -1, m_mainWin, wxPoint(0,0), wxSize(width,23), wxTAB_TRAVERSAL );
       }
       else
       {
@@ -2586,10 +2596,17 @@ bool wxListCtrl::DeleteAllItems(void)
   return TRUE;
 }
 
-void wxListCtrl::DeleteAllColumns()
+bool wxListCtrl::DeleteAllColumns()
 {
     for ( size_t n = 0; n < m_mainWin->m_columns.GetCount(); n++ )
         DeleteColumn(n);
+       
+   return TRUE;
+}
+
+void wxListCtrl::ClearAll()
+{
+  m_mainWin->DeleteEverything();
 }
 
 bool wxListCtrl::DeleteColumn( int col )