X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/807902f11968d78669d6eb56b40109e92bd2cf7a..1a19b3210d97b2c8ad8f3621334cdcd99d5e172a:/samples/joytest/joytest.cpp diff --git a/samples/joytest/joytest.cpp b/samples/joytest/joytest.cpp index 6bf7bc96c3..f8f478d5f9 100644 --- a/samples/joytest/joytest.cpp +++ b/samples/joytest/joytest.cpp @@ -31,7 +31,7 @@ // 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) -#if !defined(__WXMSW__) && !defined(__WXPM__) +#ifndef wxHAS_IMAGES_IN_RESOURCES #include "../sample.xpm" #endif @@ -119,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)