]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/contrib/ogl/ogl.i
Lots of SWIGging
[wxWidgets.git] / wxPython / contrib / ogl / ogl.i
index 2bf13628ecf791ec45c236134e99796be31d16eb..fff16bd5a4df1ae6967ab5d3f0190115bce801ca 100644 (file)
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
+%define DOCSTRING
+"The Object Graphics Library provides for simple drawing and manipulation
+of 2D objects.  (This version is deprecated, please use wx.lib.ogl instead.)"
+%enddef
 
-%module ogl
+%module(package="wx", docstring=DOCSTRING) ogl
 
 %{
 #include "wx/wxPython/wxPython.h"
 #include "wx/wxPython/pyclasses.h"
 #include "oglhelpers.h"
 
-
-    static const wxString wxPyEmptyString(wxT(""));
 %}
 
 //---------------------------------------------------------------------------
 
 %import windows.i
+%pythoncode { wx = _core }
+%pythoncode { __docfilter__ = wx.__DocFilter(globals()) }
+
+%pythoncode {
+    import warnings
+    warnings.warn("This module is deprecated.  Please use the wx.lib.ogl package instead.",    
+                  DeprecationWarning, stacklevel=2)
+}
+
 
-%pythoncode { wx = core }
+MAKE_CONST_WXSTRING_NOSWIG(EmptyString);
 
 %include _ogl_rename.i
 
@@ -146,7 +157,10 @@ enum {
 
 //---------------------------------------------------------------------------
 
+MustHaveApp(wxOGLInitialize);
 void wxOGLInitialize();
+
+MustHaveApp(wxOGLCleanUp);
 void wxOGLCleanUp();
 
 
@@ -157,17 +171,17 @@ void wxOGLCleanUp();
 // 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, const wxChar* className) {
-    wxPyBeginBlockThreads();
+    bool blocked = wxPyBeginBlockThreads();
     if (!PyList_Check(pyList)) {
         PyErr_SetString(PyExc_TypeError, "Expected a list object.");
-        wxPyEndBlockThreads();
+        wxPyEndBlockThreads(blocked);
         return NULL;
     }
     int count = PyList_Size(pyList);
     wxList* list = new wxList;
     if (! list) {
         PyErr_SetString(PyExc_MemoryError, "Unable to allocate wxList object");
-        wxPyEndBlockThreads();
+        wxPyEndBlockThreads(blocked);
         return NULL;
     }
     for (int x=0; x<count; x++) {
@@ -178,29 +192,29 @@ wxList* wxPy_wxListHelper(PyObject* pyList, const wxChar* className) {
             wxString errmsg;
             errmsg.Printf(wxT("Type error, expected list of %s objects"), className);
             PyErr_SetString(PyExc_TypeError, errmsg.mb_str());
-            wxPyEndBlockThreads();
+            wxPyEndBlockThreads(blocked);
             return NULL;
         }
         list->Append(wxo);
     }
-    wxPyEndBlockThreads();
+    wxPyEndBlockThreads(blocked);
     return list;
 }
 
 //---------------------------------------------------------------------------
 
 wxList* wxPy_wxRealPoint_ListHelper(PyObject* pyList) {
-    wxPyBeginBlockThreads();
+    bool blocked = wxPyBeginBlockThreads();
     if (!PyList_Check(pyList)) {
         PyErr_SetString(PyExc_TypeError, "Expected a list object.");
-        wxPyEndBlockThreads();
+        wxPyEndBlockThreads(blocked);
         return NULL;
     }
     int count = PyList_Size(pyList);
     wxList* list = new wxList;
     if (! list) {
         PyErr_SetString(PyExc_MemoryError, "Unable to allocate wxList object");
-        wxPyEndBlockThreads();
+        wxPyEndBlockThreads(blocked);
         return NULL;
     }
     for (int x=0; x<count; x++) {
@@ -219,13 +233,13 @@ wxList* wxPy_wxRealPoint_ListHelper(PyObject* pyList) {
             wxRealPoint* wxo = NULL;
             if (wxPyConvertSwigPtr(pyo, (void **)&wxo, wxT("wxRealPoint"))) {
                 PyErr_SetString(PyExc_TypeError, "Type error, expected list of wxRealPoint objects or 2-tuples");
-                wxPyEndBlockThreads();
+                wxPyEndBlockThreads(blocked);
                 return NULL;
             }
             list->Append((wxObject*) new wxRealPoint(*wxo));
         }
     }
-    wxPyEndBlockThreads();
+    wxPyEndBlockThreads(blocked);
     return list;
 }
 
@@ -255,6 +269,27 @@ PyObject*  wxPyMake_wxShapeEvtHandler(wxShapeEvtHandler* source) {
 
 //---------------------------------------------------------------------------
 
+PyObject* wxPy_ConvertRealPointList(wxListBase* listbase) {
+    wxList*     list = (wxList*)listbase;
+    PyObject*   pyList;
+    PyObject*   pyObj;
+    wxObject*   wxObj;
+    wxNode*     node = list->GetFirst();
+    
+    bool blocked = wxPyBeginBlockThreads();
+    pyList = PyList_New(0);
+    while (node) {
+        wxObj = node->GetData();
+        pyObj = wxPyConstructObject(wxObj, wxT("wxRealPoint"), 0);
+        PyList_Append(pyList, pyObj);
+        node = node->GetNext();
+    } 
+    wxPyEndBlockThreads(blocked);
+    return pyList;
+}
+
+//---------------------------------------------------------------------------
+
 PyObject* wxPy_ConvertShapeList(wxListBase* listbase) {
     wxList*     list = (wxList*)listbase;
     PyObject*   pyList;
@@ -262,7 +297,7 @@ PyObject* wxPy_ConvertShapeList(wxListBase* listbase) {
     wxObject*   wxObj;
     wxNode*     node = list->GetFirst();
 
-    wxPyBeginBlockThreads();
+    bool blocked = wxPyBeginBlockThreads();
     pyList = PyList_New(0);
     while (node) {
         wxObj = node->GetData();
@@ -270,7 +305,7 @@ PyObject* wxPy_ConvertShapeList(wxListBase* listbase) {
         PyList_Append(pyList, pyObj);
         node = node->GetNext();
     }
-    wxPyEndBlockThreads();
+    wxPyEndBlockThreads(blocked);
     return pyList;
 }