]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/listctrl.cpp
gtk_signal_connect -> g_signal_connect in unix/mediactrl.cpp
[wxWidgets.git] / src / generic / listctrl.cpp
index cfcee8e2685080456a9ea54b516989a3d5fbe034..bc9bb84c92e94307a3c9c6c9c7496d327a310049 100644 (file)
@@ -341,6 +341,9 @@ public:
 
     void SetImage( int image ) { SetImage(0, image); }
     int GetImage() const { return GetImage(0); }
 
     void SetImage( int image ) { SetImage(0, image); }
     int GetImage() const { return GetImage(0); }
+    void SetImage( int index, int image );
+    int GetImage( int index ) const;
+
     bool HasImage() const { return GetImage() != -1; }
     bool HasText() const { return !GetText(0).empty(); }
 
     bool HasImage() const { return GetImage() != -1; }
     bool HasText() const { return !GetText(0).empty(); }
 
@@ -390,11 +393,6 @@ private:
     // draw the text on the DC with the correct justification; also add an
     // ellipsis if the text is too large to fit in the current width
     void DrawTextFormatted(wxDC *dc, const wxString &text, int col, int x, int y, int width);
     // draw the text on the DC with the correct justification; also add an
     // ellipsis if the text is too large to fit in the current width
     void DrawTextFormatted(wxDC *dc, const wxString &text, int col, int x, int y, int width);
-
-    // these are only used by GetImage/SetImage above, we don't support images
-    // with subitems at the public API level yet
-    void SetImage( int index, int image );
-    int GetImage( int index ) const;
 };
 
 WX_DECLARE_EXPORTED_OBJARRAY(wxListLineData, wxListLineDataArray);
 };
 
 WX_DECLARE_EXPORTED_OBJARRAY(wxListLineData, wxListLineDataArray);
@@ -2226,9 +2224,9 @@ void wxListMainWindow::CacheLineData(size_t line)
     for ( size_t col = 0; col < countCol; col++ )
     {
         ld->SetText(col, listctrl->OnGetItemText(line, col));
     for ( size_t col = 0; col < countCol; col++ )
     {
         ld->SetText(col, listctrl->OnGetItemText(line, col));
+        ld->SetImage(col, listctrl->OnGetItemColumnImage(line, col));
     }
 
     }
 
-    ld->SetImage(listctrl->OnGetItemImage(line));
     ld->SetAttr(listctrl->OnGetItemAttr(line));
 }
 
     ld->SetAttr(listctrl->OnGetItemAttr(line));
 }
 
@@ -5470,11 +5468,18 @@ int wxGenericListCtrl::OnGetItemImage(long WXUNUSED(item)) const
 {
     wxCHECK_MSG(!GetImageList(wxIMAGE_LIST_SMALL),
                 -1,
 {
     wxCHECK_MSG(!GetImageList(wxIMAGE_LIST_SMALL),
                 -1,
-                wxT("List control has an image list: OnGetItemImage should be overridden."));
-
+                wxT("List control has an image list, OnGetItemImage or OnGetItemColumnImage should be overridden."));
     return -1;
 }
 
     return -1;
 }
 
+int wxGenericListCtrl::OnGetItemColumnImage(long item, long column) const
+{
+    if (!column)
+        return OnGetItemImage(item);
+
+   return -1;
+}
+
 wxListItemAttr *
 wxGenericListCtrl::OnGetItemAttr(long WXUNUSED_UNLESS_DEBUG(item)) const
 {
 wxListItemAttr *
 wxGenericListCtrl::OnGetItemAttr(long WXUNUSED_UNLESS_DEBUG(item)) const
 {
@@ -5533,7 +5538,6 @@ void wxGenericListCtrl::Refresh(bool eraseBackground, const wxRect *rect)
                 rectHeader.Offset(-x, -y);
                 m_headerWin->Refresh(eraseBackground, &rectHeader);
             }
                 rectHeader.Offset(-x, -y);
                 m_headerWin->Refresh(eraseBackground, &rectHeader);
             }
-
         }
 
         // Refresh the main window
         }
 
         // Refresh the main window