void __wxPyPreStart(PyObject*);
void __wxPyCleanup();
PyObject* __wxPySetDictionary(PyObject*, PyObject* args);
-PyObject* __wxPyFixStockObjects(PyObject*, PyObject* args);
void wxSetDefaultPyEncoding(const char* encoding);
const char* wxGetDefaultPyEncoding();
bool wxPyCheckForApp();
-
-template<class T>
-bool wxPyTwoIntItem_helper(PyObject* source, T** obj, const wxChar* name)
-{
- // If source is an object instance then it may already be the right type
- if (wxPySwigInstance_Check(source)) {
- T* ptr;
- if (! wxPyConvertSwigPtr(source, (void **)&ptr, name))
- goto error;
- *obj = ptr;
- return true;
- }
- // otherwise a 2-tuple of integers is expected
- else if (PySequence_Check(source) && PyObject_Length(source) == 2) {
- PyObject* o1 = PySequence_GetItem(source, 0);
- PyObject* o2 = PySequence_GetItem(source, 1);
- if (!PyNumber_Check(o1) || !PyNumber_Check(o2)) {
- Py_DECREF(o1);
- Py_DECREF(o2);
- goto error;
- }
- **obj = T(PyInt_AsLong(o1), PyInt_AsLong(o2));
- Py_DECREF(o1);
- Py_DECREF(o2);
- 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;
-}
-
-
// Other helpful stuff
bool wxPy2int_seq_helper(PyObject* source, int* i1, int* i2);