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:
parent
262e41eb55
commit
07b2e1cd38
@ -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)
|
||||
|
@ -48,6 +48,8 @@ public:
|
||||
void SetId(int id);
|
||||
void SetTimestamp(long timeStamp);
|
||||
void Skip(bool skip = TRUE);
|
||||
|
||||
wxEvent *Clone();
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
@ -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 },
|
||||
|
@ -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):
|
||||
|
@ -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);
|
||||
|
||||
|
||||
|
||||
|
@ -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); }
|
||||
};
|
||||
|
||||
|
||||
|
@ -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 },
|
||||
|
@ -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):
|
||||
|
Loading…
Reference in New Issue
Block a user