X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/18f42b94df62068a19258b96ac7f569d4d3ba400..65fb4b3a4f18e1d8b58ac92d50d4cc7f81f03783:/samples/joytest/joytest.cpp?ds=sidebyside diff --git a/samples/joytest/joytest.cpp b/samples/joytest/joytest.cpp index 729073fe04..f8f478d5f9 100644 --- a/samples/joytest/joytest.cpp +++ b/samples/joytest/joytest.cpp @@ -29,6 +29,12 @@ #include "joytest.h" +// the application icon (under Windows and OS/2 it is in resources and even +// though we could still include the XPM here it would be unused) +#ifndef wxHAS_IMAGES_IN_RESOURCES + #include "../sample.xpm" +#endif + MyFrame *frame = NULL; IMPLEMENT_APP(MyApp) @@ -113,46 +119,50 @@ MyCanvas::~MyCanvas() void MyCanvas::OnJoystickEvent(wxJoystickEvent& event) { - wxClientDC dc(this); - - wxPoint pt(event.GetPosition()); - - // if negative positions are possible then shift everything up - int xmin = wxGetApp().m_minX; - int xmax = wxGetApp().m_maxX; - int ymin = wxGetApp().m_minY; - int ymax = wxGetApp().m_maxY; - if (xmin < 0) { - xmax += abs(xmin); - pt.x += abs(xmin); - } - if (ymin < 0) { - ymax += abs(ymin); - pt.y += abs(ymin); - } - - // Scale to canvas size - int cw, ch; - GetSize(&cw, &ch); - - pt.x = (long) (((double)pt.x/(double)xmax) * cw); - pt.y = (long) (((double)pt.y/(double)ymax) * ch); - - if (xpos > -1 && ypos > -1 && event.IsMove() && event.ButtonIsDown()) + // We don't have valid (x, y) coordinates for z-move events. + if ( !event.IsZMove() ) { - dc.SetPen(*wxBLACK_PEN); - dc.DrawLine(xpos, ypos, pt.x, pt.y); + wxClientDC dc(this); + + wxPoint pt(event.GetPosition()); + + // if negative positions are possible then shift everything up + int xmin = wxGetApp().m_minX; + int xmax = wxGetApp().m_maxX; + int ymin = wxGetApp().m_minY; + int ymax = wxGetApp().m_maxY; + if (xmin < 0) { + xmax += abs(xmin); + pt.x += abs(xmin); + } + if (ymin < 0) { + ymax += abs(ymin); + pt.y += abs(ymin); + } + + // Scale to canvas size + int cw, ch; + GetSize(&cw, &ch); + + pt.x = (long) (((double)pt.x/(double)xmax) * cw); + pt.y = (long) (((double)pt.y/(double)ymax) * ch); + + if (xpos > -1 && ypos > -1 && event.IsMove() && event.ButtonIsDown()) + { + dc.SetPen(*wxBLACK_PEN); + dc.DrawLine(xpos, ypos, pt.x, pt.y); + } + + xpos = pt.x; + ypos = pt.y; } - xpos = pt.x; - ypos = pt.y; - #if wxUSE_STATUSBAR wxString buf; if (event.ButtonDown()) - buf.Printf(wxT("Joystick (%d, %d) #%i Fire!"), pt.x, pt.y, event.GetButtonChange()); + buf.Printf(wxT("Joystick (%d, %d) #%i Fire!"), xpos, ypos, event.GetButtonChange()); else - buf.Printf(wxT("Joystick (%d, %d) "), pt.x, pt.y); + buf.Printf(wxT("Joystick (%d, %d) "), xpos, ypos); /* for(int i = 0; i < nButtons; ++i)