wxPython stuff:
1. Added test for HTML printing 2. Update wxFontEnumerator 3. wxPyEvent and wxPyCommandEvent derived classes now return the actual Python object in the event handler. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4416 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -401,122 +401,36 @@ public:
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
// This one can be derived from in Python and passed through the event
|
||||
// system without loosing anything so long as the Python data is saved with
|
||||
// SetPyData...
|
||||
|
||||
%{
|
||||
class wxPyEvent : public wxEvent {
|
||||
DECLARE_DYNAMIC_CLASS(wxPyEvent)
|
||||
public:
|
||||
wxPyEvent(int id=0, PyObject* userData = Py_None)
|
||||
: wxEvent(id) {
|
||||
m_userData = userData;
|
||||
Py_INCREF(m_userData);
|
||||
}
|
||||
|
||||
~wxPyEvent() {
|
||||
bool doSave = wxPyRestoreThread();
|
||||
Py_DECREF(m_userData);
|
||||
wxPySaveThread(doSave);
|
||||
}
|
||||
|
||||
void SetPyData(PyObject* userData) {
|
||||
bool doSave = wxPyRestoreThread();
|
||||
Py_DECREF(m_userData);
|
||||
m_userData = userData;
|
||||
Py_INCREF(m_userData);
|
||||
wxPySaveThread(doSave);
|
||||
}
|
||||
|
||||
PyObject* GetPyData() const {
|
||||
Py_INCREF(m_userData);
|
||||
return m_userData;
|
||||
}
|
||||
|
||||
// This one is so the event object can be Cloned...
|
||||
void CopyObject(wxObject& dest) const {
|
||||
wxEvent::CopyObject(dest);
|
||||
((wxPyEvent*)&dest)->SetPyData(m_userData);
|
||||
}
|
||||
|
||||
private:
|
||||
PyObject* m_userData;
|
||||
};
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPyEvent, wxEvent)
|
||||
|
||||
%}
|
||||
|
||||
// These classes can be derived from in Python and passed through the event
|
||||
// system without loosing anything. They do this by keeping a reference to
|
||||
// themselves and some special case handling in wxPyCallback::EventThunker.
|
||||
|
||||
class wxPyEvent : public wxEvent {
|
||||
public:
|
||||
wxPyEvent(int id=0, PyObject* userData = Py_None);
|
||||
wxPyEvent(int id=0);
|
||||
~wxPyEvent();
|
||||
|
||||
void SetPyData(PyObject* userData);
|
||||
PyObject* GetPyData();
|
||||
%pragma(python) addtomethod = "__init__:self.SetSelf(self)"
|
||||
|
||||
void SetSelf(PyObject* self);
|
||||
PyObject* GetSelf();
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Same for this one except it is a wxCommandEvent and so will get passed up the
|
||||
// containment heirarchy.
|
||||
|
||||
%{
|
||||
class wxPyCommandEvent : public wxCommandEvent {
|
||||
DECLARE_DYNAMIC_CLASS(wxPyCommandEvent)
|
||||
public:
|
||||
wxPyCommandEvent(wxEventType commandType = wxEVT_NULL, int id=0, PyObject* userData = Py_None)
|
||||
: wxCommandEvent(commandType, id) {
|
||||
m_userData = userData;
|
||||
Py_INCREF(m_userData);
|
||||
}
|
||||
|
||||
~wxPyCommandEvent() {
|
||||
bool doSave = wxPyRestoreThread();
|
||||
Py_DECREF(m_userData);
|
||||
wxPySaveThread(doSave);
|
||||
}
|
||||
|
||||
void SetPyData(PyObject* userData) {
|
||||
bool doSave = wxPyRestoreThread();
|
||||
Py_DECREF(m_userData);
|
||||
m_userData = userData;
|
||||
Py_INCREF(m_userData);
|
||||
wxPySaveThread(doSave);
|
||||
}
|
||||
|
||||
PyObject* GetPyData() const {
|
||||
Py_INCREF(m_userData);
|
||||
return m_userData;
|
||||
}
|
||||
|
||||
// This one is so the event object can be Cloned...
|
||||
void CopyObject(wxObject& dest) const {
|
||||
wxCommandEvent::CopyObject(dest);
|
||||
((wxPyCommandEvent*)&dest)->SetPyData(m_userData);
|
||||
}
|
||||
|
||||
private:
|
||||
PyObject* m_userData;
|
||||
};
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPyCommandEvent, wxCommandEvent)
|
||||
|
||||
%}
|
||||
|
||||
|
||||
class wxPyCommandEvent : public wxCommandEvent {
|
||||
public:
|
||||
wxPyCommandEvent(wxEventType commandType = wxEVT_NULL, int id=0, PyObject* userData = Py_None);
|
||||
wxPyCommandEvent(wxEventType commandType = wxEVT_NULL, int id=0);
|
||||
~wxPyCommandEvent();
|
||||
|
||||
void SetPyData(PyObject* userData);
|
||||
PyObject* GetPyData();
|
||||
%pragma(python) addtomethod = "__init__:self.SetSelf(self)"
|
||||
|
||||
void SetSelf(PyObject* self);
|
||||
PyObject* GetSelf();
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
Reference in New Issue
Block a user