]> git.saurik.com Git - wxWidgets.git/blob - wxPython/include/wx/wxPython/pyclasses.h
f07a5de9184d26336c7fcbd8aac92b9a9ec96ad8
[wxWidgets.git] / wxPython / include / wx / wxPython / pyclasses.h
1 ////////////////////////////////////////////////////////////////////////////
2 // Name: pyclasses.h
3 // Purpose: wxPython python-aware classes for redirecting virtual method
4 // calls for classes located in the core but that need to be
5 // visible to multiple modules
6 //
7 // Author: Robin Dunn
8 //
9 // Created: 11-Oct-2003
10 // RCS-ID: $Id$
11 // Copyright: (c) 2003 by Total Control Software
12 // Licence: wxWindows license
13 /////////////////////////////////////////////////////////////////////////////
14
15 #ifndef __pyclasses_h__
16 #define __pyclasses_h__
17
18
19
20 //---------------------------------------------------------------------------
21
22 class wxPySizer : public wxSizer {
23 DECLARE_DYNAMIC_CLASS(wxPySizer);
24 public:
25 wxPySizer() : wxSizer() {};
26
27 DEC_PYCALLBACK___pure(RecalcSizes);
28 DEC_PYCALLBACK_wxSize__pure(CalcMin);
29 PYPRIVATE;
30 };
31
32
33 //---------------------------------------------------------------------------
34
35 class wxPyValidator : public wxValidator {
36 DECLARE_DYNAMIC_CLASS(wxPyValidator);
37 public:
38 wxPyValidator() {
39 }
40
41 ~wxPyValidator() {
42 }
43
44 wxObject* Clone() const {
45 wxPyValidator* ptr = NULL;
46 wxPyValidator* self = (wxPyValidator*)this;
47
48 wxPyBeginBlockThreads();
49 if (wxPyCBH_findCallback(self->m_myInst, "Clone")) {
50 PyObject* ro;
51 ro = wxPyCBH_callCallbackObj(self->m_myInst, Py_BuildValue("()"));
52 if (ro) {
53 wxPyConvertSwigPtr(ro, (void **)&ptr, wxT("wxPyValidator"));
54 Py_DECREF(ro);
55 }
56 }
57 wxPyEndBlockThreads();
58
59 // This is very dangerous!!! But is the only way I could find
60 // to squash a memory leak. Currently it is okay, but if the
61 // validator architecture in wxWindows ever changes, problems
62 // could arise.
63 delete self;
64 return ptr;
65 }
66
67
68 DEC_PYCALLBACK_BOOL_WXWIN(Validate);
69 DEC_PYCALLBACK_BOOL_(TransferToWindow);
70 DEC_PYCALLBACK_BOOL_(TransferFromWindow);
71
72 PYPRIVATE;
73 };
74
75
76 //---------------------------------------------------------------------------
77
78
79 class wxPyPen : public wxPen {
80 public:
81 wxPyPen(wxColour& colour, int width=1, int style=wxSOLID)
82 : wxPen(colour, width, style)
83 { m_dash = NULL; }
84 ~wxPyPen();
85
86 void SetDashes(int nb_dashes, const wxDash *dash);
87
88 private:
89 wxDash* m_dash;
90 };
91
92
93 //---------------------------------------------------------------------------
94
95 class wxPyTimer : public wxTimer
96 {
97 public:
98 wxPyTimer(wxEvtHandler *owner=NULL, int id = -1)
99 : wxTimer(owner, id)
100 {
101 if (owner == NULL) SetOwner(this);
102 }
103
104 DEC_PYCALLBACK__(Notify);
105 PYPRIVATE;
106 };
107
108
109 //---------------------------------------------------------------------------
110
111
112 class wxPyProcess : public wxProcess {
113 public:
114 wxPyProcess(wxEvtHandler *parent = NULL, int id = -1)
115 : wxProcess(parent, id)
116 {}
117
118 DEC_PYCALLBACK_VOID_INTINT(OnTerminate);
119
120 PYPRIVATE;
121 };
122
123
124 //---------------------------------------------------------------------------
125
126 class wxPyVScrolledWindow;
127 class wxPyVListBox;
128 class wxPyHtmlListBox;
129 class wxPyPanel;
130 class wxPyPopupTransientWindow;
131 class wxPyPreviewFrame;
132 class wxPyWindow;
133 class wxPyPreviewControlBar;
134 class wxPyPrintPreview;
135 class wxPyListCtrl;
136 class wxPyControl;
137 class wxPyPrintout;
138 class wxGenericDragImage;
139
140
141 #ifdef __WXMAC__
142 class wxPopupWindow;
143 class wxTaskBarIconEvent;
144 class wxTaskBarIcon;
145 class wxToggleButton;
146 #endif
147
148 //---------------------------------------------------------------------------
149
150 //---------------------------------------------------------------------------
151 //---------------------------------------------------------------------------
152 #endif