#include <wx/busyinfo.h>
#include <wx/caret.h>
+#include <wx/choicebk.h>
#include <wx/clipbrd.h>
#include <wx/colordlg.h>
#include <wx/config.h>
typedef unsigned char byte;
typedef wxPoint2DDouble wxPoint2D;
-const bool True = true;
-const bool False = false;
-
#ifndef wxPyUSE_EXPORTED_API
PyObject* wx2PyString(const wxString& src);
wxString Py2wxString(PyObject* source);
-PyObject* wxPyMake_wxObject(wxObject* source, bool checkEvtHandler=True);
-PyObject* wxPyMake_wxSizer(wxSizer* source);
+PyObject* wxPyMake_wxObject(wxObject* source, bool setThisOwn, bool checkEvtHandler=true);
+PyObject* wxPyMake_wxSizer(wxSizer* source, bool setThisOwn);
void wxPyPtrTypeMap_Add(const char* commonName, const char* ptrName);
PyObject* wxPy_ConvertList(wxListBase* list);
bool wxPySimple_typecheck(PyObject* source, const wxChar* classname, int seqLen);
bool wxColour_typecheck(PyObject* source);
+bool wxPyCheckForApp();
+
template<class T>
bool wxPyTwoIntItem_helper(PyObject* source, T** obj, const wxChar* name)
{
if (! wxPyConvertSwigPtr(source, (void **)&ptr, name))
goto error;
*obj = ptr;
- return True;
+ return true;
}
// otherwise a 2-tuple of integers is expected
else if (PySequence_Check(source) && PyObject_Length(source) == 2) {
**obj = T(PyInt_AsLong(o1), PyInt_AsLong(o2));
Py_DECREF(o1);
Py_DECREF(o2);
- return True;
+ return true;
}
error:
wxString msg;
msg.Printf(wxT("Expected a 2-tuple of integers or a %s object."), name);
PyErr_SetString(PyExc_TypeError, msg.mb_str());
- return False;
+ return false;
}
wxPyEvtSelfRef();
~wxPyEvtSelfRef();
- void SetSelf(PyObject* self, bool clone=False);
+ void SetSelf(PyObject* self, bool clone=false);
PyObject* GetSelf() const;
bool GetCloned() const { return m_cloned; }
struct swig_type_info;
struct swig_const_info;
-typedef double (*py_objasdbl_conv)(PyObject *obj);
-
// Make SunCC happy and make typedef's for these that are extern "C"
typedef swig_type_info* (*p_SWIG_Python_TypeRegister_t)(swig_type_info *);
typedef swig_type_info* (*p_SWIG_Python_TypeCheck_t)(char *c, swig_type_info *);
typedef void* (*p_SWIG_Python_TypeCast_t)(swig_type_info *, void *);
typedef swig_type_info* (*p_SWIG_Python_TypeDynamicCast_t)(swig_type_info *, void **);
typedef const char* (*p_SWIG_Python_TypeName_t)(const swig_type_info *);
+typedef const char * (*p_SWIG_Python_TypePrettyName_t)(const swig_type_info *);
typedef swig_type_info* (*p_SWIG_Python_TypeQuery_t)(const char *);
typedef void (*p_SWIG_Python_TypeClientData_t)(swig_type_info *, void *);
typedef PyObject* (*p_SWIG_Python_newvarlink_t)(void);
p_SWIG_Python_TypeCast_t p_SWIG_Python_TypeCast;
p_SWIG_Python_TypeDynamicCast_t p_SWIG_Python_TypeDynamicCast;
p_SWIG_Python_TypeName_t p_SWIG_Python_TypeName;
+ p_SWIG_Python_TypePrettyName_t p_SWIG_Python_TypePrettyName;
p_SWIG_Python_TypeQuery_t p_SWIG_Python_TypeQuery;
p_SWIG_Python_TypeClientData_t p_SWIG_Python_TypeClientData;
p_SWIG_Python_newvarlink_t p_SWIG_Python_newvarlink;
PyObject* (*p_wxPyCBH_callCallbackObj)(const wxPyCallbackHelper& cbh, PyObject* argTuple);
void (*p_wxPyCBH_delete)(wxPyCallbackHelper* cbh);
- PyObject* (*p_wxPyMake_wxObject)(wxObject* source, bool checkEvtHandler);
- PyObject* (*p_wxPyMake_wxSizer)(wxSizer* source);
+ PyObject* (*p_wxPyMake_wxObject)(wxObject* source, bool setThisOwn, bool checkEvtHandler);
+ PyObject* (*p_wxPyMake_wxSizer)(wxSizer* source, bool setThisOwn);
void (*p_wxPyPtrTypeMap_Add)(const char* commonName, const char* ptrName);
bool (*p_wxPy2int_seq_helper)(PyObject* source, int* i1, int* i2);
bool (*p_wxPy4int_seq_helper)(PyObject* source, int* i1, int* i2, int* i3, int* i4);
bool (*p_wxPyInstance_Check)(PyObject* obj);
bool (*p_wxPySwigInstance_Check)(PyObject* obj);
-
+
+ bool (*p_wxPyCheckForApp)();
+
};
#ifdef wxPyUSE_EXPORTED_API
// Notice that this is static, not extern. This is by design, each module
// needs one, but doesn't have to use it.
static wxPyCoreAPI* wxPyCoreAPIPtr = NULL;
+inline wxPyCoreAPI* wxPyGetCoreAPIPtr();
#endif // wxPyUSE_EXPORTED_API
//---------------------------------------------------------------------------
~wxPyUserData() {
#ifdef wxPyUSE_EXPORTED_API
- wxPyCoreAPIPtr->p_wxPyUserData_dtor(this);
+ wxPyGetCoreAPIPtr()->p_wxPyUserData_dtor(this);
#else
wxPyUserData_dtor(this);
#endif
~wxPyClientData() {
#ifdef wxPyUSE_EXPORTED_API
- wxPyCoreAPIPtr->p_wxPyClientData_dtor(this);
+ wxPyGetCoreAPIPtr()->p_wxPyClientData_dtor(this);
#else
wxPyClientData_dtor(this);
#endif
~wxPyOORClientData() {
#ifdef wxPyUSE_EXPORTED_API
- wxPyCoreAPIPtr->p_wxPyOORClientData_dtor(this);
+ wxPyGetCoreAPIPtr()->p_wxPyOORClientData_dtor(this);
#else
wxPyOORClientData_dtor(this);
#endif
m_class = NULL;
m_self = NULL;
m_lastFound = NULL;
- m_incRef = False;
+ m_incRef = false;
}
~wxPyCallbackHelper() {
#ifdef wxPyUSE_EXPORTED_API
- wxPyCoreAPIPtr->p_wxPyCBH_delete(this);
+ wxPyGetCoreAPIPtr()->p_wxPyCBH_delete(this);
#else
wxPyCBH_delete(this);
#endif
}
- void setSelf(PyObject* self, PyObject* klass, int incref=True);
+ void setSelf(PyObject* self, PyObject* klass, int incref=true);
bool findCallback(const char* name) const;
int callCallback(PyObject* argTuple) const;
PyObject* callCallbackObj(PyObject* argTuple) const;
#define IMP_PYCALLBACK_BOOL_INTINT(CLASS, PCLASS, CBNAME) \
bool CLASS::CBNAME(int a, int b) { \
- bool rval=False, found; \
+ bool rval=false, found; \
bool blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) \
rval = wxPyCBH_callCallback(m_myInst, Py_BuildValue("(ii)",a,b)); \
#define IMP_PYCALLBACK_BOOL_BOOL(CLASS, PCLASS, CBNAME) \
bool CLASS::CBNAME(bool a) { \
- bool rval=False, found; \
+ bool rval=false, found; \
bool blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) \
rval = wxPyCBH_callCallback(m_myInst, Py_BuildValue("(i)",a));\
#define IMP_PYCALLBACK_BOOL_INT(CLASS, PCLASS, CBNAME) \
bool CLASS::CBNAME(int a) { \
- bool rval=False, found; \
+ bool rval=false, found; \
bool blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) \
rval = wxPyCBH_callCallback(m_myInst, Py_BuildValue("(i)",a));\
#define IMP_PYCALLBACK_BOOL_INT_pure(CLASS, PCLASS, CBNAME) \
bool CLASS::CBNAME(int a) { \
- bool rval=False; \
+ bool rval=false; \
bool blocked = wxPyBeginBlockThreads(); \
if (wxPyCBH_findCallback(m_myInst, #CBNAME)) \
rval = wxPyCBH_callCallback(m_myInst, Py_BuildValue("(i)",a)); \
- else rval = False; \
+ else rval = false; \
wxPyEndBlockThreads(blocked); \
return rval; \
}
bool found; \
bool blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
- PyObject* obj = wxPyMake_wxObject(&a); \
+ PyObject* obj = wxPyMake_wxObject(&a,false); \
wxPyCBH_callCallback(m_myInst, Py_BuildValue("(O)", obj)); \
Py_DECREF(obj); \
} \
bool found; \
bool blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
- PyObject* obj = wxPyMake_wxObject(&a); \
+ PyObject* obj = wxPyMake_wxObject(&a,false); \
wxPyCBH_callCallback(m_myInst, Py_BuildValue("(Oi)", obj, (int)b)); \
Py_DECREF(obj); \
} \
bool found; \
bool blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
- PyObject* obj = wxPyMake_wxObject(&a); \
+ PyObject* obj = wxPyMake_wxObject(&a,false); \
wxPyCBH_callCallback(m_myInst, Py_BuildValue("(Oi)", obj, (int)b)); \
Py_DECREF(obj); \
} \
bool found; \
bool blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
- PyObject* obj = wxPyMake_wxObject(&a); \
+ PyObject* obj = wxPyMake_wxObject(&a,false); \
wxPyCBH_callCallback(m_myInst, Py_BuildValue("(Oddddi)", obj, b, c, d, e, (int)f)); \
Py_DECREF(obj); \
} \
bool CLASS::CBNAME(wxDC& a, double b, double c, double d, double e, bool f) { \
bool found; \
bool blocked = wxPyBeginBlockThreads(); \
- bool rval=False; \
+ bool rval=false; \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
- PyObject* obj = wxPyMake_wxObject(&a); \
+ PyObject* obj = wxPyMake_wxObject(&a,false); \
rval = wxPyCBH_callCallback(m_myInst, Py_BuildValue("(Oddddi)", obj, b, c, d, e, (int)f));\
Py_DECREF(obj); \
} \
bool found; \
bool blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
- PyObject* obj = wxPyMake_wxObject(&a); \
+ PyObject* obj = wxPyMake_wxObject(&a,false); \
wxPyCBH_callCallback(m_myInst, Py_BuildValue("(Odddd)", obj, b, c, d, e)); \
Py_DECREF(obj); \
} \
bool found; \
bool blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
- PyObject* obj = wxPyMake_wxObject(&a); \
+ PyObject* obj = wxPyMake_wxObject(&a,false); \
wxPyCBH_callCallback(m_myInst, Py_BuildValue("(Oi)", obj, (int)b)); \
Py_DECREF(obj); \
} \
bool found; \
bool blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
- PyObject* obj = wxPyMake_wxObject(a); \
+ PyObject* obj = wxPyMake_wxObject(a,false); \
wxPyCBH_callCallback(m_myInst, Py_BuildValue("(Oiddii)", obj, (int)b, c, d, e, f));\
Py_DECREF(obj); \
} \
bool found; \
bool blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
- PyObject* obj = wxPyMake_wxObject(a); \
+ PyObject* obj = wxPyMake_wxObject(a,false); \
wxPyCBH_callCallback(m_myInst, Py_BuildValue("(Oddii)", obj, b, c, d, e)); \
Py_DECREF(obj); \
} \
#define IMP_PYCALLBACK_BOOL_STRING(CLASS, PCLASS, CBNAME) \
bool CLASS::CBNAME(const wxString& a) { \
- bool rval=False; \
+ bool rval=false; \
bool found; \
bool blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
#define IMP_PYCALLBACK_BOOL_STRING_pure(CLASS, PCLASS, CBNAME) \
bool CLASS::CBNAME(const wxString& a) { \
- bool rval=False; \
+ bool rval=false; \
bool blocked = wxPyBeginBlockThreads(); \
if (wxPyCBH_findCallback(m_myInst, #CBNAME)) { \
PyObject* s = wx2PyString(a); \
#define IMP_PYCALLBACK_BOOL_STRINGSTRING(CLASS, PCLASS, CBNAME) \
bool CLASS::CBNAME(const wxString& a, const wxString& b) { \
- bool rval=False; \
+ bool rval=false; \
bool found; \
bool blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
#define IMP_PYCALLBACK_BOOL_TAG_pure(CLASS, PCLASS, CBNAME) \
bool CLASS::CBNAME(const wxHtmlTag& a) { \
- bool rval=False; \
+ bool rval=false; \
bool blocked = wxPyBeginBlockThreads(); \
if (wxPyCBH_findCallback(m_myInst, #CBNAME)) { \
PyObject* obj = wxPyConstructObject((void*)&a, wxT("wxHtmlTag"), 0);\
#define IMP_PYCALLBACK_BOOL_WXWIN(CLASS, PCLASS, CBNAME) \
bool CLASS::CBNAME(wxWindow* a) { \
- bool rval=False; \
+ bool rval=false; \
bool found; \
bool blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
- PyObject* obj = wxPyMake_wxObject(a); \
+ PyObject* obj = wxPyMake_wxObject(a,false); \
rval = wxPyCBH_callCallback(m_myInst, Py_BuildValue("(O)", obj)); \
Py_DECREF(obj); \
} \
#define IMP_PYCALLBACK_BOOL_WXWINDC(CLASS, PCLASS, CBNAME) \
bool CLASS::CBNAME(wxWindow* a, wxDC& b) { \
- bool rval=False; \
+ bool rval=false; \
bool found; \
bool blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
- PyObject* win = wxPyMake_wxObject(a); \
- PyObject* dc = wxPyMake_wxObject(&b); \
+ PyObject* win = wxPyMake_wxObject(a,false); \
+ PyObject* dc = wxPyMake_wxObject(&b,false); \
rval = wxPyCBH_callCallback(m_myInst, Py_BuildValue("(OO)", win, dc));\
Py_DECREF(win); \
Py_DECREF(dc); \
bool found; \
bool blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
- PyObject* obj = wxPyMake_wxObject(a); \
+ PyObject* obj = wxPyMake_wxObject(a,false); \
wxPyCBH_callCallback(m_myInst, Py_BuildValue("(O)", obj)); \
Py_DECREF(obj); \
} \
#define IMP_PYCALLBACK_BOOL_(CLASS, PCLASS, CBNAME) \
bool CLASS::CBNAME() { \
- bool rval=False; \
+ bool rval=false; \
bool found; \
bool blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) \
#define IMP_PYCALLBACK_BOOL_const(CLASS, PCLASS, CBNAME) \
bool CLASS::CBNAME() const { \
- bool rval=False; \
+ bool rval=false; \
bool found; \
bool blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) \
wxFSFile* rval=0; \
if (wxPyCBH_findCallback(m_myInst, #CBNAME)) { \
PyObject* ro; \
- PyObject* obj = wxPyMake_wxObject(&a); \
+ PyObject* obj = wxPyMake_wxObject(&a,false); \
PyObject* s = wx2PyString(b); \
ro = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue("(OO)", \
obj, s)); \
if (ro) { \
- wxPyConvertSwigPtr(ro, (void **)&rval, wxT("wxFSFILE")); \
+ wxPyConvertSwigPtr(ro, (void **)&rval, wxT("wxFSFile")); \
Py_DECREF(ro); \
} \
Py_DECREF(obj); \
#define IMP_PYCALLBACK_BOOL_DR(CLASS, PCLASS, CBNAME) \
bool CLASS::CBNAME(wxDragResult a) { \
- bool rval=False; \
+ bool rval=false; \
bool found; \
bool blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) \
#define IMP_PYCALLBACK_BOOL_INTINTSTR_pure(CLASS, PCLASS, CBNAME) \
bool CLASS::CBNAME(int a, int b, const wxString& c) { \
- bool rval=False; \
+ bool rval=false; \
bool blocked = wxPyBeginBlockThreads(); \
if (wxPyCBH_findCallback(m_myInst, #CBNAME)) { \
PyObject* s = wx2PyString(c); \
#define IMP_PYCALLBACK_bool_any(CLASS, PCLASS, CBNAME, Type) \
bool CLASS::CBNAME(Type& a) { \
- bool rv=False; \
+ bool rv=false; \
bool found; \
bool blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
#define IMP_PYCALLBACK_bool_anypure(CLASS, PCLASS, CBNAME, Type) \
bool CLASS::CBNAME(Type& a) { \
- bool rv=False; \
+ bool rv=false; \
bool blocked = wxPyBeginBlockThreads(); \
if (wxPyCBH_findCallback(m_myInst, #CBNAME)) { \
PyObject* obj = wxPyConstructObject((void*)&a, wxT(#Type), 0); \
}
+
+
+#define DEC_PYCALLBACK_INT_LONG_virtual(CBNAME) \
+ int CBNAME(long a) const;
+
+
+#define IMP_PYCALLBACK_INT_LONG_virtual(CLASS, PCLASS, CBNAME) \
+ int CLASS::CBNAME(long a) const { \
+ int rval=-1; /* this rval is important for OnGetItemImage */ \
+ bool found; \
+ bool blocked = wxPyBeginBlockThreads(); \
+ if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
+ PyObject* ro; \
+ ro = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue("(l)",a)); \
+ if (ro) { \
+ rval = PyInt_AsLong(ro); \
+ Py_DECREF(ro); \
+ } \
+ } \
+ wxPyEndBlockThreads(blocked); \
+ return rval; \
+ }
+
+
//---------------------------------------------------------------------------
#define DEC_PYCALLBACK_LISTATTR_LONG(CBNAME) \
#define IMP_PYCALLBACK_BOOL_ME(CLASS, PCLASS, CBNAME) \
bool CLASS::CBNAME(wxMouseEvent& e) { \
- bool rval=False; \
+ bool rval=false; \
bool found; \
bool blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
#define IMP_PYCALLBACK_BOOL_NODE_pure(CLASS, PCLASS, CBNAME) \
bool CLASS::CBNAME(wxXmlNode* a) { \
- bool rv=False; \
+ bool rv=false; \
bool blocked = wxPyBeginBlockThreads(); \
if (wxPyCBH_findCallback(m_myInst, #CBNAME)) { \
PyObject* obj = wxPyConstructObject((void*)a, wxT("wxXmlNode"), 0); \
bool found; \
bool blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
- PyObject* obj = wxPyMake_wxObject(&a); \
+ PyObject* obj = wxPyMake_wxObject(&a,false); \
PyObject* ro = wxPyConstructObject((void*)&b, wxT("wxRect"), 0); \
wxPyCBH_callCallback(m_myInst, Py_BuildValue("(OOi)", obj, ro, (int)c)); \
Py_DECREF(obj); \
bool found; \
bool blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
- PyObject* obj = wxPyMake_wxObject(&a); \
+ PyObject* obj = wxPyMake_wxObject(&a,false); \
PyObject* ro = wxPyConstructObject((void*)&b, wxT("wxRect"), 0); \
wxPyCBH_callCallback(m_myInst, Py_BuildValue("(OOi)", obj, ro, (int)c)); \
Py_DECREF(obj); \