]>
git.saurik.com Git - wxWidgets.git/blob - wxPython/include/wx/wxPython/pyclasses.h
2859590f0980421619675b505639338d2a3104bf
1 ////////////////////////////////////////////////////////////////////////////
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
9 // Created: 11-Oct-2003
11 // Copyright: (c) 2003 by Total Control Software
12 // Licence: wxWindows license
13 /////////////////////////////////////////////////////////////////////////////
15 #ifndef __pyclasses_h__
16 #define __pyclasses_h__
20 //---------------------------------------------------------------------------
22 class wxPySizer
: public wxSizer
{
23 DECLARE_DYNAMIC_CLASS(wxPySizer
);
25 wxPySizer() : wxSizer() {};
27 DEC_PYCALLBACK___pure(RecalcSizes
);
28 DEC_PYCALLBACK_wxSize__pure(CalcMin
);
33 //---------------------------------------------------------------------------
35 class wxPyValidator
: public wxValidator
{
36 DECLARE_DYNAMIC_CLASS(wxPyValidator
);
44 wxObject
* Clone() const {
45 wxPyValidator
* ptr
= NULL
;
46 wxPyValidator
* self
= (wxPyValidator
*)this;
48 bool blocked
= wxPyBeginBlockThreads();
49 if (wxPyCBH_findCallback(self
->m_myInst
, "Clone")) {
51 ro
= wxPyCBH_callCallbackObj(self
->m_myInst
, Py_BuildValue("()"));
53 wxPyConvertSwigPtr(ro
, (void **)&ptr
, wxT("wxPyValidator"));
57 wxPyEndBlockThreads(blocked
);
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
68 DEC_PYCALLBACK_BOOL_WXWIN(Validate
);
69 DEC_PYCALLBACK_BOOL_(TransferToWindow
);
70 DEC_PYCALLBACK_BOOL_(TransferFromWindow
);
76 //---------------------------------------------------------------------------
79 class wxPyTimer
: public wxTimer
82 wxPyTimer(wxEvtHandler
*owner
=NULL
, int id
= -1)
85 if (owner
== NULL
) SetOwner(this);
88 DEC_PYCALLBACK__(Notify
);
90 DECLARE_ABSTRACT_CLASS(wxPyTimer
)
94 //---------------------------------------------------------------------------
97 class wxPyProcess
: public wxProcess
{
99 wxPyProcess(wxEvtHandler
*parent
= NULL
, int id
= -1)
100 : wxProcess(parent
, id
)
103 DEC_PYCALLBACK_VOID_INTINT(OnTerminate
);
109 //---------------------------------------------------------------------------
112 class wxPyDropSource
: public wxDropSource
{
115 wxPyDropSource(wxWindow
*win
= NULL
,
116 const wxCursor
©
= wxNullCursor
,
117 const wxCursor
&move
= wxNullCursor
,
118 const wxCursor
&none
= wxNullCursor
)
119 : wxDropSource(win
, copy
, move
, none
) {}
121 wxPyDropSource(wxWindow
*win
= NULL
,
122 const wxIcon
& copy
= wxNullIcon
,
123 const wxIcon
& move
= wxNullIcon
,
124 const wxIcon
& none
= wxNullIcon
)
125 : wxDropSource(win
, copy
, move
, none
) {}
127 ~wxPyDropSource() { }
129 DEC_PYCALLBACK_BOOL_DR(GiveFeedback
);
134 class wxPyDropTarget
: public wxDropTarget
{
136 wxPyDropTarget(wxDataObject
*dataObject
= NULL
)
137 : wxDropTarget(dataObject
) {}
139 // called when mouse leaves the window: might be used to remove the
140 // feedback which was given in OnEnter()
141 DEC_PYCALLBACK__(OnLeave
);
143 // called when the mouse enters the window (only once until OnLeave())
144 DEC_PYCALLBACK_DR_2WXCDR(OnEnter
);
146 // called when the mouse moves in the window - shouldn't take long to
147 // execute or otherwise mouse movement would be too slow
148 DEC_PYCALLBACK_DR_2WXCDR(OnDragOver
);
150 // called after OnDrop() returns True: you will usually just call
151 // GetData() from here and, probably, also refresh something to update the
152 // new data and, finally, return the code indicating how did the operation
153 // complete (returning default value in case of success and wxDragError on
154 // failure is usually ok)
155 DEC_PYCALLBACK_DR_2WXCDR_pure(OnData
);
157 // this function is called when data is dropped at position (x, y) - if it
158 // returns True, OnData() will be called immediately afterwards which will
159 // allow to retrieve the data dropped.
160 DEC_PYCALLBACK_BOOL_INTINT(OnDrop
);
168 //---------------------------------------------------------------------------
170 class wxPyVScrolledWindow
;
172 class wxPyHtmlListBox
;
174 class wxPyScrolledWindow
;
175 class wxPyPopupTransientWindow
;
176 class wxPyPreviewFrame
;
178 class wxPyPreviewControlBar
;
179 class wxPyPrintPreview
;
183 class wxGenericDragImage
;
184 class wxPyTaskBarIcon
;
189 class wxTaskBarIconEvent
;
191 class wxToggleButton
;
194 //---------------------------------------------------------------------------
196 //---------------------------------------------------------------------------
197 //---------------------------------------------------------------------------