1 #----------------------------------------------------------------------------
3 # Purpose: This file is appended to the shadow class file generated
4 # by SWIG. We add some unSWIGable things here.
9 # Copyright: (c) 1998 by Total Control Software
10 # Licence: wxWindows license
11 #----------------------------------------------------------------------------
15 #----------------------------------------------------------------------
16 # This gives this module's dictionary to the C++ extension code...
18 _wxSetDictionary(vars())
21 #----------------------------------------------------------------------
22 #----------------------------------------------------------------------
23 # Helper function to link python methods to wxWindows virtual
26 def _checkForCallback(obj
, name
, event
, theID
=-1):
27 try: cb
= getattr(obj
, name
)
29 else: obj
.Connect(theID
, -1, event
, cb
)
32 #----------------------------------------------------------------------
33 #----------------------------------------------------------------------
34 # functions that look and act like the C++ Macros of the same name
38 def EVT_SIZE(win
, func
):
39 win
.Connect(-1, -1, wxEVT_SIZE
, func
)
41 def EVT_MOVE(win
, func
):
42 win
.Connect(-1, -1, wxEVT_MOVE
, func
)
44 def EVT_CLOSE(win
, func
):
45 win
.Connect(-1, -1, wxEVT_CLOSE_WINDOW
, func
)
47 def EVT_PAINT(win
, func
):
48 win
.Connect(-1, -1, wxEVT_PAINT
, func
)
50 def EVT_ERASE_BACKGROUND(win
, func
):
51 win
.Connect(-1, -1, wxEVT_ERASE_BACKGROUND
, func
)
53 def EVT_CHAR(win
, func
):
54 win
.Connect(-1, -1, wxEVT_CHAR
, func
)
56 def EVT_CHAR_HOOK(win
, func
):
57 win
.Connect(-1, -1, wxEVT_CHAR_HOOK
, func
)
59 def EVT_KEY_DOWN(win
, func
):
60 win
.Connect(-1, -1, wxEVT_KEY_DOWN
, func
)
62 def EVT_KEY_UP(win
, func
):
63 win
.Connect(-1, -1, wxEVT_KEY_UP
, func
)
65 def EVT_MENU_OPEN(win
, func
):
66 win
.Connect(-1, -1, wxEVT_MENU_OPEN
, func
)
68 def EVT_MENU_CLOSE(win
, func
):
69 win
.Connect(-1, -1, wxEVT_MENU_CLOSE
, func
)
71 def EVT_MENU_HIGHLIGHT(win
, id, func
):
72 win
.Connect(id, -1, wxEVT_MENU_HIGHLIGHT
, func
)
74 def EVT_MENU_HIGHLIGHT_ALL(win
, func
):
75 win
.Connect(-1, -1, wxEVT_MENU_HIGHLIGHT
, func
)
77 def EVT_SET_FOCUS(win
, func
):
78 win
.Connect(-1, -1, wxEVT_SET_FOCUS
, func
)
80 def EVT_KILL_FOCUS(win
, func
):
81 win
.Connect(-1, -1, wxEVT_KILL_FOCUS
, func
)
83 def EVT_CHILD_FOCUS(win
, func
):
84 win
.Connect(-1, -1, wxEVT_CHILD_FOCUS
, func
)
86 def EVT_ACTIVATE(win
, func
):
87 win
.Connect(-1, -1, wxEVT_ACTIVATE
, func
)
89 def EVT_ACTIVATE_APP(win
, func
):
90 win
.Connect(-1, -1, wxEVT_ACTIVATE_APP
, func
)
92 def EVT_END_SESSION(win
, func
):
93 win
.Connect(-1, -1, wxEVT_END_SESSION
, func
)
95 def EVT_QUERY_END_SESSION(win
, func
):
96 win
.Connect(-1, -1, wxEVT_QUERY_END_SESSION
, func
)
98 def EVT_DROP_FILES(win
, func
):
99 win
.Connect(-1, -1, wxEVT_DROP_FILES
, func
)
101 def EVT_INIT_DIALOG(win
, func
):
102 win
.Connect(-1, -1, wxEVT_INIT_DIALOG
, func
)
104 def EVT_SYS_COLOUR_CHANGED(win
, func
):
105 win
.Connect(-1, -1, wxEVT_SYS_COLOUR_CHANGED
, func
)
107 def EVT_DISPLAY_CHANGED(win
, func
):
108 win
.Connect(-1, -1, wxEVT_DISPLAY_CHANGED
, func
)
110 def EVT_SHOW(win
, func
):
111 win
.Connect(-1, -1, wxEVT_SHOW
, func
)
113 def EVT_MAXIMIZE(win
, func
):
114 win
.Connect(-1, -1, wxEVT_MAXIMIZE
, func
)
116 def EVT_ICONIZE(win
, func
):
117 win
.Connect(-1, -1, wxEVT_ICONIZE
, func
)
119 def EVT_NAVIGATION_KEY(win
, func
):
120 win
.Connect(-1, -1, wxEVT_NAVIGATION_KEY
, func
)
122 def EVT_PALETTE_CHANGED(win
, func
):
123 win
.Connect(-1, -1, wxEVT_PALETTE_CHANGED
, func
)
125 def EVT_QUERY_NEW_PALETTE(win
, func
):
126 win
.Connect(-1, -1, wxEVT_QUERY_NEW_PALETTE
, func
)
128 def EVT_WINDOW_CREATE(win
, func
):
129 win
.Connect(-1, -1, wxEVT_CREATE
, func
)
131 def EVT_WINDOW_DESTROY(win
, func
):
132 win
.Connect(-1, -1, wxEVT_DESTROY
, func
)
134 def EVT_WINDOW_CREATE_ID(win
, id, func
):
135 win
.Connect(id, -1, wxEVT_CREATE
, func
)
137 def EVT_WINDOW_DESTROY_ID(win
, id, func
):
138 win
.Connect(id, -1, wxEVT_DESTROY
, func
)
140 def EVT_SET_CURSOR(win
, func
):
141 win
.Connect(-1, -1, wxEVT_SET_CURSOR
, func
)
145 def EVT_IDLE(win
, func
):
146 win
.Connect(-1, -1, wxEVT_IDLE
, func
)
148 def EVT_UPDATE_UI(win
, id, func
):
149 win
.Connect(id, -1, wxEVT_UPDATE_UI
, func
)
151 def EVT_UPDATE_UI_RANGE(win
, id, id2
, func
):
152 win
.Connect(id, id2
, wxEVT_UPDATE_UI
, func
)
156 def EVT_LEFT_DOWN(win
, func
):
157 win
.Connect(-1, -1, wxEVT_LEFT_DOWN
, func
)
159 def EVT_LEFT_UP(win
, func
):
160 win
.Connect(-1, -1, wxEVT_LEFT_UP
, func
)
162 def EVT_MIDDLE_DOWN(win
, func
):
163 win
.Connect(-1, -1, wxEVT_MIDDLE_DOWN
, func
)
165 def EVT_MIDDLE_UP(win
, func
):
166 win
.Connect(-1, -1, wxEVT_MIDDLE_UP
, func
)
168 def EVT_RIGHT_DOWN(win
, func
):
169 win
.Connect(-1, -1, wxEVT_RIGHT_DOWN
, func
)
171 def EVT_RIGHT_UP(win
, func
):
172 win
.Connect(-1, -1, wxEVT_RIGHT_UP
, func
)
174 def EVT_MOTION(win
, func
):
175 win
.Connect(-1, -1, wxEVT_MOTION
, func
)
177 def EVT_LEFT_DCLICK(win
, func
):
178 win
.Connect(-1, -1, wxEVT_LEFT_DCLICK
, func
)
180 def EVT_MIDDLE_DCLICK(win
, func
):
181 win
.Connect(-1, -1, wxEVT_MIDDLE_DCLICK
, func
)
183 def EVT_RIGHT_DCLICK(win
, func
):
184 win
.Connect(-1, -1, wxEVT_RIGHT_DCLICK
, func
)
186 def EVT_LEAVE_WINDOW(win
, func
):
187 win
.Connect(-1, -1, wxEVT_LEAVE_WINDOW
, func
)
189 def EVT_ENTER_WINDOW(win
, func
):
190 win
.Connect(-1, -1, wxEVT_ENTER_WINDOW
, func
)
192 def EVT_MOUSEWHEEL(win
, func
):
193 win
.Connect(-1, -1, wxEVT_MOUSEWHEEL
, func
)
196 def EVT_MOUSE_EVENTS(win
, func
):
197 win
.Connect(-1, -1, wxEVT_LEFT_DOWN
, func
)
198 win
.Connect(-1, -1, wxEVT_LEFT_UP
, func
)
199 win
.Connect(-1, -1, wxEVT_MIDDLE_DOWN
, func
)
200 win
.Connect(-1, -1, wxEVT_MIDDLE_UP
, func
)
201 win
.Connect(-1, -1, wxEVT_RIGHT_DOWN
, func
)
202 win
.Connect(-1, -1, wxEVT_RIGHT_UP
, func
)
203 win
.Connect(-1, -1, wxEVT_MOTION
, func
)
204 win
.Connect(-1, -1, wxEVT_LEFT_DCLICK
, func
)
205 win
.Connect(-1, -1, wxEVT_MIDDLE_DCLICK
, func
)
206 win
.Connect(-1, -1, wxEVT_RIGHT_DCLICK
, func
)
207 win
.Connect(-1, -1, wxEVT_LEAVE_WINDOW
, func
)
208 win
.Connect(-1, -1, wxEVT_ENTER_WINDOW
, func
)
210 def EVT_MOUSE_CAPTURE_CHANGED(win
, func
):
211 win
.Connect(-1, -1, wxEVT_MOUSE_CAPTURE_CHANGED
, func
)
214 def EVT_COMMAND(win
, id, cmd
, func
):
215 win
.Connect(id, -1, cmd
, func
)
217 def EVT_COMMAND_RANGE(win
, id1
, id2
, cmd
, func
):
218 win
.Connect(id1
, id2
, cmd
, func
)
222 def EVT_SCROLL(win
, func
):
223 win
.Connect(-1, -1, wxEVT_SCROLL_TOP
, func
)
224 win
.Connect(-1, -1, wxEVT_SCROLL_BOTTOM
, func
)
225 win
.Connect(-1, -1, wxEVT_SCROLL_LINEUP
, func
)
226 win
.Connect(-1, -1, wxEVT_SCROLL_LINEDOWN
, func
)
227 win
.Connect(-1, -1, wxEVT_SCROLL_PAGEUP
, func
)
228 win
.Connect(-1, -1, wxEVT_SCROLL_PAGEDOWN
, func
)
229 win
.Connect(-1, -1, wxEVT_SCROLL_THUMBTRACK
, func
)
230 win
.Connect(-1, -1, wxEVT_SCROLL_THUMBRELEASE
,func
)
231 win
.Connect(-1, -1, wxEVT_SCROLL_ENDSCROLL
, func
)
233 def EVT_SCROLL_TOP(win
, func
):
234 win
.Connect(-1, -1, wxEVT_SCROLL_TOP
, func
)
236 def EVT_SCROLL_BOTTOM(win
, func
):
237 win
.Connect(-1, -1, wxEVT_SCROLL_BOTTOM
, func
)
239 def EVT_SCROLL_LINEUP(win
, func
):
240 win
.Connect(-1, -1, wxEVT_SCROLL_LINEUP
, func
)
242 def EVT_SCROLL_LINEDOWN(win
, func
):
243 win
.Connect(-1, -1, wxEVT_SCROLL_LINEDOWN
, func
)
245 def EVT_SCROLL_PAGEUP(win
, func
):
246 win
.Connect(-1, -1, wxEVT_SCROLL_PAGEUP
, func
)
248 def EVT_SCROLL_PAGEDOWN(win
, func
):
249 win
.Connect(-1, -1, wxEVT_SCROLL_PAGEDOWN
, func
)
251 def EVT_SCROLL_THUMBTRACK(win
, func
):
252 win
.Connect(-1, -1, wxEVT_SCROLL_THUMBTRACK
, func
)
254 def EVT_SCROLL_THUMBRELEASE(win
, func
):
255 win
.Connect(-1, -1, wxEVT_SCROLL_THUMBRELEASE
, func
)
257 def EVT_SCROLL_ENDSCROLL(win
, func
):
258 win
.Connect(-1, -1, wxEVT_SCROLL_ENDSCROLL
, func
)
262 # Scrolling, with an id
263 def EVT_COMMAND_SCROLL(win
, id, func
):
264 win
.Connect(id, -1, wxEVT_SCROLL_TOP
, func
)
265 win
.Connect(id, -1, wxEVT_SCROLL_BOTTOM
, func
)
266 win
.Connect(id, -1, wxEVT_SCROLL_LINEUP
, func
)
267 win
.Connect(id, -1, wxEVT_SCROLL_LINEDOWN
, func
)
268 win
.Connect(id, -1, wxEVT_SCROLL_PAGEUP
, func
)
269 win
.Connect(id, -1, wxEVT_SCROLL_PAGEDOWN
, func
)
270 win
.Connect(id, -1, wxEVT_SCROLL_THUMBTRACK
,func
)
271 win
.Connect(id, -1, wxEVT_SCROLL_THUMBRELEASE
,func
)
272 win
.Connect(id, -1, wxEVT_SCROLL_ENDSCROLL
, func
)
274 def EVT_COMMAND_SCROLL_TOP(win
, id, func
):
275 win
.Connect(id, -1, wxEVT_SCROLL_TOP
, func
)
277 def EVT_COMMAND_SCROLL_BOTTOM(win
, id, func
):
278 win
.Connect(id, -1, wxEVT_SCROLL_BOTTOM
, func
)
280 def EVT_COMMAND_SCROLL_LINEUP(win
, id, func
):
281 win
.Connect(id, -1, wxEVT_SCROLL_LINEUP
, func
)
283 def EVT_COMMAND_SCROLL_LINEDOWN(win
, id, func
):
284 win
.Connect(id, -1, wxEVT_SCROLL_LINEDOWN
, func
)
286 def EVT_COMMAND_SCROLL_PAGEUP(win
, id, func
):
287 win
.Connect(id, -1, wxEVT_SCROLL_PAGEUP
, func
)
289 def EVT_COMMAND_SCROLL_PAGEDOWN(win
, id, func
):
290 win
.Connect(id, -1, wxEVT_SCROLL_PAGEDOWN
, func
)
292 def EVT_COMMAND_SCROLL_THUMBTRACK(win
, id, func
):
293 win
.Connect(id, -1, wxEVT_SCROLL_THUMBTRACK
, func
)
295 def EVT_COMMAND_SCROLL_THUMBRELEASE(win
, id, func
):
296 win
.Connect(id, -1, wxEVT_SCROLL_THUMBRELEASE
, func
)
298 def EVT_COMMAND_SCROLL_ENDSCROLL(win
, id, func
):
299 win
.Connect(id, -1, wxEVT_SCROLL_ENDSCROLL
, func
)
302 def EVT_SCROLLWIN(win
, func
):
303 win
.Connect(-1, -1, wxEVT_SCROLLWIN_TOP
, func
)
304 win
.Connect(-1, -1, wxEVT_SCROLLWIN_BOTTOM
, func
)
305 win
.Connect(-1, -1, wxEVT_SCROLLWIN_LINEUP
, func
)
306 win
.Connect(-1, -1, wxEVT_SCROLLWIN_LINEDOWN
, func
)
307 win
.Connect(-1, -1, wxEVT_SCROLLWIN_PAGEUP
, func
)
308 win
.Connect(-1, -1, wxEVT_SCROLLWIN_PAGEDOWN
, func
)
309 win
.Connect(-1, -1, wxEVT_SCROLLWIN_THUMBTRACK
, func
)
310 win
.Connect(-1, -1, wxEVT_SCROLLWIN_THUMBRELEASE
,func
)
312 def EVT_SCROLLWIN_TOP(win
, func
):
313 win
.Connect(-1, -1, wxEVT_SCROLLWIN_TOP
, func
)
315 def EVT_SCROLLWIN_BOTTOM(win
, func
):
316 win
.Connect(-1, -1, wxEVT_SCROLLWIN_BOTTOM
, func
)
318 def EVT_SCROLLWIN_LINEUP(win
, func
):
319 win
.Connect(-1, -1, wxEVT_SCROLLWIN_LINEUP
, func
)
321 def EVT_SCROLLWIN_LINEDOWN(win
, func
):
322 win
.Connect(-1, -1, wxEVT_SCROLLWIN_LINEDOWN
, func
)
324 def EVT_SCROLLWIN_PAGEUP(win
, func
):
325 win
.Connect(-1, -1, wxEVT_SCROLLWIN_PAGEUP
, func
)
327 def EVT_SCROLLWIN_PAGEDOWN(win
, func
):
328 win
.Connect(-1, -1, wxEVT_SCROLLWIN_PAGEDOWN
, func
)
330 def EVT_SCROLLWIN_THUMBTRACK(win
, func
):
331 win
.Connect(-1, -1, wxEVT_SCROLLWIN_THUMBTRACK
, func
)
333 def EVT_SCROLLWIN_THUMBRELEASE(win
, func
):
334 win
.Connect(-1, -1, wxEVT_SCROLLWIN_THUMBRELEASE
, func
)
338 # Scrolling, with an id
339 def EVT_COMMAND_SCROLLWIN(win
, id, func
):
340 win
.Connect(id, -1, wxEVT_SCROLLWIN_TOP
, func
)
341 win
.Connect(id, -1, wxEVT_SCROLLWIN_BOTTOM
, func
)
342 win
.Connect(id, -1, wxEVT_SCROLLWIN_LINEUP
, func
)
343 win
.Connect(id, -1, wxEVT_SCROLLWIN_LINEDOWN
, func
)
344 win
.Connect(id, -1, wxEVT_SCROLLWIN_PAGEUP
, func
)
345 win
.Connect(id, -1, wxEVT_SCROLLWIN_PAGEDOWN
, func
)
346 win
.Connect(id, -1, wxEVT_SCROLLWIN_THUMBTRACK
, func
)
347 win
.Connect(id, -1, wxEVT_SCROLLWIN_THUMBRELEASE
,func
)
349 def EVT_COMMAND_SCROLLWIN_TOP(win
, id, func
):
350 win
.Connect(id, -1, wxEVT_SCROLLWIN_TOP
, func
)
352 def EVT_COMMAND_SCROLLWIN_BOTTOM(win
, id, func
):
353 win
.Connect(id, -1, wxEVT_SCROLLWIN_BOTTOM
, func
)
355 def EVT_COMMAND_SCROLLWIN_LINEUP(win
, id, func
):
356 win
.Connect(id, -1, wxEVT_SCROLLWIN_LINEUP
, func
)
358 def EVT_COMMAND_SCROLLWIN_LINEDOWN(win
, id, func
):
359 win
.Connect(id, -1, wxEVT_SCROLLWIN_LINEDOWN
, func
)
361 def EVT_COMMAND_SCROLLWIN_PAGEUP(win
, id, func
):
362 win
.Connect(id, -1, wxEVT_SCROLLWIN_PAGEUP
, func
)
364 def EVT_COMMAND_SCROLLWIN_PAGEDOWN(win
, id, func
):
365 win
.Connect(id, -1, wxEVT_SCROLLWIN_PAGEDOWN
, func
)
367 def EVT_COMMAND_SCROLLWIN_THUMBTRACK(win
, id, func
):
368 win
.Connect(id, -1, wxEVT_SCROLLWIN_THUMBTRACK
, func
)
370 def EVT_COMMAND_SCROLLWIN_THUMBRELEASE(win
, id, func
):
371 win
.Connect(id, -1, wxEVT_SCROLLWIN_THUMBRELEASE
, func
)
374 # Convenience commands
375 def EVT_BUTTON(win
, id, func
):
376 win
.Connect(id, -1, wxEVT_COMMAND_BUTTON_CLICKED
, func
)
378 def EVT_CHECKBOX(win
, id, func
):
379 win
.Connect(id, -1, wxEVT_COMMAND_CHECKBOX_CLICKED
, func
)
381 def EVT_CHOICE(win
, id, func
):
382 win
.Connect(id, -1, wxEVT_COMMAND_CHOICE_SELECTED
, func
)
384 def EVT_LISTBOX(win
, id, func
):
385 win
.Connect(id, -1, wxEVT_COMMAND_LISTBOX_SELECTED
, func
)
387 def EVT_LISTBOX_DCLICK(win
, id, func
):
388 win
.Connect(id, -1, wxEVT_COMMAND_LISTBOX_DOUBLECLICKED
, func
)
390 def EVT_TEXT(win
, id, func
):
391 win
.Connect(id, -1, wxEVT_COMMAND_TEXT_UPDATED
, func
)
393 def EVT_TEXT_ENTER(win
, id, func
):
394 win
.Connect(id, -1, wxEVT_COMMAND_TEXT_ENTER
, func
)
396 def EVT_TEXT_URL(win
, id, func
):
397 win
.Connect(id, -1, wxEVT_COMMAND_TEXT_URL
, func
)
399 def EVT_TEXT_MAXLEN(win
, id, func
):
400 win
.Connect(id, -1, wxEVT_COMMAND_TEXT_MAXLEN
, func
)
402 def EVT_MENU(win
, id, func
):
403 win
.Connect(id, -1, wxEVT_COMMAND_MENU_SELECTED
, func
)
405 def EVT_MENU_RANGE(win
, id1
, id2
, func
):
406 win
.Connect(id1
, id2
, wxEVT_COMMAND_MENU_SELECTED
, func
)
408 def EVT_SLIDER(win
, id, func
):
409 win
.Connect(id, -1, wxEVT_COMMAND_SLIDER_UPDATED
, func
)
411 def EVT_RADIOBOX(win
, id, func
):
412 win
.Connect(id, -1, wxEVT_COMMAND_RADIOBOX_SELECTED
, func
)
414 def EVT_RADIOBUTTON(win
, id, func
):
415 win
.Connect(id, -1, wxEVT_COMMAND_RADIOBUTTON_SELECTED
, func
)
417 def EVT_VLBOX(win
, id, func
):
418 win
.Connect(id, -1, wxEVT_COMMAND_VLBOX_SELECTED
, func
)
420 def EVT_COMBOBOX(win
, id, func
):
421 win
.Connect(id, -1, wxEVT_COMMAND_COMBOBOX_SELECTED
, func
)
423 def EVT_TOOL(win
, id, func
):
424 win
.Connect(id, -1, wxEVT_COMMAND_TOOL_CLICKED
, func
)
426 def EVT_TOOL_RANGE(win
, id, id2
, func
):
427 win
.Connect(id, id2
, wxEVT_COMMAND_TOOL_CLICKED
, func
)
429 def EVT_TOOL_RCLICKED(win
, id, func
):
430 win
.Connect(id, -1, wxEVT_COMMAND_TOOL_RCLICKED
, func
)
432 def EVT_TOOL_RCLICKED_RANGE(win
, id, id2
, func
):
433 win
.Connect(id, id2
, wxEVT_COMMAND_TOOL_RCLICKED
, func
)
435 def EVT_TOOL_ENTER(win
, id, func
):
436 win
.Connect(id, -1, wxEVT_COMMAND_TOOL_ENTER
, func
)
438 def EVT_CHECKLISTBOX(win
, id, func
):
439 win
.Connect(id, -1, wxEVT_COMMAND_CHECKLISTBOX_TOGGLED
, func
)
441 def EVT_SPINCTRL(win
, id, func
):
442 win
.Connect(id, -1, wxEVT_COMMAND_SPINCTRL_UPDATED
, func
)
446 # Generic command events
448 def EVT_COMMAND_LEFT_CLICK(win
, id, func
):
449 win
.Connect(id, -1, wxEVT_COMMAND_LEFT_CLICK
, func
)
451 def EVT_COMMAND_LEFT_DCLICK(win
, id, func
):
452 win
.Connect(id, -1, wxEVT_COMMAND_LEFT_DCLICK
, func
)
454 def EVT_COMMAND_RIGHT_CLICK(win
, id, func
):
455 win
.Connect(id, -1, wxEVT_COMMAND_RIGHT_CLICK
, func
)
457 def EVT_COMMAND_RIGHT_DCLICK(win
, id, func
):
458 win
.Connect(id, -1, wxEVT_COMMAND_RIGHT_DCLICK
, func
)
460 def EVT_COMMAND_SET_FOCUS(win
, id, func
):
461 win
.Connect(id, -1, wxEVT_COMMAND_SET_FOCUS
, func
)
463 def EVT_COMMAND_KILL_FOCUS(win
, id, func
):
464 win
.Connect(id, -1, wxEVT_COMMAND_KILL_FOCUS
, func
)
466 def EVT_COMMAND_ENTER(win
, id, func
):
467 win
.Connect(id, -1, wxEVT_COMMAND_ENTER
, func
)
471 def EVT_NOTEBOOK_PAGE_CHANGED(win
, id, func
):
472 win
.Connect(id, -1, wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED
, func
)
474 def EVT_NOTEBOOK_PAGE_CHANGING(win
, id, func
):
475 win
.Connect(id, -1, wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING
, func
)
479 def EVT_SPIN_UP(win
, id, func
):
480 win
.Connect(id, -1, wxEVT_SCROLL_LINEUP
, func
)
482 def EVT_SPIN_DOWN(win
, id, func
):
483 win
.Connect(id, -1, wxEVT_SCROLL_LINEDOWN
, func
)
485 def EVT_SPIN(win
, id, func
):
486 win
.Connect(id, -1, wxEVT_SCROLL_THUMBTRACK
,func
)
490 def EVT_TASKBAR_MOVE(win
, func
):
491 win
.Connect(-1, -1, wxEVT_TASKBAR_MOVE
, func
)
493 def EVT_TASKBAR_LEFT_DOWN(win
, func
):
494 win
.Connect(-1, -1, wxEVT_TASKBAR_LEFT_DOWN
, func
)
496 def EVT_TASKBAR_LEFT_UP(win
, func
):
497 win
.Connect(-1, -1, wxEVT_TASKBAR_LEFT_UP
, func
)
499 def EVT_TASKBAR_RIGHT_DOWN(win
, func
):
500 win
.Connect(-1, -1, wxEVT_TASKBAR_RIGHT_DOWN
, func
)
502 def EVT_TASKBAR_RIGHT_UP(win
, func
):
503 win
.Connect(-1, -1, wxEVT_TASKBAR_RIGHT_UP
, func
)
505 def EVT_TASKBAR_LEFT_DCLICK(win
, func
):
506 win
.Connect(-1, -1, wxEVT_TASKBAR_LEFT_DCLICK
, func
)
508 def EVT_TASKBAR_RIGHT_DCLICK(win
, func
):
509 win
.Connect(-1, -1, wxEVT_TASKBAR_RIGHT_DCLICK
, func
)
513 def EVT_SASH_DRAGGED(win
, id, func
):
514 win
.Connect(id, -1, wxEVT_SASH_DRAGGED
, func
)
516 def EVT_SASH_DRAGGED_RANGE(win
, id1
, id2
, func
):
517 win
.Connect(id1
, id2
, wxEVT_SASH_DRAGGED
, func
)
519 def EVT_QUERY_LAYOUT_INFO(win
, func
):
520 win
.Connect(-1, -1, wxEVT_EVT_QUERY_LAYOUT_INFO
, func
)
522 def EVT_CALCULATE_LAYOUT(win
, func
):
523 win
.Connect(-1, -1, wxEVT_EVT_CALCULATE_LAYOUT
, func
)
527 def EVT_SPLITTER_SASH_POS_CHANGING(win
, id, func
):
528 win
.Connect(id, -1, wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING
, func
)
530 def EVT_SPLITTER_SASH_POS_CHANGED(win
, id, func
):
531 win
.Connect(id, -1, wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED
, func
)
533 def EVT_SPLITTER_UNSPLIT(win
, id, func
):
534 win
.Connect(id, -1, wxEVT_COMMAND_SPLITTER_UNSPLIT
, func
)
536 def EVT_SPLITTER_DOUBLECLICKED(win
, id, func
):
537 win
.Connect(id, -1, wxEVT_COMMAND_SPLITTER_DOUBLECLICKED
, func
)
541 def EVT_TIMER(win
, id, func
):
542 win
.Connect(id, -1, wxEVT_TIMER
, func
)
545 def EVT_END_PROCESS(eh
, id, func
):
546 eh
.Connect(id, -1, wxEVT_END_PROCESS
, func
)
550 def EVT_JOY_DOWN(win
, func
):
551 win
.Connect(-1, -1, wxEVT_JOY_BUTTON_DOWN
, func
)
553 def EVT_JOY_UP(win
, func
):
554 win
.Connect(-1, -1, wxEVT_JOY_BUTTON_UP
, func
)
556 def EVT_JOY_MOVE(win
, func
):
557 win
.Connect(-1, -1, wxEVT_JOY_MOVE
, func
)
559 def EVT_JOY_ZMOVE(win
, func
):
560 win
.Connect(-1, -1, wxEVT_JOY_ZMOVE
, func
)
562 def EVT_JOYSTICK_EVENTS(win
, func
):
563 win
.Connect(-1, -1, wxEVT_JOY_BUTTON_DOWN
, func
)
564 win
.Connect(-1, -1, wxEVT_JOY_BUTTON_UP
, func
)
565 win
.Connect(-1, -1, wxEVT_JOY_MOVE
, func
)
566 win
.Connect(-1, -1, wxEVT_JOY_ZMOVE
, func
)
569 def EVT_TOGGLEBUTTON(win
, id, func
):
570 win
.Connect(id, -1, wxEVT_COMMAND_TOGGLEBUTTON_CLICKED
, func
)
574 def EVT_CONTEXT_MENU(win
, func
):
575 win
.Connect(-1, -1, wxEVT_CONTEXT_MENU
, func
)
578 #----------------------------------------------------------------------
580 class wxTimer(wxPyTimer
):
581 def __init__(self
, evtHandler
= None, id = -1):
582 if evtHandler
is None:
583 wxPyTimer
.__init
__(self
, self
.Notify
) # derived class must provide
584 # Notify(self) method.
586 wxPyTimer
.__init
__(self
, None)
587 self
.SetOwner(evtHandler
, id)
589 #----------------------------------------------------------------------
593 wxNamedColor
= wxNamedColour
595 wxScrollbar
= wxScrollBar
596 wxPoint2D
= wxPoint2DDouble
598 wxPyAssertionError
= wxc
.wxPyAssertionError
601 # backwards compatibility
602 wxNoRefBitmap
= wxBitmap
603 wxPyDefaultPosition
= wxDefaultPosition
604 wxPyDefaultSize
= wxDefaultSize
606 wxSystemSettings_GetSystemColour
= wxSystemSettings_GetColour
607 wxSystemSettings_GetSystemFont
= wxSystemSettings_GetFont
608 wxSystemSettings_GetSystemMetric
= wxSystemSettings_GetMetric
611 # workarounds for bad wxRTTI names
612 __wxPyPtrTypeMap
['wxGauge95'] = 'wxGauge'
618 warnings
.warn("Use wxNewId instead", DeprecationWarning, 2)
623 warnings
.warn("Use wxRegisterId instead", DeprecationWarning, 2)
624 return wxRegisterId(ID
)
628 # Use Python's bool constants if available, make aliases if not
635 # Backwards compaatible
637 FALSE
= false
= False
640 #----------------------------------------------------------------------
641 # wxGTK sets the locale when initialized. Doing this at the Python
642 # level should set it up to match what GTK is doing at the C level.
643 if wxPlatform
== "__WXGTK__":
646 locale
.setlocale(locale
.LC_ALL
, "")
650 if wxPlatform
== "__WXMSW__":
652 localedir
= os
.path
.join(os
.path
.split(__file__
)[0], "locale")
653 wxLocale_AddCatalogLookupPathPrefix(localedir
)
656 #----------------------------------------------------------------------
657 # wxWindows version numbers. wxPython version is in __version__.
659 wxMAJOR_VERSION
= wxc
.wxMAJOR_VERSION
660 wxMINOR_VERSION
= wxc
.wxMINOR_VERSION
661 wxRELEASE_NUMBER
= wxc
.wxRELEASE_NUMBER
662 wxVERSION_STRING
= wxc
.wxVERSION_STRING
663 wxVERSION_NUMBER
= wxc
.wxVERSION_NUMBER
665 wxVERSION
= (wxMAJOR_VERSION
, wxMINOR_VERSION
, wxRELEASE_NUMBER
)
668 #----------------------------------------------------------------------
669 # This helper function will take a wxPython object and convert it to
670 # another wxPython object type. This will not be able to create objects
671 # that are derived from wxPython classes by the user, only those that are
672 # actually part of wxPython and directly corespond to C++ objects.
674 # This is useful in situations where some method returns a generic
675 # type such as wxWindow, but you know that it is actually some
676 # derived type such as a wxTextCtrl. You can't call wxTextCtrl specific
677 # methods on a wxWindow object, but you can use this function to
678 # create a wxTextCtrl object that will pass the same pointer to
679 # the C++ code. You use it like this:
681 # textCtrl = wxPyTypeCast(window, "wxTextCtrl")
684 # WARNING: Using this function to type cast objects into types that
685 # they are not is not recommended and is likely to cause your
686 # program to crash... Hard.
689 def wxPyTypeCast(obj
, typeStr
):
692 theClass
= globals()[typeStr
+"Ptr"]
693 typeStr
= __wxPyPtrTypeMap
.get(typeStr
, typeStr
)
694 if hasattr(obj
, "this"):
695 # if already the right type then just return it
696 if isinstance(obj
, theClass
) or obj
.__class
__ is theClass
:
698 newPtr
= ptrcast(obj
.this
, typeStr
+"_p")
700 newPtr
= ptrcast(obj
, typeStr
+"_p")
701 theObj
= theClass(newPtr
)
702 if hasattr(obj
, "this"):
703 theObj
.thisown
= obj
.thisown
706 #----------------------------------------------------------------------------
707 # An isinstance for Pythons < 2.2 that can check a sequence of class objects
708 # like the one in 2.2 can.
710 def wxPy_isinstance(obj
, klasses
):
712 if sys
.version
[:3] < "2.2" and type(klasses
) in [types
.TupleType
, types
.ListType
]:
713 for klass
in klasses
:
714 if isinstance(obj
, klass
): return True
717 return isinstance(obj
, klasses
)
719 #----------------------------------------------------------------------------
720 _wxCallAfterId
= None
722 def wxCallAfter(callable, *args
, **kw
):
724 Call the specified function after the current and pending event
725 handlers have been completed. This is also good for making GUI
726 method calls from non-GUI threads.
729 assert app
, 'No wxApp created yet'
731 global _wxCallAfterId
732 if _wxCallAfterId
is None:
733 _wxCallAfterId
= wxNewEventType()
734 app
.Connect(-1, -1, _wxCallAfterId
,
735 lambda event
: apply(event
.callable, event
.args
, event
.kw
) )
737 evt
.SetEventType(_wxCallAfterId
)
738 evt
.callable = callable
741 wxPostEvent(app
, evt
)
744 wxRunLater
= wxCallAfter
746 #----------------------------------------------------------------------
748 class wxPyDeadObjectError(AttributeError):
751 class _wxPyDeadObject
:
753 Instances of wx objects that are OOR capable will have their __class__
754 changed to this class when the C++ object is deleted. This should help
755 prevent crashes due to referencing a bogus C++ pointer.
757 reprStr
= "wxPython wrapper for DELETED %s object! (The C++ object no longer exists.)"
758 attrStr
= "The C++ part of the %s object has been deleted, attribute access no longer allowed."
760 def __repr__( self
):
761 if not hasattr(self
, "_name"):
762 self
._name
= "[unknown]"
763 return self
.reprStr
% self
._name
765 def __getattr__( self
, *args
):
766 if not hasattr(self
, "_name"):
767 self
._name
= "[unknown]"
768 raise wxPyDeadObjectError( self
.attrStr
% self
._name
)
770 def __nonzero__(self
):
774 #----------------------------------------------------------------------
775 #----------------------------------------------------------------------
777 class wxPyOnDemandOutputWindow
:
778 def __init__(self
, title
= "wxPython: stdout/stderr"):
783 def SetParent(self
, parent
):
786 def OnCloseWindow(self
, event
):
787 if self
.frame
!= None:
792 # These methods provide the file-like output behaviour.
793 def write(self
, str):
794 if not wxThread_IsMain():
795 # Aquire the GUI mutex before making GUI calls. Mutex is released
796 # when locker is deleted at the end of this function.
797 locker
= wxMutexGuiLocker()
800 self
.frame
= wxFrame(self
.parent
, -1, self
.title
,
801 style
=wxDEFAULT_FRAME_STYLE|wxNO_FULL_REPAINT_ON_RESIZE
)
802 self
.text
= wxTextCtrl(self
.frame
, -1, "",
803 style
= wxTE_MULTILINE|wxTE_READONLY
)
804 self
.frame
.SetSize(wxSize(450, 300))
805 self
.frame
.Show(True)
806 EVT_CLOSE(self
.frame
, self
.OnCloseWindow
)
807 self
.text
.AppendText(str)
810 if self
.frame
!= None:
811 if not wxThread_IsMain():
812 locker
= wxMutexGuiLocker()
816 _defRedirect
= (wxPlatform
== '__WXMSW__' or wxPlatform
== '__WXMAC__')
818 #----------------------------------------------------------------------
819 # The main application class. Derive from this and implement an OnInit
820 # method that creates a frame and then calls self.SetTopWindow(frame)
822 class wxApp(wxPyApp
):
823 error
= 'wxApp.error'
824 outputWindowClass
= wxPyOnDemandOutputWindow
826 def __init__(self
, redirect
=_defRedirect
, filename
=None, useBestVisual
=False):
827 wxPyApp
.__init
__(self
)
829 self
.saveStdio
= (sys
.stdout
, sys
.stderr
)
831 # This has to be done before OnInit
832 self
.SetUseBestVisual(useBestVisual
)
835 self
.RedirectStdio(filename
)
837 # this initializes wxWindows and then calls our OnInit
838 _wxStart(self
.OnInit
)
848 def SetTopWindow(self
, frame
):
850 self
.stdioWin
.SetParent(frame
)
851 wxPyApp
.SetTopWindow(self
, frame
)
855 wxPyApp
.MainLoop(self
)
859 def RedirectStdio(self
, filename
):
861 sys
.stdout
= sys
.stderr
= open(filename
, 'a')
863 self
.stdioWin
= self
.outputWindowClass()
864 sys
.stdout
= sys
.stderr
= self
.stdioWin
867 def RestoreStdio(self
):
868 sys
.stdout
, sys
.stderr
= self
.saveStdio
871 # change from wxPyApp_ to wxApp_
872 wxApp_GetMacDefaultEncodingIsPC
= wxc
.wxPyApp_GetMacDefaultEncodingIsPC
873 wxApp_GetMacSupportPCMenuShortcuts
= wxc
.wxPyApp_GetMacSupportPCMenuShortcuts
874 wxApp_GetMacAboutMenuItemId
= wxc
.wxPyApp_GetMacAboutMenuItemId
875 wxApp_GetMacPreferencesMenuItemId
= wxc
.wxPyApp_GetMacPreferencesMenuItemId
876 wxApp_GetMacExitMenuItemId
= wxc
.wxPyApp_GetMacExitMenuItemId
877 wxApp_GetMacHelpMenuTitleName
= wxc
.wxPyApp_GetMacHelpMenuTitleName
878 wxApp_SetMacDefaultEncodingIsPC
= wxc
.wxPyApp_SetMacDefaultEncodingIsPC
879 wxApp_SetMacSupportPCMenuShortcuts
= wxc
.wxPyApp_SetMacSupportPCMenuShortcuts
880 wxApp_SetMacAboutMenuItemId
= wxc
.wxPyApp_SetMacAboutMenuItemId
881 wxApp_SetMacPreferencesMenuItemId
= wxc
.wxPyApp_SetMacPreferencesMenuItemId
882 wxApp_SetMacExitMenuItemId
= wxc
.wxPyApp_SetMacExitMenuItemId
883 wxApp_SetMacHelpMenuTitleName
= wxc
.wxPyApp_SetMacHelpMenuTitleName
886 #----------------------------------------------------------------------------
888 class wxPySimpleApp(wxApp
):
889 def __init__(self
, flag
=0):
890 wxApp
.__init
__(self
, flag
)
892 wxInitAllImageHandlers()
896 class wxPyWidgetTester(wxApp
):
897 def __init__(self
, size
= (250, 100)):
899 wxApp
.__init
__(self
, 0)
902 self
.frame
= wxFrame(None, -1, "Widget Tester", pos
=(0,0), size
=self
.size
)
903 self
.SetTopWindow(self
.frame
)
906 def SetWidget(self
, widgetClass
, *args
):
907 w
= apply(widgetClass
, (self
.frame
,) + args
)
908 self
.frame
.Show(True)
910 #----------------------------------------------------------------------------
911 # DO NOT hold any other references to this object. This is how we
912 # know when to cleanup system resources that wxWin is holding. When
913 # the sys module is unloaded, the refcount on sys.__wxPythonCleanup
914 # goes to zero and it calls the wxApp_CleanUp function.
918 self
.cleanup
= wxc
.wxApp_CleanUp
922 sys
.__wxPythonCleanup
= __wxPyCleanup()
924 ## # another possible solution, but it gets called too early...
925 ## if sys.version[0] == '2':
927 ## atexit.register(wxc.wxApp_CleanUp)
929 ## sys.exitfunc = wxc.wxApp_CleanUp
932 #----------------------------------------------------------------------------
933 #----------------------------------------------------------------------------