X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a800dc50d47f5ecd1bcba7601f33843c01db9a57..2dcd83af916c2f606a6c4bf63f9f8fdf13de1921:/samples/joytest/joytest.cpp diff --git a/samples/joytest/joytest.cpp b/samples/joytest/joytest.cpp index bcc1dd71c5..65ca2e196c 100644 --- a/samples/joytest/joytest.cpp +++ b/samples/joytest/joytest.cpp @@ -24,10 +24,6 @@ # error You must set wxUSE_JOYSTICK to 1 in setup.h #endif -#if !wxUSE_STATUSBAR -# error You must set wxUSE_STATUSBAR to 1 in setup.h -#endif - #include "wx/sound.h" #include "wx/joystick.h" @@ -43,6 +39,7 @@ long ypos = -1; int winNumber = 1; +int nButtons = 0; // Initialise this in OnInit, not statically bool MyApp::OnInit() { @@ -50,11 +47,11 @@ bool MyApp::OnInit() if (!stick.IsOk()) { wxMessageBox(_T("No joystick detected!")); - return FALSE; + return false; } #if wxUSE_SOUND - m_fire.Create(_T("gun.wav")); + m_fire.Create(_T("buttonpress.wav")); #endif // wxUSE_SOUND m_minX = stick.GetXMin(); @@ -87,14 +84,17 @@ bool MyApp::OnInit() // Associate the menu bar with the frame frame->SetMenuBar(menu_bar); +#if wxUSE_STATUSBAR frame->CreateStatusBar(); + frame->SetStatusText(wxString::Format(wxT("Device [%s] (PID:[%i] MID:[%i]) Ready... # of joysticks:[%i]"), stick.GetProductName().c_str(), stick.GetProductId(), stick.GetManufacturerId(), wxJoystick::GetNumberJoysticks())); +#endif // wxUSE_STATUSBAR frame->CenterOnScreen(); - frame->Show(TRUE); + frame->Show(true); SetTopWindow(frame); - return TRUE; + return true; } BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow) @@ -103,9 +103,10 @@ END_EVENT_TABLE() // Define a constructor for my canvas MyCanvas::MyCanvas(wxWindow *parent, const wxPoint& pos, const wxSize& size): - wxScrolledWindow(parent, -1, pos, size, wxSUNKEN_BORDER) + wxScrolledWindow(parent, wxID_ANY, pos, size, wxSUNKEN_BORDER) { m_stick = new wxJoystick(wxJOYSTICK1); + nButtons = m_stick->GetNumberButtons(); m_stick->SetCapture(this, 10); } @@ -129,14 +130,12 @@ void MyCanvas::OnJoystickEvent(wxJoystickEvent& event) if (xmin < 0) { xmax += abs(xmin); pt.x += abs(xmin); - xmin = 0; } if (ymin < 0) { ymax += abs(ymin); pt.y += abs(ymin); - ymin = 0; } - + // Scale to canvas size int cw, ch; GetSize(&cw, &ch); @@ -153,13 +152,23 @@ void MyCanvas::OnJoystickEvent(wxJoystickEvent& event) xpos = pt.x; ypos = pt.y; +#if wxUSE_STATUSBAR wxString buf; if (event.ButtonDown()) - buf.Printf(_T("Joystick (%d, %d) Fire!"), pt.x, pt.y); + buf.Printf(_T("Joystick (%d, %d) #%i Fire!"), pt.x, pt.y, event.GetButtonChange()); else - buf.Printf(_T("Joystick (%d, %d)"), pt.x, pt.y); + buf.Printf(_T("Joystick (%d, %d) "), pt.x, pt.y); + +/* + for(int i = 0; i < nButtons; ++i) + { + buf += wxString(wxT("[")) + + ((event.GetButtonState() & (1 << i)) ? wxT("Y") : wxT("N")) + wxString(wxT("]")); + } +*/ frame->SetStatusText(buf); +#endif // wxUSE_STATUSBAR #if wxUSE_SOUND if (event.ButtonDown() && wxGetApp().m_fire.IsOk()) @@ -175,19 +184,14 @@ END_EVENT_TABLE() MyFrame::MyFrame(wxFrame *parent, const wxString& title, const wxPoint& pos, const wxSize& size, const long style) - : wxFrame(parent, -1, title, pos, size, style) + : wxFrame(parent, wxID_ANY, title, pos, size, style) { canvas = new MyCanvas(this); } -MyFrame::~MyFrame() -{ - // Empty -} - void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) { - Close(TRUE); + Close(true); } void MyFrame::OnActivate(wxActivateEvent& event)