Files
wxWidgets/wxPython/src/_joystick.i
Robin Dunn ab1f7d2aa9 All the Window and GDI (pen, bitmap, etc.) classes and also many
toplevel functions will now check that a wx.App object has already
been created and will raise a wx.PyNoAppError exception if not.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27565 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-06-01 21:38:05 +00:00

233 lines
6.3 KiB
OpenEdge ABL

/////////////////////////////////////////////////////////////////////////////
// Name: _joystick.i
// Purpose: SWIG interface stuff for wxJoystick
//
// Author: Robin Dunn
//
// Created: 18-June-1999
// RCS-ID: $Id$
// Copyright: (c) 2003 by Total Control Software
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
// Not a %module
//---------------------------------------------------------------------------
%newgroup
%{
#include <wx/joystick.h>
%}
//---------------------------------------------------------------------------
// Which joystick? Same as Windows ids so no conversion necessary.
enum
{
wxJOYSTICK1,
wxJOYSTICK2
};
// Which button is down?
enum
{
wxJOY_BUTTON_ANY,
wxJOY_BUTTON1,
wxJOY_BUTTON2,
wxJOY_BUTTON3,
wxJOY_BUTTON4,
};
%{
#if !wxUSE_JOYSTICK && !defined(__WXMSW__)
// A C++ stub class for wxJoystick for platforms that don't have it.
class wxJoystick : public wxObject {
public:
wxJoystick(int joystick = wxJOYSTICK1) {
bool blocked = wxPyBeginBlockThreads();
PyErr_SetString(PyExc_NotImplementedError,
"wxJoystick is not available on this platform.");
wxPyEndBlockThreads(blocked);
}
wxPoint GetPosition() { return wxPoint(-1,-1); }
int GetZPosition() { return -1; }
int GetButtonState() { return -1; }
int GetPOVPosition() { return -1; }
int GetPOVCTSPosition() { return -1; }
int GetRudderPosition() { return -1; }
int GetUPosition() { return -1; }
int GetVPosition() { return -1; }
int GetMovementThreshold() { return -1; }
void SetMovementThreshold(int threshold) {}
bool IsOk(void) { return False; }
int GetNumberJoysticks() { return -1; }
int GetManufacturerId() { return -1; }
int GetProductId() { return -1; }
wxString GetProductName() { return wxEmptyString; }
int GetXMin() { return -1; }
int GetYMin() { return -1; }
int GetZMin() { return -1; }
int GetXMax() { return -1; }
int GetYMax() { return -1; }
int GetZMax() { return -1; }
int GetNumberButtons() { return -1; }
int GetNumberAxes() { return -1; }
int GetMaxButtons() { return -1; }
int GetMaxAxes() { return -1; }
int GetPollingMin() { return -1; }
int GetPollingMax() { return -1; }
int GetRudderMin() { return -1; }
int GetRudderMax() { return -1; }
int GetUMin() { return -1; }
int GetUMax() { return -1; }
int GetVMin() { return -1; }
int GetVMax() { return -1; }
bool HasRudder() { return False; }
bool HasZ() { return False; }
bool HasU() { return False; }
bool HasV() { return False; }
bool HasPOV() { return False; }
bool HasPOV4Dir() { return False; }
bool HasPOVCTS() { return False; }
bool SetCapture(wxWindow* win, int pollingFreq = 0) { return False; }
bool ReleaseCapture() { return False; }
};
#endif
%}
MustHaveApp(wxJoystick);
class wxJoystick /* : public wxObject */
{
public:
wxJoystick(int joystick = wxJOYSTICK1);
~wxJoystick();
wxPoint GetPosition();
int GetZPosition();
int GetButtonState();
int GetPOVPosition();
int GetPOVCTSPosition();
int GetRudderPosition();
int GetUPosition();
int GetVPosition();
int GetMovementThreshold();
void SetMovementThreshold(int threshold) ;
bool IsOk(void);
int GetNumberJoysticks();
int GetManufacturerId();
int GetProductId();
wxString GetProductName();
int GetXMin();
int GetYMin();
int GetZMin();
int GetXMax();
int GetYMax();
int GetZMax();
int GetNumberButtons();
int GetNumberAxes();
int GetMaxButtons();
int GetMaxAxes();
int GetPollingMin();
int GetPollingMax();
int GetRudderMin();
int GetRudderMax();
int GetUMin();
int GetUMax();
int GetVMin();
int GetVMax();
bool HasRudder();
bool HasZ();
bool HasU();
bool HasV();
bool HasPOV();
bool HasPOV4Dir();
bool HasPOVCTS();
bool SetCapture(wxWindow* win, int pollingFreq = 0);
bool ReleaseCapture();
%pythoncode { def __nonzero__(self): return self.IsOk() }
};
//---------------------------------------------------------------------------
%constant wxEventType wxEVT_JOY_BUTTON_DOWN;
%constant wxEventType wxEVT_JOY_BUTTON_UP;
%constant wxEventType wxEVT_JOY_MOVE;
%constant wxEventType wxEVT_JOY_ZMOVE;
class wxJoystickEvent : public wxEvent
{
public:
wxPoint m_pos;
int m_zPosition;
int m_buttonChange; // Which button changed?
int m_buttonState; // Which buttons are down?
int m_joyStick; // Which joystick?
wxJoystickEvent(wxEventType type = wxEVT_NULL,
int state = 0,
int joystick = wxJOYSTICK1,
int change = 0);
wxPoint GetPosition() const;
int GetZPosition() const;
int GetButtonState() const;
int GetButtonChange() const;
int GetJoystick() const;
void SetJoystick(int stick);
void SetButtonState(int state);
void SetButtonChange(int change);
void SetPosition(const wxPoint& pos);
void SetZPosition(int zPos);
// Was it a button event? (*doesn't* mean: is any button *down*?)
bool IsButton() const;
// Was it a move event?
bool IsMove() const;
// Was it a zmove event?
bool IsZMove() const;
// Was it a down event from button 1, 2, 3, 4 or any?
bool ButtonDown(int but = wxJOY_BUTTON_ANY) const;
// Was it a up event from button 1, 2, 3 or any?
bool ButtonUp(int but = wxJOY_BUTTON_ANY) const;
// Was the given button 1,2,3,4 or any in Down state?
bool ButtonIsDown(int but = wxJOY_BUTTON_ANY) const;
};
%pythoncode {
EVT_JOY_BUTTON_DOWN = wx.PyEventBinder( wxEVT_JOY_BUTTON_DOWN )
EVT_JOY_BUTTON_UP = wx.PyEventBinder( wxEVT_JOY_BUTTON_UP )
EVT_JOY_MOVE = wx.PyEventBinder( wxEVT_JOY_MOVE )
EVT_JOY_ZMOVE = wx.PyEventBinder( wxEVT_JOY_ZMOVE )
EVT_JOYSTICK_EVENTS = wx.PyEventBinder([ wxEVT_JOY_BUTTON_DOWN,
wxEVT_JOY_BUTTON_UP,
wxEVT_JOY_MOVE,
wxEVT_JOY_ZMOVE,
])
}
//---------------------------------------------------------------------------