X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8a693e6e0460b6b3c32e4b6f114a3ab7b7cd24ea..f6bcfd974ef26faf6f91a62cac09827e09463fd1:/wxPython/contrib/ogl/oglhelpers.cpp diff --git a/wxPython/contrib/ogl/oglhelpers.cpp b/wxPython/contrib/ogl/oglhelpers.cpp new file mode 100644 index 0000000000..ab2152276a --- /dev/null +++ b/wxPython/contrib/ogl/oglhelpers.cpp @@ -0,0 +1,103 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: oglhelpers.cpp +// Purpose: Some Helper functions to help in data conversions in OGL +// +// Author: Robin Dunn +// +// Created: 3-Sept-1999 +// RCS-ID: $Id$ +// Copyright: (c) 1998 by Total Control Software +// Licence: wxWindows license +///////////////////////////////////////////////////////////////////////////// + +#include +#include "helpers.h" + +//--------------------------------------------------------------------------- +// This one will work for any class for the VERY generic cases, but beyond that +// the helper needs to know more about the type. + +wxList* wxPy_wxListHelper(PyObject* pyList, char* className) { + bool doSave = wxPyRestoreThread(); + if (!PyList_Check(pyList)) { + PyErr_SetString(PyExc_TypeError, "Expected a list object."); + wxPySaveThread(doSave); + return NULL; + } + int count = PyList_Size(pyList); + wxList* list = new wxList; + if (! list) { + PyErr_SetString(PyExc_MemoryError, "Unable to allocate wxList object"); + wxPySaveThread(doSave); + return NULL; + } + for (int x=0; xAppend(wxo); + } + wxPySaveThread(doSave); + return list; +} + +//--------------------------------------------------------------------------- + +wxList* wxPy_wxRealPoint_ListHelper(PyObject* pyList) { + bool doSave = wxPyRestoreThread(); + if (!PyList_Check(pyList)) { + PyErr_SetString(PyExc_TypeError, "Expected a list object."); + wxPySaveThread(doSave); + return NULL; + } + int count = PyList_Size(pyList); + wxList* list = new wxList; + if (! list) { + PyErr_SetString(PyExc_MemoryError, "Unable to allocate wxList object"); + wxPySaveThread(doSave); + return NULL; + } + for (int x=0; xAppend((wxObject*) new wxRealPoint(val1, val2)); + + } else { + wxRealPoint* wxo = NULL; + if (SWIG_GetPtrObj(pyo, (void **)&wxo, "_wxRealPoint_p")) { + PyErr_SetString(PyExc_TypeError, "Type error, expected list of wxRealPoint objects or 2-tuples"); + wxPySaveThread(doSave); + return NULL; + } + list->Append((wxObject*) new wxRealPoint(*wxo)); + } + } + wxPySaveThread(doSave); + return list; +} + + +//--------------------------------------------------------------------------- + + + + + + + + +