]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/listctrl.cpp
Removed an #ifndef __WXGTK__
[wxWidgets.git] / src / generic / listctrl.cpp
index 97da6f917f44e20033fa8db7a9440eb979ab36e2..2ed58de9aa28f24e2b6013a9919135b0c69b0cee 100644 (file)
@@ -1356,15 +1356,15 @@ void wxListMainWindow::MoveToFocus( void )
     {
         int y_s = m_yScroll*GetScrollPos( wxVERTICAL );
         if ((y > y_s) && (y+h < y_s+h_p)) return;
-        if (y-y_s < 5) Scroll( -1, (y-5-h_p/2)/m_yScroll );
-        if (y+h+5 > y_s+h_p) Scroll( -1, (y+h-h_p/2+h+15)/m_yScroll );
+        if (y-y_s < 5) { Scroll( -1, (y-5-h_p/2)/m_yScroll ); Refresh(); }
+        if (y+h+5 > y_s+h_p) { Scroll( -1, (y+h-h_p/2+h+15)/m_yScroll); Refresh(); }
     }
     else
     {
         int x_s = m_xScroll*GetScrollPos( wxHORIZONTAL );
         if ((x > x_s) && (x+w < x_s+w_p)) return;
-        if (x-x_s < 5) Scroll( (x-5)/m_xScroll, -1 );
-        if (x+w-5 > x_s+w_p) Scroll( (x+w-w_p+15)/m_xScroll, -1 );
+        if (x-x_s < 5) { Scroll( (x-5)/m_xScroll, -1 ); Refresh(); }
+        if (x+w-5 > x_s+w_p) { Scroll( (x+w-w_p+15)/m_xScroll, -1 ); Refresh(); }
     }
 }
 
@@ -2063,7 +2063,7 @@ void wxListMainWindow::DeleteItem( long index )
 void wxListMainWindow::DeleteColumn( int col )
 {
     wxCHECK_RET( col < (int)m_columns.GetCount(),
-               "attempting to delete inexistent column in wxListView" );
+               _T("attempting to delete inexistent column in wxListView") );
 
     m_dirty = TRUE;
     wxNode *node = m_columns.Nth( col );
@@ -2330,11 +2330,13 @@ bool wxListCtrl::Create( wxWindow *parent, wxWindowID id,
 
     m_mainWin = new wxListMainWindow( this, -1, wxPoint(0,0), size, s );
 
-    if (GetWindowStyleFlag() & wxLC_REPORT)
+    if (HasFlag(wxLC_REPORT))
         m_headerWin = new wxListHeaderWindow( this, -1, m_mainWin, wxPoint(0,0), wxSize(size.x,23), wxTAB_TRAVERSAL );
     else
         m_headerWin = (wxListHeaderWindow *) NULL;
 
+    SetBackgroundColour( *wxWHITE );
+
     return ret;
 }
 
@@ -2347,7 +2349,7 @@ void wxListCtrl::OnSize( wxSizeEvent &WXUNUSED(event) )
 
 void wxListCtrl::SetSingleStyle( long style, bool add )
 {
-    long flag = GetWindowStyleFlag();
+    long flag = GetWindowStyle();
 
     if (add)
     {
@@ -2370,39 +2372,40 @@ void wxListCtrl::SetSingleStyle( long style, bool add )
 
 void wxListCtrl::SetWindowStyleFlag( long flag )
 {
-    m_mainWin->DeleteEverything();
+    if (m_mainWin)
+    {
+        m_mainWin->DeleteEverything();
 
-    int width = 0;
-    int height = 0;
-    GetClientSize( &width, &height );
+        int width = 0;
+        int height = 0;
+        GetClientSize( &width, &height );
 
-    m_mainWin->SetMode( flag );
+        m_mainWin->SetMode( flag );
 
-    if (flag & wxLC_REPORT)
-    {
-        if (!(GetWindowStyleFlag() & wxLC_REPORT))
+        if (flag & wxLC_REPORT)
         {
-//          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), wxTAB_TRAVERSAL );
-            }
-            else
+            if (!HasFlag(wxLC_REPORT))
             {
-//              m_headerWin->SetSize( 0, 0, width, 23 );
-                m_headerWin->Show( TRUE );
+                if (!m_headerWin)
+                {
+                    m_headerWin = new wxListHeaderWindow( this, -1, m_mainWin, 
+                     wxPoint(0,0), wxSize(width,23), wxTAB_TRAVERSAL );
+                }
+                else
+                {  
+                    m_headerWin->Show( TRUE );
+                } 
             }
         }
-    }
-    else
-    {
-        if (GetWindowStyleFlag() & wxLC_REPORT)
+        else
         {
-//          m_mainWin->SetSize( 0, 0, width, height );
-            m_headerWin->Show( FALSE );
-        }
+            if (HasFlag(wxLC_REPORT))
+            {
+                m_headerWin->Show( FALSE );
+            }
+       }
     }
-
+    
     wxWindow::SetWindowStyleFlag( flag );
 }
 
@@ -2767,7 +2770,7 @@ void wxListCtrl::OnIdle( wxIdleEvent &WXUNUSED(event) )
     int w = 0;
     int h = 0;
 
-    if (GetWindowStyleFlag() & wxLC_REPORT)
+    if (HasFlag(wxLC_REPORT))
     {
         m_headerWin->GetPosition( &x, &y );
         m_headerWin->GetSize( &w, &h );
@@ -2793,8 +2796,11 @@ void wxListCtrl::OnIdle( wxIdleEvent &WXUNUSED(event) )
     m_mainWin->Refresh();
 }
 
-void wxListCtrl::SetBackgroundColour( const wxColour &colour )
+bool wxListCtrl::SetBackgroundColour( const wxColour &colour )
 {
+    if ( !wxWindow::SetBackgroundColour( colour ) )
+        return FALSE;
+
     if (m_mainWin)
     {
         m_mainWin->SetBackgroundColour( colour );
@@ -2805,10 +2811,15 @@ void wxListCtrl::SetBackgroundColour( const wxColour &colour )
     {
         m_headerWin->SetBackgroundColour( colour );
     }
+
+    return TRUE;
 }
 
-void wxListCtrl::SetForegroundColour( const wxColour &colour )
+bool wxListCtrl::SetForegroundColour( const wxColour &colour )
 {
+    if ( !wxWindow::SetForegroundColour( colour ) )
+        return FALSE;
+    
     if (m_mainWin)
     {
         m_mainWin->SetForegroundColour( colour );
@@ -2819,10 +2830,15 @@ void wxListCtrl::SetForegroundColour( const wxColour &colour )
     {
         m_headerWin->SetForegroundColour( colour );
     }
+
+    return TRUE;
 }
 
-void wxListCtrl::SetFont( const wxFont &font )
+bool wxListCtrl::SetFont( const wxFont &font )
 {
+    if ( !wxWindow::SetFont( font ) )
+        return FALSE;
+    
     if (m_mainWin)
     {
         m_mainWin->SetFont( font );
@@ -2833,5 +2849,7 @@ void wxListCtrl::SetFont( const wxFont &font )
     {
         m_headerWin->SetFont( font );
     }
+
+    return TRUE;
 }