-2.6.2.2
+2.6.3.0
-------
Change the wx.ListCtrl InsertStringItem wrapper to use the form that
wxMSW: wx.ListCtrl in report mode is now able to support images in
other columns besides the first one. Simply pass an image index to
-SetStringItem.
+SetStringItem. For virtual list controls you can specify the image to
+use on the extra columns by overriding OnGetItemColumnImage in your
+derived class. It is passed the item number and the column number as
+parameters, and the default version simply calls OnGetItemImage for
+column zero, or returns -1 for other columns.
}
+//---------------------------------------------------------------------------
+
+#define DEC_PYCALLBACK_INT_LONGLONG(CBNAME) \
+ int CBNAME(long a, long b) const; \
+ int base_##CBNAME(long a, long b) const
+
+
+#define IMP_PYCALLBACK_INT_LONGLONG(CLASS, PCLASS, CBNAME) \
+ int CLASS::CBNAME(long a, long b) const { \
+ int rval=-1; \
+ bool found; \
+ wxPyBlock_t blocked = wxPyBeginBlockThreads(); \
+ if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
+ PyObject* ro; \
+ ro = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue("(ll)",a,b)); \
+ if (ro) { \
+ rval = PyInt_AsLong(ro); \
+ Py_DECREF(ro); \
+ } \
+ } \
+ wxPyEndBlockThreads(blocked); \
+ if (! found) \
+ rval = PCLASS::CBNAME(a, b); \
+ return rval; \
+ } \
+ int CLASS::base_##CBNAME(long a, long b) const { \
+ return PCLASS::CBNAME(a, b); \
+ }
+
+
+
+
+#define DEC_PYCALLBACK_INT_LONGLONG_virtual(CBNAME) \
+ int CBNAME(long a, long b) const;
+
+
+#define IMP_PYCALLBACK_INT_LONGLONG_virtual(CLASS, PCLASS, CBNAME) \
+ int CLASS::CBNAME(long a, long b) const { \
+ int rval=-1; /* this rval is important for OnGetItemImage */ \
+ bool found; \
+ wxPyBlock_t blocked = wxPyBeginBlockThreads(); \
+ if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
+ PyObject* ro; \
+ ro = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue("(ll)",a,b)); \
+ if (ro) { \
+ rval = PyInt_AsLong(ro); \
+ Py_DECREF(ro); \
+ } \
+ } \
+ wxPyEndBlockThreads(blocked); \
+ return rval; \
+ }
+
+
//---------------------------------------------------------------------------
#define DEC_PYCALLBACK_LISTATTR_LONG(CBNAME) \
// use the virtual version to avoid a confusing assert in the base class
DEC_PYCALLBACK_INT_LONG_virtual(OnGetItemImage);
+ DEC_PYCALLBACK_INT_LONGLONG(OnGetItemColumnImage);
PYPRIVATE;
};
IMP_PYCALLBACK_STRING_LONGLONG(wxPyListCtrl, wxListCtrl, OnGetItemText);
IMP_PYCALLBACK_LISTATTR_LONG(wxPyListCtrl, wxListCtrl, OnGetItemAttr);
IMP_PYCALLBACK_INT_LONG_virtual(wxPyListCtrl, wxListCtrl, OnGetItemImage);
-
+IMP_PYCALLBACK_INT_LONGLONG(wxPyListCtrl, wxListCtrl, OnGetItemColumnImage);
+
%}