]> git.saurik.com Git - wxWidgets.git/commitdiff
Patch from Tim Kosse to add supoprt for wxListCtrl::OnGetItemColumnImage
authorRobin Dunn <robin@alldunn.com>
Wed, 25 Jan 2006 23:29:02 +0000 (23:29 +0000)
committerRobin Dunn <robin@alldunn.com>
Wed, 25 Jan 2006 23:29:02 +0000 (23:29 +0000)
which enables images to be specified for columns other than zero in
virtual list controls.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37144 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/latex/wx/listctrl.tex
include/wx/generic/listctrl.h
include/wx/msw/listctrl.h
include/wx/os2/listctrl.h
include/wx/palmos/listctrl.h
src/generic/listctrl.cpp
src/msw/listctrl.cpp
src/os2/listctrl.cpp
src/palmos/listctrl.cpp

index 5c6a4a11caed57d4057e8f9446eef3da1e83d721..754c03acb678ece0ddfaeec0cd978ef29a8f0c76 100644 (file)
@@ -23,7 +23,7 @@ itself only when needed which allows to have controls with millions of items
 without consuming much memory. To use virtual list control you must use
 \helpref{SetItemCount}{wxlistctrlsetitemcount} first and overload at least
 \helpref{OnGetItemText}{wxlistctrlongetitemtext} (and optionally
 without consuming much memory. To use virtual list control you must use
 \helpref{SetItemCount}{wxlistctrlsetitemcount} first and overload at least
 \helpref{OnGetItemText}{wxlistctrlongetitemtext} (and optionally
-\helpref{OnGetItemImage}{wxlistctrlongetitemimage} and
+\helpref{OnGetItemImage}{wxlistctrlongetitemimage} or \helpref{OnGetItemColumnImage}{wxlistctrlongetitemcolumnimage} and
 \helpref{OnGetItemAttr}{wxlistctrlongetitemattr}) to return the information
 about the items when the control requests it. Virtual list control can be used
 as a normal one except that no operations which can take time proportional to
 \helpref{OnGetItemAttr}{wxlistctrlongetitemattr}) to return the information
 about the items when the control requests it. Virtual list control can be used
 as a normal one except that no operations which can take time proportional to
@@ -672,6 +672,7 @@ The base class version always returns {\tt NULL}.
 \wxheading{See also}
 
 \helpref{OnGetItemImage}{wxlistctrlongetitemimage},\\
 \wxheading{See also}
 
 \helpref{OnGetItemImage}{wxlistctrlongetitemimage},\\
+\helpref{OnGetItemColumnImage}{wxlistctrlongetitemcolumnimage},\\
 \helpref{OnGetItemText}{wxlistctrlongetitemtext}
 
 
 \helpref{OnGetItemText}{wxlistctrlongetitemtext}
 
 
@@ -684,14 +685,33 @@ This function must be overloaded in the derived class for a control with
 (if the control doesn't have an image list, it is not necessary to overload
  it). It should return the index of the items image in the controls image list
 or $-1$ for no image.
 (if the control doesn't have an image list, it is not necessary to overload
  it). It should return the index of the items image in the controls image list
 or $-1$ for no image.
+In a control with {\tt wxLC\_REPORT} style, OnGetItemImage only gets called for
+the first column of each line.
 
 The base class version always returns $-1$.
 
 \wxheading{See also}
 
 \helpref{OnGetItemText}{wxlistctrlongetitemtext},\\
 
 The base class version always returns $-1$.
 
 \wxheading{See also}
 
 \helpref{OnGetItemText}{wxlistctrlongetitemtext},\\
+\helpref{OnGetItemColumnImage}{wxlistctrlongetitemcolumnimage},\\
 \helpref{OnGetItemAttr}{wxlistctrlongetitemattr}
 
 \helpref{OnGetItemAttr}{wxlistctrlongetitemattr}
 
+\membersection{wxListCtrl::OnGetItemColumnImage}\label{wxlistctrlongetitemcolumnimage}
+
+\constfunc{virtual int}{OnGetItemColumnImage}{\param{long }{item}, \param{long }{column}}
+
+Overload this function in the derived class for a control with
+{\tt wxLC\_VIRTUAL} and {\tt wxLC\_REPORT} styles in order to specify the image
+index for the given line and column.
+
+The base class version always calls OnGetItemImage for the first column, else
+it returns $-1$.
+
+\wxheading{See also}
+
+\helpref{OnGetItemText}{wxlistctrlongetitemtext},\\
+\helpref{OnGetItemImage}{wxlistctrlongetitemimage},\\
+\helpref{OnGetItemAttr}{wxlistctrlongetitemattr}
 
 \membersection{wxListCtrl::OnGetItemText}\label{wxlistctrlongetitemtext}
 
 
 \membersection{wxListCtrl::OnGetItemText}\label{wxlistctrlongetitemtext}
 
@@ -705,6 +725,7 @@ the given {\it column} for the specified {\tt item}.
 
 \helpref{SetItemCount}{wxlistctrlsetitemcount},\\
 \helpref{OnGetItemImage}{wxlistctrlongetitemimage},\\
 
 \helpref{SetItemCount}{wxlistctrlsetitemcount},\\
 \helpref{OnGetItemImage}{wxlistctrlongetitemimage},\\
+\helpref{OnGetItemColumnImage}{wxlistctrlongetitemcolumnimage},\\
 \helpref{OnGetItemAttr}{wxlistctrlongetitemattr}
 
 
 \helpref{OnGetItemAttr}{wxlistctrlongetitemattr}
 
 
index cfefe3ecce641e4b861de062c9e239a508f28baf..5d4a4121c7cc0bbbc3888fe9540294ab4a025de5 100644 (file)
@@ -232,9 +232,14 @@ protected:
     // return the text for the given column of the given item
     virtual wxString OnGetItemText(long item, long column) const;
 
     // return the text for the given column of the given item
     virtual wxString OnGetItemText(long item, long column) const;
 
-    // return the icon for the given item
+    // return the icon for the given item. In report view, OnGetItemImage will
+    // only be called for the first column. See OnGetItemColumnImage for 
+    // details.
     virtual int OnGetItemImage(long item) const;
 
     virtual int OnGetItemImage(long item) const;
 
+    // return the icon for the given item and column.
+    virtual int OnGetItemColumnImage(long item, long column) const;
+
     // return the attribute for the item (may return NULL if none)
     virtual wxListItemAttr *OnGetItemAttr(long item) const;
 
     // return the attribute for the item (may return NULL if none)
     virtual wxListItemAttr *OnGetItemAttr(long item) const;
 
index c937308b00a711a778dad175add5f70573ccd2af..8a09699b1a51a59886669f999b91830904da0196 100644 (file)
@@ -407,9 +407,14 @@ protected:
     // return the text for the given column of the given item
     virtual wxString OnGetItemText(long item, long column) const;
 
     // return the text for the given column of the given item
     virtual wxString OnGetItemText(long item, long column) const;
 
-    // return the icon for the given item
+    // return the icon for the given item. In report view, OnGetItemImage will
+    // only be called for the first column. See OnGetItemColumnImage for 
+    // details.
     virtual int OnGetItemImage(long item) const;
 
     virtual int OnGetItemImage(long item) const;
 
+    // return the icon for the given item and column.
+    virtual int OnGetItemColumnImage(long item, long column) const;
+
     // return the attribute for the item (may return NULL if none)
     virtual wxListItemAttr *OnGetItemAttr(long item) const;
 
     // return the attribute for the item (may return NULL if none)
     virtual wxListItemAttr *OnGetItemAttr(long item) const;
 
index c9995b04239a8ee74ce60320545291d75673dcd6..8aba96302beccee9f3adaf67ec54af9c0ed893c5 100644 (file)
@@ -503,10 +503,17 @@ protected:
                                   ) const;
 
     //
                                   ) const;
 
     //
-    // Return the icon for the given item
+    // Return the icon for the given item. In report view, OnGetItemImage will
+    // only be called for the first column. See OnGetItemColumnImage for 
+    // details.
     //
     virtual int OnGetItemImage(long lItem) const;
 
     //
     virtual int OnGetItemImage(long lItem) const;
 
+    //
+    // Return the icon for the given item and column
+    //
+    virtual int OnGetItemColumnImage(long lItem, long lColumn) const;
+
     //
     // Return the attribute for the item (may return NULL if none)
     //
     //
     // Return the attribute for the item (may return NULL if none)
     //
index 04baabc2e124ca2d0e35228df08679c75540c962..68f7399c837c73d3529cea8430d2620b1108159b 100644 (file)
@@ -374,7 +374,12 @@ protected:
     // return the text for the given column of the given item
     virtual wxString OnGetItemText(long item, long column) const;
 
     // return the text for the given column of the given item
     virtual wxString OnGetItemText(long item, long column) const;
 
-    // return the icon for the given item
+    // return the text for the given column of the given item
+    virtual wxString OnGetItemText(long item, long column) const;
+
+    // return the icon for the given item. In report view, OnGetItemImage will
+    // only be called for the first column. See OnGetItemColumnImage for 
+    // details.
     virtual int OnGetItemImage(long item) const;
 
     // return the attribute for the item (may return NULL if none)
     virtual int OnGetItemImage(long item) const;
 
     // return the attribute for the item (may return NULL if none)
index cfcee8e2685080456a9ea54b516989a3d5fbe034..3608f7e033a08dfab5e7cab73e1ba738bc24a62d 100644 (file)
@@ -2226,9 +2226,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(listctrl->OnGetItemColumnImage(line, col));
     }
 
     }
 
-    ld->SetImage(listctrl->OnGetItemImage(line));
     ld->SetAttr(listctrl->OnGetItemAttr(line));
 }
 
     ld->SetAttr(listctrl->OnGetItemAttr(line));
 }
 
@@ -5470,11 +5470,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
 {
index cbedea6f7388219fadaaa102bb6d9e42da8945df..9721b5465181345727a196a9815b4b8d1204eb8a 100644 (file)
@@ -2253,7 +2253,7 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
 #ifdef NM_CUSTOMDRAW
                     if ( lvi.mask & LVIF_IMAGE )
                     {
 #ifdef NM_CUSTOMDRAW
                     if ( lvi.mask & LVIF_IMAGE )
                     {
-                        lvi.iImage = OnGetItemImage(item);
+                        lvi.iImage = OnGetItemColumnImage(item, lvi.iSubItem);
                     }
 #endif // NM_CUSTOMDRAW
 
                     }
 #endif // NM_CUSTOMDRAW
 
@@ -2519,7 +2519,15 @@ int wxListCtrl::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;
+}
+
+int wxListCtrl::OnGetItemColumnImage(long item, long column) const
+{
+    if (!column)
+        return OnGetItemImage(item);
+
     return -1;
 }
 
     return -1;
 }
 
index 04d05027cdd4c1261df6311828eda9f44bec8a63..aaa7d815877f9d839327c69a4b799c890b881c32 100644 (file)
@@ -2718,6 +2718,17 @@ int wxListCtrl::OnGetItemImage (
     return -1;
 } // end of wxListCtrl::OnGetItemImage
 
     return -1;
 } // end of wxListCtrl::OnGetItemImage
 
+int wxListCtrl::OnGetItemColumnImage (
+  long                              lItem,
+  long                              lColumn
+) const
+{
+    if (!lColumn)
+        return OnGetItemImage(lItem);
+
+    return -1;
+} // end of wxListCtrl::OnGetItemColumnImage
+
 wxListItemAttr* wxListCtrl::OnGetItemAttr (
   long                              WXUNUSED_UNLESS_DEBUG(lItem)
 ) const
 wxListItemAttr* wxListCtrl::OnGetItemAttr (
   long                              WXUNUSED_UNLESS_DEBUG(lItem)
 ) const
index 766497d02080ee400438c0085208ebf50716142d..3d4dade7752c9bcb8de7bf02ab87b19ddae20989 100644 (file)
@@ -622,6 +622,14 @@ int wxListCtrl::OnGetItemImage(long WXUNUSED(item)) const
     return -1;
 }
 
     return -1;
 }
 
+int wxListCtrl::OnGetItemColumnImage(long item, long column) const
+{
+    if (!column)
+        return OnGetItemImage(item);
+
+    return -1;
+}
+
 wxListItemAttr *wxListCtrl::OnGetItemAttr(long WXUNUSED_UNLESS_DEBUG(item)) const
 {
     // no attributes by default
 wxListItemAttr *wxListCtrl::OnGetItemAttr(long WXUNUSED_UNLESS_DEBUG(item)) const
 {
     // no attributes by default