]> git.saurik.com Git - wxWidgets.git/blob - utils/wxPython/src/helpers.h
Initial version
[wxWidgets.git] / utils / wxPython / src / helpers.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: helpers.h
3 // Purpose: Helper functions/classes for the wxPython extenaion module
4 //
5 // Author: Robin Dunn
6 //
7 // Created: 7/1/97
8 // RCS-ID: $Id$
9 // Copyright: (c) 1998 by Total Control Software
10 // Licence: wxWindows license
11 /////////////////////////////////////////////////////////////////////////////
12
13 #ifndef __wxp_helpers__
14 #define __wxp_helpers__
15
16 #include <wx/wx.h>
17
18
19 //----------------------------------------------------------------------
20
21 class wxPyApp: public wxApp
22 {
23 public:
24 int MainLoop(void);
25 bool OnInit(void);
26 void AfterMainLoop(void);
27 };
28
29 extern wxPyApp *wxPythonApp;
30
31 //----------------------------------------------------------------------
32
33 PyObject* __wxStart(PyObject*, PyObject* args);
34
35 extern PyObject* wxPython_dict;
36 PyObject* __wxSetDictionary(PyObject*, PyObject* args);
37
38 extern wxHashTable* wxPyWindows; // keep track of all windows so we
39 // don't accidentally delete them twice.
40
41 void wxPyEventThunker(wxObject*, wxEvent& event);
42
43 //----------------------------------------------------------------------
44
45
46 #ifndef SWIGCODE
47 extern "C" void SWIG_MakePtr(char *, void *, char *);
48 extern "C" char *SWIG_GetPtr(char *, void **, char *);
49 #endif
50
51
52 #ifdef _MSC_VER
53 # pragma warning(disable:4800)
54 #endif
55
56
57 // Non-const versions to keep SWIG happy.
58 extern wxPoint wxPyDefaultPosition;
59 extern wxSize wxPyDefaultSize;
60 extern char* wxPyPanelNameStr;
61 extern wxString wxPyEmptyStr;
62
63 //----------------------------------------------------------------------
64
65 class wxPyCallback : public wxObject {
66 public:
67 wxPyCallback(PyObject* func) { m_func = func; Py_INCREF(m_func); }
68 ~wxPyCallback() { Py_DECREF(m_func); }
69
70 void EventThunker(wxEvent& event);
71
72 PyObject* m_func;
73 };
74
75 //---------------------------------------------------------------------------
76
77 class wxPyMenu : public wxMenu {
78 public:
79 wxPyMenu(const wxString& title = "", PyObject* func=NULL);
80 ~wxPyMenu();
81
82 private:
83 static void MenuCallback(wxMenu& menu, wxCommandEvent& evt);
84 PyObject* func;
85 };
86
87 //---------------------------------------------------------------------------
88
89 class wxPyTimer : public wxTimer {
90 public:
91 wxPyTimer(PyObject* callback);
92 ~wxPyTimer();
93
94 void Notify();
95
96 private:
97 PyObject* func;
98 };
99
100 //---------------------------------------------------------------------------
101 /////////////////////////////////////////////////////////////////////////////
102 //
103 // $Log$
104 // Revision 1.1 1998/08/09 08:25:51 RD
105 // Initial version
106 //
107 //
108
109 #endif
110