+//---------------------------------------------------------------------------
+// Export a C API in a struct. Other modules will be able to load this from
+// the wxc module and will then have safe access to these functions, even if
+// in another shared library.
+
+class wxPyCallbackHelper;
+
+struct wxPyCoreAPI {
+
+ void (*p_SWIG_MakePtr)(char*, void*, char*);
+ char* (*p_SWIG_GetPtr)(char*, void**, char*);
+ char* (*p_SWIG_GetPtrObj)(PyObject*, void**, char*);
+ void (*p_SWIG_RegisterMapping)(char*, char*, void *(*cast)(void *));
+ void (*p_SWIG_addvarlink)(PyObject*, char*, PyObject *(*get_attr)(void), int (*set_attr)(PyObject *p));
+ PyObject* (*p_SWIG_newvarlink)(void);
+
+ PyThreadState* (*p_wxPyBeginAllowThreads)();
+ void (*p_wxPyEndAllowThreads)(PyThreadState* state);
+ void (*p_wxPyBeginBlockThreads)();
+ void (*p_wxPyEndBlockThreads)();
+
+ PyObject* (*p_wxPyConstructObject)(void *, const char *, int);
+ PyObject* (*p_wxPy_ConvertList)(wxListBase* list, const char* className);
+
+ byte* (*p_byte_LIST_helper)(PyObject* source);
+ int* (*p_int_LIST_helper)(PyObject* source);
+ long* (*p_long_LIST_helper)(PyObject* source);
+ char** (*p_string_LIST_helper)(PyObject* source);
+ wxPoint* (*p_wxPoint_LIST_helper)(PyObject* source, int* npoints);
+ wxBitmap** (*p_wxBitmap_LIST_helper)(PyObject* source);
+ wxString* (*p_wxString_LIST_helper)(PyObject* source);
+ wxAcceleratorEntry* (*p_wxAcceleratorEntry_LIST_helper)(PyObject* source);
+
+ bool (*p_wxSize_helper)(PyObject* source, wxSize** obj);
+ bool (*p_wxPoint_helper)(PyObject* source, wxPoint** obj);
+ bool (*p_wxRealPoint_helper)(PyObject* source, wxRealPoint** obj);
+ bool (*p_wxRect_helper)(PyObject* source, wxRect** obj);
+ bool (*p_wxColour_helper)(PyObject* source, wxColour** obj);
+
+ void (*p_wxPyCBH_setCallbackInfo)(wxPyCallbackHelper& cbh, PyObject* self, PyObject* klass, int incref);
+ bool (*p_wxPyCBH_findCallback)(const wxPyCallbackHelper& cbh, const char* name);
+ int (*p_wxPyCBH_callCallback)(const wxPyCallbackHelper& cbh, PyObject* argTuple);
+ PyObject* (*p_wxPyCBH_callCallbackObj)(const wxPyCallbackHelper& cbh, PyObject* argTuple);
+ void (*p_wxPyCBH_delete)(wxPyCallbackHelper* cbh);
+
+ PyObject* (*p_wxPyClassExists)(const char* className);
+ PyObject* (*p_wxPyMake_wxObject)(wxObject* source, bool checkEvtHandler);
+ PyObject* (*p_wxPyMake_wxSizer)(wxSizer* source);
+ void (*p_wxPyPtrTypeMap_Add)(const char* commonName, const char* ptrName);
+ PyObject* (*p_wxArrayString2PyList_helper)(const wxArrayString& arr);
+};
+
+#ifdef wxPyUSE_EXPORT
+static wxPyCoreAPI* wxPyCoreAPIPtr = NULL; // Each module needs one, but may not use it.
+#endif