X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/925e9792d32e353233985f53a4845f154e455a58..c0f02dab276d6e0db31b060c070c71b6d7543d96:/samples/joytest/joytest.cpp diff --git a/samples/joytest/joytest.cpp b/samples/joytest/joytest.cpp index ea87565499..2f77ae74c2 100644 --- a/samples/joytest/joytest.cpp +++ b/samples/joytest/joytest.cpp @@ -39,18 +39,22 @@ long ypos = -1; int winNumber = 1; +int nButtons = 0; // Initialise this in OnInit, not statically bool MyApp::OnInit() { + if ( !wxApp::OnInit() ) + return false; + wxJoystick stick(wxJOYSTICK1); if (!stick.IsOk()) { - wxMessageBox(_T("No joystick detected!")); + wxMessageBox(wxT("No joystick detected!")); return false; } #if wxUSE_SOUND - m_fire.Create(_T("gun.wav")); + m_fire.Create(wxT("buttonpress.wav")); #endif // wxUSE_SOUND m_minX = stick.GetXMin(); @@ -60,31 +64,32 @@ bool MyApp::OnInit() // Create the main frame window - frame = new MyFrame(NULL, _T("Joystick Demo"), wxDefaultPosition, + frame = new MyFrame(NULL, wxT("Joystick Demo"), wxDefaultPosition, wxSize(500, 400), wxDEFAULT_FRAME_STYLE | wxHSCROLL | wxVSCROLL); // Give it an icon (this is ignored in MDI mode: uses resources) #ifdef __WXMSW__ - frame->SetIcon(wxIcon(_T("joyicon"))); + frame->SetIcon(wxIcon(wxT("joyicon"))); #endif #ifdef __X__ - frame->SetIcon(wxIcon(_T("joyicon.xbm"))); + frame->SetIcon(wxIcon(wxT("joyicon.xbm"))); #endif // Make a menubar wxMenu *file_menu = new wxMenu; - file_menu->Append(JOYTEST_QUIT, _T("&Exit")); + file_menu->Append(JOYTEST_QUIT, wxT("&Exit")); wxMenuBar *menu_bar = new wxMenuBar; - menu_bar->Append(file_menu, _T("&File")); + menu_bar->Append(file_menu, wxT("&File")); // 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(); @@ -104,6 +109,7 @@ MyCanvas::MyCanvas(wxWindow *parent, const wxPoint& pos, const wxSize& size): wxScrolledWindow(parent, wxID_ANY, pos, size, wxSUNKEN_BORDER) { m_stick = new wxJoystick(wxJOYSTICK1); + nButtons = m_stick->GetNumberButtons(); m_stick->SetCapture(this, 10); } @@ -152,9 +158,17 @@ void MyCanvas::OnJoystickEvent(wxJoystickEvent& event) #if wxUSE_STATUSBAR wxString buf; if (event.ButtonDown()) - buf.Printf(_T("Joystick (%d, %d) Fire!"), pt.x, pt.y); + buf.Printf(wxT("Joystick (%d, %d) #%i Fire!"), pt.x, pt.y, event.GetButtonChange()); else - buf.Printf(_T("Joystick (%d, %d)"), pt.x, pt.y); + buf.Printf(wxT("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