]> git.saurik.com Git - wxWidgets.git/blob - wxPython/src/misc2.i
68ed499ae7201ac6d9fbe7aa81f734738586b3ad
[wxWidgets.git] / wxPython / src / misc2.i
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: misc2.i
3 // Purpose: Definitions of miscelaneous functions and classes that need
4 // to know about wxWindow. (So they can't be in misc.i or an
5 // import loop will happen.)
6 //
7 // Author: Robin Dunn
8 //
9 // Created: 18-June-1999
10 // RCS-ID: $Id$
11 // Copyright: (c) 1998 by Total Control Software
12 // Licence: wxWindows license
13 /////////////////////////////////////////////////////////////////////////////
14
15 %module misc2
16
17 %{
18 #include "helpers.h"
19 #include <wx/resource.h>
20 #include <wx/tooltip.h>
21 #include <wx/caret.h>
22 #include <wx/fontenum.h>
23 #include <wx/tipdlg.h>
24 #include <wx/process.h>
25 #include <wx/joystick.h>
26 %}
27
28 //----------------------------------------------------------------------
29
30 %include typemaps.i
31 %include my_typemaps.i
32
33 // Import some definitions of other classes, etc.
34 %import _defs.i
35 %import windows.i
36 %import misc.i
37 %import gdi.i
38 %import events.i
39 %import streams.i
40
41 //---------------------------------------------------------------------------
42 // Dialog Functions
43
44 wxString wxFileSelector(char* message,
45 char* default_path = NULL,
46 char* default_filename = NULL,
47 char* default_extension = NULL,
48 char* wildcard = "*.*",
49 int flags = 0,
50 wxWindow *parent = NULL,
51 int x = -1, int y = -1);
52
53 wxString wxGetTextFromUser(const wxString& message,
54 const wxString& caption = wxPyEmptyStr,
55 const wxString& default_value = wxPyEmptyStr,
56 wxWindow *parent = NULL,
57 int x = -1, int y = -1,
58 bool centre = TRUE);
59
60
61 // TODO: Need to custom wrap this one...
62 // int wxGetMultipleChoice(char* message, char* caption,
63 // int LCOUNT, char** choices,
64 // int nsel, int *selection,
65 // wxWindow *parent = NULL, int x = -1, int y = -1,
66 // bool centre = TRUE, int width=150, int height=200);
67
68
69 wxString wxGetSingleChoice(const wxString& message, const wxString& caption,
70 int LCOUNT, wxString* choices,
71 wxWindow *parent = NULL,
72 int x = -1, int y = -1,
73 bool centre = TRUE,
74 int width=150, int height=200);
75
76 int wxGetSingleChoiceIndex(const wxString& message, const wxString& caption,
77 int LCOUNT, wxString* choices,
78 wxWindow *parent = NULL,
79 int x = -1, int y = -1,
80 bool centre = TRUE,
81 int width=150, int height=200);
82
83
84 int wxMessageBox(const wxString& message,
85 const wxString& caption = wxPyEmptyStr,
86 int style = wxOK | wxCENTRE,
87 wxWindow *parent = NULL,
88 int x = -1, int y = -1);
89
90 long wxGetNumberFromUser(const wxString& message,
91 const wxString& prompt,
92 const wxString& caption,
93 long value,
94 long min = 0, long max = 100,
95 wxWindow *parent = NULL,
96 const wxPoint& pos = wxPyDefaultPosition);
97
98 //---------------------------------------------------------------------------
99 // GDI Functions
100
101 bool wxColourDisplay();
102
103 int wxDisplayDepth();
104 int wxGetDisplayDepth();
105
106 void wxDisplaySize(int* OUTPUT, int* OUTPUT);
107 wxSize wxGetDisplaySize();
108 void wxDisplaySizeMM(int* OUTPUT, int* OUTPUT);
109 wxSize wxGetDisplaySizeMM();
110
111 void wxSetCursor(wxCursor& cursor);
112
113 //----------------------------------------------------------------------
114 // Miscellaneous functions
115
116 wxWindow * wxFindWindowByLabel(const wxString& label, wxWindow *parent=NULL);
117 wxWindow * wxFindWindowByName(const wxString& name, wxWindow *parent=NULL);
118
119 void wxBeginBusyCursor(wxCursor *cursor = wxHOURGLASS_CURSOR);
120 wxWindow * wxGetActiveWindow();
121
122
123 //---------------------------------------------------------------------------
124 // Resource System
125
126 bool wxResourceAddIdentifier(char *name, int value);
127 void wxResourceClear(void);
128 wxBitmap wxResourceCreateBitmap(char *resource);
129 wxIcon wxResourceCreateIcon(char *resource);
130 wxMenuBar * wxResourceCreateMenuBar(char *resource);
131 int wxResourceGetIdentifier(char *name);
132 bool wxResourceParseData(char *resource, wxResourceTable *table = NULL);
133 bool wxResourceParseFile(char *filename, wxResourceTable *table = NULL);
134 bool wxResourceParseString(char *resource, wxResourceTable *table = NULL);
135
136 //---------------------------------------------------------------------------
137 // System Settings
138
139 enum {
140 wxSYS_WHITE_BRUSH,
141 wxSYS_LTGRAY_BRUSH,
142 wxSYS_GRAY_BRUSH,
143 wxSYS_DKGRAY_BRUSH,
144 wxSYS_BLACK_BRUSH,
145 wxSYS_NULL_BRUSH,
146 wxSYS_HOLLOW_BRUSH,
147 wxSYS_WHITE_PEN,
148 wxSYS_BLACK_PEN,
149 wxSYS_NULL_PEN,
150 wxSYS_OEM_FIXED_FONT,
151 wxSYS_ANSI_FIXED_FONT,
152 wxSYS_ANSI_VAR_FONT,
153 wxSYS_SYSTEM_FONT,
154 wxSYS_DEVICE_DEFAULT_FONT,
155 wxSYS_DEFAULT_PALETTE,
156 wxSYS_SYSTEM_FIXED_FONT,
157 wxSYS_DEFAULT_GUI_FONT,
158
159 wxSYS_COLOUR_SCROLLBAR,
160 wxSYS_COLOUR_BACKGROUND,
161 wxSYS_COLOUR_ACTIVECAPTION,
162 wxSYS_COLOUR_INACTIVECAPTION,
163 wxSYS_COLOUR_MENU,
164 wxSYS_COLOUR_WINDOW,
165 wxSYS_COLOUR_WINDOWFRAME,
166 wxSYS_COLOUR_MENUTEXT,
167 wxSYS_COLOUR_WINDOWTEXT,
168 wxSYS_COLOUR_CAPTIONTEXT,
169 wxSYS_COLOUR_ACTIVEBORDER,
170 wxSYS_COLOUR_INACTIVEBORDER,
171 wxSYS_COLOUR_APPWORKSPACE,
172 wxSYS_COLOUR_HIGHLIGHT,
173 wxSYS_COLOUR_HIGHLIGHTTEXT,
174 wxSYS_COLOUR_BTNFACE,
175 wxSYS_COLOUR_BTNSHADOW,
176 wxSYS_COLOUR_GRAYTEXT,
177 wxSYS_COLOUR_BTNTEXT,
178 wxSYS_COLOUR_INACTIVECAPTIONTEXT,
179 wxSYS_COLOUR_BTNHIGHLIGHT,
180
181 wxSYS_COLOUR_3DDKSHADOW,
182 wxSYS_COLOUR_3DLIGHT,
183 wxSYS_COLOUR_INFOTEXT,
184 wxSYS_COLOUR_INFOBK,
185
186 wxSYS_COLOUR_DESKTOP,
187 wxSYS_COLOUR_3DFACE,
188 wxSYS_COLOUR_3DSHADOW,
189 wxSYS_COLOUR_3DHIGHLIGHT,
190 wxSYS_COLOUR_3DHILIGHT,
191 wxSYS_COLOUR_BTNHILIGHT,
192
193 wxSYS_MOUSE_BUTTONS,
194 wxSYS_BORDER_X,
195 wxSYS_BORDER_Y,
196 wxSYS_CURSOR_X,
197 wxSYS_CURSOR_Y,
198 wxSYS_DCLICK_X,
199 wxSYS_DCLICK_Y,
200 wxSYS_DRAG_X,
201 wxSYS_DRAG_Y,
202 wxSYS_EDGE_X,
203 wxSYS_EDGE_Y,
204 wxSYS_HSCROLL_ARROW_X,
205 wxSYS_HSCROLL_ARROW_Y,
206 wxSYS_HTHUMB_X,
207 wxSYS_ICON_X,
208 wxSYS_ICON_Y,
209 wxSYS_ICONSPACING_X,
210 wxSYS_ICONSPACING_Y,
211 wxSYS_WINDOWMIN_X,
212 wxSYS_WINDOWMIN_Y,
213 wxSYS_SCREEN_X,
214 wxSYS_SCREEN_Y,
215 wxSYS_FRAMESIZE_X,
216 wxSYS_FRAMESIZE_Y,
217 wxSYS_SMALLICON_X,
218 wxSYS_SMALLICON_Y,
219 wxSYS_HSCROLL_Y,
220 wxSYS_VSCROLL_X,
221 wxSYS_VSCROLL_ARROW_X,
222 wxSYS_VSCROLL_ARROW_Y,
223 wxSYS_VTHUMB_Y,
224 wxSYS_CAPTION_Y,
225 wxSYS_MENU_Y,
226 wxSYS_NETWORK_PRESENT,
227 wxSYS_PENWINDOWS_PRESENT,
228 wxSYS_SHOW_SOUNDS,
229 wxSYS_SWAP_BUTTONS,
230 };
231
232
233
234 %inline %{
235
236 wxColour wxSystemSettings_GetSystemColour(int index) {
237 return wxSystemSettings::GetSystemColour(index);
238 }
239
240 wxFont wxSystemSettings_GetSystemFont(int index) {
241 return wxSystemSettings::GetSystemFont(index);
242 }
243
244 int wxSystemSettings_GetSystemMetric(int index) {
245 return wxSystemSettings::GetSystemMetric(index);
246 }
247 %}
248
249 //---------------------------------------------------------------------------
250 // wxToolTip
251
252 class wxToolTip {
253 public:
254 wxToolTip(const wxString &tip);
255
256 void SetTip(const wxString& tip);
257 wxString GetTip();
258 // *** Not in the "public" interface void SetWindow(wxWindow *win);
259 wxWindow *GetWindow();
260 };
261
262
263 %inline %{
264 void wxToolTip_Enable(bool flag) {
265 wxToolTip::Enable(flag);
266 }
267
268 void wxToolTip_SetDelay(long milliseconds) {
269 wxToolTip::SetDelay(milliseconds);
270 }
271 %}
272
273 //----------------------------------------------------------------------
274
275 class wxCaret {
276 public:
277 wxCaret(wxWindow* window, const wxSize& size);
278 ~wxCaret();
279
280 bool IsOk();
281 bool IsVisible();
282 %name(GetPositionTuple)void GetPosition(int *OUTPUT, int *OUTPUT);
283 wxPoint GetPosition();
284 %name(GetSizeTuple)void GetSize(int *OUTPUT, int *OUTPUT);
285 wxSize GetSize();
286 wxWindow *GetWindow();
287 %name(MoveXY)void Move(int x, int y);
288 void Move(const wxPoint& pt);
289 %name(SetSizeWH) void SetSize(int width, int height);
290 void SetSize(const wxSize& size);
291 void Show(int show = TRUE);
292 void Hide();
293 };
294
295 %inline %{
296 int wxCaret_GetBlinkTime() {
297 return wxCaret::GetBlinkTime();
298 }
299
300 void wxCaret_SetBlinkTime(int milliseconds) {
301 wxCaret::SetBlinkTime(milliseconds);
302 }
303 %}
304
305 //----------------------------------------------------------------------
306
307 %{
308 class wxPyFontEnumerator : public wxFontEnumerator {
309 public:
310 wxPyFontEnumerator() {}
311 ~wxPyFontEnumerator() {}
312
313 DEC_PYCALLBACK_BOOL_STRING(OnFacename);
314 DEC_PYCALLBACK_BOOL_STRINGSTRING(OnFontEncoding);
315
316 PYPRIVATE;
317 };
318
319 IMP_PYCALLBACK_BOOL_STRING(wxPyFontEnumerator, wxFontEnumerator, OnFacename);
320 IMP_PYCALLBACK_BOOL_STRINGSTRING(wxPyFontEnumerator, wxFontEnumerator, OnFontEncoding);
321
322 %}
323
324 %name(wxFontEnumerator) class wxPyFontEnumerator {
325 public:
326 wxPyFontEnumerator();
327 ~wxPyFontEnumerator();
328 void _setSelf(PyObject* self, PyObject* _class);
329 %pragma(python) addtomethod = "__init__:self._setSelf(self, wxFontEnumerator)"
330
331 bool EnumerateFacenames(
332 wxFontEncoding encoding = wxFONTENCODING_SYSTEM, // all
333 bool fixedWidthOnly = FALSE);
334 bool EnumerateEncodings(const char* facename = "");
335
336 //wxArrayString* GetEncodings();
337 //wxArrayString* GetFacenames();
338 %addmethods {
339 PyObject* GetEncodings() {
340 wxArrayString* arr = self->GetEncodings();
341 PyObject* list = PyList_New(0);
342 for (size_t x=0; x<arr->GetCount(); x++)
343 PyList_Append(list, PyString_FromString((*arr)[x]));
344 return list;
345 }
346
347 PyObject* GetFacenames() {
348 wxArrayString* arr = self->GetFacenames();
349 PyObject* list = PyList_New(0);
350 for (size_t x=0; x<arr->GetCount(); x++)
351 PyList_Append(list, PyString_FromString((*arr)[x]));
352 return list;
353 }
354 }
355 };
356
357 //----------------------------------------------------------------------
358
359 class wxBusyCursor {
360 public:
361 wxBusyCursor(wxCursor* cursor = wxHOURGLASS_CURSOR);
362 ~wxBusyCursor();
363 };
364
365 //----------------------------------------------------------------------
366
367 class wxWindowDisabler {
368 public:
369 wxWindowDisabler(wxWindow *winToSkip = NULL);
370 ~wxWindowDisabler();
371 };
372
373 //----------------------------------------------------------------------
374
375 void wxPostEvent(wxEvtHandler *dest, wxEvent& event);
376 void wxWakeUpIdle();
377
378 bool wxSafeYield(wxWindow* win=NULL);
379
380 //----------------------------------------------------------------------
381
382
383 class wxTipProvider
384 {
385 public:
386 // wxTipProvider(size_t currentTip); **** Abstract base class
387 ~wxTipProvider();
388
389 virtual wxString GetTip() = 0;
390 size_t GetCurrentTip();
391
392 };
393
394
395 // The C++ version of wxPyTipProvider
396 %{
397 class wxPyTipProvider : public wxTipProvider {
398 public:
399 wxPyTipProvider(size_t currentTip)
400 : wxTipProvider(currentTip) {}
401
402 DEC_PYCALLBACK_STRING__pure(GetTip);
403
404 PYPRIVATE;
405 };
406
407 IMP_PYCALLBACK_STRING__pure( wxPyTipProvider, wxTipProvider, GetTip);
408
409 %}
410
411
412 // Now let SWIG know about it
413 class wxPyTipProvider : public wxTipProvider {
414 public:
415 wxPyTipProvider(size_t currentTip);
416 };
417
418
419
420 bool wxShowTip(wxWindow *parent, wxTipProvider *tipProvider, bool showAtStartup = TRUE);
421 %new wxTipProvider * wxCreateFileTipProvider(const wxString& filename, size_t currentTip);
422
423
424 //----------------------------------------------------------------------
425
426 %{
427 #include <wx/generic/dragimgg.h>
428 static wxPoint wxPyNullPoint;
429 %}
430
431 %name (wxDragImage) class wxGenericDragImage
432 {
433 public:
434
435 wxGenericDragImage(const wxBitmap& image,
436 const wxCursor& cursor = wxNullCursor,
437 const wxPoint& hotspot = wxPyNullPoint);
438 ~wxGenericDragImage();
439
440 bool BeginDrag(const wxPoint& hotspot, wxWindow* window,
441 bool fullScreen = FALSE, wxRect* rect = NULL);
442
443 %name(BeginDrag2) bool BeginDrag(const wxPoint& hotspot, wxWindow* window,
444 wxWindow* fullScreenRect);
445
446 bool EndDrag();
447 bool Move(const wxPoint& pt);
448 bool Show();
449 bool Hide();
450
451 wxRect GetImageRect(const wxPoint& pos) const;
452 bool RedrawImage(const wxPoint& oldPos, const wxPoint& newPos,
453 bool eraseOld, bool drawNew);
454 };
455
456
457 // Alternate Constructors
458 %new wxGenericDragImage* wxDragIcon(const wxIcon& image,
459 const wxCursor& cursor = wxNullCursor,
460 const wxPoint& hotspot = wxPyNullPoint);
461
462 %new wxGenericDragImage* wxDragString(const wxString& str,
463 const wxCursor& cursor = wxNullCursor,
464 const wxPoint& hotspot = wxPyNullPoint);
465
466 %new wxGenericDragImage* wxDragTreeItem(const wxTreeCtrl& treeCtrl, wxTreeItemId& id);
467
468 %new wxGenericDragImage* wxDragListItem(const wxListCtrl& listCtrl, long id);
469
470
471 %{
472
473 wxGenericDragImage* wxDragIcon(const wxIcon& image,
474 const wxCursor& cursor,
475 const wxPoint& hotspot) {
476 return new wxGenericDragImage(image, cursor, hotspot);
477 }
478
479 wxGenericDragImage* wxDragString(const wxString& str,
480 const wxCursor& cursor,
481 const wxPoint& hotspot) {
482 return new wxGenericDragImage(str, cursor, hotspot);
483 }
484
485 wxGenericDragImage* wxDragTreeItem(const wxTreeCtrl& treeCtrl, wxTreeItemId& id) {
486 return new wxGenericDragImage(treeCtrl, id);
487 }
488
489 wxGenericDragImage* wxDragListItem(const wxListCtrl& listCtrl, long id) {
490 return new wxGenericDragImage(listCtrl, id);
491 }
492
493 %}
494
495
496
497 //----------------------------------------------------------------------
498
499 class wxPyTimer {
500 public:
501 wxPyTimer(PyObject* notify);
502 ~wxPyTimer();
503 int GetInterval();
504 bool IsOneShot();
505 bool IsRunning();
506 void SetOwner(wxEvtHandler *owner, int id = -1);
507 void Start(int milliseconds=-1, int oneShot=FALSE);
508 void Stop();
509 };
510
511 //----------------------------------------------------------------------
512 //----------------------------------------------------------------------
513
514
515 enum
516 {
517 wxLOG_FatalError, // program can't continue, abort immediately
518 wxLOG_Error, // a serious error, user must be informed about it
519 wxLOG_Warning, // user is normally informed about it but may be ignored
520 wxLOG_Message, // normal message (i.e. normal output of a non GUI app)
521 wxLOG_Info, // informational message (a.k.a. 'Verbose')
522 wxLOG_Status, // informational: might go to the status line of GUI app
523 wxLOG_Debug, // never shown to the user, disabled in release mode
524 wxLOG_Trace, // trace messages are also only enabled in debug mode
525 wxLOG_Progress, // used for progress indicator (not yet)
526 wxLOG_User = 100 // user defined levels start here
527 };
528
529
530 class wxLog
531 {
532 public:
533 wxLog();
534
535 static bool IsEnabled();
536 static bool EnableLogging(bool doIt = TRUE);
537 static void OnLog(wxLogLevel level, const char *szString, int t=0);
538
539 virtual void Flush();
540 bool HasPendingMessages() const;
541
542 static void FlushActive();
543 static wxLog *GetActiveTarget();
544 static wxLog *SetActiveTarget(wxLog *pLogger);
545
546 static void Suspend();
547 static void Resume();
548
549 void SetVerbose(bool bVerbose = TRUE);
550
551 static void DontCreateOnDemand();
552 static void SetTraceMask(wxTraceMask ulMask);
553 static void AddTraceMask(const wxString& str);
554 static void RemoveTraceMask(const wxString& str);
555
556 bool GetVerbose() const { return m_bVerbose; }
557
558 static wxTraceMask GetTraceMask();
559 static bool IsAllowedTraceMask(const char *mask);
560
561 };
562
563
564 class wxLogStderr : public wxLog
565 {
566 public:
567 wxLogStderr(/* TODO: FILE *fp = (FILE *) NULL*/);
568 };
569
570
571 class wxLogTextCtrl : public wxLog
572 {
573 public:
574 wxLogTextCtrl(wxTextCtrl *pTextCtrl);
575 };
576
577
578 class wxLogGui : public wxLog
579 {
580 public:
581 wxLogGui();
582 };
583
584 class wxLogWindow : public wxLog
585 {
586 public:
587 wxLogWindow(wxFrame *pParent, // the parent frame (can be NULL)
588 const char *szTitle, // the title of the frame
589 bool bShow = TRUE, // show window immediately?
590 bool bPassToOld = TRUE); // pass log messages to the old target?
591
592 void Show(bool bShow = TRUE);
593 wxFrame *GetFrame() const;
594 wxLog *GetOldLog() const;
595 bool IsPassingMessages() const;
596 void PassMessages(bool bDoPass) { m_bPassMessages = bDoPass; }
597 };
598
599
600 class wxLogNull
601 {
602 public:
603 wxLogNull();
604 ~wxLogNull();
605 };
606
607
608 unsigned long wxSysErrorCode();
609 const char* wxSysErrorMsg(unsigned long nErrCode = 0);
610 void wxLogFatalError(const char *szFormat);
611 void wxLogError(const char *szFormat);
612 void wxLogWarning(const char *szFormat);
613 void wxLogMessage(const char *szFormat);
614 void wxLogInfo(const char *szFormat);
615 void wxLogVerbose(const char *szFormat);
616 void wxLogStatus(const char *szFormat);
617 %name(wxLogStatusFrame)void wxLogStatus(wxFrame *pFrame, const char *szFormat);
618 void wxLogSysError(const char *szFormat);
619
620
621
622 //----------------------------------------------------------------------
623
624 class wxProcessEvent : public wxEvent {
625 public:
626 wxProcessEvent(int id = 0, int pid = 0, int exitcode = 0);
627 int GetPid();
628 int GetExitCode();
629 int m_pid, m_exitcode;
630 };
631
632
633
634
635 %{ // C++ version of wxProcess derived class
636
637 class wxPyProcess : public wxProcess {
638 public:
639 wxPyProcess(wxEvtHandler *parent = NULL, int id = -1)
640 : wxProcess(parent, id)
641 {}
642
643 DEC_PYCALLBACK_VOID_INTINT(OnTerminate);
644
645 PYPRIVATE;
646 };
647
648 IMP_PYCALLBACK_VOID_INTINT( wxPyProcess, wxProcess, OnTerminate);
649 %}
650
651
652 %name(wxProcess)class wxPyProcess : public wxEvtHandler {
653 public:
654 wxPyProcess(wxEvtHandler *parent = NULL, int id = -1);
655 %addmethods { void Destroy() { delete self; } }
656
657 void _setSelf(PyObject* self, PyObject* _class);
658 %pragma(python) addtomethod = "__init__:self._setSelf(self, wxProcess)"
659
660 void base_OnTerminate(int pid, int status);
661
662 void Redirect();
663 bool IsRedirected();
664 void Detach();
665
666 wxInputStream *GetInputStream();
667 wxInputStream *GetErrorStream();
668 wxOutputStream *GetOutputStream();
669
670 void CloseOutput();
671 };
672
673
674
675 long wxExecute(const wxString& command,
676 int sync = FALSE,
677 wxPyProcess *process = NULL);
678
679 //----------------------------------------------------------------------
680
681 #ifdef __WXMSW__
682 class wxJoystick {
683 public:
684 wxJoystick(int joystick = wxJOYSTICK1);
685 wxPoint GetPosition();
686 int GetZPosition();
687 int GetButtonState();
688 int GetPOVPosition();
689 int GetPOVCTSPosition();
690 int GetRudderPosition();
691 int GetUPosition();
692 int GetVPosition();
693 int GetMovementThreshold();
694 void SetMovementThreshold(int threshold) ;
695
696 bool IsOk(void);
697 int GetNumberJoysticks();
698 int GetManufacturerId();
699 int GetProductId();
700 wxString GetProductName();
701 int GetXMin();
702 int GetYMin();
703 int GetZMin();
704 int GetXMax();
705 int GetYMax();
706 int GetZMax();
707 int GetNumberButtons();
708 int GetNumberAxes();
709 int GetMaxButtons();
710 int GetMaxAxes();
711 int GetPollingMin();
712 int GetPollingMax();
713 int GetRudderMin();
714 int GetRudderMax();
715 int GetUMin();
716 int GetUMax();
717 int GetVMin();
718 int GetVMax();
719
720 bool HasRudder();
721 bool HasZ();
722 bool HasU();
723 bool HasV();
724 bool HasPOV();
725 bool HasPOV4Dir();
726 bool HasPOVCTS();
727
728 bool SetCapture(wxWindow* win, int pollingFreq = 0);
729 bool ReleaseCapture();
730 };
731 #endif
732
733 //----------------------------------------------------------------------
734 //----------------------------------------------------------------------
735