]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/wxPython/src/helpers.h
jconfig.h uses configures results
[wxWidgets.git] / utils / wxPython / src / helpers.h
index 8ccf0d1987d35eb7a1e404211c33fed16d906da5..9e0945d42fd626c713be2722ce84ceaf2af0ac17 100644 (file)
 #include <wx/wx.h>
 
 
+//----------------------------------------------------------------------
+
+// if we want to handle threads and Python threads are available...
+#if defined(WXP_USE_THREAD) && defined(WITH_THREAD)
+
+#define WXP_WITH_THREAD
+#define wxPy_BEGIN_ALLOW_THREADS  Py_BEGIN_ALLOW_THREADS
+#define wxPy_END_ALLOW_THREADS    Py_END_ALLOW_THREADS
+
+#else  // no Python threads...
+#undef WXP_WITH_THREAD
+#define wxPy_BEGIN_ALLOW_THREADS
+#define wxPy_END_ALLOW_THREADS
+#endif
+
+
 //----------------------------------------------------------------------
 
 class wxPyApp: public wxApp
 {
 public:
+    wxPyApp();
+    ~wxPyApp();
     int  MainLoop(void);
     bool OnInit(void);
     void AfterMainLoop(void);
@@ -66,8 +84,8 @@ extern wxString wxPyEmptyStr;
 
 class wxPyCallback : public wxObject {
 public:
-    wxPyCallback(PyObject* func)    { m_func = func; Py_INCREF(m_func); }
-    ~wxPyCallback()                 { Py_DECREF(m_func); }
+    wxPyCallback(PyObject* func);
+    ~wxPyCallback();
 
     void EventThunker(wxEvent& event);
 
@@ -100,11 +118,38 @@ private:
     PyObject*   func;
 };
 
+//---------------------------------------------------------------------------
+
+class wxPyEvent : public wxCommandEvent {
+    DECLARE_DYNAMIC_CLASS(wxPyEvent)
+public:
+    wxPyEvent(wxEventType commandType = wxEVT_NULL, PyObject* userData = Py_None);
+    ~wxPyEvent();
+
+    void SetUserData(PyObject* userData);
+    PyObject* GetUserData();
+
+private:
+    PyObject* m_userData;
+};
+
 //---------------------------------------------------------------------------
 /////////////////////////////////////////////////////////////////////////////
 //
 // $Log$
+// Revision 1.7  1999/04/30 03:29:18  RD
+// wxPython 2.0b9, first phase (win32)
+// Added gobs of stuff, see wxPython/README.txt for details
+//
+// Revision 1.6.4.1  1999/03/27 23:29:14  RD
+//
+// wxPython 2.0b8
+//     Python thread support
+//     various minor additions
+//     various minor fixes
+//
 // Revision 1.6  1998/11/25 08:45:26  RD
+//
 // Added wxPalette, wxRegion, wxRegionIterator, wxTaskbarIcon
 // Added events for wxGrid
 // Other various fixes and additions