Replaced CopyObject with Clone for wxPython-specific event classes.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@12508 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn 2001-11-20 06:04:42 +00:00
parent 262e41eb55
commit 07b2e1cd38
8 changed files with 118 additions and 26 deletions

View File

@ -71,11 +71,11 @@ class GraphWindow(wxWindow):
for label in labels:
self.values.append((label, 0))
self.font = wxFont(12, wxSWISS, wxNORMAL, wxBOLD)
self.SetFont(self.font)
font = wxFont(12, wxSWISS, wxNORMAL, wxBOLD)
self.SetFont(font)
self.colors = [ wxRED, wxGREEN, wxBLUE, wxCYAN,
wxNamedColour("Yellow"), wxNamedColor("Navy") ]
"Yellow", "Navy" ]
EVT_ERASE_BACKGROUND(self, self.OnEraseBackground)
EVT_PAINT(self, self.OnPaint)
@ -98,8 +98,12 @@ class GraphWindow(wxWindow):
self.barHeight = hmax
def GetBestHeight(self):
return 2 * (self.barHeight + 1) * len(self.values)
def Draw(self, dc, size):
dc.SetFont(self.font)
dc.SetFont(self.GetFont())
dc.SetTextForeground(wxBLUE)
dc.SetBackground(wxBrush(self.GetBackgroundColour()))
dc.Clear()
@ -161,6 +165,7 @@ class TestFrame(wxFrame):
self.graph = GraphWindow(self, ['Zero', 'One', 'Two', 'Three', 'Four',
'Five', 'Six', 'Seven'])
self.graph.SetSize((-1, self.graph.GetBestHeight()))
sizer = wxBoxSizer(wxVERTICAL)
sizer.Add(panel, 0, wxEXPAND)
@ -168,6 +173,7 @@ class TestFrame(wxFrame):
self.SetSizer(sizer)
self.SetAutoLayout(true)
sizer.Fit(self)
#self.graph.SetValue(0, 25)
#self.graph.SetValue(1, 50)

View File

@ -48,6 +48,8 @@ public:
void SetId(int id);
void SetTimestamp(long timeStamp);
void Skip(bool skip = TRUE);
wxEvent *Clone();
};
//---------------------------------------------------------------------------

View File

@ -469,6 +469,41 @@ static PyObject *_wrap_wxEvent_Skip(PyObject *self, PyObject *args, PyObject *kw
return _resultobj;
}
#define wxEvent_Clone(_swigobj) (_swigobj->Clone())
static PyObject *_wrap_wxEvent_Clone(PyObject *self, PyObject *args, PyObject *kwargs) {
PyObject * _resultobj;
wxEvent * _result;
wxEvent * _arg0;
PyObject * _argo0 = 0;
char *_kwnames[] = { "self", NULL };
char _ptemp[128];
self = self;
if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxEvent_Clone",_kwnames,&_argo0))
return NULL;
if (_argo0) {
if (_argo0 == Py_None) { _arg0 = NULL; }
else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxEvent_p")) {
PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEvent_Clone. Expected _wxEvent_p.");
return NULL;
}
}
{
wxPy_BEGIN_ALLOW_THREADS;
_result = (wxEvent *)wxEvent_Clone(_arg0);
wxPy_END_ALLOW_THREADS;
if (PyErr_Occurred()) return NULL;
} if (_result) {
SWIG_MakePtr(_ptemp, (char *) _result,"_wxEvent_p");
_resultobj = Py_BuildValue("s",_ptemp);
} else {
Py_INCREF(Py_None);
_resultobj = Py_None;
}
return _resultobj;
}
static void *SwigwxSizeEventTowxEvent(void *ptr) {
wxSizeEvent *src;
wxEvent *dest;
@ -7179,6 +7214,7 @@ static PyMethodDef eventscMethods[] = {
{ "new_wxCloseEvent", (PyCFunction) _wrap_new_wxCloseEvent, METH_VARARGS | METH_KEYWORDS },
{ "wxSizeEvent_GetSize", (PyCFunction) _wrap_wxSizeEvent_GetSize, METH_VARARGS | METH_KEYWORDS },
{ "new_wxSizeEvent", (PyCFunction) _wrap_new_wxSizeEvent, METH_VARARGS | METH_KEYWORDS },
{ "wxEvent_Clone", (PyCFunction) _wrap_wxEvent_Clone, METH_VARARGS | METH_KEYWORDS },
{ "wxEvent_Skip", (PyCFunction) _wrap_wxEvent_Skip, METH_VARARGS | METH_KEYWORDS },
{ "wxEvent_SetTimestamp", (PyCFunction) _wrap_wxEvent_SetTimestamp, METH_VARARGS | METH_KEYWORDS },
{ "wxEvent_SetId", (PyCFunction) _wrap_wxEvent_SetId, METH_VARARGS | METH_KEYWORDS },

View File

@ -41,6 +41,10 @@ class wxEventPtr(wxObjectPtr):
def Skip(self, *_args, **_kwargs):
val = apply(eventsc.wxEvent_Skip,(self,) + _args, _kwargs)
return val
def Clone(self, *_args, **_kwargs):
val = apply(eventsc.wxEvent_Clone,(self,) + _args, _kwargs)
if val: val = wxEventPtr(val)
return val
def __repr__(self):
return "<C wxEvent instance at %s>" % (self.this,)
class wxEvent(wxEventPtr):

View File

@ -101,7 +101,6 @@ void WXDLLEXPORT wxEntryCleanup();
#ifdef WXP_WITH_THREAD
//PyThreadState* wxPyEventThreadState = NULL;
PyInterpreterState* wxPyInterpreter = NULL;
#endif
@ -118,7 +117,6 @@ void __wxPreStart()
#ifdef WXP_WITH_THREAD
PyEval_InitThreads();
// wxPyEventThreadState = PyThreadState_Get(); // PyThreadState_New(PyThreadState_Get()->interp);
wxPyInterpreter = PyThreadState_Get()->interp;
#endif
@ -632,37 +630,41 @@ PyObject* wxPyEvtSelfRef::GetSelf() const {
}
IMPLEMENT_ABSTRACT_CLASS(wxPyEvent, wxEvent);
IMPLEMENT_ABSTRACT_CLASS(wxPyCommandEvent, wxCommandEvent);
wxPyEvent::wxPyEvent(int id)
: wxEvent(id) {
}
wxPyEvent::wxPyEvent(const wxPyEvent& evt)
: wxEvent(evt)
{
SetSelf(evt.m_self, TRUE);
}
wxPyEvent::~wxPyEvent() {
}
// This one is so the event object can be Cloned...
void wxPyEvent::CopyObject(wxObject& dest) const {
wxEvent::CopyObject(dest);
((wxPyEvent*)&dest)->SetSelf(m_self, TRUE);
}
IMPLEMENT_DYNAMIC_CLASS(wxPyEvent, wxEvent);
wxPyCommandEvent::wxPyCommandEvent(wxEventType commandType, int id)
: wxCommandEvent(commandType, id) {
}
wxPyCommandEvent::wxPyCommandEvent(const wxPyCommandEvent& evt)
: wxCommandEvent(evt)
{
SetSelf(evt.m_self, TRUE);
}
wxPyCommandEvent::~wxPyCommandEvent() {
}
void wxPyCommandEvent::CopyObject(wxObject& dest) const {
wxCommandEvent::CopyObject(dest);
((wxPyCommandEvent*)&dest)->SetSelf(m_self, TRUE);
}
IMPLEMENT_DYNAMIC_CLASS(wxPyCommandEvent, wxCommandEvent);

View File

@ -219,22 +219,24 @@ protected:
class wxPyEvent : public wxEvent, public wxPyEvtSelfRef {
DECLARE_DYNAMIC_CLASS(wxPyEvent)
DECLARE_ABSTRACT_CLASS(wxPyEvent)
public:
wxPyEvent(int id=0);
wxPyEvent(const wxPyEvent& evt);
~wxPyEvent();
void CopyObject(wxObject& dest) const;
virtual wxEvent* Clone() const { return new wxPyEvent(*this); }
};
class wxPyCommandEvent : public wxCommandEvent, public wxPyEvtSelfRef {
DECLARE_DYNAMIC_CLASS(wxPyCommandEvent)
DECLARE_ABSTRACT_CLASS(wxPyCommandEvent)
public:
wxPyCommandEvent(wxEventType commandType = wxEVT_NULL, int id=0);
wxPyCommandEvent(const wxPyCommandEvent& evt);
~wxPyCommandEvent();
void CopyObject(wxObject& dest) const;
virtual wxEvent* Clone() const { return new wxPyCommandEvent(*this); }
};

View File

@ -469,6 +469,41 @@ static PyObject *_wrap_wxEvent_Skip(PyObject *self, PyObject *args, PyObject *kw
return _resultobj;
}
#define wxEvent_Clone(_swigobj) (_swigobj->Clone())
static PyObject *_wrap_wxEvent_Clone(PyObject *self, PyObject *args, PyObject *kwargs) {
PyObject * _resultobj;
wxEvent * _result;
wxEvent * _arg0;
PyObject * _argo0 = 0;
char *_kwnames[] = { "self", NULL };
char _ptemp[128];
self = self;
if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxEvent_Clone",_kwnames,&_argo0))
return NULL;
if (_argo0) {
if (_argo0 == Py_None) { _arg0 = NULL; }
else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxEvent_p")) {
PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEvent_Clone. Expected _wxEvent_p.");
return NULL;
}
}
{
wxPy_BEGIN_ALLOW_THREADS;
_result = (wxEvent *)wxEvent_Clone(_arg0);
wxPy_END_ALLOW_THREADS;
if (PyErr_Occurred()) return NULL;
} if (_result) {
SWIG_MakePtr(_ptemp, (char *) _result,"_wxEvent_p");
_resultobj = Py_BuildValue("s",_ptemp);
} else {
Py_INCREF(Py_None);
_resultobj = Py_None;
}
return _resultobj;
}
static void *SwigwxSizeEventTowxEvent(void *ptr) {
wxSizeEvent *src;
wxEvent *dest;
@ -7179,6 +7214,7 @@ static PyMethodDef eventscMethods[] = {
{ "new_wxCloseEvent", (PyCFunction) _wrap_new_wxCloseEvent, METH_VARARGS | METH_KEYWORDS },
{ "wxSizeEvent_GetSize", (PyCFunction) _wrap_wxSizeEvent_GetSize, METH_VARARGS | METH_KEYWORDS },
{ "new_wxSizeEvent", (PyCFunction) _wrap_new_wxSizeEvent, METH_VARARGS | METH_KEYWORDS },
{ "wxEvent_Clone", (PyCFunction) _wrap_wxEvent_Clone, METH_VARARGS | METH_KEYWORDS },
{ "wxEvent_Skip", (PyCFunction) _wrap_wxEvent_Skip, METH_VARARGS | METH_KEYWORDS },
{ "wxEvent_SetTimestamp", (PyCFunction) _wrap_wxEvent_SetTimestamp, METH_VARARGS | METH_KEYWORDS },
{ "wxEvent_SetId", (PyCFunction) _wrap_wxEvent_SetId, METH_VARARGS | METH_KEYWORDS },

View File

@ -41,6 +41,10 @@ class wxEventPtr(wxObjectPtr):
def Skip(self, *_args, **_kwargs):
val = apply(eventsc.wxEvent_Skip,(self,) + _args, _kwargs)
return val
def Clone(self, *_args, **_kwargs):
val = apply(eventsc.wxEvent_Clone,(self,) + _args, _kwargs)
if val: val = wxEventPtr(val)
return val
def __repr__(self):
return "<C wxEvent instance at %s>" % (self.this,)
class wxEvent(wxEventPtr):