]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/listctrl.cpp
Corrected byte swapping macros.
[wxWidgets.git] / src / generic / listctrl.cpp
index e319bca803cd03265c1201d6a77c8f7e8aa0bbe1..c64f7e42293c932a67b6a91c5de5e50113134ae1 100644 (file)
@@ -685,7 +685,7 @@ wxListHeaderWindow::wxListHeaderWindow( void )
     m_owner = (wxListMainWindow *) NULL;
     m_currentCursor = (wxCursor *) NULL;
     m_resizeCursor = (wxCursor *) NULL;
-    m_isDraging = FALSE;
+    m_isDragging = FALSE;
 }
 
 wxListHeaderWindow::wxListHeaderWindow( wxWindow *win, wxWindowID id, wxListMainWindow *owner,
@@ -697,7 +697,8 @@ wxListHeaderWindow::wxListHeaderWindow( wxWindow *win, wxWindowID id, wxListMain
 //  m_currentCursor = wxSTANDARD_CURSOR;
     m_currentCursor = (wxCursor *) NULL;
     m_resizeCursor = new wxCursor( wxCURSOR_SIZEWE );
-    m_isDraging = FALSE;
+    m_isDragging = FALSE;
+    SetBackgroundColour( wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE ) );
 }
 
 wxListHeaderWindow::~wxListHeaderWindow( void )
@@ -780,7 +781,7 @@ void wxListHeaderWindow::DrawCurrent()
     m_owner->ClientToScreen( &x2, &y2 );
 
     wxScreenDC dc;
-    dc.SetLogicalFunction( wxXOR );
+    dc.SetLogicalFunction( wxINVERT );
     dc.SetPen( wxPen( *wxBLACK, 2, wxSOLID ) );
     dc.SetBrush( *wxTRANSPARENT_BRUSH );
 
@@ -796,13 +797,13 @@ void wxListHeaderWindow::OnMouse( wxMouseEvent &event )
 {
     int x = event.GetX();
     int y = event.GetY();
-    if (m_isDraging)
+    if (m_isDragging)
     {
         DrawCurrent();
         if (event.ButtonUp())
         {
             ReleaseMouse();
-            m_isDraging = FALSE;
+            m_isDragging = FALSE;
             m_owner->SetColumnWidth( m_column, m_currentX-m_minX );
         }
         else
@@ -837,7 +838,7 @@ void wxListHeaderWindow::OnMouse( wxMouseEvent &event )
 
     if (event.LeftDown() && hit_border)
     {
-        m_isDraging = TRUE;
+        m_isDragging = TRUE;
         m_currentX = x;
         DrawCurrent();
         CaptureMouse();
@@ -1423,6 +1424,14 @@ void wxListMainWindow::OnChar( wxKeyEvent &event )
     ke.SetEventObject( parent );
     if (parent->GetEventHandler()->ProcessEvent( ke )) return;
   
+    if (event.KeyCode() == WXK_TAB)
+    {
+        wxNavigationKeyEvent nevent;
+        nevent.SetDirection( !event.ShiftDown() );
+        nevent.SetCurrentFocus( m_parent );
+        if (m_parent->GetEventHandler()->ProcessEvent( nevent )) return;
+    }
+  
     /* no item -> nothing to do */
     if (!m_current)
     {
@@ -1780,7 +1789,7 @@ void wxListMainWindow::SetItemState( long item, long state, long stateMask )
             m_current = line;
             FocusLine( m_current );
             RefreshLine( m_current );
-            RefreshLine( oldCurrent );
+            if (oldCurrent) RefreshLine( oldCurrent );
         }
     }
 
@@ -1798,9 +1807,9 @@ void wxListMainWindow::SetItemState( long item, long state, long stateMask )
                 UnfocusLine( m_current );
                 m_current = line;
                 FocusLine( m_current );
-                oldCurrent->Hilight( FALSE );
+                if (oldCurrent) oldCurrent->Hilight( FALSE );
                 RefreshLine( m_current );
-                RefreshLine( oldCurrent );
+                if (oldCurrent) RefreshLine( oldCurrent );
             }
             bool on = state & wxLIST_STATE_SELECTED;
            if (on != line->IsHilighted())
@@ -2829,7 +2838,7 @@ bool wxListCtrl::SetBackgroundColour( const wxColour &colour )
     
     if (m_headerWin)
     {
-        m_headerWin->SetBackgroundColour( colour );
+//        m_headerWin->SetBackgroundColour( colour );
     }
 
     return TRUE;