mirror of
https://github.com/wxWidgets/wxWidgets.git
synced 2026-09-28 15:50:17 +08:00
Added a demo showing how to use wxPostEvent
Added an MVCTree contribution Some final tweaks for this release git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4536 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -45,6 +45,7 @@ Or you can send mail directly to the list using this address:
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
||||
What's new in 2.1.11
|
||||
--------------------
|
||||
Skipped a few version numbers so wxMSW, wxGTK and wxPython are all
|
||||
@@ -88,13 +89,12 @@ Many updates to wxMenu, wxMenuBar.
|
||||
wxPyEvent and wxPyCommandEvent derived classes now give you the actual
|
||||
Python object in the event handler instead of a new shadow.
|
||||
|
||||
Added a Calendar widget from Lorne White.
|
||||
|
||||
Made some fixes to the wxFloatbar.
|
||||
|
||||
Added the HTML printing classes.
|
||||
Added a Calendar widget from Lorne White to the library.
|
||||
|
||||
Made some fixes to the wxFloatbar. It still has some troubles on
|
||||
wxGTK...
|
||||
|
||||
Added an MVC tree control from Bryn Keller to the library.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -42,7 +42,8 @@ _treeList = [
|
||||
|
||||
('Miscellaneous', [ 'DragAndDrop', 'CustomDragAndDrop', 'FontEnumerator',
|
||||
'wxTimer', 'wxValidator', 'wxGLCanvas', 'DialogUnits',
|
||||
'wxImage', 'PrintFramework', 'wxOGL', 'PythonEvents']),
|
||||
'wxImage', 'PrintFramework', 'wxOGL', 'PythonEvents',
|
||||
'Threads']),
|
||||
|
||||
('wxPython Library', ['Layoutf', 'wxScrolledMessageDialog',
|
||||
'wxMultipleChoiceDialog', 'wxPlotCanvas', 'wxFloatBar',
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -450,20 +450,20 @@ PyObject* wxPyCallbackHelper::callCallbackObj(PyObject* argTuple) {
|
||||
// themselves and some special case handling in wxPyCallback::EventThunker.
|
||||
|
||||
|
||||
wxPySelfRef::wxPySelfRef() {
|
||||
wxPyEvtSelfRef::wxPyEvtSelfRef() {
|
||||
//m_self = Py_None; // **** We don't do normal ref counting to prevent
|
||||
//Py_INCREF(m_self); // circular loops...
|
||||
m_cloned = false;
|
||||
}
|
||||
|
||||
wxPySelfRef::~wxPySelfRef() {
|
||||
wxPyEvtSelfRef::~wxPyEvtSelfRef() {
|
||||
bool doSave = wxPyRestoreThread();
|
||||
if (m_cloned)
|
||||
Py_DECREF(m_self);
|
||||
wxPySaveThread(doSave);
|
||||
}
|
||||
|
||||
void wxPySelfRef::SetSelf(PyObject* self, bool clone) {
|
||||
void wxPyEvtSelfRef::SetSelf(PyObject* self, bool clone) {
|
||||
bool doSave = wxPyRestoreThread();
|
||||
if (m_cloned)
|
||||
Py_DECREF(m_self);
|
||||
@@ -475,7 +475,7 @@ void wxPySelfRef::SetSelf(PyObject* self, bool clone) {
|
||||
wxPySaveThread(doSave);
|
||||
}
|
||||
|
||||
PyObject* wxPySelfRef::GetSelf() const {
|
||||
PyObject* wxPyEvtSelfRef::GetSelf() const {
|
||||
Py_INCREF(m_self);
|
||||
return m_self;
|
||||
}
|
||||
|
||||
@@ -189,10 +189,10 @@ private:
|
||||
// themselves and some special case handling in wxPyCallback::EventThunker.
|
||||
|
||||
|
||||
class wxPySelfRef {
|
||||
class wxPyEvtSelfRef {
|
||||
public:
|
||||
wxPySelfRef();
|
||||
~wxPySelfRef();
|
||||
wxPyEvtSelfRef();
|
||||
~wxPyEvtSelfRef();
|
||||
|
||||
void SetSelf(PyObject* self, bool clone=FALSE);
|
||||
PyObject* GetSelf() const;
|
||||
@@ -203,7 +203,7 @@ protected:
|
||||
};
|
||||
|
||||
|
||||
class wxPyEvent : public wxEvent, public wxPySelfRef {
|
||||
class wxPyEvent : public wxEvent, public wxPyEvtSelfRef {
|
||||
DECLARE_DYNAMIC_CLASS(wxPyEvent)
|
||||
public:
|
||||
wxPyEvent(int id=0);
|
||||
@@ -213,7 +213,7 @@ public:
|
||||
};
|
||||
|
||||
|
||||
class wxPyCommandEvent : public wxCommandEvent, public wxPySelfRef {
|
||||
class wxPyCommandEvent : public wxCommandEvent, public wxPyEvtSelfRef {
|
||||
DECLARE_DYNAMIC_CLASS(wxPyCommandEvent)
|
||||
public:
|
||||
wxPyCommandEvent(wxEventType commandType = wxEVT_NULL, int id=0);
|
||||
|
||||
Reference in New Issue
Block a user