Patch from Tim Kosse to add supoprt for wxListCtrl::OnGetItemColumnImage
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
This commit is contained in:
@@ -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
|
without consuming much memory. To use virtual list control you must use
|
||||||
\helpref{SetItemCount}{wxlistctrlsetitemcount} first and overload at least
|
\helpref{SetItemCount}{wxlistctrlsetitemcount} first and overload at least
|
||||||
\helpref{OnGetItemText}{wxlistctrlongetitemtext} (and optionally
|
\helpref{OnGetItemText}{wxlistctrlongetitemtext} (and optionally
|
||||||
\helpref{OnGetItemImage}{wxlistctrlongetitemimage} and
|
\helpref{OnGetItemImage}{wxlistctrlongetitemimage} or \helpref{OnGetItemColumnImage}{wxlistctrlongetitemcolumnimage} and
|
||||||
\helpref{OnGetItemAttr}{wxlistctrlongetitemattr}) to return the information
|
\helpref{OnGetItemAttr}{wxlistctrlongetitemattr}) to return the information
|
||||||
about the items when the control requests it. Virtual list control can be used
|
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
|
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}
|
\wxheading{See also}
|
||||||
|
|
||||||
\helpref{OnGetItemImage}{wxlistctrlongetitemimage},\\
|
\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
|
(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
|
it). It should return the index of the items image in the controls image list
|
||||||
or $-1$ for no image.
|
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$.
|
The base class version always returns $-1$.
|
||||||
|
|
||||||
\wxheading{See also}
|
\wxheading{See also}
|
||||||
|
|
||||||
\helpref{OnGetItemText}{wxlistctrlongetitemtext},\\
|
\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{SetItemCount}{wxlistctrlsetitemcount},\\
|
||||||
\helpref{OnGetItemImage}{wxlistctrlongetitemimage},\\
|
\helpref{OnGetItemImage}{wxlistctrlongetitemimage},\\
|
||||||
|
\helpref{OnGetItemColumnImage}{wxlistctrlongetitemcolumnimage},\\
|
||||||
\helpref{OnGetItemAttr}{wxlistctrlongetitemattr}
|
\helpref{OnGetItemAttr}{wxlistctrlongetitemattr}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -232,9 +232,14 @@ protected:
|
|||||||
// return the text for the given column of the given item
|
// return the text for the given column of the given item
|
||||||
virtual wxString OnGetItemText(long item, long column) const;
|
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)
|
// return the attribute for the item (may return NULL if none)
|
||||||
virtual wxListItemAttr *OnGetItemAttr(long item) const;
|
virtual wxListItemAttr *OnGetItemAttr(long item) const;
|
||||||
|
|
||||||
|
@@ -407,9 +407,14 @@ protected:
|
|||||||
// return the text for the given column of the given item
|
// return the text for the given column of the given item
|
||||||
virtual wxString OnGetItemText(long item, long column) const;
|
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)
|
// return the attribute for the item (may return NULL if none)
|
||||||
virtual wxListItemAttr *OnGetItemAttr(long item) const;
|
virtual wxListItemAttr *OnGetItemAttr(long item) const;
|
||||||
|
|
||||||
|
@@ -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)
|
||||||
//
|
//
|
||||||
|
@@ -374,7 +374,12 @@ protected:
|
|||||||
// return the text for the given column of the given item
|
// return the text for the given column of the given item
|
||||||
virtual wxString OnGetItemText(long item, long column) const;
|
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;
|
virtual int OnGetItemImage(long item) const;
|
||||||
|
|
||||||
// return the attribute for the item (may return NULL if none)
|
// return the attribute for the item (may return NULL if none)
|
||||||
|
@@ -2226,9 +2226,9 @@ void wxListMainWindow::CacheLineData(size_t line)
|
|||||||
for ( size_t col = 0; col < countCol; col++ )
|
for ( size_t col = 0; col < countCol; col++ )
|
||||||
{
|
{
|
||||||
ld->SetText(col, listctrl->OnGetItemText(line, 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),
|
wxCHECK_MSG(!GetImageList(wxIMAGE_LIST_SMALL),
|
||||||
-1,
|
-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 *
|
wxListItemAttr *
|
||||||
wxGenericListCtrl::OnGetItemAttr(long WXUNUSED_UNLESS_DEBUG(item)) const
|
wxGenericListCtrl::OnGetItemAttr(long WXUNUSED_UNLESS_DEBUG(item)) const
|
||||||
{
|
{
|
||||||
|
@@ -2253,7 +2253,7 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
|
|||||||
#ifdef NM_CUSTOMDRAW
|
#ifdef NM_CUSTOMDRAW
|
||||||
if ( lvi.mask & LVIF_IMAGE )
|
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),
|
wxCHECK_MSG(!GetImageList(wxIMAGE_LIST_SMALL),
|
||||||
-1,
|
-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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -2718,6 +2718,17 @@ int wxListCtrl::OnGetItemImage (
|
|||||||
return -1;
|
return -1;
|
||||||
} // end of wxListCtrl::OnGetItemImage
|
} // 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 (
|
wxListItemAttr* wxListCtrl::OnGetItemAttr (
|
||||||
long WXUNUSED_UNLESS_DEBUG(lItem)
|
long WXUNUSED_UNLESS_DEBUG(lItem)
|
||||||
) const
|
) const
|
||||||
|
@@ -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
|
wxListItemAttr *wxListCtrl::OnGetItemAttr(long WXUNUSED_UNLESS_DEBUG(item)) const
|
||||||
{
|
{
|
||||||
// no attributes by default
|
// no attributes by default
|
||||||
|
Reference in New Issue
Block a user