]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/listctrl.cpp
more new files
[wxWidgets.git] / src / msw / listctrl.cpp
index 8ed25e067ca54bda76ab161134236bc7fdfa1209..a39a97debf29644a3c9979ac3add17b36ce605ba 100644 (file)
@@ -360,11 +360,14 @@ long wxListCtrl::ConvertToMSWStyle(long& oldStyle, long style) const
 
 // Sets the background colour (GetBackgroundColour already implicit in
 // wxWindow class)
-void wxListCtrl::SetBackgroundColour(const wxColour& col)
+bool wxListCtrl::SetBackgroundColour(const wxColour& col)
 {
-    wxWindow::SetBackgroundColour(col);
+    if ( !wxWindow::SetBackgroundColour(col) )
+        return FALSE;
 
     ListView_SetBkColor((HWND) GetHWND(), PALETTERGB(col.Red(), col.Green(), col.Blue()));
+
+    return TRUE;
 }
 
 // Gets information about this column
@@ -495,6 +498,7 @@ bool wxListCtrl::GetItem(wxListItem& info) const
 #endif
 
     lvItem.iItem = info.m_itemId;
+    lvItem.iSubItem = info.m_col;
 
     if ( info.m_mask & wxLIST_MASK_TEXT )
     {
@@ -1059,22 +1063,37 @@ long wxListCtrl::InsertColumn(long col, wxListItem& item)
             lvCol.fmt = LVCFMT_CENTER;
     }
 
+    lvCol.mask |= LVCF_WIDTH;
     if ( item.m_mask & wxLIST_MASK_WIDTH )
     {
-        lvCol.mask |= LVCF_WIDTH;
-        lvCol.cx = item.m_width;
-
-        if ( lvCol.cx == wxLIST_AUTOSIZE)
+        if ( item.m_width == wxLIST_AUTOSIZE)
             lvCol.cx = LVSCW_AUTOSIZE;
-        else if ( lvCol.cx == wxLIST_AUTOSIZE_USEHEADER)
+        else if ( item.m_width == wxLIST_AUTOSIZE_USEHEADER)
             lvCol.cx = LVSCW_AUTOSIZE_USEHEADER;
+        else
+            lvCol.cx = item.m_width;
     }
+    else
+    {
+        // always give some width to the new column: this one is compatible
+        // with wxGTK
+        lvCol.cx = 80;
+    }
+
     lvCol.mask |= LVCF_SUBITEM;
     lvCol.iSubItem = col;
 
-    bool success = (ListView_InsertColumn((HWND) GetHWND(), col, & lvCol) != 0);
+    bool success = ListView_InsertColumn((HWND) GetHWND(), col, & lvCol) != -1;
     if ( success )
-        m_colCount ++;
+    {
+        m_colCount++;
+    }
+    else
+    {
+        wxLogDebug("Failed to insert the column '%s' into listview!",
+                   lvCol.pszText);
+    }
+
     return success;
 }
 
@@ -1139,7 +1158,7 @@ bool wxListCtrl::MSWCommand(WXUINT cmd, WXWORD id)
     else return FALSE;
 }
 
-bool wxListCtrl::MSWNotify(WXWPARAM wParam, WXLPARAM lParam, WXLPARAM *result)
+bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
 {
     wxListEvent event(wxEVT_NULL, m_windowId);
     wxEventType eventType = wxEVT_NULL;
@@ -1257,7 +1276,7 @@ bool wxListCtrl::MSWNotify(WXWPARAM wParam, WXLPARAM lParam, WXLPARAM *result)
             }
 
         default :
-            return wxControl::MSWNotify(wParam, lParam, result);
+            return wxControl::MSWOnNotify(idCtrl, lParam, result);
     }
 
     event.SetEventObject( this );